// IncomeInput2.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "IncomeInput2.h"
#include "MyMdi.H"
#include "SPLBDlg.h"
#include "SelPayType.h"
#include "AddIncome.h"
#include "Singleincomemoney.h"
#include "SearchFilter4.h"
#include "SendMsgDlg.h"
#include "Other2SaleChart.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// IncomeInput2 IDC_COMBO4

IMPLEMENT_DYNCREATE(IncomeInput2, MyFormView)

IncomeInput2::IncomeInput2()
: MyFormView(IncomeInput2::IDD)
{
	//{{AFX_DATA_INIT(IncomeInput2)
	m_bz = _T("");
	m_date = g_date;
	m_money = _T("");
	m_name = _T("");
	m_renyuan1 = _T("");
	m_renyuan2 = g_user.name;
	m_year = atoi(g_date.Mid(0, 4));
	m_month = atoi(g_date.Mid(5, 2));
	m_day = atoi(g_date.Mid(8, 2));
	m_filter = _T("");
	m_bInit = 0;
	//}}AFX_DATA_INIT
}

IncomeInput2::~IncomeInput2()
{
}

void IncomeInput2::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(IncomeInput2)
	DDX_Control(pDX, IDC_BUTTON5, m_btn);
	DDX_Control(pDX, IDC_COMBO7, m_combo1);
	DDX_Control(pDX, IDC_COMBO4, m_combobz);
	DDX_Control(pDX, IDC_SPIN3, m_spinday);
	DDX_Control(pDX, IDC_SPIN2, m_spinmonth);
	DDX_Control(pDX, IDC_SPIN1, m_spinyear);
	DDX_Control(pDX, IDC_COMBO2, m_comboren);
	DDX_Control(pDX, IDC_EDITmoney, m_editctrl1);
	DDX_Control(pDX, IDC_LIST2, m_List1);
	DDX_Control(pDX, IDC_STATIC1, m_static1);
	DDX_Text(pDX, IDC_EDITbz, m_bz);
	DDV_MaxChars(pDX, m_bz, 1000);
	DDX_Text(pDX, IDC_EDITdate, m_date);
	DDX_Text(pDX, IDC_EDITmoney, m_money);
	DDX_Text(pDX, IDC_EDITname, m_name);
	DDX_Text(pDX, IDC_EDITrenyuan1, m_renyuan1);
	DDX_Text(pDX, IDC_EDITrenyuan2, m_renyuan2);
	DDX_Text(pDX, IDC_EDITyear, m_year);
	DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
	DDX_Text(pDX, IDC_EDITmonth, m_month);
	DDV_MinMaxUInt(pDX, m_month, 1, 12);
	DDX_Text(pDX, IDC_EDITday, m_day);
	DDV_MinMaxUInt(pDX, m_day, 1, 31);
	DDX_CBString(pDX, IDC_COMBO7, m_filter);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(IncomeInput2, MyFormView)
	//{{AFX_MSG_MAP(IncomeInput2)
	ON_BN_CLICKED(IDC_BUTsave, OnBUTsave)
	ON_BN_CLICKED(IDC_BUTdel, OnBUTdel)
	ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
	ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth)
	ON_EN_CHANGE(IDC_EDITday, OnChangeEDITday)
	ON_BN_CLICKED(IDC_BUTprint, OnBUTprint)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTsave2, OnBUTsave2)
	ON_BN_CLICKED(IDC_BUTpay, OnBUTpay)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// IncomeInput2 diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// IncomeInput2 message handlers

void IncomeInput2::OnInitialUpdate()
{
	MyFormView::OnInitialUpdate();
	// TODO: Add your specialized code here and/or call the base class
	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
	if (IsHasRights2new(49) == 0)
	{
		GetDlgItem(IDC_BUTTON1)->EnableWindow(0);
	}

	m_btn.SetIcon(IDI_ICONchart);
	m_btn.DrawTransparent();
	// Here we create the outbar control using the splitter as its parent
	// and setting its id to the first pane.
	CRect rc2;
	GetWindowRect(rc2);
	::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
	EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);

	int idarray[] = { IDC_BUTsave, IDC_BUTpay, IDC_BUTsave2, IDC_BUTdel, IDC_BUTprint, IDC_BUTclose };
	int idcount = 6;
	int btnwid;
	CRect prerc;
	for (int a = idcount - 2; a >= 0; a--)
	{
		GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
		ScreenToClient(prerc);
		GetDlgItem(idarray[a])->GetWindowRect(rc2);
		ScreenToClient(rc2);
		btnwid = rc2.Width();
		rc2.right = prerc.left;
		rc2.left = rc2.right - btnwid;
		GetDlgItem(idarray[a])->MoveWindow(rc2);
	}

	m_comboren.RefDroppedWidth();
	GetDlgItem(IDC_BUTdel)->EnableWindow(IsHasRights2new(49));

	m_static1.SetFont(&g_titlefont);

	m_List1.SetHeadings("���,100;����,100;�ֻ�,100;��Ŀ����, 100;Ӧ��, 100;�Ѹ�,100;Ƿ��,100;������,100;������,100;����, 100;�������,100;��ע,100;����,100");
	m_List1.LoadColumnInfo(141);

	m_comboren.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 400;
	m_comboren.MoveWindow(rc2);

	m_combobz.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 400;
	m_combobz.MoveWindow(rc2);

	m_combo1.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 200;
	m_combo1.MoveWindow(rc2);
	GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2);
	SetComboHei(&m_combo1, rc2.Height());

	for (int i = 0; i < g_userarray.GetSize(); i++)
		m_comboren.AddString(g_userarray.ElementAt(i).ElementAt(1));

	/*	m_combobz.AddString ("��Ӱ����");
		m_combobz.AddString ("��ױ����");
		m_combobz.AddString ("��ϵ��������");
		m_combobz.AddString ("ѡƬ����");*/

	m_bInit = 1;
	GetData();
}

void IncomeInput2::FillGrid()
{
	if (g_bSearchFilter)
	{
		m_List1.DeleteAllItems2();
		int ii = 0;
		m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
		int count = 0;
		{
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				if (g_filterdate1 != "")
				{
					if (m_List1array.ElementAt(ii).ElementAt(9) < g_filterdate1 || m_List1array.ElementAt(ii).ElementAt(9) > g_filterdate2)
						continue;
				}
				if (g_waiter1 != "")
				{
					if (m_List1array.ElementAt(ii).ElementAt(3) != g_waiter1)
						continue;
				}
				if (g_waiter2 != "")
				{
					if (m_List1array.ElementAt(ii).ElementAt(8) != g_waiter2)
						continue;
				}
				if (g_waiter3 != "")
				{
					if (m_List1array.ElementAt(ii).ElementAt(10) != g_waiter3)
						continue;
				}
				if (g_waiter4 != "" || g_waiter4 != "ȫ��")
				{
					if (g_waiter4 == "Ƿ��")
					{
						if (atoi(m_List1array.ElementAt(ii).ElementAt(6)) == 0)
							continue;
					}
					else if (g_waiter4 == "����")
					{
						if (atoi(m_List1array.ElementAt(ii).ElementAt(6)))
							continue;
					}
				}
				if (1)
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
			}
		}
		m_List1.m_arLabels.SetSize(count, 1);
		ii = count;
		m_List1.m_LabelCount = ii;
		m_List1.SetItemCountEx(ii);
		CString str;
		str.Format("����:%d", ii);
		SetDlgItemText(IDC_STATIC2, str);
	}
	else
	{
		m_List1.DeleteAllItems2();
		int ii = 0;
		m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
		int count = 0;
		if (m_filter.IsEmpty())
		{
			for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
			{
				m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
			}
		}
		else
		{
			int type = GetType(m_filter);
			if (type == 1)//�绰
			{
				for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
				{
					if (m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1)
					{

						m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					}
				}
			}
			else if (type == 2)//ƴ��
			{
				m_filter.MakeUpper();
				for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
				{
					if (m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1)
					{
						m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					}
				}
			}
			else
			{
				for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
				{
					if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(7).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(8).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(10).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(11).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(12).Find(m_filter) != -1\
						|| m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1)
					{
						m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					}
				}
			}
		}
		m_List1.m_arLabels.SetSize(count, 1);
		ii = count;
		m_List1.m_LabelCount = ii;
		m_List1.SetItemCountEx(ii);

		CString str;
		str.Format("����:%d", ii);
		SetDlgItemText(IDC_STATIC2, str);
	}
}

void IncomeInput2::OnBUTclose()
{
	// TODO: Add your control notification handler code here
	GetParent()->SendMessage(WM_CLOSE);
}

void IncomeInput2::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	//	ListSelChange();
	*pResult = 0;
}

void IncomeInput2::ListSelChange()
{
	/*	POSITION pos;
		pos=m_List1.GetFirstSelectedItemPosition();
		if(pos==NULL)
		{
		ClearCtrl();
		return;
		}
		int iItem=m_List1.GetNextSelectedItem(pos);

		CString id=m_List1.GetItemText (iItem, 0);
		for(int ii=0; ii<m_List1array.GetSize (); ii++)
		{
		if(m_List1array.ElementAt (ii).ElementAt (0)==id)
		{
		m_renyuan1 = m_List1array.ElementAt (ii).ElementAt (4);
		m_name = m_List1array.ElementAt (ii).ElementAt (1);
		m_money = m_List1array.ElementAt (ii).ElementAt (2);
		CString ren=m_List1array.ElementAt (ii).ElementAt (6);
		m_date = m_List1array.ElementAt (ii).ElementAt (3);
		m_renyuan2 = m_List1array.ElementAt (ii).ElementAt (5);
		m_bz = m_List1array.ElementAt (ii).ElementAt (7);
		if(m_comboren.FindString (0, ren)==-1)
		m_comboren.AddString (ren);
		m_comboren.SetCurSel (m_comboren.FindString (0, ren));


		CString sale2type=m_List1array.ElementAt (ii).ElementAt (8);
		if(m_combobz.FindString (0, sale2type)==-1)
		m_combobz.AddString (sale2type);
		m_combobz.SetCurSel (m_combobz.FindString (0, sale2type));


		UpdateData(false);
		break;
		}
		}
		GetDlgItem(IDC_BUTsave)->EnableWindow(0);*/
}

void IncomeInput2::OnBUTdel() // ɾ����ť;
{
	// TODO: Add your control notification handler code here
	if (IsHasRights2new(49) == 0)return;
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	if (AfxMessageBox("ȷ��ɾ����?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return;
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString id = m_List1.GetItemText(iItem, 0);
	CString bz = m_List1.GetItemText(iItem, 1);
	CString money = m_List1.GetItemText(iItem, 2);
	CString date = m_List1.GetItemText(iItem, 3);

	CString sql;
	sql.Format("delete from singleincome where id=%d***delete from singleincomemoney where id='%s' ", atoi(id), id);
	sql += SGLIN_REF;
	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
	GetData();

	CString str;
	str = "ɾ����������";
	str += bz;
	str += "���:";
	str += money;
	str += "����:";
	str += date;
	WriteLog(str);
}

void IncomeInput2::GetData()
{
	if (m_bInit == 0)return;
	m_spinyear.EnableWindow(0);
	m_spinmonth.EnableWindow(0);
	m_spinday.EnableWindow(0);

	UpdateData();
	CString sql, strdate;
	//	strdate.Format ("%04d-%02d-%02d", m_year, m_month, m_day);
	sql.Format("sale2type<>'';;");
	
	if (m_combobz.GetCount())
	{
		g_sendhead.bsql = 0;
		g_sendhead.code[0] = 196;
		g_sendhead.tabcount = 1;
		g_pMainWnd->ProcessChatMessageRequest2(sql);
		if (g_bSendOK == 0)
		{
			m_spinyear.EnableWindow(1);
			m_spinmonth.EnableWindow(1);
			m_spinday.EnableWindow(1);
			return;
		}
		DataToArray(&m_List1array);
	}
	else
	{
		g_sendhead.bsql = 0;
		g_sendhead.code[0] = 196;
		g_sendhead.code[1] = 160;
		g_sendhead.code[2] = 195;
		g_sendhead.tabcount = 3;
		g_pMainWnd->ProcessChatMessageRequest2(sql);
		if (g_bSendOK == 0)
		{
			m_spinyear.EnableWindow(1);
			m_spinmonth.EnableWindow(1);
			m_spinday.EnableWindow(1);
			return;
		}

		DataToArray(&m_List1array, &expendtypearray, &itemarray);
		for (int i = 0; i < expendtypearray.GetSize(); i++)
		{
			m_combobz.AddString(expendtypearray.ElementAt(i).ElementAt(0));
		}
		m_combobz.AddString("��Ӱ����");
		m_combobz.AddString("��ױ����");
		m_combobz.AddString("ѡƬ����");
	}

	FillGrid();
	//	m_date=strdate;
	UpdateData(false);
	m_spinyear.EnableWindow(1);
	m_spinmonth.EnableWindow(1);
	m_spinday.EnableWindow(1);
}

void IncomeInput2::ClearCtrl()
{
	UpdateData();
	CString strdate;
	strdate.Format("%04d-%02d-%02d", m_year, m_month, m_day);
	m_date = strdate;
	m_bz = _T("");
	m_money = _T("");
	m_name = _T("");
	m_renyuan1 = _T("");
	m_renyuan2 = g_user.name;
	m_comboren.SetCurSel(-1);
	m_combobz.SetCurSel(-1);
	UpdateData(false);
	GetDlgItem(IDC_BUTsave)->EnableWindow(1);
}

void IncomeInput2::OnChangeEDITyear()
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the MyFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	GetData();
	// TODO: Add your control notification handler code here

}

void IncomeInput2::OnChangeEDITmonth()
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the MyFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	GetData();
	// TODO: Add your control notification handler code here

}

void IncomeInput2::OnChangeEDITday()
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the MyFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	GetData();
	// TODO: Add your control notification handler code here

}

BOOL IncomeInput2::PreTranslateMessage(MSG* pMsg)
{
	// TODO: Add your specialized code here and/or call the base class
	try
	{
		if (pMsg->message == WM_KEYDOWN)
		{
			switch (pMsg->wParam)
			{
			case VK_RETURN:
				OnButton2();
				return 1;
			case 0x43: // copy
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_COPY);
					return TRUE;
				}
				break;
			case 0x56: //Ctrl + V:
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_PASTE);
					return TRUE;
				}
				break;
			case 0x58: // cut
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_CUT);
					return TRUE;
				}
				break;
			case 0x5A: //undo
			case 0x59: //redo
				if ((GetKeyState(VK_CONTROL) & 0x80))
				{
					GetFocus()->SendMessage(WM_UNDO);
					return TRUE;
				}
				break;
			}
		}
		return MyFormView::PreTranslateMessage(pMsg);
	}
	catch (...)
	{
	}
}

void IncomeInput2::OnBUTprint()
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ���Ͷ��ŵĿ���!", MB_ICONINFORMATION);
		return;
	}
	int iItem;
	CStringArray array;
	while (pos)
	{
		iItem = m_List1.GetNextSelectedItem(pos);
		if (!m_List1.GetItemText(iItem, 2).IsEmpty())
			array.Add(m_List1.GetItemText(iItem, 2));

	}
	SendMsgDlg dlg;
	dlg.m_mode = 1;
	dlg.m_pArray = &array;
	dlg.DoModal();
}

void IncomeInput2::OnButton1()
{
	// TODO: Add your control notification handler code here

}
void IncomeInput2::OnBUTsave()	// ¼�밴ť;
{
	// TODO: Add your control notification handler code here
	if (g_nYearpos != -1)
	{
		AfxMessageBox("��ǰΪ��ʷ���ݲ鿴״̬,���ܸ�����ʷ����!", MB_ICONSTOP);
		return;
	}
	AddIncome dlg;
	dlg.expendtypearray = &expendtypearray;
	dlg.itemarray = &itemarray;
	if (dlg.DoModal() == IDOK)
	{
		GetData();
	}
}

void IncomeInput2::OnBUTsave2()	// �޸İ�ť;
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	AddIncome dlg;
	dlg.m_id = m_List1.GetItemText(iItem, 0);
	dlg.m_renyuan1 = m_List1.GetItemText(iItem, 1);
	dlg.m_phone = m_List1.GetItemText(iItem, 2);
	dlg.m_name = m_List1.GetItemText(iItem, 3);
	dlg.m_money = m_List1.GetItemText(iItem, 4);
	dlg.m_renyuan3 = m_List1.GetItemText(iItem, 8);
	dlg.m_sale2type = m_List1.GetItemText(iItem, 10);
	dlg.m_bz = m_List1.GetItemText(iItem, 11);
	dlg.m_count = m_List1.GetItemText(iItem, 12);
	dlg.m_renyuan2 = m_List1.GetItemText(iItem, 7);
	dlg.m_date = m_List1.GetItemText(iItem, 9);

	dlg.expendtypearray = &expendtypearray;
	dlg.itemarray = &itemarray;
	if (dlg.DoModal() == IDOK)
	{
		GetData();
	}
}

void IncomeInput2::OnButton2()	// ��ѯ��ť;
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid();
}

void IncomeInput2::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult)
{
	NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
	// Take the default processing unless we set this to something else below.
	*pResult = 0;

	// First thing - check the draw stage. If it's the control's prepaint
	// stage, then tell Windows we want messages for every item.
	if (CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage)
	{
		*pResult = CDRF_NOTIFYITEMDRAW;
	}
	else if (CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage)
	{
		// This is the prepaint stage for an item. Here's where we set the
		// item's text color. Our return value will tell Windows to draw the
		// item itself, but it will use the new color we set here.
		// We'll cycle the colors through red, green, and light blue.

		if (m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6) == "")
		{
		}
		else if (atoi(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6)) != 0)
			pLVCD->clrText = RGB(220, 0, 0);
		else
			pLVCD->clrText = RGB(20, 133, 20);

		if (pLVCD->nmcd.dwItemSpec % 2)
			pLVCD->clrTextBk = g_gridcol1;
		else
			pLVCD->clrTextBk = g_gridcol2;
		// Store the color back in the NMLVCUSTOMDRAW struct.


		// Tell Windows to paint the control itself.
		*pResult = CDRF_DODEFAULT;
	}
}

void IncomeInput2::OnBUTpay()		// �տť;
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	Singleincomemoney dlg;
	dlg.m_id = m_List1.GetItemText(iItem, 0);
	dlg.m_name = m_List1.GetItemText(iItem, 1);
	dlg.m_phone = m_List1.GetItemText(iItem, 2);
	dlg.m_sitem = m_List1.GetItemText(iItem, 3);
	dlg.m_money1 = m_List1.GetItemText(iItem, 4);
	dlg.m_money2 = m_List1.GetItemText(iItem, 5);
	dlg.m_money3 = m_List1.GetItemText(iItem, 6);
	dlg.m_ren = m_List1.GetItemText(iItem, 8);
	dlg.m_bz = m_List1.GetItemText(iItem, 11);
	dlg.DoModal(); GetData();
}

void IncomeInput2::OnButton4()	// ������ѯ;
{
	// TODO: Add your control notification handler code here
	SearchFilter4 dlg;
	if (dlg.DoModal() == IDOK)
	{
		FillGrid();
	}
	g_bSearchFilter = 0;
}

void IncomeInput2::OnButton5()
{
	// TODO: Add your control notification handler code here
	Other2SaleChart dlg;
	dlg.DoModal();
}

void IncomeInput2::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	OnBUTsave2();
	*pResult = 0;
}