MySalary.cpp 108 KB

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