// Client2Form.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "Client2Form.h"
#include "MyMdi.H"
#include "ModifyDinDan.h"
#include "NeroDlg.h"
#include "ClientRequirement.h"
#include "./helper/ffsco.h"
#include "AddClient.h"
#include "SendMsgDlg.h"
#include "BasicExcelVC6.h"
#include "SelExportType.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "Shlwapi.lib")
/////////////////////////////////////////////////////////////////////////////
// Client2Form

IMPLEMENT_DYNCREATE(Client2Form, MyFormView)
Client2Form::Client2Form()
: MyFormView(Client2Form::IDD)
{
	//{{AFX_DATA_INIT(Client2Form)
	m_filter = _T("");
	//}}AFX_DATA_INIT
}

Client2Form::~Client2Form()
{
}

void Client2Form::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Client2Form)
	DDX_Control(pDX, IDC_COMBO1, m_combo1);
	DDX_Control(pDX, IDC_LIST2, m_List1);
	DDX_Control(pDX, IDC_STATIC1, m_static1);
	DDX_CBString(pDX, IDC_COMBO1, m_filter);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(Client2Form, MyFormView)
	//{{AFX_MSG_MAP(Client2Form)
	ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
	ON_BN_CLICKED(IDC_BUTburncd, OnBUTClient2Form)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
	ON_BN_CLICKED(IDC_BUTburncd2, OnBUTburncd2)
	ON_BN_CLICKED(IDC_BUTburncd3, OnBUTburncd3)
	ON_BN_CLICKED(IDC_BUTsendmsg, OnBUTsendmsg)
	ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Client2Form diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// Client2Form message handlers

void Client2Form::OnInitialUpdate()
{
	MyFormView::OnInitialUpdate();
	GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);
	//	GetDlgItem(IDC_BUTshowphoto)->EnableWindow(IsHasRights2new(49));
	GetDlgItem(IDC_BUTburncd3)->EnableWindow(IsHasRights2new(49));
	GetDlgItem(IDC_BUTprint3)->EnableWindow(IsHasRights2new(49));
	// TODO: Add your specialized code here and/or call the base class
	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);

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

	EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);

	int idarray[] = { IDC_BUTburncd, IDC_BUTburncd2, IDC_BUTburncd3, IDC_BUTsendmsg, IDC_BUTshowphoto, IDC_BUTprint3, IDC_BUTclose };
	int idcount = 7;
	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);
	m_List1.SetHeadings("id,0;�ͻ�����,100;�Ա�,100;�绰,100;QQ,100;��ַ,100;��Դ,100;��ʧԭ��,100;��ע,100;����,100;����,100;����,100");
	m_List1.LoadColumnInfo(144);

	GetData();



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

void Client2Form::FillGrid(BOOL bStatus)
{
	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(3).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(12).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(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(9).Find(m_filter) != -1 || \
					m_List1array.ElementAt(ii).ElementAt(8).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);

	CRect rc;
	GetDlgItem(IDC_STATIC2)->GetWindowRect(rc);
	ScreenToClient(rc);
	InvalidateRect(rc);
}

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


void Client2Form::OnSelchangeCombo1()
{
	// TODO: Add your control notification handler code here
	SetTimer(1, 100, NULL);
}

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


BOOL Client2Form::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:
				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;
			}
		}
		return MyFormView::PreTranslateMessage(pMsg);
	}
	catch (...)
	{
	}
return true;
}


extern int   CALLBACK   BrowseProc(HWND   hwnd, UINT   msg, LPARAM   lParam, LPARAM   lpData);
/*{
switch(msg)
{
case   BFFM_INITIALIZED:
SendMessage(hwnd,   BFFM_SETSELECTION,   TRUE,   NULL);
break;
case   BFFM_SELCHANGED:
{
char   szFileName[MAX_PATH];
LPITEMIDLIST   pidlCurrent   =   (LPITEMIDLIST)lParam;
SHGetPathFromIDList(pidlCurrent,   szFileName);
SendMessage(hwnd,   BFFM_SETSTATUSTEXT,   0,   (LPARAM)szFileName);
}
break;
}
return   0;
}*/

void Client2Form::GetSavePath(CString &path)
{
	char   lpszDisplayName[MAX_PATH], szFileName[MAX_PATH];
	LPITEMIDLIST   pidlDesktop, pidlCurrent;
	if (SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop)
		== NOERROR)
	{
		BROWSEINFO   bi;
		bi.hwndOwner = this->m_hWnd;
		bi.pidlRoot = pidlDesktop;
		bi.pszDisplayName = lpszDisplayName;
		bi.lpszTitle = "\n�ĵ������Ŀ¼:";
		bi.ulFlags = BIF_STATUSTEXT&BIF_RETURNONLYFSDIRS;
		bi.lpfn = BrowseProc;
		bi.lParam = 0;
		bi.iImage = 0;
		pidlCurrent = SHBrowseForFolder(&bi);

		SHGetPathFromIDList(pidlCurrent, szFileName);
		path = szFileName;
	}
}

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

//-----------------------------------------------------------------
// remark by Jeff 2014-12-12
// ������GetNo
// ��������str�н�����ÿ����Ƭ��,Ȼ�����յ�CStringArray��;
// ������
//		str:ѡ�õ���Ƭ����,�磺"001,002,003" ��ָ�����Ϊ"|",���Ӧ��"001|002|003"
//		array:�յ�����,������Ž��������Ƭ��;
// ���أ�
// ע�⣺�����ָ�����ɵ�����,�ڸú����ѽ��;
//-----------------------------------------------------------------
void Client2Form::GetNo(CString str, CStringArray &array)
{
	if (!str.IsEmpty())
	{
#ifdef USE_SEP_VEB
		int pos = str.Find(SEPS_VEB);
#else
		int pos = str.Find(",");
#endif
		while (pos != -1)
		{
			if (FindArray(&array, str.Left(pos)) == -1)
				array.Add(str.Left(pos));
			str = str.Right(str.GetLength() - pos - 1);
#ifdef USE_SEP_VEB
			pos = str.Find(SEPS_VEB);
#else
			pos = str.Find(",");
#endif
		}
		if (FindArray(&array, str) == -1)
			array.Add(str);
	}
}

//-----------------------------------------------------------------
// remark by Jeff 2014-12-12
// ������GetSelName
// ������
// ������
//		name:��GetNo����������ĵ�����Ƭ��,�磺"001"
//		spnamearray:�����µ���Ʒ����,case 50����;
// ���أ�
// ע�⣺�����ָ�����ɵ�����,�ڸú����ѽ��;
//-----------------------------------------------------------------
CString Client2Form::GetSelName(CString name, CArray<CStringArray, CStringArray>&spnamearray)
{
	CString ret;
#ifdef USE_SEP_VEB
	name = SEPS_VEB + name + SEPS_VEB;
#else
	name = "," + name + ",";
#endif
	CString str;
	for (int i = 0; i < spnamearray.GetSize(); i++)
	{
#ifdef USE_SEP_VEB
		str = SEPS_VEB + spnamearray.ElementAt(i).ElementAt(6) + SEPS_VEB;
#else
		str = "," + spnamearray.ElementAt(i).ElementAt(6) + ",";
#endif
		if (str.Find(name) != -1)
		{
			ret += spnamearray.ElementAt(i).ElementAt(5);
			ret += ";";
		}
	}
	ret.TrimRight(";");
	ret.Replace("*", "x");
	return ret;
}

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

void Client2Form::OnButton2()
{
	// TODO: Add your control notification handler code here	
}

void Client2Form::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here

	*pResult = 0;
}

void Client2Form::OnBUTClient2Form()
{
	// TODO: Add your control notification handler code here
	AddClient dlg;
	if (dlg.DoModal() == IDOK)
	{
		g_sendhead.bsql = 0;
		g_sendhead.code[0] = 90;
		g_sendhead.tabcount = 1;
		g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0)return;
		DataToArray(&m_List1array);
		m_List1arrayBak.SetSize(m_List1array.GetSize());
		for (int i = 0; i < m_List1array.GetSize(); i++)
		{
			m_List1arrayBak.ElementAt(i).Copy(m_List1array.ElementAt(i));
			if (m_List1array.ElementAt(i).ElementAt(8).GetLength()>256)
				m_List1array.ElementAt(i).SetAt(8, m_List1array.ElementAt(i).ElementAt(8).Left(256) + "..");
		}
		FillGrid();
	}

}

void Client2Form::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)return;
	OnBUTburncd2();
	*pResult = 0;
}

void Client2Form::OnBUTburncd2()
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ�޸ĵĿͻ�!", MB_ICONINFORMATION);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	AddClient dlg;
	dlg.m_bAdd = 0;
	dlg.id = m_List1.GetItemText(iItem, 0);
	dlg.m_name1 = m_List1.GetItemText(iItem, 1);
	dlg.m_sex = m_List1.GetItemText(iItem, 2);
	dlg.m_phone1 = m_List1.GetItemText(iItem, 3);
	dlg.m_qq1 = m_List1.GetItemText(iItem, 4);
	dlg.m_addr1 = m_List1.GetItemText(iItem, 5);
	dlg.m_from = m_List1.GetItemText(iItem, 6);
	dlg.m_reason = m_List1.GetItemText(iItem, 7);

	dlg.m_birthday1 = m_List1.GetItemText(iItem, 9);


	CString id = m_List1.GetItemText(iItem, 0);
	for (int ii = 0; ii < m_List1arrayBak.GetSize(); ii++)
	{
		if (m_List1arrayBak.ElementAt(ii).ElementAt(0) == id)
		{
			dlg.m_check1 = atoi(m_List1arrayBak.ElementAt(ii).ElementAt(13));
			dlg.m_bz = m_List1arrayBak.ElementAt(ii).ElementAt(8);
			break;
		}
	}

	if (dlg.DoModal() == IDOK)
	{
		g_sendhead.bsql = 0;
		g_sendhead.code[0] = 90;
		g_sendhead.tabcount = 1;
		g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0)return;
		DataToArray(&m_List1array);
		m_List1arrayBak.SetSize(m_List1array.GetSize());
		for (int i = 0; i < m_List1array.GetSize(); i++)
		{
			m_List1arrayBak.ElementAt(i).Copy(m_List1array.ElementAt(i));
			if (m_List1array.ElementAt(i).ElementAt(8).GetLength()>256)
				m_List1array.ElementAt(i).SetAt(8, m_List1array.ElementAt(i).ElementAt(8).Left(256) + "..");
		}
		FillGrid();
	}
}

void Client2Form::OnBUTburncd3()
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫɾ���Ŀͻ�!", MB_ICONINFORMATION);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString id = m_List1.GetItemText(iItem, 0);

	if (AfxMessageBox("ȷ��ɾ����?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return;

	CString sql;
	sql.Format("delete from client2 where id=%d ", atoi(id));
	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;

	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 90;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0)return;
	DataToArray(&m_List1array);
	m_List1arrayBak.SetSize(m_List1array.GetSize());
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		m_List1arrayBak.ElementAt(i).Copy(m_List1array.ElementAt(i));
		if (m_List1array.ElementAt(i).ElementAt(8).GetLength()>256)
			m_List1array.ElementAt(i).SetAt(8, m_List1array.ElementAt(i).ElementAt(8).Left(256) + "..");
	}
	FillGrid();

}

void Client2Form::OnBUTsendmsg()
{
	// 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).IsEmpty())
			array.Add(m_List1.GetItemText(iItem, 3));
	}
	SendMsgDlg dlg;
	dlg.m_mode = 2;
	dlg.m_pArray = &array;
	dlg.DoModal();
}

void Client2Form::OnBUTprint3()
{
	SelExportType dlg;
	if (dlg.DoModal() != IDOK)return;
	if (dlg.m_type == 1)
	{
		ListToXLS(&m_List1, "c:\\�ͻ�����.xls", 0);
		return;
	}


	CStdioFile fp;
	/*	if(::PathFileExists ("c:\\clientphone.txt"))
	{
	fp.Open ("c:\\clientphone.txt", CFile::modeWrite);
	fp.SeekToEnd ();
	}
	else*/
	fp.Open("c:\\clientphone.txt", CFile::modeCreate | CFile::modeWrite);
	CString str;
	CString str1, str2, str3, str4, str5, str6;
	CString phone;
	CString txname, txprice, mensi;

	int leng1 = 20;
	int leng2 = 10;
	int leng3 = 20;
	int leng4 = 20;
	int leng5 = 20;
	int leng6 = 30;
	str1 = "����";
	str2 = "�Ա�";
	str3 = "�绰";
	str4 = "QQ";
	str5 = "����";
	str6 = "��ַ";
	FillLength(str1, leng1);
	FillLength(str2, leng2);
	FillLength(str3, leng3);
	FillLength(str4, leng4);
	FillLength(str5, leng5);
	FillLength(str6, leng6);
	str = str1 + str2 + str3 + str4 + str5 + str6 + "\n";
	fp.WriteString(str);



	for (int i = 0; i < m_List1.GetItemCount(); i++)
	{
		str1 = str2 = str3 = str4 = str5 = "";
		str1 = m_List1.GetItemText(i, 1);
		str2 = m_List1.GetItemText(i, 2);
		str3 = m_List1.GetItemText(i, 3);
		str4 = m_List1.GetItemText(i, 4);
		str5 = m_List1.GetItemText(i, 9);
		str6 = m_List1.GetItemText(i, 5);
		FillLength(str1, leng1);
		FillLength(str2, leng2);
		FillLength(str3, leng3);
		FillLength(str4, leng4);
		FillLength(str5, leng5);
		FillLength(str6, leng6);
		str = str1 + str2 + str3 + str4 + str5 + str6 + "\n";
		fp.WriteString(str);

	}

	fp.Close();
	MessageBox("�绰�ѱ��浽c:\\clientphone.txt");
	ShellExecute(NULL, _T("open"), _T("c:\\clientphone.txt"), NULL, NULL, SW_SHOWMAXIMIZED);
}
extern void CheckDate(CString &date);
void Client2Form::OnBUTshowphoto()
{
	using namespace YExcel;
	// TODO: Add your control notification handler code here
	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 > 6)maxCols = 6;
		if (maxCols < 6)
		{
			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_name1, m_phone1, m_qq1, m_addr1, strRes1, m_sex, m_birthday1;
		int count = 0;
		for (int i = 0; i < array.GetSize(); i += 6)
		{
			m_name1 = array.ElementAt(i + 0);
			m_sex = array.ElementAt(i + 1);
			m_phone1 = array.ElementAt(i + 2);
			m_qq1 = array.ElementAt(i + 3);
			m_addr1 = array.ElementAt(i + 4);
			m_birthday1 = array.ElementAt(i + 5);
			CheckDate(m_birthday1);
			ChinesePinYin::GetFirstLetter(m_name1, strRes1);

			if (m_name1.IsEmpty())continue;
			if (CheckExist(m_name1, m_phone1))continue;

			temp.Format("insert into [client2]([name],[phone],[qq],[addr],[pinyin],[date],[sex],[birthday])values('%s','%s','%s','%s','%s','%s','%s','%s')", m_name1, m_phone1, m_qq1, m_addr1, strRes1, g_date, m_sex, m_birthday1);



			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();
		}
		///////////////////////
	}
	else
		AfxMessageBox("��ʽ���󣬻��ļ�δ�ر�!!");
}

void Client2Form::GetData()
{
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 90;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0)return;
	DataToArray(&m_List1array);
	m_List1arrayBak.SetSize(m_List1array.GetSize());
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		m_List1arrayBak.ElementAt(i).Copy(m_List1array.ElementAt(i));
		if (m_List1array.ElementAt(i).ElementAt(8).GetLength()>256)
			m_List1array.ElementAt(i).SetAt(8, m_List1array.ElementAt(i).ElementAt(8).Left(256) + "..");
	}
	FillGrid();
}

BOOL Client2Form::CheckExist(CString m_name1, CString m_phone1)
{
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		if (m_List1array.ElementAt(i).ElementAt(1) == m_name1 && m_List1array.ElementAt(i).ElementAt(3) == m_phone1)return 1;
	}
	return 0;
}