MySalary.cpp 108 KB

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