// MySalary.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "MySalary.h"
#include "MyMdi.H"
#include "SetSalary.h"
#include "ShowHisSalary.h"
#include "SalarySet4.h"
#include "SelExpendType.h"
#include "SelExportType.h"
#include <odbcinst.h>
#include <io.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////

IMPLEMENT_DYNCREATE(MySalary, MyFormView)
MySalary::MySalary() : MyFormView(MySalary::IDD)
{
	m_name = _T("");
	m_rate1 = _T("");
	m_rate2 = _T("");
	m_bz = _T("");
	m_base = _T("");
	m_salary = _T("");
	m_rate3 = _T("");
	m_rate4 = _T("");
	m_rate5 = _T("");
	m_money1 = _T("");
	m_money2 = _T("");
	m_money3 = _T("");
	m_money4 = _T("");
	m_money5 = _T("");
	m_money6 = _T("");
	m_bInit = 0;
	m_bAll = 0;
	m_year = atoi(g_date.Mid(0, 4));
	m_month = atoi(g_date.Mid(5, 2));
	m_date2 = GetTmFromStr(g_date);
	m_date1 = m_date2 - CTimeSpan(30, 0, 0, 0);
}

MySalary::~MySalary()
{
}

void MySalary::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);

	DDX_Control(pDX, IDC_LIST11, m_ListTemp);
	DDX_Control(pDX, IDC_COMBO7, m_comboname);
	DDX_Control(pDX, IDC_COMBO6, m_combocaltype);
	DDX_Control(pDX, IDC_LIST8, m_Listdigital);
	DDX_Control(pDX, IDC_LIST7, m_Listtake);
	DDX_Control(pDX, IDC_LIST4, m_List4);
	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_EDITyear, m_year);
	DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
	DDX_Text(pDX, IDC_EDITrate3, m_rate3);
	DDX_Text(pDX, IDC_EDITrate4, m_rate4);
	DDX_Text(pDX, IDC_EDITrate6, m_rate5);
	DDX_Text(pDX, IDC_EDITmoney1, m_money1);
	DDX_Text(pDX, IDC_EDITmoney2, m_money2);
	DDX_Text(pDX, IDC_EDITmoney3, m_money3);
	DDX_Text(pDX, IDC_EDITmoney4, m_money4);
	DDX_Text(pDX, IDC_EDITmoney5, m_money5);
	DDX_Text(pDX, IDC_EDITmoney6, m_money6);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_date1);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_date2);
}

BEGIN_MESSAGE_MAP(MySalary, MyFormView)
	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)
	ON_BN_CLICKED(IDC_BUT1, OnBut1)
	ON_BN_CLICKED(IDC_BUT2, OnBut2)
	ON_BN_CLICKED(IDC_BUT3, OnBut3)
	ON_CBN_SELCHANGE(IDC_COMBO6, OnSelchangeCombo6)
	ON_BN_CLICKED(IDC_BUT4, OnBut4)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
	ON_CBN_CLOSEUP(IDC_COMBO7, OnCloseupCombo7)
	ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
	ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
	ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER1, OnDatetimechangeDatetimepicker1)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER2, OnDatetimechangeDatetimepicker2)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// MySalary diagnostics

#ifdef _DEBUG
void MySalary::AssertValid() const
{
	MyFormView::AssertValid();
}

void MySalary::Dump(CDumpContext& dc) const
{
	MyFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
void MySalary::OnInitialUpdate()
{
	MyFormView::OnInitialUpdate();
	if (IsHasRights2new(25) == 0)
	{
		GetDlgItem(IDC_BUT1)->EnableWindow(0);
	}

	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
	m_combocaltype.AddString("����������");
	m_combocaltype.AddString("���㾫�����");
	m_combocaltype.AddString("����������");

	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_comboname.RefDroppedWidth();
	m_combocaltype.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 200;
	m_combocaltype.MoveWindow(rc2);
	m_static1.SetFont(&g_titlefont);

#ifdef CHILD_VERSION
	m_List1.SetHeadings("���,100;����,100;�������,100;�ҳ�����,100;��������,100;��ϵ���,100;���ʽ,100");
	m_ListTemp.SetHeadings("���,100;����,100;�������,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_List4.SetHeadings("������,100;�ҳ�����,100;��������,100;��ɽ��,100;����,100;����,100;����,100;����,100;��ɷ�ʽ,100;��ϵ�۸�,100;����,100");
	m_List4.LoadColumnInfo(139);
	m_Listtake.SetHeadings("������,100;�ҳ�����,100;��������,100;��ϵ,100;�۸�,100;����,100;����,100;��Ӱ,100;����,100;��ױʦ,100;����,100;��ϵ���,100");

#ifdef LKAY_VERSION
	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" );
#else
	//m_Listdigital.SetHeadings("������,100;�б�����,100;Ů������,100;��ϵ,100;�۸�,100;����,100;����1,100;����,100;����2,100;���,100;����3,100;����,50;����,50;���,50;ѡƬ����,50;��ϵ���,100");
	m_Listdigital.SetHeadings("������,100;�ҳ�����,100;��������,100;��ϵ,100;�۸�,100;����,100;����1,100;����,100;����2,100;���,100;����3,100;����,50;����,50;���,50;ѡƬ����,50;��ϵ���,100");
#endif

	m_Listtake.LoadColumnInfo(210);
	m_Listdigital.LoadColumnInfo(211);
#else
	m_List1.SetHeadings("���,100;����,100;�������,100;�б�����,100;Ů������,100;��ϵ���,100;���ʽ,100");
	m_ListTemp.SetHeadings("���,100;����,100;�������,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_List4.SetHeadings("������,100;�б�����,100;Ů������,100;��ɽ��,100;����,100;����,100;����,100;����,100;��ɷ�ʽ,100;��ϵ�۸�,100;����,100");
	m_List4.LoadColumnInfo(139);
	m_Listtake.SetHeadings("������,100;�б�����,100;Ů������,100;��ϵ,100;�۸�,100;����,100;����,100;��Ӱ,100;����,100;��ױʦ,100;����,100;��ϵ���,100");
	m_Listdigital.SetHeadings("������,100;�б�����,100;Ů������,100;��ϵ,100;�۸�,100;����,100;����1,100;����,100;����2,100;���,100;����3,100;����,50;����,50;���,50;ѡƬ����,50;��ϵ���,100");
	m_Listtake.LoadColumnInfo(210);
	m_Listdigital.LoadColumnInfo(211);
#endif
	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(25) == 0)
	{
		m_ListBox1.EnableWindow(0);
		m_comboname.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::FillGridTake(CArray<CStringArray, CStringArray>*array)
{
	m_Listtake.DeleteAllItems2();
	int ii = 0;
	m_Listtake.m_arLabels.SetSize(array->GetSize(), 1);
	int count = 0;
	for (ii = 0; ii < m_Listtake.m_arLabels.GetSize(); ii++)
	{
		m_Listtake.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
	}
	m_Listtake.m_arLabels.SetSize(count, 1);
	ii = count;
	m_Listtake.m_LabelCount = ii;
	m_Listtake.SetItemCountEx(ii);
}

void MySalary::FillGridDigital(CArray<CStringArray, CStringArray>*array)
{
	m_Listdigital.DeleteAllItems2();
	int ii = 0;
	m_Listdigital.m_arLabels.SetSize(array->GetSize(), 1);
	int count = 0;
	for (ii = 0; ii < m_Listdigital.m_arLabels.GetSize(); ii++)
	{
		m_Listdigital.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
	}
	m_Listdigital.m_arLabels.SetSize(count, 1);
	ii = count;
	m_Listdigital.m_LabelCount = ii;
	m_Listdigital.SetItemCountEx(ii);
}

void MySalary::OnBUTclose()
{
	GetParent()->SendMessage(WM_CLOSE);
}

void MySalary::GetData()
{
	m_bInit = 1;
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 34;	// renyuan��;
	g_sendhead.code[1] = 146;	// workrate��;
	g_sendhead.tabcount = 2;
	CString filter = _T("dimission='��ְ';");
	g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)return;
	DataToArray(&m_List1array, &m_Workratearray);

	int i = 0;
	m_ListBox1.ResetContent();
	for ( 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);
			m_comboname.AddString(g_user.name);
			m_comboname.SetCurSel(m_comboname.FindString(0, g_user.name));
			OnSelchangeList1();
			break;
		}
	}
}

void MySalary::OnChangeEDITyear()
{
}

void MySalary::OnChangeEDITmonth()
{
}

extern float GetSalaryFromRule(float fmoney, CString rule);
CString GetRule(CString name)
{
	CString oldrule = g_cominfoarray.ElementAt(0).ElementAt(77);
	CString header = "$" + name + ":";

	CString left, right;
	int pos = oldrule.Find(header);
	if (pos != -1)
	{
		right = oldrule.Right(oldrule.GetLength() - pos - header.GetLength());
		pos = right.Find("$");
		if (pos != -1)
			right = right.Left(pos);
		right = header + right;
		return right;
	}
	return "";
}

void MySalary::OnSelchangeList1()
{
	if (m_bInit == 0)return;
	UpdateData();
	GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(0);
	GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(0);
	if (m_bAll)
	{
		m_List3array.RemoveAll();
		FillGrid2();
		GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
		GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
		return;
	}
	CString name;
	/*	int pos=m_ListBox1.GetCurSel ();
	if(pos==-1)
	{
	m_spinyear.EnableWindow(1);
	m_spinmonth.EnableWindow(1);
	return;
	}
	m_ListBox1.GetText (pos, name);*/
	int pos = m_comboname.GetCurSel();
	if (pos == -1)
	{
		GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
		GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
		return;
	}
	m_comboname.GetWindowText(name);

	CString date1(_T("")), date2(_T(""));
	date1 = m_date1.Format("%Y-%m-%d");
	date2 = m_date2.Format("%Y-%m-%d");
	m_year = m_date1.GetYear();

	int i;
	int g_nYearposTemp = g_nYearpos;
	BOOL bLastYear = 0;
	BOOL bThisYear = 0;
#if JEFF_TEST_ON	// 2015��ʼ���ÿ�������;
	if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
	{
		g_nYearpos = -1;
		bThisYear = 1;
	}
	else if (m_year <= 2013 && g_hisyeararray.GetSize())
	{
		g_nYearpos = GetYearPos(m_year);
		bLastYear = 1;
	}
#else
	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;

	g_nYearpos = GetYearPos(m_year);
#endif
	///////////////
	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 + "'";
	CString temp;
	temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
	filter += temp;
	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 + "')";
	filter += temp;

	// filter��***��SQL����case 61��ġ�
	g_sendhead.code[0] = 34;	// reyuan;
	g_sendhead.code[1] = 59;	// dindanbukuanview;
	g_sendhead.code[2] = 60;	// dindan;
	g_sendhead.code[3] = 198;	// singleincomemoneyview;
	g_sendhead.code[4] = 61;	// dindan + dindanbukuan;
	g_sendhead.code[5] = 142;	// dindan + mywork;
	g_sendhead.code[6] = 192;	// dindan + dindanjd;
	g_sendhead.code[7] = 193;	// digitalview;
	g_sendhead.tabcount = 8;
	g_sendhead.bsql = 0;
	g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)
	{
		g_nYearpos = g_nYearposTemp;
		GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
		GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
		return;
	}
	CArray<CStringArray, CStringArray>userarray;
	CArray<CStringArray, CStringArray>bukuanarray;
	CArray<CStringArray, CStringArray>waiterarray;
	CArray<CStringArray, CStringArray>singleincomearray;
	CArray<CStringArray, CStringArray>bukuanarray2;
	CArray<CStringArray, CStringArray>takearray;
	CArray<CStringArray, CStringArray>digitalarray;
	DataToArray(&userarray, &bukuanarray, &waiterarray, &singleincomearray, &bukuanarray2, &m_List4array, &takearray, &digitalarray);

#if 0
	int k = 0;
	INT nArySize = bukuanarray.GetSize();
	for ( k = 0; k < nArySize; k++ )
	{
		WriteTextLog(_T("��%d����------------------------------------------------------"), k);
		WriteTextLog(_T("�տ��%s"), bukuanarray.ElementAt(k).ElementAt(0));
		WriteTextLog(_T("�տ����ڣ�%s"), bukuanarray.ElementAt(k).ElementAt(1));
		WriteTextLog(_T("�տ����ͣ�%s"), bukuanarray.ElementAt(k).ElementAt(2));
		WriteTextLog(_T("�տ�˿�1��%s"), bukuanarray.ElementAt(k).ElementAt(3));
		WriteTextLog(_T("�տ�˿�2��%s"), bukuanarray.ElementAt(k).ElementAt(4));
		WriteTextLog(_T("�տ���ţ�%s"), bukuanarray.ElementAt(k).ElementAt(5));
		WriteTextLog(_T("�տ���Ա��%s"), bukuanarray.ElementAt(k).ElementAt(6));
		WriteTextLog(_T("�տע��%s"), bukuanarray.ElementAt(k).ElementAt(7));
		WriteTextLog(_T("�տ���ϵ���ͣ�%s"), bukuanarray.ElementAt(k).ElementAt(8));
		WriteTextLog(_T("�տ���ϵ���ƣ�%s"), bukuanarray.ElementAt(k).ElementAt(9));
		WriteTextLog(_T("�տ�ʽ��%s"), bukuanarray.ElementAt(k).ElementAt(10));
		WriteTextLog(_T("\n"));
	}

	WriteTextLog(_T("\n"));
	nArySize = bukuanarray2.GetSize();
	for ( k = 0; k < nArySize; k++ )
	{
		WriteTextLog(_T("��%d����------------------------------------------------------"), k);
		WriteTextLog(_T("�տ��%s"), bukuanarray2.ElementAt(k).ElementAt(0));
		WriteTextLog(_T("�տ����ڣ�%s"), bukuanarray2.ElementAt(k).ElementAt(1));
		WriteTextLog(_T("�տ����ͣ�%s"), bukuanarray2.ElementAt(k).ElementAt(2));
		WriteTextLog(_T("�տ�˿�1��%s"), bukuanarray2.ElementAt(k).ElementAt(3));
		WriteTextLog(_T("�տ�˿�2��%s"), bukuanarray2.ElementAt(k).ElementAt(4));
		WriteTextLog(_T("�տ���ţ�%s"), bukuanarray2.ElementAt(k).ElementAt(5));
		WriteTextLog(_T("�տ���Ա��%s"), bukuanarray2.ElementAt(k).ElementAt(6));
		WriteTextLog(_T("�տע��%s"), bukuanarray2.ElementAt(k).ElementAt(7));
		WriteTextLog(_T("�տ���ϵ���ͣ�%s"), bukuanarray2.ElementAt(k).ElementAt(8));
		WriteTextLog(_T("�տ���ϵ���ƣ�%s"), bukuanarray2.ElementAt(k).ElementAt(9));
		WriteTextLog(_T("�տ�ʽ��%s"), bukuanarray2.ElementAt(k).ElementAt(10));
		WriteTextLog(_T("\n"));
	}

// 	WriteTextLog(_T("\n"));
// 	nArySize = waiterarray.GetSize();
// 	for ( k = 0; k < nArySize; k++ )
// 	{
// 		if ( waiterarray.ElementAt(k).ElementAt(0) == _T(""))
// 		WriteTextLog(_T("��%d����------------------------------------------------------"), k);
// 		WriteTextLog(_T("�����ţ�%s"), waiterarray.ElementAt(k).ElementAt(0));
// 		WriteTextLog(_T("��Ӱʦ1��%s"), waiterarray.ElementAt(k).ElementAt(1));
// 		WriteTextLog(_T("��Ӱʦ2��%s"), waiterarray.ElementAt(k).ElementAt(2));
// 		WriteTextLog(_T("��Ӱʦ3��%s"), waiterarray.ElementAt(k).ElementAt(3));
// 		WriteTextLog(_T("��Ӱʦ4��%s"), waiterarray.ElementAt(k).ElementAt(4));
// 		WriteTextLog(_T("��Ӱʦ1�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(5));
// 		WriteTextLog(_T("��Ӱʦ2�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(6));
// 		WriteTextLog(_T("��Ӱʦ3�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(7));
// 		WriteTextLog(_T("��Ӱʦ4�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(8));
// 		WriteTextLog(_T("��ױʦ1��%s"), waiterarray.ElementAt(k).ElementAt(9));
// 		WriteTextLog(_T("��ױʦ2��%s"), waiterarray.ElementAt(k).ElementAt(10));
// 		WriteTextLog(_T("��ױʦ3��%s"), waiterarray.ElementAt(k).ElementAt(11));
// 		WriteTextLog(_T("��ױʦ4��%s"), waiterarray.ElementAt(k).ElementAt(12));
// 		WriteTextLog(_T("��ױʦ1�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(13));
// 		WriteTextLog(_T("��ױʦ2�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(14));
// 		WriteTextLog(_T("��ױʦ3�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(15));
// 		WriteTextLog(_T("��ױʦ4�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(16));
// 		WriteTextLog(_T("����1��%s"), waiterarray.ElementAt(k).ElementAt(17));
// 		WriteTextLog(_T("����2��%s"), waiterarray.ElementAt(k).ElementAt(18));
// 		WriteTextLog(_T("����1�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(19));
// 		WriteTextLog(_T("����2�ٷֱȣ�%s"), waiterarray.ElementAt(k).ElementAt(20));
// 		
// 		if ( k == 8 )
// 			OutputDebugString(waiterarray.ElementAt(k).ElementAt(21));
// 		WriteTextLog(_T("�������ڣ�%s"), waiterarray.ElementAt(k).ElementAt(21));
// 		WriteTextLog(_T("����״̬��%s"), waiterarray.ElementAt(k).ElementAt(22));
// 
// 		WriteTextLog(_T("\n"));
// 	}
#endif

	///////////////////
	if (bLastYear)//�����ȥ��, ��ӽ���IJ���;
	{
		g_nYearpos = -1;//����
		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 + "'";
		CString temp;
		temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
		filter += temp;
		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 + "')";
		filter += temp;
		g_sendhead.code[0] = 34;		// reyuan;
		g_sendhead.code[1] = 59;		// dindanbukuanview;
		g_sendhead.code[2] = 60;		// dindan;
		g_sendhead.code[3] = 198;		// singleincomemoneyview;
		g_sendhead.code[4] = 61;		// dindan + dindanbukuan;
		g_sendhead.code[5] = 142;		// dindan + mywork;
		g_sendhead.code[6] = 192;		// dindan + dindanjd;
		g_sendhead.code[7] = 193;		// digitalview;
		g_sendhead.tabcount = 8;
		g_sendhead.bsql = 0;
		g_pMainWnd->ProcessChatMessageRequest2(filter);
		if (g_bSendOK == 0)
		{
			g_nYearpos = g_nYearposTemp;
			GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
			GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
			return;
		}
		CArray<CStringArray, CStringArray>ThisYearbukuanarray;
		CArray<CStringArray, CStringArray>ThisYearwaiterarray;
		CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
		CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
		CArray<CStringArray, CStringArray>ThisYearm_List4array;
		CArray<CStringArray, CStringArray>ThisYeartakearray;
		CArray<CStringArray, CStringArray>ThisYeardigitalarray;
		DataToArray(&userarray, &ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);

		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 = waiterarray.GetSize();
		waiterarray.SetSize(oldsize + ThisYearwaiterarray.GetSize());
		for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
		{
			waiterarray.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
		}

		oldsize = singleincomearray.GetSize();
		singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
		for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
		{
			singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.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 = m_List4array.GetSize();
		m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
		for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
		{
			m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
		}
		oldsize = takearray.GetSize();
		takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
		for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
		{
			takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
		}
		oldsize = digitalarray.GetSize();
		digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
		for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
		{
			digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
		}
	}
	else if (bThisYear)//����ǽ���, ���ȥ��IJ���
	{
		g_nYearpos = 0;//ȥ��
		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 + "'";
		CString temp;
		temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + name + "' or [waiter12]='" + name + "' or [waiter2]='" + name + "' or [waiter22]='" + name + "')";
		filter += temp;
		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 + "')";
		filter += temp;

		g_sendhead.code[0] = 59;		// dindanbukuanview;
		g_sendhead.code[1] = 60;		// dindan;
		g_sendhead.code[2] = 198;		// singleincomemoneyview;
		g_sendhead.code[3] = 61;		// dindan + bukuan;
		g_sendhead.code[4] = 142;		// mywork;
		g_sendhead.code[5] = 192;		// dindanjd;
		g_sendhead.code[6] = 193;		// digitalview;
		g_sendhead.tabcount = 7;

		g_sendhead.bsql = 0;
		g_pMainWnd->ProcessChatMessageRequest2(filter);
		if (g_bSendOK == 0)
		{
			g_nYearpos = g_nYearposTemp;
			GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
			GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
			return;
		}
		CArray<CStringArray, CStringArray>ThisYearbukuanarray;
		CArray<CStringArray, CStringArray>ThisYearwaiterarray;
		CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
		CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
		CArray<CStringArray, CStringArray>ThisYearm_List4array;
		CArray<CStringArray, CStringArray>ThisYeartakearray;
		CArray<CStringArray, CStringArray>ThisYeardigitalarray;
		DataToArray(&ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);

		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 = waiterarray.GetSize();
		waiterarray.SetSize(oldsize + ThisYearwaiterarray.GetSize());
		for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
		{
			waiterarray.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
		}

		oldsize = singleincomearray.GetSize();
		singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
		for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
		{
			singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.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 = m_List4array.GetSize();
		m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
		for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
		{
			m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
		}
		oldsize = takearray.GetSize();
		takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
		for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
		{
			takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
		}
		oldsize = digitalarray.GetSize();
		digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
		for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
		{
			digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
		}
	}

	g_nYearpos = g_nYearposTemp;

	CArray<CStringArray, CStringArray>array;
	array.SetSize(bukuanarray.GetSize() * 4 + bukuanarray2.GetSize() * 4 + singleincomearray.GetSize());

	float money1 = 0;
	float money2 = 0;
	float money3 = 0;
	float money4 = 0;
	float money5 = 0;
	CArray<float, float>moneyarray;
	CStringArray typearray;
	int typepos;

	int ii = 0;
	int arraypos = 0;
	for ( ii = 0; ii < bukuanarray.GetSize(); ii++)
	{
		//	printf("idx=%d, id=%s, money=%s, ren=%s, bz=%s, txtype=%s\n", ii, bukuanarray.ElementAt(ii).ElementAt(5), bukuanarray.ElementAt(ii).ElementAt(0), bukuanarray.ElementAt(ii).ElementAt(6),bukuanarray.ElementAt(ii).ElementAt(7), bukuanarray.ElementAt(ii).ElementAt(8));
		array.ElementAt(arraypos).RemoveAll();
		if (bukuanarray.ElementAt(ii).ElementAt(2) == "3" || bukuanarray.ElementAt(ii).ElementAt(2) == "4")//ԤԼ�տ�/ԤԼ����
		{
			BOOL bWait1 = 0;
			BOOL bWait2 = 0;
			float fscale1 = 0;
			float fscale2 = 0;
			IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
			//	printf("��Ӱʦ=%s, ��ױʦ=%s\n", g_cominfoarray.ElementAt(0).ElementAt(56), g_cominfoarray.ElementAt(0).ElementAt(42));
			if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//������Ӱʦ
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "��Ӱǰ��");
				if (typepos == -1)
				{
					typearray.Add("��Ӱǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}
			if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//���ǻ�ױʦ
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "��Ӱǰ��");
				if (typepos == -1)
				{
					typearray.Add("��Ӱǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}

			IsWaiter3(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2);//����1������2
			if (bWait1)
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "ǰ��");
				if (typepos == -1)
				{
					typearray.Add("ǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}
			if (bWait2)
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "ǰ��");
				if (typepos == -1)
				{
					typearray.Add("ǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}
			continue;
		}
		else if (bukuanarray.ElementAt(ii).ElementAt(7) == "ѡƬ����")//ѡƬ����, �����Ӱʦ�ͻ�ױʦ
		{
			BOOL bWait1 = 0;
			BOOL bWait2 = 0;
			float fscale1 = 0;
			float fscale2 = 0;
			IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
			if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(41)))//������Ӱʦ
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1);
				ConvertToPrice(temp);
				money5 += atof(temp);
				typepos = FindArray(&typearray, "��ӰѡƬ����");
				if (typepos == -1)
				{
					typearray.Add("��ӰѡƬ����");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}
			if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(42)))//���ǻ�ױʦ
			{
				temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2);
				ConvertToPrice(temp);
				money5 += atof(temp);
#ifdef CHILD_VERSION
				typepos = FindArray(&typearray, "����ѡƬ����");
#else
				typepos = FindArray(&typearray, "��ױѡƬ����");
#endif
				if (typepos == -1)
				{
#ifdef CHILD_VERSION
					typearray.Add("����ѡƬ����");
#else
					typearray.Add("��ױѡƬ����");
#endif
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
				}
				array.ElementAt(arraypos).Add(temp);
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
#ifdef CHILD_VERSION
				array.ElementAt(arraypos).Add("����ѡƬ����");
#else
				array.ElementAt(arraypos).Add("��ױѡƬ����");
#endif
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
				arraypos++;
			}
			if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
				continue;

			temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0)));
			ConvertToPrice(temp);
			money5 += atof(temp);
			typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
			if (typepos == -1)
			{
				typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
				moneyarray.Add(atof(temp));
			}
			else
			{
				moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
		}
		else
		{
			if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
				continue;

			temp.Format("%0.2f", atof(bukuanarray.ElementAt(ii).ElementAt(0)));
			ConvertToPrice(temp);
			typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
			if (typepos == -1)
			{
				typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
				moneyarray.Add(atof(temp));
			}
			else
			{
				moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
			}
			money2 += atof(temp);
			array.ElementAt(arraypos).Add(temp);
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(1));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(7));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(3));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(4));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(8));
			array.ElementAt(arraypos).Add(bukuanarray.ElementAt(ii).ElementAt(10));
		}
		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;
			float fscale1 = 0;
			float fscale2 = 0;
			IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
			if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//������Ӱʦ
			{
				temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "��Ӱǰ��");
				if (typepos == -1)
				{
					typearray.Add("��Ӱǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
				arraypos++;
			}
			if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//���ǻ�ױʦ
			{
				temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2);
				ConvertToPrice(temp);
				money1 += atof(temp);
				typepos = FindArray(&typearray, "��Ӱǰ��");
				if (typepos == -1)
				{
					typearray.Add("��Ӱǰ��");
					moneyarray.Add(atof(temp));
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + 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));
				array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
				array.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
				arraypos++;
			}
			continue;
		}
	}

	//��������
	for (ii = 0; ii < singleincomearray.GetSize(); ii++)
	{
		array.ElementAt(arraypos).RemoveAll();
		temp.Format("%0.2f", atof(singleincomearray.ElementAt(ii).ElementAt(4)));
		ConvertToPrice(temp);
		if (singleincomearray.ElementAt(ii).ElementAt(3) == "��Ӱ����")
			money2 += atof(temp);
#ifndef CHILD_VERSION
		else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��ױ����")
#else
		else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��������")
#endif
			money3 += atof(temp);
		else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��ϵ����")
			money4 += atof(temp);
		else if (singleincomearray.ElementAt(ii).ElementAt(3) == "ѡƬ����")
			money5 += atof(temp);

		typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
		if (typepos == -1)
		{
			typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
			moneyarray.Add(atof(temp));
		}
		else
		{
			moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
		}


		array.ElementAt(arraypos).Add(temp);
		array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(5));
		array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(3));
		array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(1));
		array.ElementAt(arraypos).Add("");
		array.ElementAt(arraypos).Add("");

		array.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(7));
		arraypos++;
	}
	array.SetSize(arraypos);

	FillGrid(&array);
	FillGrid4(m_money6);
	FillGridTake(&takearray);
	FillGridDigital(&digitalarray);
	if (userarray.GetSize())
	{
		m_name = userarray.ElementAt(0).ElementAt(0);
		m_base = userarray.ElementAt(0).ElementAt(1);
		CString baseexpendtype = userarray.ElementAt(0).ElementAt(2);
		CString baseexpendtype2 = userarray.ElementAt(0).ElementAt(3);
		m_bz = userarray.ElementAt(0).ElementAt(4);
		typepos = FindArray(&typearray, "ǰ��");
		if (typepos == -1)
		{
			m_money1 = "0";
			money1 = 0;
		}
		else
		{
			money1 = moneyarray.ElementAt(typepos);
		}

		float money12 = 0;
		typepos = FindArray(&typearray, "��Ӱǰ��");
		if (typepos == -1)
		{
			money12 = 0;
		}
		else
		{
			money12 = moneyarray.ElementAt(typepos);
		}

		m_money1.Format("%0.2f", money1 + money12);


		money2 = 0;
		float realmoney2 = 0;
		for (int i = 0; i < typearray.GetSize(); i++)
		{
			if ("ǰ��" == typearray.ElementAt(i))continue;
			if ("��Ӱǰ��" == typearray.ElementAt(i))continue;
			realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
			money2 += moneyarray.ElementAt(i);
		}
		m_money2.Format("%0.2f", money2);

		ConvertToPrice(m_money6);
		m_salary.Format("%0.2f", atof(m_base) + atof(m_money6) + realmoney2 + GetSalaryFromRule(money1, GetRule(baseexpendtype)) + GetSalaryFromRule(money12, GetRule(baseexpendtype2)));
		ConvertToPrice(m_salary);
	}
	else
	{
		m_name = _T("");
		m_base = _T("");
		m_bz = _T("");
		m_salary = _T("");
		m_money1 = _T("");
		m_money2 = _T("");
		m_money3 = _T("");
		m_money4 = _T("");
		m_money5 = _T("");
		m_money6 = _T("");
	}

	UpdateData(false);
	GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
	GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
	//////////////////////////////

	CString totalstr, str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12;
	float sum = 0;
	int waiter1count = 0;
	int waiter12count = 0;
	int waiter2count = 0;
	int waiter22count = 0;
	for (i = 0; i < m_Listtake.GetItemCount(); i++)
	{
		field2 = m_Listtake.GetItemText(i, 3);
		field3 = m_Listtake.GetItemText(i, 4);
		sum += atof(field3);
		field4 = m_Listtake.GetItemText(i, 5);
		field5 = m_Listtake.GetItemText(i, 6);
		field6 = m_Listtake.GetItemText(i, 7);
		field7 = m_Listtake.GetItemText(i, 8);
		field8 = m_Listtake.GetItemText(i, 9);
		field9 = m_Listtake.GetItemText(i, 10);
		if (field6 == name)waiter1count++;
		if (field7 == name)waiter12count++;
		if (field8 == name)waiter2count++;
		if (field9 == name)waiter22count++;

	}
	str = "��Ӱʦ������\r\n";
	totalstr += str;
	str.Format("��Ӱ: %d\r\n", waiter1count); totalstr += str;
	str.Format("����: %d\r\n", waiter12count); totalstr += str;
#ifdef CHILD_VERSION
	str.Format("����: %d\r\n", waiter2count); totalstr += str;
#else
	str.Format("��ױ: %d\r\n", waiter2count); totalstr += str;
#endif
	str.Format("����: %d\r\n", waiter22count); totalstr += str;
	str.Format("�����ܽ��: %0.2f\r\n\r\n", sum); totalstr += str;

	float sum1 = 0;
	float sum2 = 0;
	float sum3 = 0;
	float sum12 = 0;
	float sum22 = 0;
	float sum32 = 0;
	int sum13 = 0;
	int sum23 = 0;
	int sum33 = 0;
	int sum14 = 0;
	int sum24 = 0;
	int sum34 = 0;
	int count1 = 0;
	int count2 = 0;
	int count3 = 0;
	for (i = 0; i < m_Listdigital.GetItemCount(); i++)
	{
		field2 = m_Listdigital.GetItemText(i, 3);
		field3 = m_Listdigital.GetItemText(i, 4);
		field4 = m_Listdigital.GetItemText(i, 5);
		field5 = m_Listdigital.GetItemText(i, 6);
		field6 = m_Listdigital.GetItemText(i, 7);
		field7 = m_Listdigital.GetItemText(i, 8);
		field8 = m_Listdigital.GetItemText(i, 9);
		field9 = m_Listdigital.GetItemText(i, 10);
		field10 = m_Listdigital.GetItemText(i, 14);
		field11 = m_Listdigital.GetItemText(i, 16);
		field12 = m_Listdigital.GetItemText(i, 17);
		if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == name && field5 >= date1 && field5 <= date2)
		{
			sum1 += atof(field3);
			sum12 += atof(field10);
			sum13 += atoi(field11);
			sum14 += atoi(field12);
			count1++;
		}
		if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == name && field7 >= date1 && field7 <= date2)
		{
			sum2 += atof(field3);
			sum22 += atof(field10);
			sum23 += atoi(field11);
			sum24 += atoi(field12);
			count2++;
		}
		if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == name && field9 >= date1 && field9 <= date2)
		{
			sum3 += atof(field3);
			sum32 += atof(field10);
			sum33 += atoi(field11);
			sum34 += atoi(field12);
			count3++;
		}
	}
	str = "��Ƭ�뾫�������\r\n";
	totalstr += str;
#ifdef LKAY_VERSION
	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;
	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;
	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;
#else
	str.Format("����: %d�� \r\n�������:%0.2f \r\nѡƬ����:%0.2f\r\n\r\n", count1, sum1, sum12); totalstr += str;
	str.Format("����: %d�� \r\n�������:%0.2f \r\nѡƬ����:%0.2f\r\n\r\n", count2, sum2, sum22); totalstr += str;
	str.Format("���: %d�� \r\n�������:%0.2f \r\nѡƬ����:%0.2f\r\n\r\n", count3, sum3, sum32); totalstr += str;
#endif
	GetDlgItem(IDC_EDITbz2)->SetWindowText(totalstr);
}

void MySalary::OnBUTshowall() //IDC_BUTshowall�鿴ȫ��;
{
	// TODO: Add your control notification handler code here
	m_bAll = !m_bAll;
	if (m_bAll)
	{
		GetDlgItem(IDC_BUTshowall)->SetWindowText("�鿴����");
		GetDlgItem(IDC_BUT3)->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_BUT3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTshowall)->SetWindowText("�鿴ȫ��");
	}
	GetDlgItem(IDC_BUTshowall)->Invalidate();
	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_STATIC26)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC27)->ShowWindow(!m_bAll);
	//	GetDlgItem(IDC_BUTTON5)->ShowWindow(!m_bAll);
	//	GetDlgItem(IDC_BUTTON6)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_BUTTON7)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_BUTTON8)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_BUTTON14)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC9)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC12)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC16)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC10)->ShowWindow(!m_bAll);
	//	GetDlgItem(IDC_EDITname)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITbz)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITbz2)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITbase)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITmoney1)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITmoney2)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITsalary)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_BUTTON4)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_EDITmoney6)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_STATIC15)->ShowWindow(!m_bAll);

	GetDlgItem(IDC_LIST4)->ShowWindow(!m_bAll);
	//	GetDlgItem(IDC_LIST1)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_LIST2)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_LIST3)->ShowWindow(m_bAll);
	GetDlgItem(IDC_LIST7)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_LIST8)->ShowWindow(!m_bAll);
	GetDlgItem(IDC_COMBO7)->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);
					m_comboname.AddString(name);
					m_comboname.SetCurSel(m_comboname.FindString(0, name));
					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, temp;

	date1 = m_date1.Format("%Y-%m-%d");
	date2 = m_date2.Format("%Y-%m-%d");
	m_year = m_date1.GetYear();

	int i = 0;
	int g_nYearposTemp = g_nYearpos;
	BOOL bLastYear = 0;
	BOOL bThisYear = 0;
#if JEFF_TEST_ON	// 2015��ʼ���ÿ�������;
	if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
	{
		g_nYearpos = -1;
		bThisYear = 1;
	}
	else if (m_year <= 2013 && g_hisyeararray.GetSize())
	{
		g_nYearpos = GetYearPos(m_year);
		bLastYear = 1;
	}
#else
	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;

	g_nYearpos = GetYearPos(m_year);
#endif

	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 + "'";

	g_sendhead.code[0] = 59;		// dindanbukuanview
	g_sendhead.code[1] = 60;		// dindan
	g_sendhead.code[2] = 198;		// singleincomemoneyview	����2��¼���
	g_sendhead.code[3] = 61;		// TX��Ϣarr
	g_sendhead.code[4] = 142;		// dindan_waiterarr
	g_sendhead.tabcount = 5;
	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, &m_List4array);
	///////////////////
	if (bLastYear)//�����ȥ��, ��ӽ���IJ���
	{
		g_nYearpos = -1;//����

		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 + "'";
		g_sendhead.code[0] = 59;
		g_sendhead.code[1] = 60;
		g_sendhead.code[2] = 198;
		g_sendhead.code[3] = 61;
		g_sendhead.code[4] = 142;
		g_sendhead.tabcount = 5;
		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>LastYearsingleincomearray;
		CArray<CStringArray, CStringArray>LastYearbukuanarray2;
		CArray<CStringArray, CStringArray>LastYearm_List4array;

		DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
		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 = singleincomearray.GetSize();
		singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
		for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
		{
			singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.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));
		}

		oldsize = m_List4array.GetSize();
		m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
		for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
		{
			m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
		}
	}
	else if (bThisYear)//����ǽ���, ���ȥ��IJ���
	{
		g_nYearpos = 0;//ȥ��
		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 + "'";
		g_sendhead.code[0] = 59;
		g_sendhead.code[1] = 60;
		g_sendhead.code[2] = 198;
		g_sendhead.code[3] = 61;
		g_sendhead.code[4] = 142;
		g_sendhead.tabcount = 5;
		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>LastYearsingleincomearray;
		CArray<CStringArray, CStringArray>LastYearbukuanarray2;
		CArray<CStringArray, CStringArray>LastYearm_List4array;

		DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
		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 = singleincomearray.GetSize();
		singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
		for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
		{
			singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.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));
		}

		oldsize = m_List4array.GetSize();
		m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
		for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
		{
			m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
		}
	}
	g_nYearpos = g_nYearposTemp;

	int ii = 0;
	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;
	double sum1 = 0;
	double sum2 = 0;
	double sum3 = 0;
	double sum4 = 0;
	double sum5 = 0;
	double sum6 = 0;
	double sum7 = 0;

	m_List3array.SetSize(m_List1array.GetSize() + 1);

	int n = 0;
	for ( 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;
		float money3 = 0;
		float money4 = 0;
		float money5 = 0;
		float money6 = 0;
		float ftemp;
		CArray<float, float>moneyarray;
		CStringArray typearray;
		int typepos;

		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;
				float fscale1 = 0;
				float fscale2 = 0;
				IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
				if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//������Ӱʦ
				{
					money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					typepos = FindArray(&typearray, "��Ӱǰ��");
					if (typepos == -1)
					{
						typearray.Add("��Ӱǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//���ǻ�ױʦ
				{
					money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
					typepos = FindArray(&typearray, "��Ӱǰ��");
					if (typepos == -1)
					{
						typearray.Add("��Ӱǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				IsWaiter3(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2);
				if (bWait1)
				{
					money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					typepos = FindArray(&typearray, "ǰ��");
					if (typepos == -1)
					{
						typearray.Add("ǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				if (bWait2)
				{
					money1 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
					typepos = FindArray(&typearray, "ǰ��");
					if (typepos == -1)
					{
						typearray.Add("ǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
			}
			else if (bukuanarray.ElementAt(ii).ElementAt(7) == "ѡƬ����")//ѡƬ����, �����Ӱʦ�ͻ�ױʦ
			{
				BOOL bWait1 = 0;
				BOOL bWait2 = 0;
				float fscale1 = 0;
				float fscale2 = 0;

				IsWaiter2(bukuanarray.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 0, date1, date2);
				if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(41)))//������Ӱʦ
				{
					money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale1;
					typepos = FindArray(&typearray, "��ӰѡƬ����");
					if (typepos == -1)
					{
						typearray.Add("��ӰѡƬ����");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(42)))//���ǻ�ױʦ
				{
					money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
					ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0))*fscale2;
#ifdef CHILD_VERSION
					typepos = FindArray(&typearray, "����ѡƬ����");
#else
					typepos = FindArray(&typearray, "��ױѡƬ����");
#endif
					if (typepos == -1)
					{
#ifdef CHILD_VERSION
						typearray.Add("����ѡƬ����");
#else
						typearray.Add("��ױѡƬ����");
#endif
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				if (bukuanarray.ElementAt(ii).ElementAt(6) != name)continue;
				money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
				ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0));
				typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
				if (typepos == -1)
				{
					typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
					moneyarray.Add(ftemp);
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
				}
			}
			else
			{
				if (bukuanarray.ElementAt(ii).ElementAt(6) != name)
					continue;

				if (bukuanarray.ElementAt(ii).ElementAt(2) == "5")
				{
					money2 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
				}
				else if (bukuanarray.ElementAt(ii).ElementAt(2) == "1")
				{
					money3 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
				}
				else if (bukuanarray.ElementAt(ii).ElementAt(2) == "6")
				{
					money4 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
				}
				else if (bukuanarray.ElementAt(ii).ElementAt(2) == "2")
				{
					money5 += atof(bukuanarray.ElementAt(ii).ElementAt(0));
				}

				ftemp = atof(bukuanarray.ElementAt(ii).ElementAt(0));
				typepos = FindArray(&typearray, bukuanarray.ElementAt(ii).ElementAt(7));
				if (typepos == -1)
				{
					typearray.Add(bukuanarray.ElementAt(ii).ElementAt(7));
					moneyarray.Add(ftemp);
				}
				else
				{
					moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
				}
			}
		}
		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;
				float fscale1 = 0;
				float fscale2 = 0;
				IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), name, &waiterarray, bWait1, bWait2, fscale1, fscale2, 1, date1, date2);
				if (bWait1 && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//������Ӱʦ
				{
					money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
					ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
					typepos = FindArray(&typearray, "��Ӱǰ��");
					if (typepos == -1)
					{
						typearray.Add("��Ӱǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
				if (bWait2 && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//���ǻ�ױʦ
				{
					money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
					ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
					typepos = FindArray(&typearray, "��Ӱǰ��");
					if (typepos == -1)
					{
						typearray.Add("��Ӱǰ��");
						moneyarray.Add(ftemp);
					}
					else
					{
						moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
					}
				}
			}
		}

		for (ii = 0; ii < singleincomearray.GetSize(); ii++)
		{
			if (singleincomearray.ElementAt(ii).ElementAt(2) != name)continue;
			if (singleincomearray.ElementAt(ii).ElementAt(3) == "��Ӱ����")
				money2 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
#ifndef CHILD_VERSION
			else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��ױ����")
#else
			else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��������")
#endif
				money3 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
			else if (singleincomearray.ElementAt(ii).ElementAt(3) == "��ϵ����")
				money4 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
			else if (singleincomearray.ElementAt(ii).ElementAt(3) == "ѡƬ����")
				money5 += atof(singleincomearray.ElementAt(ii).ElementAt(4));

			ftemp = atof(singleincomearray.ElementAt(ii).ElementAt(4));
			typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
			if (typepos == -1)
			{
				typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
				moneyarray.Add(ftemp);
			}
			else
			{
				moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
			}
		}
		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_bz = m_List1array.ElementAt(n).ElementAt(4);
		m_rate3 = m_List1array.ElementAt(n).ElementAt(6);
		m_rate4 = m_List1array.ElementAt(n).ElementAt(7);
		m_rate5 = m_List1array.ElementAt(n).ElementAt(8);

		typepos = FindArray(&typearray, "ǰ��");
		if (typepos == -1)
		{
			m_money1 = "0";
			money1 = 0;
		}
		else
		{
			money1 = moneyarray.ElementAt(typepos);
		}
		float money12 = 0;
		typepos = FindArray(&typearray, "��Ӱǰ��");
		if (typepos == -1)
		{
			money12 = 0;
		}
		else
		{
			money12 = moneyarray.ElementAt(typepos);
		}
		m_money1.Format("%0.2f", money1 + money12);
		money2 = 0;
		float realmoney2 = 0;
		for (int i = 0; i < typearray.GetSize(); i++)
		{
			if ("ǰ��" == typearray.ElementAt(i))continue;
			if ("��Ӱǰ��" == typearray.ElementAt(i))continue;
			realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
			money2 += moneyarray.ElementAt(i);
		}
		m_money2.Format("%0.2f", money2);

		GetMoney6(name, money6);

		temp.Format("%0.2f", atof(m_base) + money6 + realmoney2 + GetSalaryFromRule(money1, GetRule(m_rate1)) + GetSalaryFromRule(money12, GetRule(m_rate2)));
		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;

		temp.Format("%0.2f", money6);	ConvertToPrice(temp);
		m_List3array.ElementAt(n).SetAt(5, temp);
		m_List3array.ElementAt(n).SetAt(6, m_List1array.ElementAt(n).ElementAt(5));
		if (m_bz.GetLength() > 100)
			m_List3array.ElementAt(n).SetAt(7, m_bz.Left(100) + "..");
		else
			m_List3array.ElementAt(n).SetAt(7, m_bz);
	}

	temp.Format("%0.2f", sum1);
	ConvertToPrice(temp);
	m_List3array.ElementAt(n).Add("ͳ��:");
	m_List3array.ElementAt(n).Add(temp);
	temp.Format("%0.2f", sum2);
	ConvertToPrice(temp);
	m_List3array.ElementAt(n).Add(temp);
	temp.Format("%0.2f", sum3);
	ConvertToPrice(temp);
	m_List3array.ElementAt(n).Add(temp);
	temp.Format("%0.2f", sum4);
	ConvertToPrice(temp);
	m_List3array.ElementAt(n).Add(temp);

	m_List3array.ElementAt(n).Add("");
	m_List3array.ElementAt(n).Add("");
	m_List3array.ElementAt(n).Add("");
}

void MySalary::FillGrid4(CString &sRet)
{
	sRet = "0";
	if (m_Workratearray.GetSize() == 0)
	{
		/*
		#ifdef CHILD_VERSION
		AfxMessageBox("��Ӱʦ������ʦ������ʦ��ɷ���δ���ã����ڲ˵�-����ʼ����-����������������!");
		#else
		AfxMessageBox("��Ӱʦ����ױʦ������ʦ��ɷ���δ���ã����ڲ˵�-����ʼ����-����������������!");
		#endif*/
		return;
	}
	float fsum = 0;
	int	m_data1sy = -1;
	CString	m_data2sy;
	CString	m_data3sy;
	CString	m_data4sy;
	CString	m_data5sy;

	int	m_data1hz = -1;
	CString	m_data2hz;
	CString	m_data3hz;
	CString	m_data4hz;
	CString	m_data5hz;

	int i = 0;
	for ( i = 0; i < m_Workratearray.GetSize(); i++)
	{
		if ("��Ӱʦ" == m_Workratearray.ElementAt(i).ElementAt(0))
		{
			m_data1sy = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
			m_data2sy = (m_Workratearray.ElementAt(i).ElementAt(2));
			m_data3sy = (m_Workratearray.ElementAt(i).ElementAt(3));
			m_data4sy = (m_Workratearray.ElementAt(i).ElementAt(4));
			m_data5sy = (m_Workratearray.ElementAt(i).ElementAt(5));
		}
#ifdef CHILD_VERSION
		else if ("����ʦ" == m_Workratearray.ElementAt(i).ElementAt(0))
#else
		else if ("��ױʦ" == m_Workratearray.ElementAt(i).ElementAt(0))
#endif
		{
			m_data1hz = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
			m_data2hz = (m_Workratearray.ElementAt(i).ElementAt(2));
			m_data3hz = (m_Workratearray.ElementAt(i).ElementAt(3));
			m_data4hz = (m_Workratearray.ElementAt(i).ElementAt(4));
			m_data5hz = (m_Workratearray.ElementAt(i).ElementAt(5));
		}
	}

	m_List4.DeleteAllItems2();
	int count = 0;
	CString str, price;
	for (i = 0; i < m_List4array.GetSize(); i++)//14
	{
		if (m_List4array.ElementAt(i).ElementAt(14) == "��Ӱʦ" && m_data1sy != 3)
		{
			if (m_data1sy == 0)//����װ������
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2sy) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				str.Format("�⾰%d,�ھ�%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);
				str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				str.Format("�⾰%0.2f,�ھ�%0.2f", atof(m_data2sy), atof(m_data3sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("����װ�������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1sy == 1)//����ϵ������
			{
				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))
				{
					continue;//�Ȳ�������Ӱʦ��Ҳ���Ǹ�..
				}

				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));

				if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(15))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(19)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(16))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(20)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(17))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(21)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(18))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(22)) / 10000.0);

				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add("������");
				str.Format("��ϵ��%d", atoi(m_data4sy));
				m_List4.m_arLabels.ElementAt(count).Add(str + "%");
				m_List4.m_arLabels.ElementAt(count).Add("����ϵ������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1sy == 2)//��������Ƭ���
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���	
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));


				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));

				str.Format("%0.2f", atof(m_data5sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("��������Ƭ���");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
		}
#ifdef CHILD_VERSION
		else if (m_List4array.ElementAt(i).ElementAt(14) == "����ʦ" && m_data1hz != 3)
#else
		else if (m_List4array.ElementAt(i).ElementAt(14) == "��ױʦ" && m_data1hz != 3)
#endif
		{
			if (m_data1hz == 0)//����װ������
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2hz) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				str.Format("�⾰%d,�ھ�%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);
				str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				str.Format("�⾰%0.2f,�ھ�%0.2f", atof(m_data2hz), atof(m_data3hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("����װ�������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1hz == 1)//����ϵ������
			{

				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))
				{
					continue;//�Ȳ�������ױʦ��Ҳ���Ǹ�..
				}

				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));

				if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(23))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(27)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(24))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(28)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(25))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(29)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(26))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(30)) / 10000.0);

				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add("������");
				str.Format("��ϵ��%d", atoi(m_data4hz));
				m_List4.m_arLabels.ElementAt(count).Add(str + "%");
				m_List4.m_arLabels.ElementAt(count).Add("����ϵ������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1hz == 2)//��������Ƭ���
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���	
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));


				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));

				str.Format("%0.2f", atof(m_data5hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("��������Ƭ���");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
		}
		else if (m_List4array.ElementAt(i).ElementAt(14) == "����ʦ")
		{
			m_List4.m_arLabels.SetSize(count + 1, 1);
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));

			price = GetPrice(m_List4array.ElementAt(i).ElementAt(6));
			str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(price));
			m_List4.m_arLabels.ElementAt(count).Add(str);//���
			fsum += atof(str);

			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(6));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(5));

			m_List4.m_arLabels.ElementAt(count).Add(price);

			m_List4.m_arLabels.ElementAt(count).Add("����x����");
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
			count++;
		}
	}
	m_List4.m_LabelCount = count;
	m_List4.SetItemCountEx(count);

	sRet.Format("�Ƽ����(�ܺ�:%0.2f)", fsum);

	SetDlgItemText(IDC_STATIC16, sRet);
	sRet.Format("%0.2f", fsum);
}

void MySalary::OnBut1()
{

}

void MySalary::OnBut2()
{
}

void MySalary::OnSelchangeCombo6()
{

}

void MySalary::OnBut4()
{
	//	ShowHisSalary dlg;
	//	dlg.DoModal();
}

CString MySalary::GetPrice(CString name)
{
	for (int i = 0; i < m_Workratearray.GetSize(); i++)
	{
		if ("����ʦ" == m_Workratearray.ElementAt(i).ElementAt(0) && name == m_Workratearray.ElementAt(i).ElementAt(1))
		{
			return m_Workratearray.ElementAt(i).ElementAt(2);
		}
	}
	return "0";
}

void MySalary::GetMoney6(CString name, float &fRet)
{
	fRet = 0;
	/*	if(m_Workratearray.GetSize ()==0)
	{
	return;
	}*/
	float fsum = 0;
	int	m_data1sy = -1;
	CString	m_data2sy;
	CString	m_data3sy;
	CString	m_data4sy;
	CString	m_data5sy;

	int	m_data1hz = -1;
	CString	m_data2hz;
	CString	m_data3hz;
	CString	m_data4hz;
	CString	m_data5hz;

	/*	for(int i=0; i<m_Workratearray.GetSize (); i++)
	{
	if("��Ӱʦ"==m_Workratearray.ElementAt (i).ElementAt (0))
	{
	m_data1sy=atoi(m_Workratearray.ElementAt (i).ElementAt (1));
	m_data2sy=(m_Workratearray.ElementAt (i).ElementAt (2));
	m_data3sy=(m_Workratearray.ElementAt (i).ElementAt (3));
	m_data4sy=(m_Workratearray.ElementAt (i).ElementAt (4));
	m_data5sy=(m_Workratearray.ElementAt (i).ElementAt (5));
	}
	#ifdef CHILD_VERSION
	else if("����ʦ"==m_Workratearray.ElementAt (i).ElementAt (0))
	#else
	else if("��ױʦ"==m_Workratearray.ElementAt (i).ElementAt (0))
	#endif
	{
	m_data1hz=atoi(m_Workratearray.ElementAt (i).ElementAt (1));
	m_data2hz=(m_Workratearray.ElementAt (i).ElementAt (2));
	m_data3hz=(m_Workratearray.ElementAt (i).ElementAt (3));
	m_data4hz=(m_Workratearray.ElementAt (i).ElementAt (4));
	m_data5hz=(m_Workratearray.ElementAt (i).ElementAt (5));
	}
	}
	if(m_data1sy==-1)
	{

	return;
	}
	if(m_data1hz==-1)
	{

	return;
	}*/
	m_List4.DeleteAllItems2();
	int count = 0;
	CString str, price;
	for (int i = 0; i < m_List4array.GetSize(); i++)//14
	{
		if (m_List4array.ElementAt(i).ElementAt(3) != name)continue;
		if (0)//m_List4array.ElementAt (i).ElementAt (14)=="��Ӱʦ" && m_data1sy!=3)
		{
			if (m_data1sy == 0)//����װ������
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2sy) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				str.Format("�⾰%d,�ھ�%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);
				str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				str.Format("�⾰%0.2f,�ھ�%0.2f", atof(m_data2sy), atof(m_data3sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("����װ�������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1sy == 1)//����ϵ������
			{
				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))
				{
					continue;//�Ȳ�������Ӱʦ��Ҳ���Ǹ�..
				}

				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));


				if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(15))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(19)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(16))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(20)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(17))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(21)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(18))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(22)) / 10000.0);

				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add("������");
				str.Format("��ϵ��%d", atoi(m_data4sy));
				m_List4.m_arLabels.ElementAt(count).Add(str + "%");
				m_List4.m_arLabels.ElementAt(count).Add("����ϵ������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1sy == 2)//��������Ƭ���
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���	
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));

				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));

				str.Format("%0.2f", atof(m_data5sy));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("��������Ƭ���");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
		}
#ifdef CHILD_VERSION
		else if (0)//m_List4array.ElementAt (i).ElementAt (14)=="����ʦ" && m_data1hz!=3)
#else
		else if (0)//m_List4array.ElementAt (i).ElementAt (14)=="��ױʦ" && m_data1hz!=3)
#endif
		{
			if (m_data1hz == 0)//����װ������
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(m_data2hz) + atof(m_List4array.ElementAt(i).ElementAt(6))*atof(m_data3hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				str.Format("�⾰%d,�ھ�%d", atoi(m_List4array.ElementAt(i).ElementAt(5)), atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);
				str.Format("%d", atoi(m_List4array.ElementAt(i).ElementAt(5)) + atoi(m_List4array.ElementAt(i).ElementAt(6)));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				str.Format("�⾰%0.2f,�ھ�%0.2f", atof(m_data2hz), atof(m_data3hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("����װ�������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1hz == 1)//����ϵ������
			{
				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))
				{
					continue;//�Ȳ�������ױʦ��Ҳ���Ǹ�..
				}

				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));

				if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(23))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(27)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(24))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(28)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(25))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(29)) / 10000.0);
				else if (m_List4array.ElementAt(i).ElementAt(3) == m_List4array.ElementAt(i).ElementAt(26))
					str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(m_List4array.ElementAt(i).ElementAt(30)) / 10000.0);

				m_List4.m_arLabels.ElementAt(count).Add(str);//���
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add("������");
				str.Format("��ϵ��%d", atoi(m_data4hz));
				m_List4.m_arLabels.ElementAt(count).Add(str + "%");
				m_List4.m_arLabels.ElementAt(count).Add("����ϵ������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
			else if (m_data1hz == 2)//��������Ƭ���
			{
				m_List4.m_arLabels.SetSize(count + 1, 1);
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
				str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(31))*atof(m_data5hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);//���	
				fsum += atof(str);

				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));


				m_List4.m_arLabels.ElementAt(count).Add("������");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(31));

				str.Format("%0.2f", atof(m_data5hz));
				m_List4.m_arLabels.ElementAt(count).Add(str);

				m_List4.m_arLabels.ElementAt(count).Add("��������Ƭ���");
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
				m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
				count++;
			}
		}
		else if (m_List4array.ElementAt(i).ElementAt(14) == "����ʦ")
		{
			m_List4.m_arLabels.SetSize(count + 1, 1);
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));

			price = GetPrice(m_List4array.ElementAt(i).ElementAt(6));
			str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(price));
			m_List4.m_arLabels.ElementAt(count).Add(str);//���
			fsum += atof(str);

			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(6));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(5));

			m_List4.m_arLabels.ElementAt(count).Add(price);

			m_List4.m_arLabels.ElementAt(count).Add("����x����");
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
			m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
			count++;
		}
	}
	m_List4.m_LabelCount = count;
	m_List4.SetItemCountEx(count);

	fRet = fsum;
}

void MySalary::OnButton4()
{
	int pos = m_comboname.GetCurSel();
	if (pos == -1)
	{
		AfxMessageBox("��ѡ����Ҫ�������ϵ�Ա��");
		return;
	}

	CString name;
	m_comboname.GetWindowText(name);

	SelExportType dlg;
	if (dlg.DoModal() != IDOK)return;
	if (dlg.m_type == 1)
	{
		int arraysize = 0;
		CArray<CStringArray, CStringArray>array;
		CStringArray moneytypearray;
		CString str, field2, field3;
		float sum = 0;
		for (int i = 0; i < m_List1.GetItemCount(); i++)
		{
			field2 = m_List1.GetItemText(i, 0);
			sum += atof(field2);
			field3 = m_List1.GetItemText(i, 2);
			if (::FindArray(&moneytypearray, field3) == -1)
				moneytypearray.Add(field3);
			array.SetSize(arraysize + 1, 1);
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
			array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
			arraysize++;
		}

		array.SetSize(arraysize + 1, 1);
		array.ElementAt(arraysize).Add("�ܼ�");
		str.Format("%0.2f", sum);
		array.ElementAt(arraysize).Add(str);
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");	array.ElementAt(arraysize).Add("");
		arraysize++;
		//////////////////////////////////////////////
		array.SetSize(arraysize + 1, 1);
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");	array.ElementAt(arraysize).Add("");
		arraysize++;
		///////////////////////////////////////////////
		//////////////////////////////////////////////
		array.SetSize(arraysize + 1, 1);
		array.ElementAt(arraysize).Add("******");
		array.ElementAt(arraysize).Add("******");
		array.ElementAt(arraysize).Add("����Ϊ����ͳ��");
		array.ElementAt(arraysize).Add("******");
		array.ElementAt(arraysize).Add("******");
		array.ElementAt(arraysize).Add("******");	array.ElementAt(arraysize).Add("******");
		arraysize++;
		///////////////////////////////////////////////
		array.SetSize(arraysize + 1, 1);
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add("");
		array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
		arraysize++;
		///////////////////////////////////////////////
		for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
		{
			sum = 0;
			for (int i = 0; i < m_List1.GetItemCount(); i++)
			{
				field3 = m_List1.GetItemText(i, 2);
				if (moneytypearray.ElementAt(aa) != field3)continue;
				field2 = m_List1.GetItemText(i, 0);
				sum += atof(field2);
				array.SetSize(arraysize + 1, 1);
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
				array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
				arraysize++;
			}
			array.SetSize(arraysize + 1, 1);
			array.ElementAt(arraysize).Add(moneytypearray.ElementAt(aa) + "�ܼ�");
			str.Format("%0.2f", sum);
			array.ElementAt(arraysize).Add(str);
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
			arraysize++;

			//////////////////////////////////////////////
			array.SetSize(arraysize + 1, 1);
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add("");
			array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
			arraysize++;
			///////////////////////////////////////////////
		}

		m_ListTemp.DeleteAllItems2();
		int ii = 0;
		m_ListTemp.m_arLabels.SetSize(array.GetSize(), 1);
		int count = 0;
		for (ii = 0; ii < m_ListTemp.m_arLabels.GetSize(); ii++)
		{
			m_ListTemp.m_arLabels.ElementAt(count++).Copy(array.ElementAt(ii));
		}
		m_ListTemp.m_arLabels.SetSize(count, 1);
		ii = count;
		m_ListTemp.m_LabelCount = ii;
		m_ListTemp.SetItemCountEx(ii);

		ListToXLS(&m_ListTemp, "c:\\" + name + ".xls", 0);
		return;
	}

	CStdioFile fp;
	fp.Open("c:\\" + name + ".txt", CFile::modeCreate | CFile::modeWrite);
	CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;

	int leng1 = 20;
	int leng2 = 15;
	int leng3 = 15;
	int leng4 = 15;
	int leng5 = 15;
	int leng6 = 15;
	int leng7 = 15;
	int leng8 = 15;
	int leng9 = 15;
	int leng10 = 15;

	field1 = "�տ�����";
	field2 = "�տ���";
	field3 = "�������";
	field4 = "��������";

	FillLength(field1, leng1);
	FillLength(field2, leng2);
	FillLength(field3, leng3);
	FillLength(field4, leng4);

	str = field1 + field2 + field3 + field4 + "\n";
	fp.WriteString(str);

	CStringArray moneytypearray;
	CString m_name1, m_name2;
	float sum = 0;
	for (int i = 0; i < m_List1.GetItemCount(); i++)
	{
		field4.Empty();
		field1 = m_List1.GetItemText(i, 1);
		field2 = m_List1.GetItemText(i, 0);
		sum += atof(field2);
		field3 = m_List1.GetItemText(i, 2);
		if (::FindArray(&moneytypearray, field3) == -1)
			moneytypearray.Add(field3);

		m_name1 = m_List1.GetItemText(i, 3);
		m_name2 = m_List1.GetItemText(i, 4);
		if (!m_name1.IsEmpty())
			field4 = m_name1 + ",";
		field4 += m_name2;
		field4.TrimRight(",");
		FillLength(field1, leng1);
		FillLength(field2, leng2);
		FillLength(field3, leng3);
		FillLength(field4, leng4);
		str = field1 + field2 + field3 + field4 + "\n";
		fp.WriteString(str);
	}

	str = "����: " + name;
	fp.WriteString(str); fp.WriteString("\n");
	str = "���: �����������\n";
	fp.WriteString(str);
	str.Format("�ܼ�: %0.2f", sum); fp.WriteString(str);
	fp.WriteString("\n\n\n************************����Ϊ����ͳ��************************");
	fp.WriteString("\n\n");

	for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
	{
		sum = 0;
		for (int i = 0; i < m_List1.GetItemCount(); i++)
		{
			field3 = m_List1.GetItemText(i, 2);
			if (moneytypearray.ElementAt(aa) != field3)continue;
			field4.Empty();
			field1 = m_List1.GetItemText(i, 1);
			field2 = m_List1.GetItemText(i, 0);
			sum += atof(field2);
			m_name1 = m_List1.GetItemText(i, 3);
			m_name2 = m_List1.GetItemText(i, 4);
			if (!m_name1.IsEmpty())
				field4 = m_name1 + ",";
			field4 += m_name2;
			field4.TrimRight(",");
			FillLength(field1, leng1);
			FillLength(field2, leng2);
			FillLength(field3, leng3);
			FillLength(field4, leng4);
			str = field1 + field2 + field3 + field4 + "\n";
			fp.WriteString(str);
		}

		str = moneytypearray.ElementAt(aa) + "���\n";
		fp.WriteString(str);
		str.Format("�ܼ�: %0.2f", sum); fp.WriteString(str);
		fp.WriteString("\n\n\n");
	}

	fp.Close();
	MessageBox("�����ѱ��浽c:\\" + name + ".txt");
	ShellExecute(NULL, _T("open"), _T("c:\\" + name + ".txt"), NULL, NULL, SW_SHOWMAXIMIZED);
}

void MySalary::OnButton5()
{
	SelExpendType seldlg;
	seldlg.m_mode = 2;
	if (seldlg.DoModal() != IDOK)return;
	SalarySet4 dlg;
	dlg.m_header = "$" + seldlg.m_sel + ":";
	dlg.DoModal();
	/*	SalarySet4 dlg;
	dlg.m_header ="$ǰ��:";
	dlg.DoModal ();	*/
}

void MySalary::OnButton6()
{
	SelExpendType seldlg;
	seldlg.m_bSecond = 1;
	if (seldlg.DoModal() != IDOK)return;
	SalarySet4 dlg;
	dlg.m_header = "$" + seldlg.m_sel + ":";
	dlg.DoModal();
}

void MySalary::OnCloseupCombo7()
{
	OnSelchangeList1();
}

void MySalary::OnButton14()
{
	int pos = m_comboname.GetCurSel();
	if (pos == -1)
	{
		AfxMessageBox("��ѡ����Ҫ�������ϵ�Ա��");
		return;
	}
	CString name;
	m_comboname.GetWindowText(name);

	SelExportType dlg;
	if (dlg.DoModal() != IDOK)return;
	if (dlg.m_type == 1)
	{
		ListToXLS(&m_List4, "c:\\" + name + "(�Ƽ�).xls", 0);
		return;
	}

	CStdioFile fp;
	fp.Open("c:\\" + name + "(�Ƽ�).txt", CFile::modeCreate | CFile::modeWrite);
	CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;

	int leng1 = 20;
	int leng2 = 15;
	int leng3 = 15;
	int leng4 = 15;
	int leng5 = 15;
	int leng6 = 15;
	int leng7 = 15;
	int leng8 = 15;
	int leng9 = 15;
	int leng10 = 15;

	CString m_name1, m_name2;
	float sum = 0;

	{
		leng1 = 18;
		leng2 = 15;
		leng3 = 10;
		leng4 = 15;
		leng5 = 10;
		leng6 = 10;
		leng7 = 15;
		leng8 = 15;
		leng9 = 15;

		field1 = "��������";
		field2 = "��ɽ��";
		field3 = "����";
		field4 = "����";
		field5 = "����";
		field6 = "����";
		field7 = "��ɷ�ʽ";
		field8 = "��ϵ���";
		field9 = "����";

		FillLength(field1, leng1);
		FillLength(field2, leng2);
		FillLength(field3, leng3);
		FillLength(field4, leng4);
		FillLength(field5, leng5);
		FillLength(field6, leng6);
		FillLength(field7, leng7);
		FillLength(field8, leng8);
		FillLength(field9, leng9);
		str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
		fp.WriteString(str);
		for (int i = 0; i < m_List4.GetItemCount(); i++)
		{
			field1.Empty();
			m_name1 = m_List4.GetItemText(i, 1);
			m_name2 = m_List4.GetItemText(i, 2);
			if (!m_name1.IsEmpty())
				field1 = m_name1 + ",";
			field1 += m_name2;
			field1.TrimRight(",");
			field2 = m_List4.GetItemText(i, 3);
			sum += atof(field2);
			field3 = m_List4.GetItemText(i, 4);
			field4 = m_List4.GetItemText(i, 5);
			field5 = m_List4.GetItemText(i, 6);
			field6 = m_List4.GetItemText(i, 7);
			field7 = m_List4.GetItemText(i, 8);
			field8 = m_List4.GetItemText(i, 9);
			field9 = m_List4.GetItemText(i, 10);

			FillLength(field1, leng1);
			FillLength(field2, leng2);
			FillLength(field3, leng3);
			FillLength(field4, leng4);
			FillLength(field5, leng5);
			FillLength(field6, leng6);
			FillLength(field7, leng7);
			FillLength(field8, leng8);
			FillLength(field9, leng9);

			str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
			fp.WriteString(str);
		}
		fp.WriteString("\n");
		str = "����: " + name;
		fp.WriteString(str); fp.WriteString("\n");
		str = "���: �Ƽ����\n";
		fp.WriteString(str);

		str.Format("�ܼ�: %0.2f", sum); fp.WriteString(str);
	}

	fp.Close();
	MessageBox("�����ѱ��浽c:\\" + name + "(�Ƽ�).txt");
	ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(�Ƽ�).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
}

void MySalary::OnButton7()
{
	int pos = m_comboname.GetCurSel();
	if (pos == -1)
	{
		AfxMessageBox("��ѡ����Ҫ�������ϵ�Ա��");
		return;
	}
	CString name;
	m_comboname.GetWindowText(name);

	SelExportType dlg;
	if (dlg.DoModal() != IDOK)return;
	if (dlg.m_type == 1)
	{
		ListToXLS(&m_Listtake, "c:\\" + name + "(��Ӱ).xls", 0);
		return;
	}

	CStdioFile fp;
	fp.Open("c:\\" + name + "(��Ӱ).txt", CFile::modeCreate | CFile::modeWrite);
	CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;

	int leng1 = 20;
	int leng2 = 15;
	int leng3 = 15;
	int leng4 = 15;
	int leng5 = 15;
	int leng6 = 15;
	int leng7 = 15;
	int leng8 = 15;
	int leng9 = 15;
	int leng10 = 15;

	CString m_name1, m_name2;
	float sum = 0;
	int waiter1count = 0;
	int waiter12count = 0;
	int waiter2count = 0;
	int waiter22count = 0;

	{
		leng1 = 18;
		leng2 = 20;
		leng3 = 12;
		leng4 = 20;
		leng5 = 15;
		leng6 = 10;
		leng7 = 10;
		leng8 = 10;
		leng9 = 10;

		field1 = "��������";
		field2 = "��ϵ";
		field3 = "��ϵ���";
		field4 = "����";
		field5 = "����";
		field6 = "��Ӱ";
		field7 = "����";
		field8 = "��ױ";
#ifdef CHILD_VERSION
		field8 = "����";
#endif
		field9 = "����";

		FillLength(field1, leng1);
		FillLength(field2, leng2);
		FillLength(field3, leng3);
		FillLength(field4, leng4);
		FillLength(field5, leng5);
		FillLength(field6, leng6);
		FillLength(field7, leng7);
		FillLength(field8, leng8);
		FillLength(field9, leng9);
		str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
		fp.WriteString(str);
		for (int i = 0; i < m_Listtake.GetItemCount(); i++)
		{
			field1.Empty();
			m_name1 = m_Listtake.GetItemText(i, 1);
			m_name2 = m_Listtake.GetItemText(i, 2);
			if (!m_name1.IsEmpty())
				field1 = m_name1 + ",";
			field1 += m_name2;
			field1.TrimRight(",");
			field2 = m_Listtake.GetItemText(i, 3);
			field3 = m_Listtake.GetItemText(i, 4);
			sum += atof(field3);

			field4 = m_Listtake.GetItemText(i, 5);
			field5 = m_Listtake.GetItemText(i, 6);
			field6 = m_Listtake.GetItemText(i, 7);
			field7 = m_Listtake.GetItemText(i, 8);
			field8 = m_Listtake.GetItemText(i, 9);
			field9 = m_Listtake.GetItemText(i, 10);
			if (field6 == name)waiter1count++;
			if (field7 == name)waiter12count++;
			if (field8 == name)waiter2count++;
			if (field9 == name)waiter22count++;
			FillLength(field1, leng1);
			FillLength(field2, leng2);
			FillLength(field3, leng3);
			FillLength(field4, leng4);
			FillLength(field5, leng5);
			FillLength(field6, leng6);
			FillLength(field7, leng7);
			FillLength(field8, leng8);
			FillLength(field9, leng9);

			str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
			fp.WriteString(str);
		}
		fp.WriteString("\n");
		str = "����: " + name;
		fp.WriteString(str); fp.WriteString("\n");

		str.Format("��Ӱ: %d\n", waiter1count); fp.WriteString(str);
		str.Format("����: %d\n", waiter12count); fp.WriteString(str);
#ifdef CHILD_VERSION
		str.Format("����: %d\n", waiter2count); fp.WriteString(str);
#else
		str.Format("��ױ: %d\n", waiter2count); fp.WriteString(str);
#endif
		str.Format("����: %d\n", waiter22count); fp.WriteString(str);
		str.Format("�����ܽ��: %0.2f", sum); fp.WriteString(str);
	}

	fp.Close();
	MessageBox("�����ѱ��浽c:\\" + name + "(��Ӱ).txt");
	ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(��Ӱ).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
}

void MySalary::OnButton8()
{
	UpdateData();
	int pos = m_comboname.GetCurSel();
	if (pos == -1)
	{
		AfxMessageBox("��ѡ����Ҫ�������ϵ�Ա��");
		return;
	}

	CString date1, date2;

	date1 = m_date1.Format("%Y-%m-%d");
	date2 = m_date2.Format("%Y-%m-%d");

	CString name;
	m_comboname.GetWindowText(name);

	SelExportType dlg;
	if (dlg.DoModal() != IDOK)return;
	if (dlg.m_type == 1)
	{
		ListToXLS(&m_Listdigital, "c:\\" + name + "(����).xls", 0);
		return;
	}

	CStdioFile fp;
	fp.Open("c:\\" + name + "(����).txt", CFile::modeCreate | CFile::modeWrite);
	CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;

	int leng1 = 20;
	int leng2 = 15;
	int leng3 = 15;
	int leng4 = 15;
	int leng5 = 15;
	int leng6 = 15;
	int leng7 = 15;
	int leng8 = 15;
	int leng9 = 15;
	int leng10 = 15;

	CString m_name1, m_name2;
	float sum1 = 0;
	float sum2 = 0;
	float sum3 = 0;
	float sum12 = 0;
	float sum22 = 0;
	float sum32 = 0;
	int count1 = 0;
	int count2 = 0;
	int count3 = 0;

	{
		leng1 = 18;
		leng2 = 20;
		leng3 = 12;
		leng4 = 10;
		leng5 = 15;
		leng6 = 10;
		leng7 = 15;
		leng8 = 10;
		leng9 = 15;
		leng10 = 10;

		field1 = "��������";
		field2 = "��ϵ";
		field3 = "��ϵ���";
		field4 = "����";
		field5 = "����";
		field6 = "����";
		field7 = "����";
		field8 = "���";
		field9 = "����";
		field10 = "ѡƬ����";
		FillLength(field1, leng1);
		FillLength(field2, leng2);
		FillLength(field3, leng3);
		FillLength(field4, leng4);
		FillLength(field5, leng5);
		FillLength(field6, leng6);
		FillLength(field7, leng7);
		FillLength(field8, leng8);
		FillLength(field9, leng9);
		FillLength(field10, leng10);
		str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
		fp.WriteString(str);
		for (int i = 0; i < m_Listdigital.GetItemCount(); i++)
		{
			field1.Empty();
			m_name1 = m_Listdigital.GetItemText(i, 1);
			m_name2 = m_Listdigital.GetItemText(i, 2);
			if (!m_name1.IsEmpty())
				field1 = m_name1 + ",";
			field1 += m_name2;
			field1.TrimRight(",");
			field2 = m_Listdigital.GetItemText(i, 3);
			field3 = m_Listdigital.GetItemText(i, 4);
			field4 = m_Listdigital.GetItemText(i, 5);
			field5 = m_Listdigital.GetItemText(i, 6);
			field6 = m_Listdigital.GetItemText(i, 7);
			field7 = m_Listdigital.GetItemText(i, 8);
			field8 = m_Listdigital.GetItemText(i, 9);
			field9 = m_Listdigital.GetItemText(i, 10);
			field10 = m_Listdigital.GetItemText(i, 14);
			if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == name && field5 >= date1 && field5 <= date2)
			{
				sum1 += atof(field3);
				sum12 += atof(field10);
				count1++;
			}
			if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == name && field7 >= date1 && field7 <= date2)
			{
				sum2 += atof(field3);
				sum22 += atof(field10);
				count2++;
			}
			if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == name && field9 >= date1 && field9 <= date2)
			{
				sum3 += atof(field3);
				sum32 += atof(field10);
				count3++;
			}

			FillLength(field1, leng1);
			FillLength(field2, leng2);
			FillLength(field3, leng3);
			FillLength(field4, leng4);
			FillLength(field5, leng5);
			FillLength(field6, leng6);
			FillLength(field7, leng7);
			FillLength(field8, leng8);
			FillLength(field9, leng9);
			FillLength(field10, leng10);
			str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
			fp.WriteString(str);
		}
		fp.WriteString("\n");
		str = "����: " + name;
		fp.WriteString(str); fp.WriteString("\n");

		str.Format("����: %d�� �������:%0.2f ѡƬ����:%0.2f\n", count1, sum1, sum12); fp.WriteString(str);
		str.Format("����: %d�� �������:%0.2f ѡƬ����:%0.2f\n", count2, sum2, sum22); fp.WriteString(str);
		str.Format("���: %d�� �������:%0.2f ѡƬ����:%0.2f\n", count3, sum3, sum32); fp.WriteString(str);
	}

	fp.Close();
	MessageBox("�����ѱ��浽c:\\" + name + "(����).txt");
	ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(����).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
}

void MySalary::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
{
	OnSelchangeList1();
	*pResult = 0;
}

void MySalary::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult)
{
	OnSelchangeList1();
	*pResult = 0;
}

CString GetExcelDriver()
{
	char szBuf[2001];
	WORD cbBufMax = 2000;
	WORD cbBufOut;
	char *pszBuf = szBuf;
	CString sDriver;
	if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
		return "";
	do
	{
		if (strstr(pszBuf, "Excel") != 0)
		{
			sDriver = CString(pszBuf);
			break;
		}
		pszBuf = strchr(pszBuf, '\0') + 1;
	} while (pszBuf[1] != '\0');
	return sDriver;
}

BOOL MakeSurePathExists(CString &Path, bool FilenameIncluded)
{
	int Pos = 0;
	while ((Pos = Path.Find('\\', Pos + 1)) != -1)
		CreateDirectory(Path.Left(Pos), NULL);
	if (!FilenameIncluded)
		CreateDirectory(Path, NULL);
	//	return ((!FilenameIncluded)?!_access(Path,0):
	//	!_access(Path.Left(Path.ReverseFind('\\')),0));

	return !_access(Path, 0);
}

BOOL GetDefaultXlsFileName(CString &sExcelFile)
{
	///Ĭ���ļ�����yyyymmddhhmmss.xls
	// prompt the user (with all document templates)
	CFileDialog dlgFile(FALSE, ".xls", sExcelFile);
	CString title;
	CString strFilter;

	title = "����";
	strFilter = "Excel�ļ�(*.xls)";
	strFilter += (TCHAR)'\0';   // next string please
	strFilter += _T("*.xls");
	strFilter += (TCHAR)'\0';   // last string
	dlgFile.m_ofn.nMaxCustFilter++;
	dlgFile.m_ofn.nFilterIndex = 1;
	// append the "*.*" all files filter
	CString allFilter;
	VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER));
	strFilter += allFilter;
	strFilter += (TCHAR)'\0';   // next string please
	strFilter += _T("*.*");
	strFilter += (TCHAR)'\0';   // last string
	dlgFile.m_ofn.nMaxCustFilter++;

	dlgFile.m_ofn.lpstrFilter = strFilter;
	dlgFile.m_ofn.lpstrTitle = title;

	if (dlgFile.DoModal() == IDCANCEL)
		return FALSE; // open cancelled
	sExcelFile = dlgFile.GetFileName();
	if (MakeSurePathExists(sExcelFile, true)) {
		if (!DeleteFile(sExcelFile)) {    // ɾ��xls�ļ�;
			AfxMessageBox("�����ļ�ʱ������");
			return FALSE;
		}
	}
	return TRUE;
}

int FindArrayCount(CStringArray *pArray, CString Str)
{
	int ret = 0;
	for (int i = 0; i < pArray->GetSize(); i++)
	{
		if (pArray->ElementAt(i) == Str)
			ret++;
	}
	return ret;
}

void ListToXLS(CListCtrl *pList, CString savepath, int nColumn, int nRow)
{
	CString strPath = savepath;
#if 0
	const int nImportCount = 3500;
	INT nItemCount = pList->GetItemCount();
	if ( nItemCount < 5000)
	{
		Import2Excle(pList, savepath, nColumn, nRow);
	}
	else
	{
		int nTimes = 0;
		int nStartRow = 0;
		int nEndRow = 0;
		savepath.TrimRight(_T(".xls"));
		TCHAR szExcelpath[MAX_PATH] = {0};
		while( true )
		{
			nItemCount -= nImportCount;
			if ( nItemCount > 0 )
			{
				nTimes++;
				nEndRow += nImportCount;
				sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes);
				Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, nEndRow);
				nStartRow += nImportCount;
			}
			else
			{
				sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes+1);
				Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, -1);
				break;
			}
		}
	}
#else
	Import2Xls(pList, savepath, nColumn, nRow);
#endif

	strPath = savepath + _T(".dat");
	ShellExecute(NULL, _T("open"),  _T("xlsworker.exe"), strPath, NULL, SW_SHOW);
	///AfxMessageBox(savepath + _T("��̨����,���Ե�Ƭ�̣�"));

	return;

	if (pList == NULL)return;
	CString strTitle = "sheet1";
	CString warningStr;
	CString str, temp;
	if (pList->GetItemCount()>0)
	{
		CDatabase database;
		CString sDriver;
		CString sExcelFile;
		CString sSql;
		CString tableName = strTitle;
		CStringArray colarray;

		// �����Ƿ�װ��Excel���� "Microsoft Excel Driver (*.xls)" 
		sDriver = GetExcelDriver();
		if (sDriver.IsEmpty())
		{
			// û�з���Excel����
			AfxMessageBox("û�а�װExcel!\n���Ȱ�װExcel��������ʹ�õ�������!");
			return;
		}

		sExcelFile = "";
		sExcelFile = savepath;
		///Ĭ���ļ���
		if (!GetDefaultXlsFileName(sExcelFile))
			return;

		// �������д�ȡ���ַ���
		sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sDriver, sExcelFile, sExcelFile);

		// �������ݿ� (��Excel�����ļ�)
		if (database.OpenEx(sSql, CDatabase::noOdbcDialog))
		{
			// �������ṹ
			int i;
			LVCOLUMN columnData;
			CString columnName;
			int columnNum = 0;
			CString strH;
			CString strV;

			sSql = "";
			strH = "";
			columnData.mask = LVCF_TEXT;
			columnData.cchTextMax = 100;
			columnData.pszText = columnName.GetBuffer(100);

			{
				for (i = nColumn; pList->GetColumn(i, &columnData); i++)
				{
					if (i != nColumn)
					{
						sSql = sSql + ", ";
						strH = strH + ", ";
					}
					temp = columnData.pszText;
					temp.Replace("/", "");
					temp.Replace("(", "");
					temp.Replace(")", "");
					int countexist = FindArrayCount(&colarray, temp);
					if (countexist)
					{
						CString ss;
						ss.Format("%d", countexist + 1);

						sSql = sSql + " " + temp + ss + " TEXT";
						strH = strH + " " + temp + ss + " ";
						str = temp;
						str += ss;
						colarray.Add(str);
					}
					else
					{
						sSql = sSql + " " + temp + " TEXT";
						strH = strH + " " + temp + " ";
						colarray.Add(temp);
					}
				}
			}

			columnName.ReleaseBuffer();
			columnNum = i;

			sSql = "CREATE TABLE " + tableName + " ( " + sSql + " ) ";
			database.ExecuteSQL(sSql);

			// ����������
			int nItemIndex;
			{
				for (nItemIndex = 0; nItemIndex < pList->GetItemCount(); nItemIndex++)
				{
					strV = "";
					for (i = nColumn; i < columnNum; i++)
					{
						if (i != nColumn)
						{
							strV = strV + ", ";
						}
						strV = strV + " '" + pList->GetItemText(nItemIndex, i) + "' ";
					}

					sSql = "INSERT INTO " + tableName
						+ " (" + strH + ")"
						+ " VALUES(" + strV + ")";

					database.ExecuteSQL(sSql);
				}
			}
		}

		// �ر����ݿ�
		database.Close();
		ShellExecute(NULL, _T("open"), sExcelFile, NULL, NULL, SW_SHOW);
	}
	else
		AfxMessageBox("����û������!");
}

//%0.2f
void MySalary::OnBut3() // ������ť;
{
	ListToXLS(&m_List3, "c:\\���ʱ�.xls", 0);
}