MySalary.cpp 108 KB

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