// MySalary.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "MySalary.h" #include "MyMdi.H" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // MySalary IMPLEMENT_DYNCREATE(MySalary, CFormView) MySalary::MySalary() : CFormView(MySalary::IDD) { //{{AFX_DATA_INIT(MySalary) m_name = _T(""); m_rate1 = _T(""); m_rate2 = _T(""); m_bz = _T(""); m_base = _T(""); m_month = CTime::GetCurrentTime ().GetMonth (); m_salary = _T(""); m_money1 = _T(""); m_money2 = _T(""); m_year = CTime::GetCurrentTime ().GetYear (); m_bInit=0; m_bAll=0; //}}AFX_DATA_INIT } MySalary::~MySalary() { } void MySalary::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(MySalary) DDX_Control(pDX, IDC_LIST3, m_List3); DDX_Control(pDX, IDC_LIST1, m_ListBox1); DDX_Control(pDX, IDC_SPIN2, m_spinmonth); DDX_Control(pDX, IDC_SPIN1, m_spinyear); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDITname, m_name); DDX_Text(pDX, IDC_EDITrate1, m_rate1); DDX_Text(pDX, IDC_EDITrate2, m_rate2); DDX_Text(pDX, IDC_EDITbz, m_bz); DDX_Text(pDX, IDC_EDITbase, m_base); DDX_Text(pDX, IDC_EDITmonth, m_month); DDV_MinMaxUInt(pDX, m_month, 1, 12); DDX_Text(pDX, IDC_EDITsalary, m_salary); DDX_Text(pDX, IDC_EDITrate3, m_money1); DDX_Text(pDX, IDC_EDITrate4, m_money2); DDX_Text(pDX, IDC_EDITyear, m_year); DDV_MinMaxUInt(pDX, m_year, 1900, 3000); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(MySalary, CFormView) //{{AFX_MSG_MAP(MySalary) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1) ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear) ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth) ON_BN_CLICKED(IDC_BUTshowall, OnBUTshowall) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // MySalary diagnostics #ifdef _DEBUG void MySalary::AssertValid() const { CFormView::AssertValid(); } void MySalary::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // MySalary message handlers void MySalary::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); m_static1.SetFont (&g_titlefont); m_List1.SetHeadings("�տ���,100;�տ�����,100;�������,100;�б�����,100;Ů������,100" ); m_List1.LoadColumnInfo (23); m_List3.SetHeadings("����,100;�ܹ���,100;��������,100;ǰ��ҵ��,100;����ҵ��,100;ǰ�����,100;�������,100;����,100" ); m_List3.LoadColumnInfo (124); m_spinyear.SetRange (1900, 3000); m_spinmonth.SetRange (1, 12); BOOL bShowAll=0; if(g_ncount==100)bShowAll=1; g_ncount=0; GetData(); if(bShowAll==0) GetDlgItem(IDC_LIST3)->ShowWindow(0); if(IsHasRights2new(26)==0) { m_ListBox1.EnableWindow (0); GetDlgItem(IDC_BUTshowall)->EnableWindow (0); } else if(bShowAll) { g_ncount=0; OnBUTshowall(); } } void MySalary::FillGrid(CArray<CStringArray, CStringArray>*array) { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( array->GetSize (), 1 ); int count=0; for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++) { m_List1.m_arLabels.ElementAt (count++).Copy (array->ElementAt (ii)); } m_List1.m_arLabels.SetSize(count, 1); ii=count; m_List1.m_LabelCount=ii; m_List1.SetItemCountEx (ii); } void MySalary::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void MySalary::GetData() { m_bInit=1; g_sendhead.bsql=0; g_sendhead.code[0]=34; g_sendhead.tabcount=1; int g_nYearposTemp=g_nYearpos; g_nYearpos=-1; g_pMainWnd->ProcessChatMessageRequest2(13); g_nYearpos=g_nYearposTemp; if(g_bSendOK==0)return; DataToArray(&m_List1array); m_ListBox1.ResetContent (); for(int i=0; i<m_List1array.GetSize (); i++) { m_ListBox1.AddString (m_List1array.ElementAt (i).ElementAt (0)); } CString str; for( i=0; i<m_ListBox1.GetCount (); i++) { m_ListBox1.GetText (i, str); if(str==g_user.name) { m_ListBox1.SetCurSel (i); OnSelchangeList1(); break; } } } void MySalary::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. OnSelchangeList1(); // TODO: Add your control notification handler code here } void MySalary::OnChangeEDITmonth() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. OnSelchangeList1(); // TODO: Add your control notification handler code here } void IsWaiter(CString id, CString name, CArray<CStringArray, CStringArray>*waiterarray, BOOL &bWait1, BOOL &bWait2) { for(int i=0; i<waiterarray->GetSize (); i++) { if(id==waiterarray->ElementAt (i).ElementAt (0)) { if(name==waiterarray->ElementAt (i).ElementAt (1)) bWait1=1; if(name==waiterarray->ElementAt (i).ElementAt (2)) bWait2=1; return; } } return; } extern int GetYearPos(int year); void MySalary::OnSelchangeList1() { // TODO: Add your control notification handler code here if(m_bInit==0)return; if(m_bAll) { m_List3array.RemoveAll (); FillGrid2(); return; } int pos=m_ListBox1.GetCurSel (); if(pos==-1)return; UpdateData(); CString name; m_ListBox1.GetText (pos, name); CString date1,date2; date1.Format ("%d-%02d-01", m_year, m_month); date2.Format ("%d-%02d-31", m_year, m_month); int i; int g_nYearposTemp=g_nYearpos; BOOL bLastYear=0; BOOL bThisYear=0; BOOL bOldYear=0; if(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () ) bThisYear=1; else if(m_year==atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ()) bLastYear=1; else if(atoi(g_date.Left (4))-m_year>1 && g_hisyeararray.GetSize ()>=(atoi(g_date.Left (4))-m_year)) { bOldYear=1; } g_nYearpos=GetYearPos(m_year); /////////////// CString filter="name='"+name+"';date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';dat>='"+date1+"' and dat<='"+date2+"' and renyuan3='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; //;time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��' g_sendhead.code[0]=34; g_sendhead.code[1]=59; g_sendhead.code[2]=60; g_sendhead.code[3]=14; g_sendhead.code[4]=61; g_sendhead.tabcount=5; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArray<CStringArray, CStringArray>userarray; CArray<CStringArray, CStringArray>bukuanarray; CArray<CStringArray, CStringArray>waiterarray; CArray<CStringArray, CStringArray>singleincomearray; CArray<CStringArray, CStringArray>bukuanarray2; DataToArray(&userarray,&bukuanarray,&waiterarray,&singleincomearray,&bukuanarray2); /////////////////// if(bLastYear)//�����ȥ��, ��ӽ���IJ��� { g_nYearpos=-1;//���� filter="name='"+name+"';date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; g_sendhead.code[0]=34; g_sendhead.code[1]=59; g_sendhead.code[2]=60; g_sendhead.code[3]=61; g_sendhead.tabcount=4; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArray<CStringArray, CStringArray>ThisYearbukuanarray; CArray<CStringArray, CStringArray>ThisYearwaiterarray; CArray<CStringArray, CStringArray>ThisYearbukuanarray2; DataToArray(&userarray,&ThisYearbukuanarray,&ThisYearwaiterarray,&ThisYearbukuanarray2); int oldsize=bukuanarray.GetSize (); bukuanarray.SetSize(oldsize+ThisYearbukuanarray.GetSize ()); for(i=oldsize; i<oldsize+ThisYearbukuanarray.GetSize (); i++) { bukuanarray.ElementAt (i).Copy(ThisYearbukuanarray.ElementAt (i-oldsize)); } oldsize=bukuanarray2.GetSize (); bukuanarray2.SetSize(oldsize+ThisYearbukuanarray2.GetSize ()); for(i=oldsize; i<oldsize+ThisYearbukuanarray2.GetSize (); i++) { bukuanarray2.ElementAt (i).Copy(ThisYearbukuanarray2.ElementAt (i-oldsize)); } oldsize=waiterarray.GetSize (); waiterarray.SetSize(oldsize+ThisYearwaiterarray.GetSize ()); for(i=oldsize; i<oldsize+ThisYearwaiterarray.GetSize (); i++) { waiterarray.ElementAt (i).Copy(ThisYearwaiterarray.ElementAt (i-oldsize)); } } else if(bThisYear)//����ǽ���, ���ȥ��IJ��� { g_nYearpos=0;//ȥ�� filter="date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; g_sendhead.code[0]=59; g_sendhead.code[1]=60; g_sendhead.code[2]=61; g_sendhead.tabcount=3; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArray<CStringArray, CStringArray>LastYearbukuanarray; CArray<CStringArray, CStringArray>LastYearwaiterarray; CArray<CStringArray, CStringArray>LastYearbukuanarray2; DataToArray(&LastYearbukuanarray,&LastYearwaiterarray,&LastYearbukuanarray2); int oldsize=bukuanarray.GetSize (); bukuanarray.SetSize(oldsize+LastYearbukuanarray.GetSize ()); for(i=oldsize; i<oldsize+LastYearbukuanarray.GetSize (); i++) { bukuanarray.ElementAt (i).Copy(LastYearbukuanarray.ElementAt (i-oldsize)); } oldsize=bukuanarray2.GetSize (); bukuanarray2.SetSize(oldsize+LastYearbukuanarray2.GetSize ()); for(i=oldsize; i<oldsize+LastYearbukuanarray2.GetSize (); i++) { bukuanarray2.ElementAt (i).Copy(LastYearbukuanarray2.ElementAt (i-oldsize)); } oldsize=waiterarray.GetSize (); waiterarray.SetSize(oldsize+LastYearwaiterarray.GetSize ()); for(i=oldsize; i<oldsize+LastYearwaiterarray.GetSize (); i++) { waiterarray.ElementAt (i).Copy(LastYearwaiterarray.ElementAt (i-oldsize)); } } else if(bLastYear)//������������, �������Ա����Ϣ { g_nYearpos=-1;//���� filter="name='"+name+"'"; g_sendhead.code[0]=34; g_sendhead.tabcount=1; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } DataToArray(&userarray); } g_nYearpos=g_nYearposTemp; CArray<CStringArray, CStringArray>array; array.SetSize(bukuanarray.GetSize ()*4+singleincomearray.GetSize ()+bukuanarray2.GetSize ()*4); CString temp; float money1=0; float money2=0; int arraypos=0; for(int ii=0; ii<bukuanarray.GetSize (); ii++) { array.ElementAt (arraypos).RemoveAll (); if(bukuanarray.ElementAt (ii).ElementAt (2)=="3" || bukuanarray.ElementAt (ii).ElementAt (2)=="4") { /* BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money1+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("ǰ���տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; arraypos++; } if(bWait2)//���ǻ�ױʦ { temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money1+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("ǰ���տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; arraypos++; }*/ if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money1+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("ǰ���տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; } else if(bukuanarray.ElementAt (ii).ElementAt (2)=="2")//ѡƬ����, �����Ӱʦ�ͻ�ױʦ { BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money2+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("�����տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; arraypos++; } if(bWait2)//���ǻ�ױʦ { temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money2+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("�����տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; arraypos++; } if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money2+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("�����տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; } else { if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money2+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("�����տ�") ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ; } arraypos++; } for( ii=0; ii<bukuanarray2.GetSize (); ii++) { array.ElementAt (arraypos).RemoveAll (); if(bukuanarray2.ElementAt (ii).ElementAt (2)=="3" || bukuanarray2.ElementAt (ii).ElementAt (2)=="4") { BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray2.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { temp.Format ("%f", atof(bukuanarray2.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money1+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("ǰ���տ�") ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (4)) ; arraypos++; } if(bWait2)//���ǻ�ױʦ { temp.Format ("%f", atof(bukuanarray2.ElementAt (ii).ElementAt (0)) ); ConvertToPrice(temp); money1+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (1)) ; array.ElementAt (arraypos).Add("ǰ���տ�") ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (4)) ; arraypos++; } } } for( ii=0; ii<singleincomearray.GetSize (); ii++) { array.ElementAt (arraypos).RemoveAll (); temp.Format ("%f", atof(singleincomearray.ElementAt (ii).ElementAt (2)) ); ConvertToPrice(temp); money2+=atof(temp); array.ElementAt (arraypos).Add(temp) ; array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (3)) ; array.ElementAt (arraypos).Add("�����տ�") ; array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (4)) ; array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (1)) ; arraypos++; } array.SetSize(arraypos); FillGrid(&array); if(userarray.GetSize ()) { m_name = userarray.ElementAt (0).ElementAt (0); m_base = userarray.ElementAt (0).ElementAt (1); m_rate1 = userarray.ElementAt (0).ElementAt (2)+"%"; m_rate2 = userarray.ElementAt (0).ElementAt (3)+"%"; m_bz = userarray.ElementAt (0).ElementAt (4); m_money1.Format ("%f", money1); ConvertToPrice(m_money1); m_money2.Format ("%f", money2); ConvertToPrice(m_money2); m_salary.Format ("%f", atof(m_base)+money1*atof(m_rate1)/100.0+money2*atof(m_rate2)/100.0); ConvertToPrice(m_salary); } else { m_name = _T(""); m_base = _T(""); m_rate1 = _T(""); m_rate2 = _T(""); m_bz = _T(""); m_salary = _T(""); m_money1 = _T(""); m_money2 = _T(""); } UpdateData(false); } void MySalary::OnBUTshowall() { // TODO: Add your control notification handler code here m_bAll=!m_bAll; if(m_bAll) { GetDlgItem(IDC_BUTshowall)->SetWindowText("�鿴����"); } else { GetDlgItem(IDC_BUTshowall)->SetWindowText("�鿴ȫ��"); } GetDlgItem(IDC_STATIC2)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC3)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC4)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC5)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC6)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC7)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC8)->ShowWindow(!m_bAll); GetDlgItem(IDC_STATIC9)->ShowWindow(!m_bAll); // GetDlgItem(IDC_STATIC10)->ShowWindow(!m_bAll); // GetDlgItem(IDC_STATIC11)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITname)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITbz)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITbase)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITrate1)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITrate2)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITsalary)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITrate3)->ShowWindow(!m_bAll); GetDlgItem(IDC_EDITrate4)->ShowWindow(!m_bAll); GetDlgItem(IDC_LIST1)->ShowWindow(!m_bAll); GetDlgItem(IDC_LIST2)->ShowWindow(!m_bAll); GetDlgItem(IDC_LIST3)->ShowWindow(m_bAll); if(m_bAll) FillGrid2(); else { POSITION pos; pos=m_List3.GetFirstSelectedItemPosition(); if(pos) { int iItem=m_List3.GetNextSelectedItem(pos); CString name=m_List3.GetItemText (iItem, 0); CString temp; for(int i=0; i<m_ListBox1.GetCount (); i++) { m_ListBox1.GetText (i, temp); if(temp==name) { m_ListBox1.SetCurSel (i); OnSelchangeList1(); break; } } } } } void MySalary::FillGrid2() { if(m_List3array.GetSize ()==0)GetAllData(); m_List3.DeleteAllItems2 (); int ii=0; m_List3.m_arLabels.SetSize( m_List3array.GetSize (), 1 ); int count=0; for(ii=0; ii<m_List3.m_arLabels.GetSize (); ii++) { m_List3.m_arLabels.ElementAt (count++).Copy (m_List3array.ElementAt (ii)); } m_List3.m_arLabels.SetSize(count, 1); ii=count; m_List3.m_LabelCount=ii; m_List3.SetItemCountEx (ii); } void MySalary::GetAllData() { if(m_bInit==0)return; UpdateData(); CString date1,date2; date1.Format ("%d-%02d-01", m_year, m_month); date2.Format ("%d-%02d-31", m_year, m_month); int i; int g_nYearposTemp=g_nYearpos; BOOL bLastYear=0; BOOL bThisYear=0; BOOL bOldYear=0; if(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () ) bThisYear=1; else if(m_year==atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ()) bLastYear=1; else if(atoi(g_date.Left (4))-m_year>1 && g_hisyeararray.GetSize ()>=(atoi(g_date.Left (4))-m_year)) { bOldYear=1; } g_nYearpos=GetYearPos(m_year); CString filter="date>='"+date1+"' and date<='"+date2+"';;dat>='"+date1+"' and dat<='"+date2+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; //;time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��' g_sendhead.code[0]=59; g_sendhead.code[1]=60; g_sendhead.code[2]=14; g_sendhead.code[3]=61; g_sendhead.tabcount=4; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return; CArray<CStringArray, CStringArray>bukuanarray; CArray<CStringArray, CStringArray>waiterarray; CArray<CStringArray, CStringArray>singleincomearray; CArray<CStringArray, CStringArray>bukuanarray2; DataToArray(&bukuanarray,&waiterarray,&singleincomearray,&bukuanarray2); /////////////////// if(bLastYear)//�����ȥ��, ��ӽ���IJ��� { g_nYearpos=-1;//���� filter="date>='"+date1+"' and date<='"+date2+"';;time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; g_sendhead.code[0]=59; g_sendhead.code[1]=60; g_sendhead.code[2]=61; g_sendhead.tabcount=3; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArray<CStringArray, CStringArray>ThisYearbukuanarray; CArray<CStringArray, CStringArray>ThisYearwaiterarray; CArray<CStringArray, CStringArray>ThisYearbukuanarray2; DataToArray(&ThisYearbukuanarray,&ThisYearwaiterarray,&ThisYearbukuanarray2); int oldsize=bukuanarray.GetSize (); bukuanarray.SetSize(oldsize+ThisYearbukuanarray.GetSize ()); for(i=oldsize; i<oldsize+ThisYearbukuanarray.GetSize (); i++) { bukuanarray.ElementAt (i).Copy(ThisYearbukuanarray.ElementAt (i-oldsize)); } oldsize=bukuanarray2.GetSize (); bukuanarray2.SetSize(oldsize+ThisYearbukuanarray2.GetSize ()); for(i=oldsize; i<oldsize+ThisYearbukuanarray2.GetSize (); i++) { bukuanarray2.ElementAt (i).Copy(ThisYearbukuanarray2.ElementAt (i-oldsize)); } oldsize=waiterarray.GetSize (); waiterarray.SetSize(oldsize+ThisYearwaiterarray.GetSize ()); for(i=oldsize; i<oldsize+ThisYearwaiterarray.GetSize (); i++) { waiterarray.ElementAt (i).Copy(ThisYearwaiterarray.ElementAt (i-oldsize)); } } else if(bThisYear)//����ǽ���, ���ȥ��IJ��� { g_nYearpos=0;//ȥ�� filter="date>='"+date1+"' and date<='"+date2+"';;time2>='"+date1+"' and time2<='"+date2+"' and status<>'δ��'"; g_sendhead.code[0]=59; g_sendhead.code[1]=60; g_sendhead.code[2]=61; g_sendhead.tabcount=3; g_sendhead.bsql=0; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArray<CStringArray, CStringArray>LastYearbukuanarray; CArray<CStringArray, CStringArray>LastYearwaiterarray; CArray<CStringArray, CStringArray>LastYearbukuanarray2; DataToArray(&LastYearbukuanarray,&LastYearwaiterarray,&LastYearbukuanarray2); int oldsize=bukuanarray.GetSize (); bukuanarray.SetSize(oldsize+LastYearbukuanarray.GetSize ()); for(i=oldsize; i<oldsize+LastYearbukuanarray.GetSize (); i++) { bukuanarray.ElementAt (i).Copy(LastYearbukuanarray.ElementAt (i-oldsize)); } oldsize=bukuanarray2.GetSize (); bukuanarray2.SetSize(oldsize+LastYearbukuanarray2.GetSize ()); for(i=oldsize; i<oldsize+LastYearbukuanarray2.GetSize (); i++) { bukuanarray2.ElementAt (i).Copy(LastYearbukuanarray2.ElementAt (i-oldsize)); } oldsize=waiterarray.GetSize (); waiterarray.SetSize(oldsize+LastYearwaiterarray.GetSize ()); for(i=oldsize; i<oldsize+LastYearwaiterarray.GetSize (); i++) { waiterarray.ElementAt (i).Copy(LastYearwaiterarray.ElementAt (i-oldsize)); } } g_nYearpos=g_nYearposTemp; int ii=0; CString m_base,m_rate1,m_rate2,m_money1,m_money2; double sum1=0; double sum2=0; double sum3=0; double sum4=0; CString temp; m_List3array.SetSize(m_List1array.GetSize ()+1); for(int n=0; n<m_List1array.GetSize (); n++) { m_List3array.ElementAt (n).RemoveAll (); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).Add(""); m_List3array.ElementAt (n).SetAt (0, m_List1array.ElementAt (n).ElementAt (0)); CString name=m_List1array.ElementAt (n).ElementAt (0); float money1=0; float money2=0; int arraypos=0; for( ii=0; ii<bukuanarray.GetSize (); ii++) { if(bukuanarray.ElementAt (ii).ElementAt (2)=="3" || bukuanarray.ElementAt (ii).ElementAt (2)=="4") { /* BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } if(bWait2)//���ǻ�ױʦ { money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); }*/ if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } else if(bukuanarray.ElementAt (ii).ElementAt (2)=="2")//ѡƬ����, �����Ӱʦ�ͻ�ױʦ { BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } if(bWait2)//���ǻ�ױʦ { money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } else { if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue; money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0)); } } for( ii=0; ii<bukuanarray2.GetSize (); ii++) { if(bukuanarray2.ElementAt (ii).ElementAt (2)=="3" || bukuanarray2.ElementAt (ii).ElementAt (2)=="4") { BOOL bWait1=0; BOOL bWait2=0; IsWaiter(bukuanarray2.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2); if(bWait1)//������Ӱʦ { money1+=atof(bukuanarray2.ElementAt (ii).ElementAt (0)); } if(bWait2)//���ǻ�ױʦ { money1+=atof(bukuanarray2.ElementAt (ii).ElementAt (0)); } } } for( ii=0; ii<singleincomearray.GetSize (); ii++) { if(singleincomearray.ElementAt (ii).ElementAt (6)!=name)continue; money2+=atof(singleincomearray.ElementAt (ii).ElementAt (2)); } m_base = m_List1array.ElementAt (n).ElementAt (1); m_rate1 = m_List1array.ElementAt (n).ElementAt (2); m_rate2 = m_List1array.ElementAt (n).ElementAt (3); m_money1.Format ("%f", money1); ConvertToPrice(m_money1); m_money2.Format ("%f", money2); ConvertToPrice(m_money2); temp.Format ("%f", atof(m_base)+money1*atof(m_rate1)/100.0+money2*atof(m_rate2)/100.0 ); ConvertToPrice(temp); m_List3array.ElementAt (n).SetAt (1, temp); m_List3array.ElementAt (n).SetAt (2, m_base); m_List3array.ElementAt (n).SetAt (3, m_money1); m_List3array.ElementAt (n).SetAt (4, m_money2); sum1+=atof(temp); sum2+=atof(m_base); sum3+=money1; sum4+=money2; m_List3array.ElementAt (n).SetAt (5, m_rate1); m_List3array.ElementAt (n).SetAt (6, m_rate2); m_List3array.ElementAt (n).SetAt (7, m_List1array.ElementAt (n).ElementAt (5)); } temp.Format ("%f", sum1); ConvertToPrice(temp); m_List3array.ElementAt (n).Add ("ͳ��:"); m_List3array.ElementAt (n).Add (temp); temp.Format ("%f", sum2); ConvertToPrice(temp); m_List3array.ElementAt (n).Add (temp); temp.Format ("%f", sum3); ConvertToPrice(temp); m_List3array.ElementAt (n).Add (temp); temp.Format ("%f", sum4); ConvertToPrice(temp); m_List3array.ElementAt (n).Add (temp); m_List3array.ElementAt (n).Add (""); m_List3array.ElementAt (n).Add (""); m_List3array.ElementAt (n).Add (""); }