// ShowMember.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "ShowMember.h"
#include "MyMdi.H"
#include "AddMember.h"
#include "ShowMemberReg.h"
#include "InputCard2Dlg.h"
#include "ShowCard2Reg.h"
#include "InputCard2Point.h"
#include "UsePoint.h"
#include "InputCard3Dlg.h"
#include "MemberCardFunc.h"
#include "SendMsgDlg.h"
#include "BasicExcelVC6.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "Shlwapi.lib")
/////////////////////////////////////////////////////////////////////////////
// ShowMember IDC_STATIC2

IMPLEMENT_DYNCREATE(ShowMember, MyFormView)
ShowMember::ShowMember()
: MyFormView(ShowMember::IDD)
{
	//{{AFX_DATA_INIT(ShowMember)
	m_filter = _T("");
	m_bInit=0;
	m_year = atoi(g_date.Left (4));
	m_nAdd=0;
	//}}AFX_DATA_INIT
	if(g_bAllBranch)
	{	
		m_nAdd=1;
	}
}

ShowMember::~ShowMember()
{
}

void ShowMember::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(ShowMember)
	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_EDIT15, m_filter);
	DDX_Text(pDX, IDC_EDITyear, m_year);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(ShowMember, MyFormView)
	//{{AFX_MSG_MAP(ShowMember)
	ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
	ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
	ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
	ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
	ON_BN_CLICKED(IDC_BUTTON15, OnButton15)
	ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
	ON_BN_CLICKED(IDC_BUTTON19, OnButton19)
	ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
	ON_BN_CLICKED(IDC_BUTTON20, OnButton20)
	ON_BN_CLICKED(IDC_BUTTON21, OnButton21)
	ON_BN_CLICKED(IDC_BUTTON24, OnButton24)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ShowMember diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// ShowMember message handlers

void ShowMember::OnInitialUpdate() 
{
	MyFormView::OnInitialUpdate();
	// TODO: Add your specialized code here and/or call the base class
	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
	GetDlgItem(IDC_BUTTON5)->EnableWindow(IsHasRights2new(49));
	// 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_BUTTON2,IDC_BUTTON20,IDC_BUTTON21,IDC_BUTTON24,IDC_BUTclose};
	int idcount=5;
	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_static1.SetFont (&g_titlefont);
	if(g_bAllBranch==0)
	{
		m_List1.SetHeadings("������,100;����,100;�Ա�,100;�绰,100;����,100;���,100;��������,100;������,100;��������,100;��������,100;������ϵ,100;����,100;�ջ�����,100" );
		m_List1.LoadColumnInfo (130);
	}
	else
	{
		m_List1.SetHeadings("����,100;������,100;����,100;�Ա�,100;�绰,100;����,100;���,100;��������,100;������,100;��������,100;��������,100;������ϵ,100;����,100;�ջ�����,100" );
		m_List1.LoadColumnInfo (230);
	}
	m_List1.m_bSortSupport =0;
	m_spinyear.SetRange (1900, 3000);
	m_bInit=1;
	GetData();
}

void ShowMember::FillGrid()
{
	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==2)//ƴ��
		{
			m_filter.MakeUpper ();		BOOL bFinded=0;
			for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
			{
				if(bFinded && m_List1array.ElementAt (ii).ElementAt (0+m_nAdd).IsEmpty ())
				{
					m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
					continue;
				}
				if(m_List1array.ElementAt (ii).ElementAt (13+m_nAdd).Find (m_filter)!=-1 )
				{
					bFinded=1;
					m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
				}
				else
				{
					bFinded=0;
				}
			}
		}
		else
		{
			BOOL bFinded=0;
			for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
			{
				if(bFinded && m_List1array.ElementAt (ii).ElementAt (0+m_nAdd).IsEmpty ())
				{
					m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
					continue;
				}
				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 (4).Find (m_filter)!=-1|| \
					m_List1array.ElementAt (ii).ElementAt (5).Find (m_filter)!=-1 || \
					m_List1array.ElementAt (ii).ElementAt (6).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 (8+m_nAdd).Find (m_filter)!=-1  )
				{
					bFinded=1;
					while(m_List1array.ElementAt (ii).ElementAt (0)=="")
					{
						ii--;
					}
					m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
				}
				else
				{
					bFinded=0;
				}
			}
		}
	}
	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 ShowMember::OnBUTclose() 
{
	// TODO: Add your control notification handler code here
	GetParent()->SendMessage(WM_CLOSE);
}

void ShowMember::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	KillTimer(nIDEvent);
	OnButton1();
}

BOOL ShowMember::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:	
				InputOK();
				OnButton1();
				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;
			case '0':
			case VK_NUMPAD0:
				m_no+="0";
				break;
			case '1':
			case VK_NUMPAD1:
				m_no+="1";
				break;
			case '2':
			case VK_NUMPAD2:
				m_no+="2";
				break;
			case '3':
			case VK_NUMPAD3:
				m_no+="3";
				break;
			case '4':
			case VK_NUMPAD4:
				m_no+="4";
				break;
			case '5':
			case VK_NUMPAD5:
				m_no+="5";
				break;
			case '6':
			case VK_NUMPAD6:
				m_no+="6";
				break;
			case '7':
			case VK_NUMPAD7:
				m_no+="7";
				break;
			case '8':
			case VK_NUMPAD8:
				m_no+="8";
				break;
			case '9':
			case VK_NUMPAD9:
				m_no+="9";
				break;
			case 187:
				m_no+="=";
				break;
			case VK_BACK:
				if(m_no.GetLength ())
				{
					m_no.Delete (m_no.GetLength ()-1);
				}
				break;
			}
		}
		return MyFormView::PreTranslateMessage(pMsg);
	}
	catch(...)
	{
	}

	return true;
}

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

void ShowMember::OnButton2() // ���¿���ť;
{
	// TODO: Add your control notification handler code here
	AddMember dlg;
	if(dlg.DoModal ()==IDOK)
	{
		GetData();
	}
}

void ShowMember::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString branch;
	if(g_bAllBranch)
		branch=m_List1.GetItemText (iItem, 0);


	CString memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
	while(memberno=="")
	{
		iItem--;
		memberno=m_List1.GetItemText (iItem, 0+m_nAdd);
	}


	MemberCardFunc dlg;
	dlg.m_branch=branch;
	dlg.m_memberno=memberno;
	dlg.DoModal();	GetData();
	*pResult = 0;
}

void ShowMember::OnButton3() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ��Ҫ�鿴�Ļ�Ա!");
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString memberno=m_List1.GetItemText (iItem, 1);
	ShowMemberReg dlg;
	dlg.m_memberno=memberno;
	dlg.DoModal ();
}

void ShowMember::OnButton4() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ��Ҫ�鿴�Ļ�Ա!");
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString memberno=m_List1.GetItemText (iItem, 1);
	ShowMemberReg dlg;
	dlg.m_mode=1;
	dlg.m_memberno=memberno;
	dlg.DoModal ();
	if(dlg.m_bNeedRefsh==0)return;

	GetData();
}

void ShowMember::OnButton5() 
{
	if(IsHasRights2new(49)==0)return;
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ����Ҫɾ���Ļ�Ա!");
		return;
	}

	if(AfxMessageBox("ɾ���󽫲��ɻָ�, ȷ����?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
	int iItem=m_List1.GetNextSelectedItem(pos);	

	CString m_memberno=m_List1.GetItemText (iItem, 1);
	CString sql;
	sql="delete from membermanage where [memberno]='"+m_memberno+"'";
	sql+="***delete from memberreg where [memberno]='"+m_memberno+"'";
	sql+="***delete from memberreg2 where [memberno]='"+m_memberno+"'";
	sql+="***delete from memberreg3 where [memberno]='"+m_memberno+"'";
	sql+="***delete from memberreg4 where [memberno]='"+m_memberno+"'";
	sql+="***delete from membercard3usereg where [memberno]='"+m_memberno+"'";
	sql+="***delete from membercard2 where [memberno]='"+m_memberno+"'";
	sql+="***delete from membercard3 where [memberno]='"+m_memberno+"'";
	g_sendhead.bsql=1;
	g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;	

	GetData();
}

void ShowMember::OnButton6() 
{
	// TODO: Add your control notification handler code handler
	if(IsHasRights2new(18)==0)return;
	// TODO: Add your control notification  code
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ����Ҫ���ֵĻ�Ա!");
		return;
	}

	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString m_memberno=m_List1.GetItemText (iItem, 1);
	CString m_name=m_List1.GetItemText (iItem, 2);
	CString m_sex=m_List1.GetItemText (iItem, 3);
	CString m_phone=m_List1.GetItemText (iItem, 4);
	InputCard2Point dlg;
	dlg.m_memberno=m_memberno;
	dlg.m_name=m_name;
	dlg.m_sex=m_sex;
	dlg.m_phone=m_phone;
	if(dlg.DoModal ()!=IDOK)return;

	GetData();
}

void ShowMember::OnButton10() 
{
	// TODO: Add your control notification handler code here
	if(IsHasRights2new(18)==0)return;
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ������!");
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString name=m_List1.GetItemText (iItem, 2);	
	CString no=m_List1.GetItemText (iItem, 1);	
	InputCard2Dlg dlg;
	dlg.m_name =name;
	dlg.m_no =no;
	dlg.DoModal ();
}

void ShowMember::OnButton11() 
{
	// TODO: Add your control notification handler code here
	if(IsHasRights2new(18)==0)return;
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ������!");
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);		
	CString no=m_List1.GetItemText (iItem, 1);	
	CString filter="[memberno]='"+no+"'";
	g_sendhead.bsql=0;
	g_sendhead.code[0]=127;
	g_sendhead.tabcount=1;
	g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
	DataToArray(&g_List1array);
	if(g_List1array.GetSize ()==0)
	{
		AfxMessageBox("������δ���Ÿ���!");
	}
	else
	{
		ShowCard2Reg dlg;
		dlg.DoModal ();
	}
}

void ShowMember::OnButton8() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ����Ҫ�һ����ֵĻ�Ա!");
		return;
	}

	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString m_memberno=m_List1.GetItemText (iItem, 1);
	CString m_name=m_List1.GetItemText (iItem, 2);
	CString m_sex=m_List1.GetItemText (iItem, 3);
	CString m_phone=m_List1.GetItemText (iItem, 4);
	UsePoint dlg;
	dlg.m_memberno=m_memberno;
	dlg.m_name=m_name;
	dlg.m_sex=m_sex;
	dlg.m_phone=m_phone;
	dlg.m_point =m_List1.GetItemText (iItem,9);
	if(dlg.DoModal ()!=IDOK)return;

	GetData();
}

void ShowMember::OnButton15() 
{
	// TODO: Add your control notification handler code here
	if(IsHasRights2new(18)==0)return;
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ������!");
		return;
	}
	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString name=m_List1.GetItemText (iItem, 2);	
	CString no=m_List1.GetItemText (iItem, 1);	
	InputCard3Dlg dlg;
	dlg.m_name =name;
	dlg.m_no =no;
	dlg.DoModal ();	
}

void ShowMember::OnButton14() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ����Ҫ���ͻ��ֵĻ�Ա!");
		return;
	}

	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString m_memberno=m_List1.GetItemText (iItem, 1);
	CString m_name=m_List1.GetItemText (iItem, 2);
	CString m_sex=m_List1.GetItemText (iItem, 3);
	CString m_phone=m_List1.GetItemText (iItem, 4);
	UsePoint dlg;
	dlg.m_mode=1;
	dlg.m_memberno=m_memberno;
	dlg.m_name=m_name;
	dlg.m_sex=m_sex;
	dlg.m_phone=m_phone;
	dlg.m_point =m_List1.GetItemText (iItem,9);
	if(dlg.DoModal ()!=IDOK)return;

	GetData();
}

void ShowMember::OnButton19() 
{
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos=m_List1.GetFirstSelectedItemPosition();	
	if(pos==NULL)
	{
		AfxMessageBox("����ѡ����Ҫ���ͻ��ֵĻ�Ա!");
		return;
	}

	int iItem=m_List1.GetNextSelectedItem(pos);	
	CString m_memberno=m_List1.GetItemText (iItem, 1);
	CString m_name=m_List1.GetItemText (iItem, 2);
	CString m_sex=m_List1.GetItemText (iItem, 3);
	CString m_phone=m_List1.GetItemText (iItem, 4);
	UsePoint dlg;
	dlg.m_mode=2;
	dlg.m_memberno=m_memberno;
	dlg.m_name=m_name;
	dlg.m_sex=m_sex;
	dlg.m_phone=m_phone;
	dlg.m_point =m_List1.GetItemText (iItem,9);
	if(dlg.DoModal ()!=IDOK)return;

	GetData();
}

void ShowMember::InputOK()
{
	if(m_no.IsEmpty ())return;
	m_filter=m_no;
	m_no.Empty ();
	UpdateData(0);


	for(int ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
	{
		if(m_List1.m_arLabels.ElementAt (ii).ElementAt (0)==m_filter)
			break;
		if(m_List1.m_arLabels.ElementAt (ii).ElementAt (4)==m_filter)
		{	
			m_List1.SetItemState(ii,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);   
			m_List1.EnsureVisible(ii,FALSE); 
			return;
		}
	}



	MemberCardFunc dlg;
	dlg.m_memberno=m_filter;
	dlg.DoModal();
	GetData();
}

void ShowMember::GetData()
{
	if(!m_bInit)return;
	UpdateData();
	if(g_bAllBranch==0)
	{
		g_sendhead.bsql=0;
		g_sendhead.code[0]=167;
		g_sendhead.tabcount=1;
		m_spinyear.EnableWindow(0);
		g_pMainWnd->ProcessChatMessageRequest2(1);
		if(g_bSendOK==0)
		{
			m_spinyear.EnableWindow(1);
			return;
		}	
		m_spinyear.EnableWindow(1);
		DataToArray(&m_List1array);
	}
	else
	{
		m_spinyear.EnableWindow(0);
		//////////////���ݻ���
		m_List1array.RemoveAll ();
		CString branch;
		for(int i=-1; i<g_brancharray.GetSize ()-1; i++)
		{
			if(i!=-1)
			{
				branch=g_brancharray.ElementAt (i).ElementAt (0);
				g_branchip=g_brancharray.ElementAt (i).ElementAt (1);
				g_pMainWnd->OnDisconnect();
				g_branchname=branch;
				g_bBranchModify=1;
			}
			else
				branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);


			g_sendhead.bsql=0;
			g_sendhead.code[0]=167;
			g_sendhead.tabcount=1;
			g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)continue;

			CArray<CStringArray, CStringArray>List1array;
			DataToArray(&List1array);   
			int size=m_List1array.GetSize ();
			for(int j=0; j<List1array.GetSize (); j++)
			{
				size++;
				m_List1array.SetSize(size , 1 );
				size--;
				m_List1array.ElementAt (size).Copy (List1array.ElementAt (j));
				m_List1array.ElementAt (size).InsertAt (0, branch);
				size++;
			}
		}
		g_pMainWnd->OnDisconnect();
		g_bBranchModify=0;g_branchip=g_branchname="";
		m_spinyear.EnableWindow(1);
	}


	HidePrice();
	FillGrid();	
}

void ShowMember::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 ShowMember::OnButton20() // ���Ͷ��Ű�ť;
{
	// 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,  3+m_nAdd).IsEmpty ())
			array.Add (m_List1.GetItemText (iItem,  3+m_nAdd));
	}
	SendMsgDlg dlg;
	dlg.m_mode=1;
	dlg.m_pArray=&array;
	dlg.DoModal ();		
}
BOOL ShowMember::CheckExist(CString no)
{
	for(int i=0; i<m_List1array.GetSize (); i++)
	{
		if(m_List1array.ElementAt (i).ElementAt (0)==no)return 1;
	}
	return 0;
}

void ConvertDate(CString &date)
{	
	date.Replace (".", "-");
	date.Replace ("/", "-");
	CString str=date;
	int pos=str.Find ("-");
	if(pos==-1)return;
	int year=atoi(str.Left (pos));
	str=str.Right (str.GetLength ()-pos-1);	
	pos=str.Find ("-");
	if(pos==-1)return;
	int month=atoi(str.Left (pos));
	str=str.Right (str.GetLength ()-pos-1);	
	int day=atoi(str);
	date.Format ("%d-%02d-%02d", year, month, day);
}

extern void CheckDate(CString &date);
void ShowMember::OnButton21()	// ���밴ť;
{
	if(IsHasRights2new(18)==0)return;
	using namespace YExcel;

	BasicExcel e;
	CFileDialog fdlg(true, NULL,"", OFN_HIDEREADONLY, "Excel files(*.xls)|*.xls||");  
	if(fdlg.DoModal ()!=IDOK)return;
	CString path=fdlg.GetPathName();

	e.Load(path);
	BasicExcelWorksheet* sheet1 = e.GetWorksheet("Sheet1");
	if (sheet1)
	{
		size_t maxRows = sheet1->GetTotalRows();
		size_t maxCols = sheet1->GetTotalCols();
		if(maxCols>7)maxCols=7;
		if(maxCols<7)
		{
			AfxMessageBox("��ʽ����:ȱ����Ŀ!");return;
		}
		if(maxRows<2)
		{
			AfxMessageBox("û������!");return;
		}

		CStringArray array;
		for (size_t r=0; r<maxRows; ++r)
		{
			for (size_t c=0; c<maxCols; ++c)
			{
				BasicExcelCell* cell = sheet1->Cell(r,c);
				switch (cell->Type())
				{
				case BasicExcelCell::STRING:
					array.Add(cell->GetString());
					break;
				case BasicExcelCell::WSTRING:
					{	
						int leng = wcslen(cell->GetWString());  
						char* ppszA=new char[2*leng+1];
						memset(ppszA, 0, 2*leng+1);
						WideCharToMultiByte(CP_ACP,0,cell->GetWString(),-1,ppszA,leng*2,NULL,NULL); 
						CString str=ppszA;
						str.TrimLeft();str.TrimRight();
						array.Add (str);
						delete []ppszA;
			  }
					break;
				default:
					array.Add ("");
				}
			}
			if(r==0)
			{
				if(array.GetSize ()!=maxCols)
				{
					AfxMessageBox("���϶�ȡ����");return;
				}
				if(array.ElementAt (0)!="��Ա����")
				{
					AfxMessageBox("��ʽ����2");return;  
				} 
				array.RemoveAll ();
			}
		}
		///////////////////////	
		CString sql,temp;	
		CString m_name,strRes1;
		CString m_memberno,m_sex,m_date,m_phone,m_qq,m_birthday,m_point;
		int count=0;
		CStringArray noarray;
		for(int i=0; i<array.GetSize (); i+=7)
		{
			m_memberno=array.ElementAt (i+0);
			m_name=array.ElementAt (i+1);
			m_sex=array.ElementAt (i+2);
			m_phone=array.ElementAt (i+3);
			m_qq=array.ElementAt (i+4);
			m_birthday=array.ElementAt (i+5);
			m_point=array.ElementAt (i+6);
			ConvertDate(m_birthday);
			CheckDate(m_birthday);
			ChinesePinYin::GetFirstLetter(m_name, strRes1);
			if(m_name.IsEmpty () || m_memberno=="")continue;
			if(CheckExist(m_memberno))continue;
			if(::FindArray(&noarray, m_memberno)!=-1)continue;
			noarray.Add(m_memberno);
			temp.Format ("insert into [membermanage]([memberno],[name],[sex],[phone],[qq],[birthday],[date],[pinyin],[money])values('%s','%s','%s','%s','%s','%s','%s','%s','%s')",m_memberno,m_name,m_sex,m_phone,m_qq,m_birthday,g_date,strRes1,m_point);
			sql+=temp;
			sql+="***";

			temp="insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','�����ʼ����','"+m_point+"','"+g_date+"','���ѻ���')";
			sql+=temp;
			sql+="***";


			count++;
			if(count==5)
			{
				sql.TrimRight ("***");
				g_sendhead.bsql=1;
				g_pMainWnd->ProcessChatMessageRequest2(sql);
				if(g_bSendOK==0)
				{
					AfxMessageBox("��������г��ִ���!");
					return;
				}
				sql.Empty ();count=0;GetData();
			}
			::Sleep(1000);
		}

		/////////////////////////////////////
		if(!sql.IsEmpty ())
		{
			sql.TrimRight ("***");
			g_sendhead.bsql=1; 
			g_pMainWnd->ProcessChatMessageRequest2(sql);
			if(g_bSendOK==0)
			{
				AfxMessageBox("��������г��ִ���!");
				return;
			}
			sql.Empty ();count=0;GetData();
		}
		AfxMessageBox("����ɹ�!");
		///////////////////////
	}
	else
		AfxMessageBox("��ʽ���󣬻��ļ�δ�ر�!!");
}

void ShowMember::OnButton24()	// ������ť;
{
	// TODO: Add your control notification handler code here
	if(IsHasRights2new(18)==0)return;
	ListToXLS(&m_List1, "c:\\��Ա����.xls", 0);	
}

void ShowMember::HidePrice()
{
#ifdef LKAY_VERSION
	if(IsHasRights2new(31))return;
	for(int i=0; i<	m_List1array.GetSize (); i++)
	{
		m_List1array.ElementAt (i).SetAt (3, "***");
	}
#endif
}