MySalary.cpp 108 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217
  1. // MySalary.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "MySalary.h"
  6. #include "MyMdi.H"
  7. #include "SetSalary.h"
  8. #include "ShowHisSalary.h"
  9. #include "SalarySet4.h"
  10. #include "SelExpendType.h"
  11. #include "SelExportType.h"
  12. #include <odbcinst.h>
  13. #include <io.h>
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. /////////////////////////////////////////////////////////////////////////////
  20. IMPLEMENT_DYNCREATE(MySalary, MyFormView)
  21. MySalary::MySalary() : MyFormView(MySalary::IDD)
  22. {
  23. m_name = _T("");
  24. m_rate1 = _T("");
  25. m_rate2 = _T("");
  26. m_bz = _T("");
  27. m_base = _T("");
  28. m_salary = _T("");
  29. m_rate3 = _T("");
  30. m_rate4 = _T("");
  31. m_rate5 = _T("");
  32. m_money1 = _T("");
  33. m_money2 = _T("");
  34. m_money3 = _T("");
  35. m_money4 = _T("");
  36. m_money5 = _T("");
  37. m_money6 = _T("");
  38. m_bInit = 0;
  39. m_bAll = 0;
  40. m_year = atoi(g_date.Mid(0, 4));
  41. m_month = atoi(g_date.Mid(5, 2));
  42. m_date2 = GetTmFromStr(g_date);
  43. m_date1 = m_date2 - CTimeSpan(30, 0, 0, 0);
  44. }
  45. MySalary::~MySalary()
  46. {
  47. }
  48. void MySalary::DoDataExchange(CDataExchange* pDX)
  49. {
  50. MyFormView::DoDataExchange(pDX);
  51. DDX_Control(pDX, IDC_LIST11, m_ListTemp);
  52. DDX_Control(pDX, IDC_COMBO7, m_comboname);
  53. DDX_Control(pDX, IDC_COMBO6, m_combocaltype);
  54. DDX_Control(pDX, IDC_LIST8, m_Listdigital);
  55. DDX_Control(pDX, IDC_LIST7, m_Listtake);
  56. DDX_Control(pDX, IDC_LIST4, m_List4);
  57. DDX_Control(pDX, IDC_LIST3, m_List3);
  58. DDX_Control(pDX, IDC_LIST1, m_ListBox1);
  59. DDX_Control(pDX, IDC_SPIN2, m_spinmonth);
  60. DDX_Control(pDX, IDC_SPIN1, m_spinyear);
  61. DDX_Control(pDX, IDC_LIST2, m_List1);
  62. DDX_Control(pDX, IDC_STATIC1, m_static1);
  63. DDX_Text(pDX, IDC_EDITname, m_name);
  64. DDX_Text(pDX, IDC_EDITrate1, m_rate1);
  65. DDX_Text(pDX, IDC_EDITrate2, m_rate2);
  66. DDX_Text(pDX, IDC_EDITbz, m_bz);
  67. DDX_Text(pDX, IDC_EDITbase, m_base);
  68. DDX_Text(pDX, IDC_EDITmonth, m_month);
  69. DDV_MinMaxUInt(pDX, m_month, 1, 12);
  70. DDX_Text(pDX, IDC_EDITsalary, m_salary);
  71. DDX_Text(pDX, IDC_EDITyear, m_year);
  72. DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
  73. DDX_Text(pDX, IDC_EDITrate3, m_rate3);
  74. DDX_Text(pDX, IDC_EDITrate4, m_rate4);
  75. DDX_Text(pDX, IDC_EDITrate6, m_rate5);
  76. DDX_Text(pDX, IDC_EDITmoney1, m_money1);
  77. DDX_Text(pDX, IDC_EDITmoney2, m_money2);
  78. DDX_Text(pDX, IDC_EDITmoney3, m_money3);
  79. DDX_Text(pDX, IDC_EDITmoney4, m_money4);
  80. DDX_Text(pDX, IDC_EDITmoney5, m_money5);
  81. DDX_Text(pDX, IDC_EDITmoney6, m_money6);
  82. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_date1);
  83. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_date2);
  84. }
  85. BEGIN_MESSAGE_MAP(MySalary, MyFormView)
  86. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  87. ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
  88. ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
  89. ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth)
  90. ON_BN_CLICKED(IDC_BUTshowall, OnBUTshowall)
  91. ON_BN_CLICKED(IDC_BUT1, OnBut1)
  92. ON_BN_CLICKED(IDC_BUT2, OnBut2)
  93. ON_BN_CLICKED(IDC_BUT3, OnBut3)
  94. ON_CBN_SELCHANGE(IDC_COMBO6, OnSelchangeCombo6)
  95. ON_BN_CLICKED(IDC_BUT4, OnBut4)
  96. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  97. ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  98. ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  99. ON_CBN_CLOSEUP(IDC_COMBO7, OnCloseupCombo7)
  100. ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
  101. ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
  102. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  103. ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER1, OnDatetimechangeDatetimepicker1)
  104. ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER2, OnDatetimechangeDatetimepicker2)
  105. END_MESSAGE_MAP()
  106. /////////////////////////////////////////////////////////////////////////////
  107. // MySalary diagnostics
  108. #ifdef _DEBUG
  109. void MySalary::AssertValid() const
  110. {
  111. MyFormView::AssertValid();
  112. }
  113. void MySalary::Dump(CDumpContext& dc) const
  114. {
  115. MyFormView::Dump(dc);
  116. }
  117. #endif //_DEBUG
  118. /////////////////////////////////////////////////////////////////////////////
  119. void MySalary::OnInitialUpdate()
  120. {
  121. MyFormView::OnInitialUpdate();
  122. if (IsHasRights2new(25) == 0)
  123. {
  124. GetDlgItem(IDC_BUT1)->EnableWindow(0);
  125. }
  126. CMyMdi Mdi;
  127. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  128. m_combocaltype.AddString("计算初修提成");
  129. m_combocaltype.AddString("计算精修提成");
  130. m_combocaltype.AddString("计算设计提成");
  131. CRect rc2;
  132. GetWindowRect(rc2);
  133. ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
  134. EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);
  135. m_comboname.RefDroppedWidth();
  136. m_combocaltype.GetWindowRect(rc2);
  137. ScreenToClient(rc2);
  138. rc2.bottom += 200;
  139. m_combocaltype.MoveWindow(rc2);
  140. m_static1.SetFont(&g_titlefont);
  141. #ifdef CHILD_VERSION
  142. m_List1.SetHeadings("金额,100;日期,100;款项类别,100;家长姓名,100;宝宝姓名,100;套系类别,100;付款方式,100");
  143. m_ListTemp.SetHeadings("金额,100;日期,100;款项类别,100;家长姓名,100;宝宝姓名,100;套系类别,100;付款方式,100");
  144. m_List1.LoadColumnInfo(23);
  145. m_List3.SetHeadings("姓名,100;总工资,100;基本工资,100;前期业绩,100;后期业绩,100;职务提成,100;部门,100;备注,100");
  146. m_List3.LoadColumnInfo(124);
  147. m_List4.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;提成金额,100;部门,100;内容,100;数量,100;单价,100;提成方式,100;套系价格,100;日期,100");
  148. m_List4.LoadColumnInfo(139);
  149. m_Listtake.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;套系,100;价格,100;景点,100;日期,100;摄影,100;助理,100;化妆师,100;助理,100;套系类别,100");
  150. #ifdef LKAY_VERSION
  151. m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100;P数,50;张数,50" );
  152. #else
  153. //m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  154. m_Listdigital.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  155. #endif
  156. m_Listtake.LoadColumnInfo(210);
  157. m_Listdigital.LoadColumnInfo(211);
  158. #else
  159. m_List1.SetHeadings("金额,100;日期,100;款项类别,100;男宾姓名,100;女宾姓名,100;套系类别,100;付款方式,100");
  160. m_ListTemp.SetHeadings("金额,100;日期,100;款项类别,100;男宾姓名,100;女宾姓名,100;套系类别,100;付款方式,100");
  161. m_List1.LoadColumnInfo(23);
  162. m_List3.SetHeadings("姓名,100;总工资,100;基本工资,100;前期业绩,100;后期业绩,100;职务提成,100;部门,100;备注,100");
  163. m_List3.LoadColumnInfo(124);
  164. m_List4.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;提成金额,100;部门,100;内容,100;数量,100;单价,100;提成方式,100;套系价格,100;日期,100");
  165. m_List4.LoadColumnInfo(139);
  166. m_Listtake.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;景点,100;日期,100;摄影,100;助理,100;化妆师,100;助理,100;套系类别,100");
  167. m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  168. m_Listtake.LoadColumnInfo(210);
  169. m_Listdigital.LoadColumnInfo(211);
  170. #endif
  171. m_spinyear.SetRange(1900, 3000);
  172. m_spinmonth.SetRange(1, 12);
  173. BOOL bShowAll = 0;
  174. if (g_ncount == 100)bShowAll = 1;
  175. g_ncount = 0;
  176. GetData();
  177. if (bShowAll == 0)
  178. GetDlgItem(IDC_LIST3)->ShowWindow(0);
  179. if (IsHasRights2new(25) == 0)
  180. {
  181. m_ListBox1.EnableWindow(0);
  182. m_comboname.EnableWindow(0);
  183. GetDlgItem(IDC_BUTshowall)->EnableWindow(0);
  184. }
  185. else if (bShowAll)
  186. {
  187. g_ncount = 0;
  188. OnBUTshowall();
  189. }
  190. }
  191. void MySalary::FillGrid(CArray<CStringArray, CStringArray>*array)
  192. {
  193. m_List1.DeleteAllItems2();
  194. int ii = 0;
  195. m_List1.m_arLabels.SetSize(array->GetSize(), 1);
  196. int count = 0;
  197. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  198. {
  199. m_List1.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  200. }
  201. m_List1.m_arLabels.SetSize(count, 1);
  202. ii = count;
  203. m_List1.m_LabelCount = ii;
  204. m_List1.SetItemCountEx(ii);
  205. }
  206. void MySalary::FillGridTake(CArray<CStringArray, CStringArray>*array)
  207. {
  208. m_Listtake.DeleteAllItems2();
  209. int ii = 0;
  210. m_Listtake.m_arLabels.SetSize(array->GetSize(), 1);
  211. int count = 0;
  212. for (ii = 0; ii < m_Listtake.m_arLabels.GetSize(); ii++)
  213. {
  214. m_Listtake.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  215. }
  216. m_Listtake.m_arLabels.SetSize(count, 1);
  217. ii = count;
  218. m_Listtake.m_LabelCount = ii;
  219. m_Listtake.SetItemCountEx(ii);
  220. }
  221. void MySalary::FillGridDigital(CArray<CStringArray, CStringArray>*array)
  222. {
  223. m_Listdigital.DeleteAllItems2();
  224. int ii = 0;
  225. m_Listdigital.m_arLabels.SetSize(array->GetSize(), 1);
  226. int count = 0;
  227. for (ii = 0; ii < m_Listdigital.m_arLabels.GetSize(); ii++)
  228. {
  229. m_Listdigital.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  230. }
  231. m_Listdigital.m_arLabels.SetSize(count, 1);
  232. ii = count;
  233. m_Listdigital.m_LabelCount = ii;
  234. m_Listdigital.SetItemCountEx(ii);
  235. }
  236. void MySalary::OnBUTclose()
  237. {
  238. GetParent()->SendMessage(WM_CLOSE);
  239. }
  240. void MySalary::GetData()
  241. {
  242. m_bInit = 1;
  243. g_sendhead.bsql = 0;
  244. g_sendhead.code[0] = 34; // renyuan表;
  245. g_sendhead.code[1] = 146; // workrate表;
  246. g_sendhead.tabcount = 2;
  247. CString filter = _T("dimission='在职';");
  248. g_pMainWnd->ProcessChatMessageRequest2(filter);
  249. if (g_bSendOK == 0)return;
  250. DataToArray(&m_List1array, &m_Workratearray);
  251. int i = 0;
  252. m_ListBox1.ResetContent();
  253. for ( i = 0; i < m_List1array.GetSize(); i++)
  254. {
  255. m_ListBox1.AddString(m_List1array.ElementAt(i).ElementAt(0));
  256. }
  257. CString str;
  258. for (i = 0; i < m_ListBox1.GetCount(); i++)
  259. {
  260. m_ListBox1.GetText(i, str);
  261. if (str == g_user.name)
  262. {
  263. m_ListBox1.SetCurSel(i);
  264. m_comboname.AddString(g_user.name);
  265. m_comboname.SetCurSel(m_comboname.FindString(0, g_user.name));
  266. OnSelchangeList1();
  267. break;
  268. }
  269. }
  270. }
  271. void MySalary::OnChangeEDITyear()
  272. {
  273. }
  274. void MySalary::OnChangeEDITmonth()
  275. {
  276. }
  277. extern float GetSalaryFromRule(float fmoney, CString rule);
  278. CString GetRule(CString name)
  279. {
  280. CString oldrule = g_cominfoarray.ElementAt(0).ElementAt(77);
  281. CString header = "$" + name + ":";
  282. CString left, right;
  283. int pos = oldrule.Find(header);
  284. if (pos != -1)
  285. {
  286. right = oldrule.Right(oldrule.GetLength() - pos - header.GetLength());
  287. pos = right.Find("$");
  288. if (pos != -1)
  289. right = right.Left(pos);
  290. right = header + right;
  291. return right;
  292. }
  293. return "";
  294. }
  295. void MySalary::OnSelchangeList1()
  296. {
  297. if (m_bInit == 0)return;
  298. UpdateData();
  299. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(0);
  300. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(0);
  301. if (m_bAll)
  302. {
  303. m_List3array.RemoveAll();
  304. FillGrid2();
  305. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  306. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  307. return;
  308. }
  309. CString name;
  310. /* int pos=m_ListBox1.GetCurSel ();
  311. if(pos==-1)
  312. {
  313. m_spinyear.EnableWindow(1);
  314. m_spinmonth.EnableWindow(1);
  315. return;
  316. }
  317. m_ListBox1.GetText (pos, name);*/
  318. int pos = m_comboname.GetCurSel();
  319. if (pos == -1)
  320. {
  321. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  322. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  323. return;
  324. }
  325. m_comboname.GetWindowText(name);
  326. CString date1(_T("")), date2(_T(""));
  327. date1 = m_date1.Format("%Y-%m-%d");
  328. date2 = m_date2.Format("%Y-%m-%d");
  329. m_year = m_date1.GetYear();
  330. int i;
  331. int g_nYearposTemp = g_nYearpos;
  332. BOOL bLastYear = 0;
  333. BOOL bThisYear = 0;
  334. #if JEFF_TEST_ON // 2015开始禁用跨年数据;
  335. if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  336. {
  337. g_nYearpos = -1;
  338. bThisYear = 1;
  339. }
  340. else if (m_year <= 2013 && g_hisyeararray.GetSize())
  341. {
  342. g_nYearpos = GetYearPos(m_year);
  343. bLastYear = 1;
  344. }
  345. #else
  346. if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  347. bThisYear = 1;
  348. else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize())
  349. bLastYear = 1;
  350. g_nYearpos = GetYearPos(m_year);
  351. #endif
  352. ///////////////
  353. CString filter = "name='" + name + "' and dimission='在职';date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + name + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + name + "'";
  354. CString temp;
  355. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
  356. filter += temp;
  357. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + name + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + name + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + name + "')";
  358. filter += temp;
  359. // filter后***的SQL属于case 61里的。
  360. g_sendhead.code[0] = 34; // reyuan
  361. g_sendhead.code[1] = 59; // dindanbukuanview
  362. g_sendhead.code[2] = 60; // dindan
  363. g_sendhead.code[3] = 198; //singleincomemoneyview 其它2销录入表
  364. g_sendhead.code[4] = 61; //TX信息arr
  365. g_sendhead.code[5] = 142; //dindan_waiterarr
  366. g_sendhead.code[6] = 192; //dindan_dindanjdarr
  367. g_sendhead.code[7] = 193;
  368. g_sendhead.tabcount = 8;
  369. g_sendhead.bsql = 0;
  370. g_pMainWnd->ProcessChatMessageRequest2(filter);
  371. if (g_bSendOK == 0)
  372. {
  373. g_nYearpos = g_nYearposTemp;
  374. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  375. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  376. return;
  377. }
  378. CArray<CStringArray, CStringArray>userarray;
  379. CArray<CStringArray, CStringArray>bukuanarray;
  380. CArray<CStringArray, CStringArray>waiterarray;
  381. CArray<CStringArray, CStringArray>singleincomearray;
  382. CArray<CStringArray, CStringArray>bukuanarray2;
  383. CArray<CStringArray, CStringArray>takearray;
  384. CArray<CStringArray, CStringArray>digitalarray;
  385. DataToArray(&userarray, &bukuanarray, &waiterarray, &singleincomearray, &bukuanarray2, &m_List4array, &takearray, &digitalarray);
  386. ///////////////////
  387. if (bLastYear)//如果是去年, 则加今年的补款
  388. {
  389. g_nYearpos = -1;//今年
  390. filter = "name='" + name + "' and dimission='在职';date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + name + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + name + "'";
  391. CString temp;
  392. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
  393. filter += temp;
  394. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + name + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + name + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + name + "')";
  395. filter += temp;
  396. g_sendhead.code[0] = 34; // reyuan
  397. g_sendhead.code[1] = 59; // dindanbukuanview
  398. g_sendhead.code[2] = 60; // dindan
  399. g_sendhead.code[3] = 198; // singleincomemoneyview
  400. g_sendhead.code[4] = 61; // dindan + bukuan
  401. g_sendhead.code[5] = 142; // mywork
  402. g_sendhead.code[6] = 192; // dindanjd
  403. g_sendhead.code[7] = 193; // digitalview
  404. g_sendhead.tabcount = 8;
  405. g_sendhead.bsql = 0;
  406. g_pMainWnd->ProcessChatMessageRequest2(filter);
  407. if (g_bSendOK == 0)
  408. {
  409. g_nYearpos = g_nYearposTemp;
  410. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  411. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  412. return;
  413. }
  414. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  415. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  416. CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
  417. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  418. CArray<CStringArray, CStringArray>ThisYearm_List4array;
  419. CArray<CStringArray, CStringArray>ThisYeartakearray;
  420. CArray<CStringArray, CStringArray>ThisYeardigitalarray;
  421. DataToArray(&userarray, &ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);
  422. int oldsize = bukuanarray.GetSize();
  423. bukuanarray.SetSize(oldsize + ThisYearbukuanarray.GetSize());
  424. for (i = oldsize; i < oldsize + ThisYearbukuanarray.GetSize(); i++)
  425. {
  426. bukuanarray.ElementAt(i).Copy(ThisYearbukuanarray.ElementAt(i - oldsize));
  427. }
  428. oldsize = waiterarray.GetSize();
  429. waiterarray.SetSize(oldsize + ThisYearwaiterarray.GetSize());
  430. for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
  431. {
  432. waiterarray.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
  433. }
  434. oldsize = singleincomearray.GetSize();
  435. singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
  436. for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
  437. {
  438. singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.ElementAt(i - oldsize));
  439. }
  440. oldsize = bukuanarray2.GetSize();
  441. bukuanarray2.SetSize(oldsize + ThisYearbukuanarray2.GetSize());
  442. for (i = oldsize; i < oldsize + ThisYearbukuanarray2.GetSize(); i++)
  443. {
  444. bukuanarray2.ElementAt(i).Copy(ThisYearbukuanarray2.ElementAt(i - oldsize));
  445. }
  446. oldsize = m_List4array.GetSize();
  447. m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
  448. for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
  449. {
  450. m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
  451. }
  452. oldsize = takearray.GetSize();
  453. takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
  454. for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
  455. {
  456. takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
  457. }
  458. oldsize = digitalarray.GetSize();
  459. digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
  460. for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
  461. {
  462. digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
  463. }
  464. }
  465. else if (bThisYear)//如果是今年, 则加去年的补款
  466. {
  467. g_nYearpos = 0;//去年
  468. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + name + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + name + "'";
  469. CString temp;
  470. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
  471. filter += temp;
  472. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + name + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + name + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + name + "')";
  473. filter += temp;
  474. g_sendhead.code[0] = 59; // dindanbukuanview
  475. g_sendhead.code[1] = 60; // dindan
  476. g_sendhead.code[2] = 198; // singleincomemoneyview
  477. g_sendhead.code[3] = 61; // dindan + bukuan
  478. g_sendhead.code[4] = 142; // mywork
  479. g_sendhead.code[5] = 192; // dindanjd
  480. g_sendhead.code[6] = 193; // digitalview
  481. g_sendhead.tabcount = 7;
  482. g_sendhead.bsql = 0;
  483. g_pMainWnd->ProcessChatMessageRequest2(filter);
  484. if (g_bSendOK == 0)
  485. {
  486. g_nYearpos = g_nYearposTemp;
  487. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  488. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  489. return;
  490. }
  491. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  492. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  493. CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
  494. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  495. CArray<CStringArray, CStringArray>ThisYearm_List4array;
  496. CArray<CStringArray, CStringArray>ThisYeartakearray;
  497. CArray<CStringArray, CStringArray>ThisYeardigitalarray;
  498. DataToArray(&ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);
  499. int oldsize = bukuanarray.GetSize();
  500. bukuanarray.SetSize(oldsize + ThisYearbukuanarray.GetSize());
  501. for (i = oldsize; i < oldsize + ThisYearbukuanarray.GetSize(); i++)
  502. {
  503. bukuanarray.ElementAt(i).Copy(ThisYearbukuanarray.ElementAt(i - oldsize));
  504. }
  505. oldsize = waiterarray.GetSize();
  506. waiterarray.SetSize(oldsize + ThisYearwaiterarray.GetSize());
  507. for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
  508. {
  509. waiterarray.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
  510. }
  511. oldsize = singleincomearray.GetSize();
  512. singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
  513. for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
  514. {
  515. singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.ElementAt(i - oldsize));
  516. }
  517. oldsize = bukuanarray2.GetSize();
  518. bukuanarray2.SetSize(oldsize + ThisYearbukuanarray2.GetSize());
  519. for (i = oldsize; i < oldsize + ThisYearbukuanarray2.GetSize(); i++)
  520. {
  521. bukuanarray2.ElementAt(i).Copy(ThisYearbukuanarray2.ElementAt(i - oldsize));
  522. }
  523. oldsize = m_List4array.GetSize();
  524. m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
  525. for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
  526. {
  527. m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
  528. }
  529. oldsize = takearray.GetSize();
  530. takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
  531. for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
  532. {
  533. takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
  534. }
  535. oldsize = digitalarray.GetSize();
  536. digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
  537. for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
  538. {
  539. digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
  540. }
  541. }
  542. g_nYearpos = g_nYearposTemp;
  543. CArray<CStringArray, CStringArray>array;
  544. array.SetSize(bukuanarray.GetSize() * 4 + bukuanarray2.GetSize() * 4 + singleincomearray.GetSize());
  545. float money1 = 0;
  546. float money2 = 0;
  547. float money3 = 0;
  548. float money4 = 0;
  549. float money5 = 0;
  550. CArray<float, float>moneyarray;
  551. CStringArray typearray;
  552. int typepos;
  553. int ii = 0;
  554. int arraypos = 0;
  555. for ( ii = 0; ii < bukuanarray.GetSize(); ii++)
  556. {
  557. // printf("idx=%d, id=%s, money=%s, ren=%s, bz=%s, txtype=%s\n", ii, bukuanarray.ElementAt(ii).ElementAt(5), bukuanarray.ElementAt(ii).ElementAt(0), bukuanarray.ElementAt(ii).ElementAt(6),bukuanarray.ElementAt(ii).ElementAt(7), bukuanarray.ElementAt(ii).ElementAt(8));
  558. array.ElementAt(arraypos).RemoveAll();
  559. if (bukuanarray.ElementAt(ii).ElementAt(2) == "3" || bukuanarray.ElementAt(ii).ElementAt(2) == "4")//预约收款/预约补款
  560. {
  561. BOOL bWait1 = 0;
  562. BOOL bWait2 = 0;
  563. float fscale1 = 0;
  564. float fscale2 = 0;
  565. IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
  566. // printf("摄影师=%s, 化妆师=%s\n", g_cominfoarray.ElementAt(0).ElementAt(56), g_cominfoarray.ElementAt(0).ElementAt(42));
  567. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  568. {
  569. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
  570. ConvertToPrice(temp);
  571. money1 += atof(temp);
  572. typepos = FindArray(&typearray, "摄影前期");
  573. if (typepos == -1)
  574. {
  575. typearray.Add("摄影前期");
  576. moneyarray.Add(atof(temp));
  577. }
  578. else
  579. {
  580. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  581. }
  582. array.ElementAt(arraypos).Add(temp);
  583. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  584. array.ElementAt(arraypos).Add("摄影前期");
  585. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  586. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  587. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  588. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  589. arraypos++;
  590. }
  591. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  592. {
  593. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
  594. ConvertToPrice(temp);
  595. money1 += atof(temp);
  596. typepos = FindArray(&typearray, "摄影前期");
  597. if (typepos == -1)
  598. {
  599. typearray.Add("摄影前期");
  600. moneyarray.Add(atof(temp));
  601. }
  602. else
  603. {
  604. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  605. }
  606. array.ElementAt(arraypos).Add(temp);
  607. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  608. array.ElementAt(arraypos).Add("化妆前期");
  609. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  610. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  611. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  612. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  613. arraypos++;
  614. }
  615. IsWaiter3(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2);//门市1,门市2
  616. if (bWait1)
  617. {
  618. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
  619. ConvertToPrice(temp);
  620. money1 += atof(temp);
  621. typepos = FindArray(&typearray, "前期");
  622. if (typepos == -1)
  623. {
  624. typearray.Add("前期");
  625. moneyarray.Add(atof(temp));
  626. }
  627. else
  628. {
  629. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  630. }
  631. array.ElementAt(arraypos).Add(temp);
  632. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  633. array.ElementAt(arraypos).Add("前期收款");
  634. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  635. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  636. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  637. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  638. arraypos++;
  639. }
  640. if (bWait2)
  641. {
  642. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
  643. ConvertToPrice(temp);
  644. money1 += atof(temp);
  645. typepos = FindArray(&typearray, "前期");
  646. if (typepos == -1)
  647. {
  648. typearray.Add("前期");
  649. moneyarray.Add(atof(temp));
  650. }
  651. else
  652. {
  653. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  654. }
  655. array.ElementAt(arraypos).Add(temp);
  656. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  657. array.ElementAt(arraypos).Add("前期收款");
  658. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  659. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  660. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  661. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  662. arraypos++;
  663. }
  664. continue;
  665. }
  666. else if (bukuanarray.ElementAt(ii).ElementAt(7) == "选片二销")//选片补款, 需加摄影师和化妆师
  667. {
  668. BOOL bWait1 = 0;
  669. BOOL bWait2 = 0;
  670. float fscale1 = 0;
  671. float fscale2 = 0;
  672. IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
  673. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(41)))//我是摄影师
  674. {
  675. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
  676. ConvertToPrice(temp);
  677. money5 += atof(temp);
  678. typepos = FindArray(&typearray, "摄影选片二销");
  679. if (typepos == -1)
  680. {
  681. typearray.Add("摄影选片二销");
  682. moneyarray.Add(atof(temp));
  683. }
  684. else
  685. {
  686. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  687. }
  688. array.ElementAt(arraypos).Add(temp);
  689. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  690. array.ElementAt(arraypos).Add("摄影选片二销");
  691. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  692. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  693. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  694. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  695. arraypos++;
  696. }
  697. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(42)))//我是化妆师
  698. {
  699. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
  700. ConvertToPrice(temp);
  701. money5 += atof(temp);
  702. #ifdef CHILD_VERSION
  703. typepos = FindArray(&typearray, "引导选片二销");
  704. #else
  705. typepos = FindArray(&typearray, "化妆选片二销");
  706. #endif
  707. if (typepos == -1)
  708. {
  709. #ifdef CHILD_VERSION
  710. typearray.Add("引导选片二销");
  711. #else
  712. typearray.Add("化妆选片二销");
  713. #endif
  714. moneyarray.Add(atof(temp));
  715. }
  716. else
  717. {
  718. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  719. }
  720. array.ElementAt(arraypos).Add(temp);
  721. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  722. #ifdef CHILD_VERSION
  723. array.ElementAt(arraypos).Add("引导选片二销");
  724. #else
  725. array.ElementAt(arraypos).Add("化妆选片二销");
  726. #endif
  727. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  728. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  729. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  730. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  731. arraypos++;
  732. }
  733. if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
  734. continue;
  735. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0)));
  736. ConvertToPrice(temp);
  737. money5 += atof(temp);
  738. typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
  739. if (typepos == -1)
  740. {
  741. typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
  742. moneyarray.Add(atof(temp));
  743. }
  744. else
  745. {
  746. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  747. }
  748. array.ElementAt(arraypos).Add(temp);
  749. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  750. array.ElementAt(arraypos).Add("选片二销");
  751. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  752. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  753. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  754. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  755. }
  756. else
  757. {
  758. if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
  759. continue;
  760. temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0)));
  761. ConvertToPrice(temp);
  762. typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
  763. if (typepos == -1)
  764. {
  765. typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
  766. moneyarray.Add(atof(temp));
  767. }
  768. else
  769. {
  770. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  771. }
  772. money2 += atof(temp);
  773. array.ElementAt(arraypos).Add(temp);
  774. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
  775. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(7));
  776. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
  777. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
  778. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
  779. array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
  780. }
  781. arraypos++;
  782. }
  783. for (ii = 0; ii < bukuanarray2.GetSize(); ii++)
  784. {
  785. array.ElementAt(arraypos).RemoveAll();
  786. if (bukuanarray2.ElementAt(ii).ElementAt(2) == "3" || bukuanarray2.ElementAt(ii).ElementAt(2) == "4")
  787. {
  788. BOOL bWait1 = 0;
  789. BOOL bWait2 = 0;
  790. float fscale1 = 0;
  791. float fscale2 = 0;
  792. IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
  793. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  794. {
  795. temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1);
  796. ConvertToPrice(temp);
  797. money1 += atof(temp);
  798. typepos = FindArray(&typearray, "摄影前期");
  799. if (typepos == -1)
  800. {
  801. typearray.Add("摄影前期");
  802. moneyarray.Add(atof(temp));
  803. }
  804. else
  805. {
  806. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  807. }
  808. array.ElementAt(arraypos).Add(temp);
  809. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(1));
  810. array.ElementAt(arraypos).Add("摄影前期");
  811. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(3));
  812. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(4));
  813. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
  814. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
  815. arraypos++;
  816. }
  817. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  818. {
  819. temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2);
  820. ConvertToPrice(temp);
  821. money1 += atof(temp);
  822. typepos = FindArray(&typearray, "摄影前期");
  823. if (typepos == -1)
  824. {
  825. typearray.Add("摄影前期");
  826. moneyarray.Add(atof(temp));
  827. }
  828. else
  829. {
  830. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  831. }
  832. array.ElementAt(arraypos).Add(temp);
  833. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(1));
  834. array.ElementAt(arraypos).Add("化妆前期");
  835. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(3));
  836. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(4));
  837. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
  838. array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
  839. arraypos++;
  840. }
  841. continue;
  842. }
  843. }
  844. //单笔收入
  845. for (ii = 0; ii < singleincomearray.GetSize(); ii++)
  846. {
  847. array.ElementAt(arraypos).RemoveAll();
  848. temp.Format("%0.2f", atof(singleincomearray.ElementAt(ii).ElementAt(4)));
  849. ConvertToPrice(temp);
  850. if (singleincomearray.ElementAt(ii).ElementAt(3) == "摄影二销")
  851. money2 += atof(temp);
  852. #ifndef CHILD_VERSION
  853. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "化妆二销")
  854. #else
  855. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "引导二销")
  856. #endif
  857. money3 += atof(temp);
  858. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "套系升级")
  859. money4 += atof(temp);
  860. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "选片二销")
  861. money5 += atof(temp);
  862. typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
  863. if (typepos == -1)
  864. {
  865. typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
  866. moneyarray.Add(atof(temp));
  867. }
  868. else
  869. {
  870. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  871. }
  872. array.ElementAt(arraypos).Add(temp);
  873. array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(5));
  874. array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(3));
  875. array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(1));
  876. array.ElementAt(arraypos).Add("");
  877. array.ElementAt(arraypos).Add("");
  878. array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(7));
  879. arraypos++;
  880. }
  881. array.SetSize(arraypos);
  882. FillGrid(&array);
  883. FillGrid4(m_money6);
  884. FillGridTake(&takearray);
  885. FillGridDigital(&digitalarray);
  886. if (userarray.GetSize())
  887. {
  888. m_name = userarray.ElementAt(0).ElementAt(0);
  889. m_base = userarray.ElementAt(0).ElementAt(1);
  890. CString baseexpendtype = userarray.ElementAt(0).ElementAt(2);
  891. CString baseexpendtype2 = userarray.ElementAt(0).ElementAt(3);
  892. m_bz = userarray.ElementAt(0).ElementAt(4);
  893. typepos = FindArray(&typearray, "前期");
  894. if (typepos == -1)
  895. {
  896. m_money1 = "0";
  897. money1 = 0;
  898. }
  899. else
  900. {
  901. money1 = moneyarray.ElementAt(typepos);
  902. }
  903. float money12 = 0;
  904. typepos = FindArray(&typearray, "摄影前期");
  905. if (typepos == -1)
  906. {
  907. money12 = 0;
  908. }
  909. else
  910. {
  911. money12 = moneyarray.ElementAt(typepos);
  912. }
  913. m_money1.Format("%0.2f", money1 + money12);
  914. money2 = 0;
  915. float realmoney2 = 0;
  916. for (int i = 0; i < typearray.GetSize(); i++)
  917. {
  918. if ("前期" == typearray.ElementAt(i))continue;
  919. if ("摄影前期" == typearray.ElementAt(i))continue;
  920. realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
  921. money2 += moneyarray.ElementAt(i);
  922. }
  923. m_money2.Format("%0.2f", money2);
  924. ConvertToPrice(m_money6);
  925. m_salary.Format("%0.2f", atof(m_base) + atof(m_money6) + realmoney2 + GetSalaryFromRule(money1, GetRule(baseexpendtype)) + GetSalaryFromRule(money12, GetRule(baseexpendtype2)));
  926. ConvertToPrice(m_salary);
  927. }
  928. else
  929. {
  930. m_name = _T("");
  931. m_base = _T("");
  932. m_bz = _T("");
  933. m_salary = _T("");
  934. m_money1 = _T("");
  935. m_money2 = _T("");
  936. m_money3 = _T("");
  937. m_money4 = _T("");
  938. m_money5 = _T("");
  939. m_money6 = _T("");
  940. }
  941. UpdateData(false);
  942. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  943. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  944. //////////////////////////////
  945. CString totalstr, str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12;
  946. float sum = 0;
  947. int waiter1count = 0;
  948. int waiter12count = 0;
  949. int waiter2count = 0;
  950. int waiter22count = 0;
  951. for (i = 0; i < m_Listtake.GetItemCount(); i++)
  952. {
  953. field2 = m_Listtake.GetItemText(i, 3);
  954. field3 = m_Listtake.GetItemText(i, 4);
  955. sum += atof(field3);
  956. field4 = m_Listtake.GetItemText(i, 5);
  957. field5 = m_Listtake.GetItemText(i, 6);
  958. field6 = m_Listtake.GetItemText(i, 7);
  959. field7 = m_Listtake.GetItemText(i, 8);
  960. field8 = m_Listtake.GetItemText(i, 9);
  961. field9 = m_Listtake.GetItemText(i, 10);
  962. if (field6 == name)waiter1count++;
  963. if (field7 == name)waiter12count++;
  964. if (field8 == name)waiter2count++;
  965. if (field9 == name)waiter22count++;
  966. }
  967. str = "摄影师与助理\r\n";
  968. totalstr += str;
  969. str.Format("摄影: %d\r\n", waiter1count); totalstr += str;
  970. str.Format("助理: %d\r\n", waiter12count); totalstr += str;
  971. #ifdef CHILD_VERSION
  972. str.Format("引导: %d\r\n", waiter2count); totalstr += str;
  973. #else
  974. str.Format("化妆: %d\r\n", waiter2count); totalstr += str;
  975. #endif
  976. str.Format("助理: %d\r\n", waiter22count); totalstr += str;
  977. str.Format("订单总金额: %0.2f\r\n\r\n", sum); totalstr += str;
  978. float sum1 = 0;
  979. float sum2 = 0;
  980. float sum3 = 0;
  981. float sum12 = 0;
  982. float sum22 = 0;
  983. float sum32 = 0;
  984. int sum13 = 0;
  985. int sum23 = 0;
  986. int sum33 = 0;
  987. int sum14 = 0;
  988. int sum24 = 0;
  989. int sum34 = 0;
  990. int count1 = 0;
  991. int count2 = 0;
  992. int count3 = 0;
  993. for (i = 0; i < m_Listdigital.GetItemCount(); i++)
  994. {
  995. field2 = m_Listdigital.GetItemText(i, 3);
  996. field3 = m_Listdigital.GetItemText(i, 4);
  997. field4 = m_Listdigital.GetItemText(i, 5);
  998. field5 = m_Listdigital.GetItemText(i, 6);
  999. field6 = m_Listdigital.GetItemText(i, 7);
  1000. field7 = m_Listdigital.GetItemText(i, 8);
  1001. field8 = m_Listdigital.GetItemText(i, 9);
  1002. field9 = m_Listdigital.GetItemText(i, 10);
  1003. field10 = m_Listdigital.GetItemText(i, 14);
  1004. field11 = m_Listdigital.GetItemText(i, 16);
  1005. field12 = m_Listdigital.GetItemText(i, 17);
  1006. if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == name && field5 >= date1 && field5 <= date2)
  1007. {
  1008. sum1 += atof(field3);
  1009. sum12 += atof(field10);
  1010. sum13 += atoi(field11);
  1011. sum14 += atoi(field12);
  1012. count1++;
  1013. }
  1014. if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == name && field7 >= date1 && field7 <= date2)
  1015. {
  1016. sum2 += atof(field3);
  1017. sum22 += atof(field10);
  1018. sum23 += atoi(field11);
  1019. sum24 += atoi(field12);
  1020. count2++;
  1021. }
  1022. if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == name && field9 >= date1 && field9 <= date2)
  1023. {
  1024. sum3 += atof(field3);
  1025. sum32 += atof(field10);
  1026. sum33 += atoi(field11);
  1027. sum34 += atoi(field12);
  1028. count3++;
  1029. }
  1030. }
  1031. str = "修片与精修与设计\r\n";
  1032. totalstr += str;
  1033. #ifdef LKAY_VERSION
  1034. str.Format ("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count1, sum1, sum12, sum13, sum14);totalstr+=str;
  1035. str.Format ("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count2, sum2, sum22, sum23, sum24);totalstr+=str;
  1036. str.Format ("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count3, sum3, sum32, sum33, sum34);totalstr+=str;
  1037. #else
  1038. str.Format("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count1, sum1, sum12); totalstr += str;
  1039. str.Format("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count2, sum2, sum22); totalstr += str;
  1040. str.Format("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count3, sum3, sum32); totalstr += str;
  1041. #endif
  1042. GetDlgItem(IDC_EDITbz2)->SetWindowText(totalstr);
  1043. }
  1044. void MySalary::OnBUTshowall() //IDC_BUTshowall查看全部;
  1045. {
  1046. // TODO: Add your control notification handler code here
  1047. m_bAll = !m_bAll;
  1048. if (m_bAll)
  1049. {
  1050. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看详情");
  1051. GetDlgItem(IDC_BUT3)->ShowWindow(SW_SHOW);
  1052. }
  1053. else
  1054. {
  1055. GetDlgItem(IDC_BUT3)->ShowWindow(SW_HIDE);
  1056. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看全部");
  1057. }
  1058. GetDlgItem(IDC_BUTshowall)->Invalidate();
  1059. GetDlgItem(IDC_STATIC2)->ShowWindow(!m_bAll);
  1060. GetDlgItem(IDC_STATIC3)->ShowWindow(!m_bAll);
  1061. GetDlgItem(IDC_STATIC4)->ShowWindow(!m_bAll);
  1062. GetDlgItem(IDC_STATIC5)->ShowWindow(!m_bAll);
  1063. GetDlgItem(IDC_STATIC6)->ShowWindow(!m_bAll);
  1064. GetDlgItem(IDC_STATIC7)->ShowWindow(!m_bAll);
  1065. GetDlgItem(IDC_STATIC8)->ShowWindow(!m_bAll);
  1066. GetDlgItem(IDC_STATIC26)->ShowWindow(!m_bAll);
  1067. GetDlgItem(IDC_STATIC27)->ShowWindow(!m_bAll);
  1068. // GetDlgItem(IDC_BUTTON5)->ShowWindow(!m_bAll);
  1069. // GetDlgItem(IDC_BUTTON6)->ShowWindow(!m_bAll);
  1070. GetDlgItem(IDC_BUTTON7)->ShowWindow(!m_bAll);
  1071. GetDlgItem(IDC_BUTTON8)->ShowWindow(!m_bAll);
  1072. GetDlgItem(IDC_BUTTON14)->ShowWindow(!m_bAll);
  1073. GetDlgItem(IDC_STATIC9)->ShowWindow(!m_bAll);
  1074. GetDlgItem(IDC_STATIC12)->ShowWindow(!m_bAll);
  1075. GetDlgItem(IDC_STATIC16)->ShowWindow(!m_bAll);
  1076. GetDlgItem(IDC_STATIC10)->ShowWindow(!m_bAll);
  1077. // GetDlgItem(IDC_EDITname)->ShowWindow(!m_bAll);
  1078. GetDlgItem(IDC_EDITbz)->ShowWindow(!m_bAll);
  1079. GetDlgItem(IDC_EDITbz2)->ShowWindow(!m_bAll);
  1080. GetDlgItem(IDC_EDITbase)->ShowWindow(!m_bAll);
  1081. GetDlgItem(IDC_EDITmoney1)->ShowWindow(!m_bAll);
  1082. GetDlgItem(IDC_EDITmoney2)->ShowWindow(!m_bAll);
  1083. GetDlgItem(IDC_EDITsalary)->ShowWindow(!m_bAll);
  1084. GetDlgItem(IDC_BUTTON4)->ShowWindow(!m_bAll);
  1085. GetDlgItem(IDC_EDITmoney6)->ShowWindow(!m_bAll);
  1086. GetDlgItem(IDC_STATIC15)->ShowWindow(!m_bAll);
  1087. GetDlgItem(IDC_LIST4)->ShowWindow(!m_bAll);
  1088. // GetDlgItem(IDC_LIST1)->ShowWindow(!m_bAll);
  1089. GetDlgItem(IDC_LIST2)->ShowWindow(!m_bAll);
  1090. GetDlgItem(IDC_LIST3)->ShowWindow(m_bAll);
  1091. GetDlgItem(IDC_LIST7)->ShowWindow(!m_bAll);
  1092. GetDlgItem(IDC_LIST8)->ShowWindow(!m_bAll);
  1093. GetDlgItem(IDC_COMBO7)->ShowWindow(!m_bAll);
  1094. if (m_bAll)
  1095. FillGrid2();
  1096. else
  1097. {
  1098. POSITION pos;
  1099. pos = m_List3.GetFirstSelectedItemPosition();
  1100. if (pos)
  1101. {
  1102. int iItem = m_List3.GetNextSelectedItem(pos);
  1103. CString name = m_List3.GetItemText(iItem, 0);
  1104. CString temp;
  1105. for (int i = 0; i < m_ListBox1.GetCount(); i++)
  1106. {
  1107. m_ListBox1.GetText(i, temp);
  1108. if (temp == name)
  1109. {
  1110. m_ListBox1.SetCurSel(i);
  1111. m_comboname.AddString(name);
  1112. m_comboname.SetCurSel(m_comboname.FindString(0, name));
  1113. OnSelchangeList1();
  1114. break;
  1115. }
  1116. }
  1117. }
  1118. }
  1119. }
  1120. void MySalary::FillGrid2()
  1121. {
  1122. if (m_List3array.GetSize() == 0)GetAllData();
  1123. m_List3.DeleteAllItems2();
  1124. int ii = 0;
  1125. m_List3.m_arLabels.SetSize(m_List3array.GetSize(), 1);
  1126. int count = 0;
  1127. for (ii = 0; ii < m_List3.m_arLabels.GetSize(); ii++)
  1128. {
  1129. m_List3.m_arLabels.ElementAt(count++).Copy(m_List3array.ElementAt(ii));
  1130. }
  1131. m_List3.m_arLabels.SetSize(count, 1);
  1132. ii = count;
  1133. m_List3.m_LabelCount = ii;
  1134. m_List3.SetItemCountEx(ii);
  1135. }
  1136. void MySalary::GetAllData()
  1137. {
  1138. if (m_bInit == 0)return;
  1139. UpdateData();
  1140. CString date1, date2, temp;
  1141. date1 = m_date1.Format("%Y-%m-%d");
  1142. date2 = m_date2.Format("%Y-%m-%d");
  1143. m_year = m_date1.GetYear();
  1144. int i = 0;
  1145. int g_nYearposTemp = g_nYearpos;
  1146. BOOL bLastYear = 0;
  1147. BOOL bThisYear = 0;
  1148. #if JEFF_TEST_ON // 2015开始禁用跨年数据;
  1149. if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  1150. {
  1151. g_nYearpos = -1;
  1152. bThisYear = 1;
  1153. }
  1154. else if (m_year <= 2013 && g_hisyeararray.GetSize())
  1155. {
  1156. g_nYearpos = GetYearPos(m_year);
  1157. bLastYear = 1;
  1158. }
  1159. #else
  1160. if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  1161. bThisYear = 1;
  1162. else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize())
  1163. bLastYear = 1;
  1164. g_nYearpos = GetYearPos(m_year);
  1165. #endif
  1166. CString filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1167. g_sendhead.code[0] = 59;
  1168. g_sendhead.code[1] = 60;
  1169. g_sendhead.code[2] = 198;
  1170. g_sendhead.code[3] = 61;
  1171. g_sendhead.code[4] = 142;
  1172. g_sendhead.tabcount = 5;
  1173. g_sendhead.bsql = 0;
  1174. g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return;
  1175. CArray<CStringArray, CStringArray>bukuanarray;
  1176. CArray<CStringArray, CStringArray>waiterarray;
  1177. CArray<CStringArray, CStringArray>singleincomearray;
  1178. CArray<CStringArray, CStringArray>bukuanarray2;
  1179. DataToArray(&bukuanarray, &waiterarray, &singleincomearray, &bukuanarray2, &m_List4array);
  1180. ///////////////////
  1181. if (bLastYear)//如果是去年, 则加今年的补款
  1182. {
  1183. g_nYearpos = -1;//今年
  1184. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1185. g_sendhead.code[0] = 59;
  1186. g_sendhead.code[1] = 60;
  1187. g_sendhead.code[2] = 198;
  1188. g_sendhead.code[3] = 61;
  1189. g_sendhead.code[4] = 142;
  1190. g_sendhead.tabcount = 5;
  1191. g_sendhead.bsql = 0;
  1192. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1193. if (g_bSendOK == 0)
  1194. {
  1195. g_nYearpos = g_nYearposTemp;
  1196. return;
  1197. }
  1198. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  1199. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  1200. CArray<CStringArray, CStringArray>LastYearsingleincomearray;
  1201. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  1202. CArray<CStringArray, CStringArray>LastYearm_List4array;
  1203. DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
  1204. int oldsize = bukuanarray.GetSize();
  1205. bukuanarray.SetSize(oldsize + LastYearbukuanarray.GetSize());
  1206. for (i = oldsize; i < oldsize + LastYearbukuanarray.GetSize(); i++)
  1207. {
  1208. bukuanarray.ElementAt(i).Copy(LastYearbukuanarray.ElementAt(i - oldsize));
  1209. }
  1210. oldsize = bukuanarray2.GetSize();
  1211. bukuanarray2.SetSize(oldsize + LastYearbukuanarray2.GetSize());
  1212. for (i = oldsize; i < oldsize + LastYearbukuanarray2.GetSize(); i++)
  1213. {
  1214. bukuanarray2.ElementAt(i).Copy(LastYearbukuanarray2.ElementAt(i - oldsize));
  1215. }
  1216. oldsize = singleincomearray.GetSize();
  1217. singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
  1218. for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
  1219. {
  1220. singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.ElementAt(i - oldsize));
  1221. }
  1222. oldsize = waiterarray.GetSize();
  1223. waiterarray.SetSize(oldsize + LastYearwaiterarray.GetSize());
  1224. for (i = oldsize; i < oldsize + LastYearwaiterarray.GetSize(); i++)
  1225. {
  1226. waiterarray.ElementAt(i).Copy(LastYearwaiterarray.ElementAt(i - oldsize));
  1227. }
  1228. oldsize = m_List4array.GetSize();
  1229. m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
  1230. for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
  1231. {
  1232. m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
  1233. }
  1234. }
  1235. else if (bThisYear)//如果是今年, 则加去年的补款
  1236. {
  1237. g_nYearpos = 0;//去年
  1238. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1239. g_sendhead.code[0] = 59;
  1240. g_sendhead.code[1] = 60;
  1241. g_sendhead.code[2] = 198;
  1242. g_sendhead.code[3] = 61;
  1243. g_sendhead.code[4] = 142;
  1244. g_sendhead.tabcount = 5;
  1245. g_sendhead.bsql = 0;
  1246. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1247. if (g_bSendOK == 0)
  1248. {
  1249. g_nYearpos = g_nYearposTemp;
  1250. return;
  1251. }
  1252. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  1253. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  1254. CArray<CStringArray, CStringArray>LastYearsingleincomearray;
  1255. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  1256. CArray<CStringArray, CStringArray>LastYearm_List4array;
  1257. DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
  1258. int oldsize = bukuanarray.GetSize();
  1259. bukuanarray.SetSize(oldsize + LastYearbukuanarray.GetSize());
  1260. for (i = oldsize; i < oldsize + LastYearbukuanarray.GetSize(); i++)
  1261. {
  1262. bukuanarray.ElementAt(i).Copy(LastYearbukuanarray.ElementAt(i - oldsize));
  1263. }
  1264. oldsize = bukuanarray2.GetSize();
  1265. bukuanarray2.SetSize(oldsize + LastYearbukuanarray2.GetSize());
  1266. for (i = oldsize; i < oldsize + LastYearbukuanarray2.GetSize(); i++)
  1267. {
  1268. bukuanarray2.ElementAt(i).Copy(LastYearbukuanarray2.ElementAt(i - oldsize));
  1269. }
  1270. oldsize = singleincomearray.GetSize();
  1271. singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
  1272. for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
  1273. {
  1274. singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.ElementAt(i - oldsize));
  1275. }
  1276. oldsize = waiterarray.GetSize();
  1277. waiterarray.SetSize(oldsize + LastYearwaiterarray.GetSize());
  1278. for (i = oldsize; i < oldsize + LastYearwaiterarray.GetSize(); i++)
  1279. {
  1280. waiterarray.ElementAt(i).Copy(LastYearwaiterarray.ElementAt(i - oldsize));
  1281. }
  1282. oldsize = m_List4array.GetSize();
  1283. m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
  1284. for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
  1285. {
  1286. m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
  1287. }
  1288. }
  1289. g_nYearpos = g_nYearposTemp;
  1290. int ii = 0;
  1291. CString m_base, m_rate1, m_rate2, m_rate3, m_rate4, m_rate5, m_money1, m_money2, m_money3, m_money4, m_money5, m_bz;
  1292. double sum1 = 0;
  1293. double sum2 = 0;
  1294. double sum3 = 0;
  1295. double sum4 = 0;
  1296. double sum5 = 0;
  1297. double sum6 = 0;
  1298. double sum7 = 0;
  1299. m_List3array.SetSize(m_List1array.GetSize() + 1);
  1300. int n = 0;
  1301. for ( n = 0; n < m_List1array.GetSize(); n++)
  1302. {
  1303. m_List3array.ElementAt(n).RemoveAll();
  1304. m_List3array.ElementAt(n).Add("");
  1305. m_List3array.ElementAt(n).Add("");
  1306. m_List3array.ElementAt(n).Add("");
  1307. m_List3array.ElementAt(n).Add("");
  1308. m_List3array.ElementAt(n).Add("");
  1309. m_List3array.ElementAt(n).Add("");
  1310. m_List3array.ElementAt(n).Add("");
  1311. m_List3array.ElementAt(n).Add("");
  1312. m_List3array.ElementAt(n).SetAt(0, m_List1array.ElementAt(n).ElementAt(0));
  1313. CString name = m_List1array.ElementAt(n).ElementAt(0);
  1314. float money1 = 0;
  1315. float money2 = 0;
  1316. float money3 = 0;
  1317. float money4 = 0;
  1318. float money5 = 0;
  1319. float money6 = 0;
  1320. float ftemp;
  1321. CArray<float, float>moneyarray;
  1322. CStringArray typearray;
  1323. int typepos;
  1324. int arraypos = 0;
  1325. for (ii = 0; ii < bukuanarray.GetSize(); ii++)
  1326. {
  1327. if (bukuanarray.ElementAt(ii).ElementAt(2) == "3" || bukuanarray.ElementAt(ii).ElementAt(2) == "4")
  1328. {
  1329. BOOL bWait1 = 0;
  1330. BOOL bWait2 = 0;
  1331. float fscale1 = 0;
  1332. float fscale2 = 0;
  1333. IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
  1334. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  1335. {
  1336. money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1337. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1338. typepos = FindArray(&typearray, "摄影前期");
  1339. if (typepos == -1)
  1340. {
  1341. typearray.Add("摄影前期");
  1342. moneyarray.Add(ftemp);
  1343. }
  1344. else
  1345. {
  1346. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1347. }
  1348. }
  1349. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  1350. {
  1351. money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1352. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1353. typepos = FindArray(&typearray, "摄影前期");
  1354. if (typepos == -1)
  1355. {
  1356. typearray.Add("摄影前期");
  1357. moneyarray.Add(ftemp);
  1358. }
  1359. else
  1360. {
  1361. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1362. }
  1363. }
  1364. IsWaiter3(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2);
  1365. if (bWait1)
  1366. {
  1367. money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1368. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1369. typepos = FindArray(&typearray, "前期");
  1370. if (typepos == -1)
  1371. {
  1372. typearray.Add("前期");
  1373. moneyarray.Add(ftemp);
  1374. }
  1375. else
  1376. {
  1377. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1378. }
  1379. }
  1380. if (bWait2)
  1381. {
  1382. money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1383. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1384. typepos = FindArray(&typearray, "前期");
  1385. if (typepos == -1)
  1386. {
  1387. typearray.Add("前期");
  1388. moneyarray.Add(ftemp);
  1389. }
  1390. else
  1391. {
  1392. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1393. }
  1394. }
  1395. }
  1396. else if (bukuanarray.ElementAt(ii).ElementAt(7) == "选片二销")//选片补款, 需加摄影师和化妆师
  1397. {
  1398. BOOL bWait1 = 0;
  1399. BOOL bWait2 = 0;
  1400. float fscale1 = 0;
  1401. float fscale2 = 0;
  1402. IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
  1403. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(41)))//我是摄影师
  1404. {
  1405. money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1406. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
  1407. typepos = FindArray(&typearray, "摄影选片二销");
  1408. if (typepos == -1)
  1409. {
  1410. typearray.Add("摄影选片二销");
  1411. moneyarray.Add(ftemp);
  1412. }
  1413. else
  1414. {
  1415. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1416. }
  1417. }
  1418. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(42)))//我是化妆师
  1419. {
  1420. money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1421. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
  1422. #ifdef CHILD_VERSION
  1423. typepos = FindArray(&typearray, "引导选片二销");
  1424. #else
  1425. typepos = FindArray(&typearray, "化妆选片二销");
  1426. #endif
  1427. if (typepos == -1)
  1428. {
  1429. #ifdef CHILD_VERSION
  1430. typearray.Add("引导选片二销");
  1431. #else
  1432. typearray.Add("化妆选片二销");
  1433. #endif
  1434. moneyarray.Add(ftemp);
  1435. }
  1436. else
  1437. {
  1438. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1439. }
  1440. }
  1441. if (bukuanarray.ElementAt(ii).ElementAt(6) != name)continue;
  1442. money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1443. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1444. typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
  1445. if (typepos == -1)
  1446. {
  1447. typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
  1448. moneyarray.Add(ftemp);
  1449. }
  1450. else
  1451. {
  1452. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1453. }
  1454. }
  1455. else
  1456. {
  1457. if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
  1458. continue;
  1459. if (bukuanarray.ElementAt(ii).ElementAt(2) == "5")
  1460. {
  1461. money2 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1462. }
  1463. else if (bukuanarray.ElementAt(ii).ElementAt(2) == "1")
  1464. {
  1465. money3 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1466. }
  1467. else if (bukuanarray.ElementAt(ii).ElementAt(2) == "6")
  1468. {
  1469. money4 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1470. }
  1471. else if (bukuanarray.ElementAt(ii).ElementAt(2) == "2")
  1472. {
  1473. money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1474. }
  1475. ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0));
  1476. typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
  1477. if (typepos == -1)
  1478. {
  1479. typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
  1480. moneyarray.Add(ftemp);
  1481. }
  1482. else
  1483. {
  1484. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1485. }
  1486. }
  1487. }
  1488. for (ii = 0; ii < bukuanarray2.GetSize(); ii++)
  1489. {
  1490. if (bukuanarray2.ElementAt(ii).ElementAt(2) == "3" || bukuanarray2.ElementAt(ii).ElementAt(2) == "4")
  1491. {
  1492. BOOL bWait1 = 0;
  1493. BOOL bWait2 = 0;
  1494. float fscale1 = 0;
  1495. float fscale2 = 0;
  1496. IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
  1497. if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  1498. {
  1499. money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
  1500. ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
  1501. typepos = FindArray(&typearray, "摄影前期");
  1502. if (typepos == -1)
  1503. {
  1504. typearray.Add("摄影前期");
  1505. moneyarray.Add(ftemp);
  1506. }
  1507. else
  1508. {
  1509. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1510. }
  1511. }
  1512. if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  1513. {
  1514. money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
  1515. ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
  1516. typepos = FindArray(&typearray, "摄影前期");
  1517. if (typepos == -1)
  1518. {
  1519. typearray.Add("摄影前期");
  1520. moneyarray.Add(ftemp);
  1521. }
  1522. else
  1523. {
  1524. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1525. }
  1526. }
  1527. }
  1528. }
  1529. for (ii = 0; ii < singleincomearray.GetSize(); ii++)
  1530. {
  1531. if (singleincomearray.ElementAt(ii).ElementAt(2) != name)continue;
  1532. if (singleincomearray.ElementAt(ii).ElementAt(3) == "摄影二销")
  1533. money2 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1534. #ifndef CHILD_VERSION
  1535. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "化妆二销")
  1536. #else
  1537. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "引导二销")
  1538. #endif
  1539. money3 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1540. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "套系升级")
  1541. money4 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1542. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "选片二销")
  1543. money5 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1544. ftemp = atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1545. typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
  1546. if (typepos == -1)
  1547. {
  1548. typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
  1549. moneyarray.Add(ftemp);
  1550. }
  1551. else
  1552. {
  1553. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1554. }
  1555. }
  1556. m_base = m_List1array.ElementAt(n).ElementAt(1);
  1557. m_rate1 = m_List1array.ElementAt(n).ElementAt(2);
  1558. m_rate2 = m_List1array.ElementAt(n).ElementAt(3);
  1559. m_bz = m_List1array.ElementAt(n).ElementAt(4);
  1560. m_rate3 = m_List1array.ElementAt(n).ElementAt(6);
  1561. m_rate4 = m_List1array.ElementAt(n).ElementAt(7);
  1562. m_rate5 = m_List1array.ElementAt(n).ElementAt(8);
  1563. typepos = FindArray(&typearray, "前期");
  1564. if (typepos == -1)
  1565. {
  1566. m_money1 = "0";
  1567. money1 = 0;
  1568. }
  1569. else
  1570. {
  1571. money1 = moneyarray.ElementAt(typepos);
  1572. }
  1573. float money12 = 0;
  1574. typepos = FindArray(&typearray, "摄影前期");
  1575. if (typepos == -1)
  1576. {
  1577. money12 = 0;
  1578. }
  1579. else
  1580. {
  1581. money12 = moneyarray.ElementAt(typepos);
  1582. }
  1583. m_money1.Format("%0.2f", money1 + money12);
  1584. money2 = 0;
  1585. float realmoney2 = 0;
  1586. for (int i = 0; i < typearray.GetSize(); i++)
  1587. {
  1588. if ("前期" == typearray.ElementAt(i))continue;
  1589. if ("摄影前期" == typearray.ElementAt(i))continue;
  1590. realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
  1591. money2 += moneyarray.ElementAt(i);
  1592. }
  1593. m_money2.Format("%0.2f", money2);
  1594. GetMoney6(name, money6);
  1595. temp.Format("%0.2f", atof(m_base) + money6 + realmoney2 + GetSalaryFromRule(money1, GetRule(m_rate1)) + GetSalaryFromRule(money12, GetRule(m_rate2)));
  1596. ConvertToPrice(temp);
  1597. m_List3array.ElementAt(n).SetAt(1, temp);
  1598. m_List3array.ElementAt(n).SetAt(2, m_base);
  1599. m_List3array.ElementAt(n).SetAt(3, m_money1);
  1600. m_List3array.ElementAt(n).SetAt(4, m_money2);
  1601. sum1 += atof(temp);
  1602. sum2 += atof(m_base);
  1603. sum3 += money1;
  1604. sum4 += money2;
  1605. temp.Format("%0.2f", money6); ConvertToPrice(temp);
  1606. m_List3array.ElementAt(n).SetAt(5, temp);
  1607. m_List3array.ElementAt(n).SetAt(6, m_List1array.ElementAt(n).ElementAt(5));
  1608. if (m_bz.GetLength() > 100)
  1609. m_List3array.ElementAt(n).SetAt(7, m_bz.Left(100) + "..");
  1610. else
  1611. m_List3array.ElementAt(n).SetAt(7, m_bz);
  1612. }
  1613. temp.Format("%0.2f", sum1);
  1614. ConvertToPrice(temp);
  1615. m_List3array.ElementAt(n).Add("统计:");
  1616. m_List3array.ElementAt(n).Add(temp);
  1617. temp.Format("%0.2f", sum2);
  1618. ConvertToPrice(temp);
  1619. m_List3array.ElementAt(n).Add(temp);
  1620. temp.Format("%0.2f", sum3);
  1621. ConvertToPrice(temp);
  1622. m_List3array.ElementAt(n).Add(temp);
  1623. temp.Format("%0.2f", sum4);
  1624. ConvertToPrice(temp);
  1625. m_List3array.ElementAt(n).Add(temp);
  1626. m_List3array.ElementAt(n).Add("");
  1627. m_List3array.ElementAt(n).Add("");
  1628. m_List3array.ElementAt(n).Add("");
  1629. }
  1630. void MySalary::FillGrid4(CString &sRet)
  1631. {
  1632. sRet = "0";
  1633. if (m_Workratearray.GetSize() == 0)
  1634. {
  1635. /*
  1636. #ifdef CHILD_VERSION
  1637. AfxMessageBox("摄影师,引导师,数码师提成方案未设置,请在菜单-》初始设置-》工资设置中设置!");
  1638. #else
  1639. AfxMessageBox("摄影师,化妆师,数码师提成方案未设置,请在菜单-》初始设置-》工资设置中设置!");
  1640. #endif*/
  1641. return;
  1642. }
  1643. float fsum = 0;
  1644. int m_data1sy = -1;
  1645. CString m_data2sy;
  1646. CString m_data3sy;
  1647. CString m_data4sy;
  1648. CString m_data5sy;
  1649. int m_data1hz = -1;
  1650. CString m_data2hz;
  1651. CString m_data3hz;
  1652. CString m_data4hz;
  1653. CString m_data5hz;
  1654. int i = 0;
  1655. for ( i = 0; i < m_Workratearray.GetSize(); i++)
  1656. {
  1657. if ("摄影师" == m_Workratearray.ElementAt(i).ElementAt(0))
  1658. {
  1659. m_data1sy = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
  1660. m_data2sy = (m_Workratearray.ElementAt(i).ElementAt(2));
  1661. m_data3sy = (m_Workratearray.ElementAt(i).ElementAt(3));
  1662. m_data4sy = (m_Workratearray.ElementAt(i).ElementAt(4));
  1663. m_data5sy = (m_Workratearray.ElementAt(i).ElementAt(5));
  1664. }
  1665. #ifdef CHILD_VERSION
  1666. else if ("引导师" == m_Workratearray.ElementAt(i).ElementAt(0))
  1667. #else
  1668. else if ("化妆师" == m_Workratearray.ElementAt(i).ElementAt(0))
  1669. #endif
  1670. {
  1671. m_data1hz = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
  1672. m_data2hz = (m_Workratearray.ElementAt(i).ElementAt(2));
  1673. m_data3hz = (m_Workratearray.ElementAt(i).ElementAt(3));
  1674. m_data4hz = (m_Workratearray.ElementAt(i).ElementAt(4));
  1675. m_data5hz = (m_Workratearray.ElementAt(i).ElementAt(5));
  1676. }
  1677. }
  1678. m_List4.DeleteAllItems2();
  1679. int count = 0;
  1680. CString str, price;
  1681. for (i = 0; i < m_List4array.GetSize(); i++)//14
  1682. {
  1683. if (m_List4array.ElementAt(i).ElementAt(14) == "摄影师" && m_data1sy != 3)
  1684. {
  1685. if (m_data1sy == 0)//按服装套数提
  1686. {
  1687. m_List4.m_arLabels.SetSize(count + 1, 1);
  1688. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1689. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1690. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1691. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2sy) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3sy));
  1692. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1693. fsum += atof(str);
  1694. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1695. str.Format("外景%d,内景%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1696. m_List4.m_arLabels.ElementAt(count).Add(str);
  1697. str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1698. m_List4.m_arLabels.ElementAt(count).Add(str);
  1699. str.Format("外景%0.2f,内景%0.2f", atof(m_data2sy), atof(m_data3sy));
  1700. m_List4.m_arLabels.ElementAt(count).Add(str);
  1701. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  1702. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1703. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1704. count++;
  1705. }
  1706. else if (m_data1sy == 1)//按套系金额提成
  1707. {
  1708. if (m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(15) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(16) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(17) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(18))
  1709. {
  1710. continue;//既不是主摄影师,也不是副..
  1711. }
  1712. m_List4.m_arLabels.SetSize(count + 1, 1);
  1713. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1714. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1715. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1716. if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(15))
  1717. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(19)) / 10000.0);
  1718. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(16))
  1719. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(20)) / 10000.0);
  1720. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(17))
  1721. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(21)) / 10000.0);
  1722. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(18))
  1723. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(22)) / 10000.0);
  1724. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1725. fsum += atof(str);
  1726. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1727. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1728. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1729. str.Format("套系的%d", atoi(m_data4sy));
  1730. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  1731. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  1732. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1733. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1734. count++;
  1735. }
  1736. else if (m_data1sy == 2)//按加挑照片提成
  1737. {
  1738. m_List4.m_arLabels.SetSize(count + 1, 1);
  1739. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1740. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1741. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1742. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5sy));
  1743. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1744. fsum += atof(str);
  1745. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1746. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1747. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));
  1748. str.Format("%0.2f", atof(m_data5sy));
  1749. m_List4.m_arLabels.ElementAt(count).Add(str);
  1750. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  1751. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1752. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1753. count++;
  1754. }
  1755. }
  1756. #ifdef CHILD_VERSION
  1757. else if (m_List4array.ElementAt(i).ElementAt(14) == "引导师" && m_data1hz != 3)
  1758. #else
  1759. else if (m_List4array.ElementAt(i).ElementAt(14) == "化妆师" && m_data1hz != 3)
  1760. #endif
  1761. {
  1762. if (m_data1hz == 0)//按服装套数提
  1763. {
  1764. m_List4.m_arLabels.SetSize(count + 1, 1);
  1765. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1766. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1767. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1768. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2hz) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3hz));
  1769. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1770. fsum += atof(str);
  1771. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1772. str.Format("外景%d,内景%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1773. m_List4.m_arLabels.ElementAt(count).Add(str);
  1774. str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1775. m_List4.m_arLabels.ElementAt(count).Add(str);
  1776. str.Format("外景%0.2f,内景%0.2f", atof(m_data2hz), atof(m_data3hz));
  1777. m_List4.m_arLabels.ElementAt(count).Add(str);
  1778. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  1779. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1780. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1781. count++;
  1782. }
  1783. else if (m_data1hz == 1)//按套系金额提成
  1784. {
  1785. if (m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(23) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(24) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(25) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(26))
  1786. {
  1787. continue;//既不是主化妆师,也不是副..
  1788. }
  1789. m_List4.m_arLabels.SetSize(count + 1, 1);
  1790. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1791. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1792. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1793. if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(23))
  1794. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(27)) / 10000.0);
  1795. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(24))
  1796. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(28)) / 10000.0);
  1797. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(25))
  1798. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(29)) / 10000.0);
  1799. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(26))
  1800. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(30)) / 10000.0);
  1801. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1802. fsum += atof(str);
  1803. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1804. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1805. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1806. str.Format("套系的%d", atoi(m_data4hz));
  1807. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  1808. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  1809. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1810. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1811. count++;
  1812. }
  1813. else if (m_data1hz == 2)//按加挑照片提成
  1814. {
  1815. m_List4.m_arLabels.SetSize(count + 1, 1);
  1816. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1817. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1818. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1819. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5hz));
  1820. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1821. fsum += atof(str);
  1822. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1823. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1824. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));
  1825. str.Format("%0.2f", atof(m_data5hz));
  1826. m_List4.m_arLabels.ElementAt(count).Add(str);
  1827. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  1828. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1829. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1830. count++;
  1831. }
  1832. }
  1833. else if (m_List4array.ElementAt(i).ElementAt(14) == "数码师")
  1834. {
  1835. m_List4.m_arLabels.SetSize(count + 1, 1);
  1836. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1837. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1838. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1839. price = GetPrice(m_List4array.ElementAt(i).ElementAt(6));
  1840. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(price));
  1841. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1842. fsum += atof(str);
  1843. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1844. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(6));
  1845. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(5));
  1846. m_List4.m_arLabels.ElementAt(count).Add(price);
  1847. m_List4.m_arLabels.ElementAt(count).Add("单价x数量");
  1848. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1849. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1850. count++;
  1851. }
  1852. }
  1853. m_List4.m_LabelCount = count;
  1854. m_List4.SetItemCountEx(count);
  1855. sRet.Format("计件提成(总和:%0.2f)", fsum);
  1856. SetDlgItemText(IDC_STATIC16, sRet);
  1857. sRet.Format("%0.2f", fsum);
  1858. }
  1859. void MySalary::OnBut1()
  1860. {
  1861. }
  1862. void MySalary::OnBut2()
  1863. {
  1864. }
  1865. void MySalary::OnSelchangeCombo6()
  1866. {
  1867. }
  1868. void MySalary::OnBut4()
  1869. {
  1870. // ShowHisSalary dlg;
  1871. // dlg.DoModal();
  1872. }
  1873. CString MySalary::GetPrice(CString name)
  1874. {
  1875. for (int i = 0; i < m_Workratearray.GetSize(); i++)
  1876. {
  1877. if ("数码师" == m_Workratearray.ElementAt(i).ElementAt(0) && name == m_Workratearray.ElementAt(i).ElementAt(1))
  1878. {
  1879. return m_Workratearray.ElementAt(i).ElementAt(2);
  1880. }
  1881. }
  1882. return "0";
  1883. }
  1884. void MySalary::GetMoney6(CString name, float &fRet)
  1885. {
  1886. fRet = 0;
  1887. /* if(m_Workratearray.GetSize ()==0)
  1888. {
  1889. return;
  1890. }*/
  1891. float fsum = 0;
  1892. int m_data1sy = -1;
  1893. CString m_data2sy;
  1894. CString m_data3sy;
  1895. CString m_data4sy;
  1896. CString m_data5sy;
  1897. int m_data1hz = -1;
  1898. CString m_data2hz;
  1899. CString m_data3hz;
  1900. CString m_data4hz;
  1901. CString m_data5hz;
  1902. /* for(int i=0; i<m_Workratearray.GetSize (); i++)
  1903. {
  1904. if("摄影师"==m_Workratearray.ElementAt (i).ElementAt (0))
  1905. {
  1906. m_data1sy=atoi(m_Workratearray.ElementAt (i).ElementAt (1));
  1907. m_data2sy=(m_Workratearray.ElementAt (i).ElementAt (2));
  1908. m_data3sy=(m_Workratearray.ElementAt (i).ElementAt (3));
  1909. m_data4sy=(m_Workratearray.ElementAt (i).ElementAt (4));
  1910. m_data5sy=(m_Workratearray.ElementAt (i).ElementAt (5));
  1911. }
  1912. #ifdef CHILD_VERSION
  1913. else if("引导师"==m_Workratearray.ElementAt (i).ElementAt (0))
  1914. #else
  1915. else if("化妆师"==m_Workratearray.ElementAt (i).ElementAt (0))
  1916. #endif
  1917. {
  1918. m_data1hz=atoi(m_Workratearray.ElementAt (i).ElementAt (1));
  1919. m_data2hz=(m_Workratearray.ElementAt (i).ElementAt (2));
  1920. m_data3hz=(m_Workratearray.ElementAt (i).ElementAt (3));
  1921. m_data4hz=(m_Workratearray.ElementAt (i).ElementAt (4));
  1922. m_data5hz=(m_Workratearray.ElementAt (i).ElementAt (5));
  1923. }
  1924. }
  1925. if(m_data1sy==-1)
  1926. {
  1927. return;
  1928. }
  1929. if(m_data1hz==-1)
  1930. {
  1931. return;
  1932. }*/
  1933. m_List4.DeleteAllItems2();
  1934. int count = 0;
  1935. CString str, price;
  1936. for (int i = 0; i < m_List4array.GetSize(); i++)//14
  1937. {
  1938. if (m_List4array.ElementAt(i).ElementAt(3) != name)continue;
  1939. if (0)//m_List4array.ElementAt (i).ElementAt (14)=="摄影师" && m_data1sy!=3)
  1940. {
  1941. if (m_data1sy == 0)//按服装套数提
  1942. {
  1943. m_List4.m_arLabels.SetSize(count + 1, 1);
  1944. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1945. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1946. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1947. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2sy) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3sy));
  1948. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1949. fsum += atof(str);
  1950. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1951. str.Format("外景%d,内景%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1952. m_List4.m_arLabels.ElementAt(count).Add(str);
  1953. str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
  1954. m_List4.m_arLabels.ElementAt(count).Add(str);
  1955. str.Format("外景%0.2f,内景%0.2f", atof(m_data2sy), atof(m_data3sy));
  1956. m_List4.m_arLabels.ElementAt(count).Add(str);
  1957. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  1958. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1959. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1960. count++;
  1961. }
  1962. else if (m_data1sy == 1)//按套系金额提成
  1963. {
  1964. if (m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(15) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(16) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(17) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(18))
  1965. {
  1966. continue;//既不是主摄影师,也不是副..
  1967. }
  1968. m_List4.m_arLabels.SetSize(count + 1, 1);
  1969. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1970. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1971. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1972. if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(15))
  1973. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(19)) / 10000.0);
  1974. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(16))
  1975. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(20)) / 10000.0);
  1976. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(17))
  1977. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(21)) / 10000.0);
  1978. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(18))
  1979. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(22)) / 10000.0);
  1980. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  1981. fsum += atof(str);
  1982. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  1983. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1984. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  1985. str.Format("套系的%d", atoi(m_data4sy));
  1986. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  1987. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  1988. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  1989. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  1990. count++;
  1991. }
  1992. else if (m_data1sy == 2)//按加挑照片提成
  1993. {
  1994. m_List4.m_arLabels.SetSize(count + 1, 1);
  1995. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  1996. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  1997. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  1998. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5sy));
  1999. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2000. fsum += atof(str);
  2001. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2002. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2003. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));
  2004. str.Format("%0.2f", atof(m_data5sy));
  2005. m_List4.m_arLabels.ElementAt(count).Add(str);
  2006. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  2007. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2008. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2009. count++;
  2010. }
  2011. }
  2012. #ifdef CHILD_VERSION
  2013. else if (0)//m_List4array.ElementAt (i).ElementAt (14)=="引导师" && m_data1hz!=3)
  2014. #else
  2015. else if (0)//m_List4array.ElementAt (i).ElementAt (14)=="化妆师" && m_data1hz!=3)
  2016. #endif
  2017. {
  2018. if (m_data1hz == 0)//按服装套数提
  2019. {
  2020. m_List4.m_arLabels.SetSize(count + 1, 1);
  2021. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  2022. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  2023. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  2024. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2hz) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3hz));
  2025. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2026. fsum += atof(str);
  2027. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2028. str.Format("外景%d,内景%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
  2029. m_List4.m_arLabels.ElementAt(count).Add(str);
  2030. str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
  2031. m_List4.m_arLabels.ElementAt(count).Add(str);
  2032. str.Format("外景%0.2f,内景%0.2f", atof(m_data2hz), atof(m_data3hz));
  2033. m_List4.m_arLabels.ElementAt(count).Add(str);
  2034. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  2035. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2036. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2037. count++;
  2038. }
  2039. else if (m_data1hz == 1)//按套系金额提成
  2040. {
  2041. if (m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(23) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(24) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(25) && m_List4array.ElementAt(i).ElementAt(3) != m_List4array.ElementAt(i).ElementAt(26))
  2042. {
  2043. continue;//既不是主化妆师,也不是副..
  2044. }
  2045. m_List4.m_arLabels.SetSize(count + 1, 1);
  2046. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  2047. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  2048. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  2049. if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(23))
  2050. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(27)) / 10000.0);
  2051. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(24))
  2052. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(28)) / 10000.0);
  2053. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(25))
  2054. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(29)) / 10000.0);
  2055. else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(26))
  2056. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(30)) / 10000.0);
  2057. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2058. fsum += atof(str);
  2059. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2060. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2061. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2062. str.Format("套系的%d", atoi(m_data4hz));
  2063. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  2064. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  2065. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2066. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2067. count++;
  2068. }
  2069. else if (m_data1hz == 2)//按加挑照片提成
  2070. {
  2071. m_List4.m_arLabels.SetSize(count + 1, 1);
  2072. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  2073. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  2074. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  2075. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5hz));
  2076. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2077. fsum += atof(str);
  2078. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2079. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2080. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));
  2081. str.Format("%0.2f", atof(m_data5hz));
  2082. m_List4.m_arLabels.ElementAt(count).Add(str);
  2083. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  2084. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2085. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2086. count++;
  2087. }
  2088. }
  2089. else if (m_List4array.ElementAt(i).ElementAt(14) == "数码师")
  2090. {
  2091. m_List4.m_arLabels.SetSize(count + 1, 1);
  2092. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  2093. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  2094. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  2095. price = GetPrice(m_List4array.ElementAt(i).ElementAt(6));
  2096. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(price));
  2097. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2098. fsum += atof(str);
  2099. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2100. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(6));
  2101. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(5));
  2102. m_List4.m_arLabels.ElementAt(count).Add(price);
  2103. m_List4.m_arLabels.ElementAt(count).Add("单价x数量");
  2104. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2105. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2106. count++;
  2107. }
  2108. }
  2109. m_List4.m_LabelCount = count;
  2110. m_List4.SetItemCountEx(count);
  2111. fRet = fsum;
  2112. }
  2113. void MySalary::OnButton4()
  2114. {
  2115. int pos = m_comboname.GetCurSel();
  2116. if (pos == -1)
  2117. {
  2118. AfxMessageBox("请选择您要导出资料的员工");
  2119. return;
  2120. }
  2121. CString name;
  2122. m_comboname.GetWindowText(name);
  2123. SelExportType dlg;
  2124. if (dlg.DoModal() != IDOK)return;
  2125. if (dlg.m_type == 1)
  2126. {
  2127. int arraysize = 0;
  2128. CArray<CStringArray, CStringArray>array;
  2129. CStringArray moneytypearray;
  2130. CString str, field2, field3;
  2131. float sum = 0;
  2132. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2133. {
  2134. field2 = m_List1.GetItemText(i, 0);
  2135. sum += atof(field2);
  2136. field3 = m_List1.GetItemText(i, 2);
  2137. if (::FindArray(&moneytypearray, field3) == -1)
  2138. moneytypearray.Add(field3);
  2139. array.SetSize(arraysize + 1, 1);
  2140. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
  2141. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
  2142. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
  2143. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
  2144. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
  2145. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
  2146. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
  2147. arraysize++;
  2148. }
  2149. array.SetSize(arraysize + 1, 1);
  2150. array.ElementAt(arraysize).Add("总计");
  2151. str.Format("%0.2f", sum);
  2152. array.ElementAt(arraysize).Add(str);
  2153. array.ElementAt(arraysize).Add("");
  2154. array.ElementAt(arraysize).Add("");
  2155. array.ElementAt(arraysize).Add("");
  2156. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2157. arraysize++;
  2158. //////////////////////////////////////////////
  2159. array.SetSize(arraysize + 1, 1);
  2160. array.ElementAt(arraysize).Add("");
  2161. array.ElementAt(arraysize).Add("");
  2162. array.ElementAt(arraysize).Add("");
  2163. array.ElementAt(arraysize).Add("");
  2164. array.ElementAt(arraysize).Add("");
  2165. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2166. arraysize++;
  2167. ///////////////////////////////////////////////
  2168. //////////////////////////////////////////////
  2169. array.SetSize(arraysize + 1, 1);
  2170. array.ElementAt(arraysize).Add("******");
  2171. array.ElementAt(arraysize).Add("******");
  2172. array.ElementAt(arraysize).Add("以下为分类统计");
  2173. array.ElementAt(arraysize).Add("******");
  2174. array.ElementAt(arraysize).Add("******");
  2175. array.ElementAt(arraysize).Add("******"); array.ElementAt(arraysize).Add("******");
  2176. arraysize++;
  2177. ///////////////////////////////////////////////
  2178. array.SetSize(arraysize + 1, 1);
  2179. array.ElementAt(arraysize).Add("");
  2180. array.ElementAt(arraysize).Add("");
  2181. array.ElementAt(arraysize).Add("");
  2182. array.ElementAt(arraysize).Add("");
  2183. array.ElementAt(arraysize).Add("");
  2184. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2185. arraysize++;
  2186. ///////////////////////////////////////////////
  2187. for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
  2188. {
  2189. sum = 0;
  2190. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2191. {
  2192. field3 = m_List1.GetItemText(i, 2);
  2193. if (moneytypearray.ElementAt(aa) != field3)continue;
  2194. field2 = m_List1.GetItemText(i, 0);
  2195. sum += atof(field2);
  2196. array.SetSize(arraysize + 1, 1);
  2197. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
  2198. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
  2199. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
  2200. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
  2201. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
  2202. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
  2203. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
  2204. arraysize++;
  2205. }
  2206. array.SetSize(arraysize + 1, 1);
  2207. array.ElementAt(arraysize).Add(moneytypearray.ElementAt(aa) + "总计");
  2208. str.Format("%0.2f", sum);
  2209. array.ElementAt(arraysize).Add(str);
  2210. array.ElementAt(arraysize).Add("");
  2211. array.ElementAt(arraysize).Add("");
  2212. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2213. arraysize++;
  2214. //////////////////////////////////////////////
  2215. array.SetSize(arraysize + 1, 1);
  2216. array.ElementAt(arraysize).Add("");
  2217. array.ElementAt(arraysize).Add("");
  2218. array.ElementAt(arraysize).Add("");
  2219. array.ElementAt(arraysize).Add("");
  2220. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2221. arraysize++;
  2222. ///////////////////////////////////////////////
  2223. }
  2224. m_ListTemp.DeleteAllItems2();
  2225. int ii = 0;
  2226. m_ListTemp.m_arLabels.SetSize(array.GetSize(), 1);
  2227. int count = 0;
  2228. for (ii = 0; ii < m_ListTemp.m_arLabels.GetSize(); ii++)
  2229. {
  2230. m_ListTemp.m_arLabels.ElementAt(count++).Copy(array.ElementAt(ii));
  2231. }
  2232. m_ListTemp.m_arLabels.SetSize(count, 1);
  2233. ii = count;
  2234. m_ListTemp.m_LabelCount = ii;
  2235. m_ListTemp.SetItemCountEx(ii);
  2236. ListToXLS(&m_ListTemp, "c:\\" + name + ".xls", 0);
  2237. return;
  2238. }
  2239. CStdioFile fp;
  2240. fp.Open("c:\\" + name + ".txt", CFile::modeCreate | CFile::modeWrite);
  2241. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2242. int leng1 = 20;
  2243. int leng2 = 15;
  2244. int leng3 = 15;
  2245. int leng4 = 15;
  2246. int leng5 = 15;
  2247. int leng6 = 15;
  2248. int leng7 = 15;
  2249. int leng8 = 15;
  2250. int leng9 = 15;
  2251. int leng10 = 15;
  2252. field1 = "收款日期";
  2253. field2 = "收款金额";
  2254. field3 = "款项类别";
  2255. field4 = "客人姓名";
  2256. FillLength(field1, leng1);
  2257. FillLength(field2, leng2);
  2258. FillLength(field3, leng3);
  2259. FillLength(field4, leng4);
  2260. str = field1 + field2 + field3 + field4 + "\n";
  2261. fp.WriteString(str);
  2262. CStringArray moneytypearray;
  2263. CString m_name1, m_name2;
  2264. float sum = 0;
  2265. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2266. {
  2267. field4.Empty();
  2268. field1 = m_List1.GetItemText(i, 1);
  2269. field2 = m_List1.GetItemText(i, 0);
  2270. sum += atof(field2);
  2271. field3 = m_List1.GetItemText(i, 2);
  2272. if (::FindArray(&moneytypearray, field3) == -1)
  2273. moneytypearray.Add(field3);
  2274. m_name1 = m_List1.GetItemText(i, 3);
  2275. m_name2 = m_List1.GetItemText(i, 4);
  2276. if (!m_name1.IsEmpty())
  2277. field4 = m_name1 + ",";
  2278. field4 += m_name2;
  2279. field4.TrimRight(",");
  2280. FillLength(field1, leng1);
  2281. FillLength(field2, leng2);
  2282. FillLength(field3, leng3);
  2283. FillLength(field4, leng4);
  2284. str = field1 + field2 + field3 + field4 + "\n";
  2285. fp.WriteString(str);
  2286. }
  2287. str = "姓名: " + name;
  2288. fp.WriteString(str); fp.WriteString("\n");
  2289. str = "类别: 订单二销提成\n";
  2290. fp.WriteString(str);
  2291. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2292. fp.WriteString("\n\n\n************************以下为分类统计************************");
  2293. fp.WriteString("\n\n");
  2294. for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
  2295. {
  2296. sum = 0;
  2297. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2298. {
  2299. field3 = m_List1.GetItemText(i, 2);
  2300. if (moneytypearray.ElementAt(aa) != field3)continue;
  2301. field4.Empty();
  2302. field1 = m_List1.GetItemText(i, 1);
  2303. field2 = m_List1.GetItemText(i, 0);
  2304. sum += atof(field2);
  2305. m_name1 = m_List1.GetItemText(i, 3);
  2306. m_name2 = m_List1.GetItemText(i, 4);
  2307. if (!m_name1.IsEmpty())
  2308. field4 = m_name1 + ",";
  2309. field4 += m_name2;
  2310. field4.TrimRight(",");
  2311. FillLength(field1, leng1);
  2312. FillLength(field2, leng2);
  2313. FillLength(field3, leng3);
  2314. FillLength(field4, leng4);
  2315. str = field1 + field2 + field3 + field4 + "\n";
  2316. fp.WriteString(str);
  2317. }
  2318. str = moneytypearray.ElementAt(aa) + "提成\n";
  2319. fp.WriteString(str);
  2320. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2321. fp.WriteString("\n\n\n");
  2322. }
  2323. fp.Close();
  2324. MessageBox("资料已保存到c:\\" + name + ".txt");
  2325. ShellExecute(NULL, _T("open"), _T("c:\\" + name + ".txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2326. }
  2327. void MySalary::OnButton5()
  2328. {
  2329. SelExpendType seldlg;
  2330. seldlg.m_mode = 2;
  2331. if (seldlg.DoModal() != IDOK)return;
  2332. SalarySet4 dlg;
  2333. dlg.m_header = "$" + seldlg.m_sel + ":";
  2334. dlg.DoModal();
  2335. /* SalarySet4 dlg;
  2336. dlg.m_header ="$前期:";
  2337. dlg.DoModal (); */
  2338. }
  2339. void MySalary::OnButton6()
  2340. {
  2341. SelExpendType seldlg;
  2342. seldlg.m_bSecond = 1;
  2343. if (seldlg.DoModal() != IDOK)return;
  2344. SalarySet4 dlg;
  2345. dlg.m_header = "$" + seldlg.m_sel + ":";
  2346. dlg.DoModal();
  2347. }
  2348. void MySalary::OnCloseupCombo7()
  2349. {
  2350. OnSelchangeList1();
  2351. }
  2352. void MySalary::OnButton14()
  2353. {
  2354. int pos = m_comboname.GetCurSel();
  2355. if (pos == -1)
  2356. {
  2357. AfxMessageBox("请选择您要导出资料的员工");
  2358. return;
  2359. }
  2360. CString name;
  2361. m_comboname.GetWindowText(name);
  2362. SelExportType dlg;
  2363. if (dlg.DoModal() != IDOK)return;
  2364. if (dlg.m_type == 1)
  2365. {
  2366. ListToXLS(&m_List4, "c:\\" + name + "(计件).xls", 0);
  2367. return;
  2368. }
  2369. CStdioFile fp;
  2370. fp.Open("c:\\" + name + "(计件).txt", CFile::modeCreate | CFile::modeWrite);
  2371. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2372. int leng1 = 20;
  2373. int leng2 = 15;
  2374. int leng3 = 15;
  2375. int leng4 = 15;
  2376. int leng5 = 15;
  2377. int leng6 = 15;
  2378. int leng7 = 15;
  2379. int leng8 = 15;
  2380. int leng9 = 15;
  2381. int leng10 = 15;
  2382. CString m_name1, m_name2;
  2383. float sum = 0;
  2384. {
  2385. leng1 = 18;
  2386. leng2 = 15;
  2387. leng3 = 10;
  2388. leng4 = 15;
  2389. leng5 = 10;
  2390. leng6 = 10;
  2391. leng7 = 15;
  2392. leng8 = 15;
  2393. leng9 = 15;
  2394. field1 = "客人姓名";
  2395. field2 = "提成金额";
  2396. field3 = "部门";
  2397. field4 = "内容";
  2398. field5 = "数量";
  2399. field6 = "单价";
  2400. field7 = "提成方式";
  2401. field8 = "套系金额";
  2402. field9 = "日期";
  2403. FillLength(field1, leng1);
  2404. FillLength(field2, leng2);
  2405. FillLength(field3, leng3);
  2406. FillLength(field4, leng4);
  2407. FillLength(field5, leng5);
  2408. FillLength(field6, leng6);
  2409. FillLength(field7, leng7);
  2410. FillLength(field8, leng8);
  2411. FillLength(field9, leng9);
  2412. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2413. fp.WriteString(str);
  2414. for (int i = 0; i < m_List4.GetItemCount(); i++)
  2415. {
  2416. field1.Empty();
  2417. m_name1 = m_List4.GetItemText(i, 1);
  2418. m_name2 = m_List4.GetItemText(i, 2);
  2419. if (!m_name1.IsEmpty())
  2420. field1 = m_name1 + ",";
  2421. field1 += m_name2;
  2422. field1.TrimRight(",");
  2423. field2 = m_List4.GetItemText(i, 3);
  2424. sum += atof(field2);
  2425. field3 = m_List4.GetItemText(i, 4);
  2426. field4 = m_List4.GetItemText(i, 5);
  2427. field5 = m_List4.GetItemText(i, 6);
  2428. field6 = m_List4.GetItemText(i, 7);
  2429. field7 = m_List4.GetItemText(i, 8);
  2430. field8 = m_List4.GetItemText(i, 9);
  2431. field9 = m_List4.GetItemText(i, 10);
  2432. FillLength(field1, leng1);
  2433. FillLength(field2, leng2);
  2434. FillLength(field3, leng3);
  2435. FillLength(field4, leng4);
  2436. FillLength(field5, leng5);
  2437. FillLength(field6, leng6);
  2438. FillLength(field7, leng7);
  2439. FillLength(field8, leng8);
  2440. FillLength(field9, leng9);
  2441. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2442. fp.WriteString(str);
  2443. }
  2444. fp.WriteString("\n");
  2445. str = "姓名: " + name;
  2446. fp.WriteString(str); fp.WriteString("\n");
  2447. str = "类别: 计件提成\n";
  2448. fp.WriteString(str);
  2449. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2450. }
  2451. fp.Close();
  2452. MessageBox("资料已保存到c:\\" + name + "(计件).txt");
  2453. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(计件).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2454. }
  2455. void MySalary::OnButton7()
  2456. {
  2457. int pos = m_comboname.GetCurSel();
  2458. if (pos == -1)
  2459. {
  2460. AfxMessageBox("请选择您要导出资料的员工");
  2461. return;
  2462. }
  2463. CString name;
  2464. m_comboname.GetWindowText(name);
  2465. SelExportType dlg;
  2466. if (dlg.DoModal() != IDOK)return;
  2467. if (dlg.m_type == 1)
  2468. {
  2469. ListToXLS(&m_Listtake, "c:\\" + name + "(摄影).xls", 0);
  2470. return;
  2471. }
  2472. CStdioFile fp;
  2473. fp.Open("c:\\" + name + "(摄影).txt", CFile::modeCreate | CFile::modeWrite);
  2474. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2475. int leng1 = 20;
  2476. int leng2 = 15;
  2477. int leng3 = 15;
  2478. int leng4 = 15;
  2479. int leng5 = 15;
  2480. int leng6 = 15;
  2481. int leng7 = 15;
  2482. int leng8 = 15;
  2483. int leng9 = 15;
  2484. int leng10 = 15;
  2485. CString m_name1, m_name2;
  2486. float sum = 0;
  2487. int waiter1count = 0;
  2488. int waiter12count = 0;
  2489. int waiter2count = 0;
  2490. int waiter22count = 0;
  2491. {
  2492. leng1 = 18;
  2493. leng2 = 20;
  2494. leng3 = 12;
  2495. leng4 = 20;
  2496. leng5 = 15;
  2497. leng6 = 10;
  2498. leng7 = 10;
  2499. leng8 = 10;
  2500. leng9 = 10;
  2501. field1 = "客人姓名";
  2502. field2 = "套系";
  2503. field3 = "套系金额";
  2504. field4 = "景点";
  2505. field5 = "日期";
  2506. field6 = "摄影";
  2507. field7 = "助理";
  2508. field8 = "化妆";
  2509. #ifdef CHILD_VERSION
  2510. field8 = "引导";
  2511. #endif
  2512. field9 = "助理";
  2513. FillLength(field1, leng1);
  2514. FillLength(field2, leng2);
  2515. FillLength(field3, leng3);
  2516. FillLength(field4, leng4);
  2517. FillLength(field5, leng5);
  2518. FillLength(field6, leng6);
  2519. FillLength(field7, leng7);
  2520. FillLength(field8, leng8);
  2521. FillLength(field9, leng9);
  2522. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2523. fp.WriteString(str);
  2524. for (int i = 0; i < m_Listtake.GetItemCount(); i++)
  2525. {
  2526. field1.Empty();
  2527. m_name1 = m_Listtake.GetItemText(i, 1);
  2528. m_name2 = m_Listtake.GetItemText(i, 2);
  2529. if (!m_name1.IsEmpty())
  2530. field1 = m_name1 + ",";
  2531. field1 += m_name2;
  2532. field1.TrimRight(",");
  2533. field2 = m_Listtake.GetItemText(i, 3);
  2534. field3 = m_Listtake.GetItemText(i, 4);
  2535. sum += atof(field3);
  2536. field4 = m_Listtake.GetItemText(i, 5);
  2537. field5 = m_Listtake.GetItemText(i, 6);
  2538. field6 = m_Listtake.GetItemText(i, 7);
  2539. field7 = m_Listtake.GetItemText(i, 8);
  2540. field8 = m_Listtake.GetItemText(i, 9);
  2541. field9 = m_Listtake.GetItemText(i, 10);
  2542. if (field6 == name)waiter1count++;
  2543. if (field7 == name)waiter12count++;
  2544. if (field8 == name)waiter2count++;
  2545. if (field9 == name)waiter22count++;
  2546. FillLength(field1, leng1);
  2547. FillLength(field2, leng2);
  2548. FillLength(field3, leng3);
  2549. FillLength(field4, leng4);
  2550. FillLength(field5, leng5);
  2551. FillLength(field6, leng6);
  2552. FillLength(field7, leng7);
  2553. FillLength(field8, leng8);
  2554. FillLength(field9, leng9);
  2555. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2556. fp.WriteString(str);
  2557. }
  2558. fp.WriteString("\n");
  2559. str = "姓名: " + name;
  2560. fp.WriteString(str); fp.WriteString("\n");
  2561. str.Format("摄影: %d\n", waiter1count); fp.WriteString(str);
  2562. str.Format("助理: %d\n", waiter12count); fp.WriteString(str);
  2563. #ifdef CHILD_VERSION
  2564. str.Format("引导: %d\n", waiter2count); fp.WriteString(str);
  2565. #else
  2566. str.Format("化妆: %d\n", waiter2count); fp.WriteString(str);
  2567. #endif
  2568. str.Format("助理: %d\n", waiter22count); fp.WriteString(str);
  2569. str.Format("订单总金额: %0.2f", sum); fp.WriteString(str);
  2570. }
  2571. fp.Close();
  2572. MessageBox("资料已保存到c:\\" + name + "(摄影).txt");
  2573. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(摄影).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2574. }
  2575. void MySalary::OnButton8()
  2576. {
  2577. UpdateData();
  2578. int pos = m_comboname.GetCurSel();
  2579. if (pos == -1)
  2580. {
  2581. AfxMessageBox("请选择您要导出资料的员工");
  2582. return;
  2583. }
  2584. CString date1, date2;
  2585. date1 = m_date1.Format("%Y-%m-%d");
  2586. date2 = m_date2.Format("%Y-%m-%d");
  2587. CString name;
  2588. m_comboname.GetWindowText(name);
  2589. SelExportType dlg;
  2590. if (dlg.DoModal() != IDOK)return;
  2591. if (dlg.m_type == 1)
  2592. {
  2593. ListToXLS(&m_Listdigital, "c:\\" + name + "(数码).xls", 0);
  2594. return;
  2595. }
  2596. CStdioFile fp;
  2597. fp.Open("c:\\" + name + "(数码).txt", CFile::modeCreate | CFile::modeWrite);
  2598. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2599. int leng1 = 20;
  2600. int leng2 = 15;
  2601. int leng3 = 15;
  2602. int leng4 = 15;
  2603. int leng5 = 15;
  2604. int leng6 = 15;
  2605. int leng7 = 15;
  2606. int leng8 = 15;
  2607. int leng9 = 15;
  2608. int leng10 = 15;
  2609. CString m_name1, m_name2;
  2610. float sum1 = 0;
  2611. float sum2 = 0;
  2612. float sum3 = 0;
  2613. float sum12 = 0;
  2614. float sum22 = 0;
  2615. float sum32 = 0;
  2616. int count1 = 0;
  2617. int count2 = 0;
  2618. int count3 = 0;
  2619. {
  2620. leng1 = 18;
  2621. leng2 = 20;
  2622. leng3 = 12;
  2623. leng4 = 10;
  2624. leng5 = 15;
  2625. leng6 = 10;
  2626. leng7 = 15;
  2627. leng8 = 10;
  2628. leng9 = 15;
  2629. leng10 = 10;
  2630. field1 = "客人姓名";
  2631. field2 = "套系";
  2632. field3 = "套系金额";
  2633. field4 = "初修";
  2634. field5 = "日期";
  2635. field6 = "精修";
  2636. field7 = "日期";
  2637. field8 = "设计";
  2638. field9 = "日期";
  2639. field10 = "选片二销";
  2640. FillLength(field1, leng1);
  2641. FillLength(field2, leng2);
  2642. FillLength(field3, leng3);
  2643. FillLength(field4, leng4);
  2644. FillLength(field5, leng5);
  2645. FillLength(field6, leng6);
  2646. FillLength(field7, leng7);
  2647. FillLength(field8, leng8);
  2648. FillLength(field9, leng9);
  2649. FillLength(field10, leng10);
  2650. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
  2651. fp.WriteString(str);
  2652. for (int i = 0; i < m_Listdigital.GetItemCount(); i++)
  2653. {
  2654. field1.Empty();
  2655. m_name1 = m_Listdigital.GetItemText(i, 1);
  2656. m_name2 = m_Listdigital.GetItemText(i, 2);
  2657. if (!m_name1.IsEmpty())
  2658. field1 = m_name1 + ",";
  2659. field1 += m_name2;
  2660. field1.TrimRight(",");
  2661. field2 = m_Listdigital.GetItemText(i, 3);
  2662. field3 = m_Listdigital.GetItemText(i, 4);
  2663. field4 = m_Listdigital.GetItemText(i, 5);
  2664. field5 = m_Listdigital.GetItemText(i, 6);
  2665. field6 = m_Listdigital.GetItemText(i, 7);
  2666. field7 = m_Listdigital.GetItemText(i, 8);
  2667. field8 = m_Listdigital.GetItemText(i, 9);
  2668. field9 = m_Listdigital.GetItemText(i, 10);
  2669. field10 = m_Listdigital.GetItemText(i, 14);
  2670. if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == name && field5 >= date1 && field5 <= date2)
  2671. {
  2672. sum1 += atof(field3);
  2673. sum12 += atof(field10);
  2674. count1++;
  2675. }
  2676. if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == name && field7 >= date1 && field7 <= date2)
  2677. {
  2678. sum2 += atof(field3);
  2679. sum22 += atof(field10);
  2680. count2++;
  2681. }
  2682. if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == name && field9 >= date1 && field9 <= date2)
  2683. {
  2684. sum3 += atof(field3);
  2685. sum32 += atof(field10);
  2686. count3++;
  2687. }
  2688. FillLength(field1, leng1);
  2689. FillLength(field2, leng2);
  2690. FillLength(field3, leng3);
  2691. FillLength(field4, leng4);
  2692. FillLength(field5, leng5);
  2693. FillLength(field6, leng6);
  2694. FillLength(field7, leng7);
  2695. FillLength(field8, leng8);
  2696. FillLength(field9, leng9);
  2697. FillLength(field10, leng10);
  2698. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
  2699. fp.WriteString(str);
  2700. }
  2701. fp.WriteString("\n");
  2702. str = "姓名: " + name;
  2703. fp.WriteString(str); fp.WriteString("\n");
  2704. str.Format("初修: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count1, sum1, sum12); fp.WriteString(str);
  2705. str.Format("精修: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count2, sum2, sum22); fp.WriteString(str);
  2706. str.Format("设计: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count3, sum3, sum32); fp.WriteString(str);
  2707. }
  2708. fp.Close();
  2709. MessageBox("资料已保存到c:\\" + name + "(数码).txt");
  2710. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(数码).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2711. }
  2712. void MySalary::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
  2713. {
  2714. OnSelchangeList1();
  2715. *pResult = 0;
  2716. }
  2717. void MySalary::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult)
  2718. {
  2719. OnSelchangeList1();
  2720. *pResult = 0;
  2721. }
  2722. CString GetExcelDriver()
  2723. {
  2724. char szBuf[2001];
  2725. WORD cbBufMax = 2000;
  2726. WORD cbBufOut;
  2727. char *pszBuf = szBuf;
  2728. CString sDriver;
  2729. if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
  2730. return "";
  2731. do
  2732. {
  2733. if (strstr(pszBuf, "Excel") != 0)
  2734. {
  2735. sDriver = CString(pszBuf);
  2736. break;
  2737. }
  2738. pszBuf = strchr(pszBuf, '\0') + 1;
  2739. } while (pszBuf[1] != '\0');
  2740. return sDriver;
  2741. }
  2742. BOOL MakeSurePathExists(CString &Path, bool FilenameIncluded)
  2743. {
  2744. int Pos = 0;
  2745. while ((Pos = Path.Find('\\', Pos + 1)) != -1)
  2746. CreateDirectory(Path.Left(Pos), NULL);
  2747. if (!FilenameIncluded)
  2748. CreateDirectory(Path, NULL);
  2749. // return ((!FilenameIncluded)?!_access(Path,0):
  2750. // !_access(Path.Left(Path.ReverseFind('\\')),0));
  2751. return !_access(Path, 0);
  2752. }
  2753. BOOL GetDefaultXlsFileName(CString &sExcelFile)
  2754. {
  2755. ///默认文件名:yyyymmddhhmmss.xls
  2756. // prompt the user (with all document templates)
  2757. CFileDialog dlgFile(FALSE, ".xls", sExcelFile);
  2758. CString title;
  2759. CString strFilter;
  2760. title = "导出";
  2761. strFilter = "Excel文件(*.xls)";
  2762. strFilter += (TCHAR)'\0'; // next string please
  2763. strFilter += _T("*.xls");
  2764. strFilter += (TCHAR)'\0'; // last string
  2765. dlgFile.m_ofn.nMaxCustFilter++;
  2766. dlgFile.m_ofn.nFilterIndex = 1;
  2767. // append the "*.*" all files filter
  2768. CString allFilter;
  2769. VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER));
  2770. strFilter += allFilter;
  2771. strFilter += (TCHAR)'\0'; // next string please
  2772. strFilter += _T("*.*");
  2773. strFilter += (TCHAR)'\0'; // last string
  2774. dlgFile.m_ofn.nMaxCustFilter++;
  2775. dlgFile.m_ofn.lpstrFilter = strFilter;
  2776. dlgFile.m_ofn.lpstrTitle = title;
  2777. if (dlgFile.DoModal() == IDCANCEL)
  2778. return FALSE; // open cancelled
  2779. sExcelFile = dlgFile.GetFileName();
  2780. if (MakeSurePathExists(sExcelFile, true)) {
  2781. if (!DeleteFile(sExcelFile)) { // 删除xls文件;
  2782. AfxMessageBox("覆盖文件时出错!");
  2783. return FALSE;
  2784. }
  2785. }
  2786. return TRUE;
  2787. }
  2788. int FindArrayCount(CStringArray *pArray, CString Str)
  2789. {
  2790. int ret = 0;
  2791. for (int i = 0; i < pArray->GetSize(); i++)
  2792. {
  2793. if (pArray->ElementAt(i) == Str)
  2794. ret++;
  2795. }
  2796. return ret;
  2797. }
  2798. void ListToXLS(CListCtrl *pList, CString savepath, int nColumn, int nRow)
  2799. {
  2800. CString strPath = savepath;
  2801. #if 0
  2802. const int nImportCount = 3500;
  2803. INT nItemCount = pList->GetItemCount();
  2804. if ( nItemCount < 5000)
  2805. {
  2806. Import2Excle(pList, savepath, nColumn, nRow);
  2807. }
  2808. else
  2809. {
  2810. int nTimes = 0;
  2811. int nStartRow = 0;
  2812. int nEndRow = 0;
  2813. savepath.TrimRight(_T(".xls"));
  2814. TCHAR szExcelpath[MAX_PATH] = {0};
  2815. while( true )
  2816. {
  2817. nItemCount -= nImportCount;
  2818. if ( nItemCount > 0 )
  2819. {
  2820. nTimes++;
  2821. nEndRow += nImportCount;
  2822. sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes);
  2823. Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, nEndRow);
  2824. nStartRow += nImportCount;
  2825. }
  2826. else
  2827. {
  2828. sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes+1);
  2829. Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, -1);
  2830. break;
  2831. }
  2832. }
  2833. }
  2834. #else
  2835. Import2Xls(pList, savepath, nColumn, nRow);
  2836. #endif
  2837. strPath = savepath + _T(".dat");
  2838. ShellExecute(NULL, _T("open"), _T("xlsworker.exe"), strPath, NULL, SW_SHOW);
  2839. ///AfxMessageBox(savepath + _T("后台生成,请稍等片刻!"));
  2840. return;
  2841. if (pList == NULL)return;
  2842. CString strTitle = "sheet1";
  2843. CString warningStr;
  2844. CString str, temp;
  2845. if (pList->GetItemCount()>0)
  2846. {
  2847. CDatabase database;
  2848. CString sDriver;
  2849. CString sExcelFile;
  2850. CString sSql;
  2851. CString tableName = strTitle;
  2852. CStringArray colarray;
  2853. // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"
  2854. sDriver = GetExcelDriver();
  2855. if (sDriver.IsEmpty())
  2856. {
  2857. // 没有发现Excel驱动
  2858. AfxMessageBox("没有安装Excel!\n请先安装Excel软件才能使用导出功能!");
  2859. return;
  2860. }
  2861. sExcelFile = "";
  2862. sExcelFile = savepath;
  2863. ///默认文件名
  2864. if (!GetDefaultXlsFileName(sExcelFile))
  2865. return;
  2866. // 创建进行存取的字符串
  2867. sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sDriver, sExcelFile, sExcelFile);
  2868. // 创建数据库 (既Excel表格文件)
  2869. if (database.OpenEx(sSql, CDatabase::noOdbcDialog))
  2870. {
  2871. // 创建表结构
  2872. int i;
  2873. LVCOLUMN columnData;
  2874. CString columnName;
  2875. int columnNum = 0;
  2876. CString strH;
  2877. CString strV;
  2878. sSql = "";
  2879. strH = "";
  2880. columnData.mask = LVCF_TEXT;
  2881. columnData.cchTextMax = 100;
  2882. columnData.pszText = columnName.GetBuffer(100);
  2883. {
  2884. for (i = nColumn; pList->GetColumn(i, &columnData); i++)
  2885. {
  2886. if (i != nColumn)
  2887. {
  2888. sSql = sSql + ", ";
  2889. strH = strH + ", ";
  2890. }
  2891. temp = columnData.pszText;
  2892. temp.Replace("/", "");
  2893. temp.Replace("(", "");
  2894. temp.Replace(")", "");
  2895. int countexist = FindArrayCount(&colarray, temp);
  2896. if (countexist)
  2897. {
  2898. CString ss;
  2899. ss.Format("%d", countexist + 1);
  2900. sSql = sSql + " " + temp + ss + " TEXT";
  2901. strH = strH + " " + temp + ss + " ";
  2902. str = temp;
  2903. str += ss;
  2904. colarray.Add(str);
  2905. }
  2906. else
  2907. {
  2908. sSql = sSql + " " + temp + " TEXT";
  2909. strH = strH + " " + temp + " ";
  2910. colarray.Add(temp);
  2911. }
  2912. }
  2913. }
  2914. columnName.ReleaseBuffer();
  2915. columnNum = i;
  2916. sSql = "CREATE TABLE " + tableName + " ( " + sSql + " ) ";
  2917. database.ExecuteSQL(sSql);
  2918. // 插入数据项
  2919. int nItemIndex;
  2920. {
  2921. for (nItemIndex = 0; nItemIndex < pList->GetItemCount(); nItemIndex++)
  2922. {
  2923. strV = "";
  2924. for (i = nColumn; i < columnNum; i++)
  2925. {
  2926. if (i != nColumn)
  2927. {
  2928. strV = strV + ", ";
  2929. }
  2930. strV = strV + " '" + pList->GetItemText(nItemIndex, i) + "' ";
  2931. }
  2932. sSql = "INSERT INTO " + tableName
  2933. + " (" + strH + ")"
  2934. + " VALUES(" + strV + ")";
  2935. database.ExecuteSQL(sSql);
  2936. }
  2937. }
  2938. }
  2939. // 关闭数据库
  2940. database.Close();
  2941. ShellExecute(NULL, _T("open"), sExcelFile, NULL, NULL, SW_SHOW);
  2942. }
  2943. else
  2944. AfxMessageBox("表中没有数据!");
  2945. }
  2946. //%0.2f
  2947. void MySalary::OnBut3() // 导出按钮;
  2948. {
  2949. ListToXLS(&m_List3, "c:\\工资表.xls", 0);
  2950. }