// DesignFrom.cpp : implementation file
//
#include "stdafx.h"
#include "ylgl.h"
#include "DesignFrom.h"
#include "MyMdi.H"
#include "ModifyDinDan.h"
#include "ImportPhoto.h"
#include "ClientRequirement.h"
#include "ChooseDesignSkin.h"
#include "./helper/ffsco.h"
#include "SelectPhotoDlg.h"
#include "ShowPic.h"
#include "Login2.h"
#include "ShowCut.h"
#include "CompressOption.h"
#include "DlgChuXiuInfo.h"
#include "N8Process.h"
#include "DlgN8ViewReuslt.h"
#include "DlgCloudSelection.h"
#include "DlgCloundResult.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "Shlwapi.lib")

IMPLEMENT_DYNCREATE(DesignFrom, MyFormView)
DesignFrom::DesignFrom() : MyFormView(DesignFrom::IDD)
{
	m_filter = _T("");
	m_nAdd = 0;

	if (g_bAllBranch)
	{
		m_nAdd = 1;
	}
}

DesignFrom::~DesignFrom()
{
}

void DesignFrom::DoDataExchange(CDataExchange* pDX)
{
	MyFormView::DoDataExchange(pDX);
	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);
}

BEGIN_MESSAGE_MAP(DesignFrom, MyFormView)
	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_BUTexportphoto, OnBUTexportphoto)
	ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
	ON_BN_CLICKED(IDC_BUTimportphoto2, OnBUTimportphoto2)
	ON_BN_CLICKED(IDC_BUTimportphoto3, OnBUTimportphoto3)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter)
	ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3)
	ON_BN_CLICKED(BTN_CloundXY, OnBnClickedCloundxy)
	ON_BN_CLICKED(BTN_RESULT, OnBnClickedResult)
END_MESSAGE_MAP()


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

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

/////////////////////////////////////////////////////////////////////////////

void DesignFrom::OnInitialUpdate()
{
	MyFormView::OnInitialUpdate();

	CMyMdi Mdi;
	Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
	GetDlgItem(IDC_BUTimportphoto3)->EnableWindow(IsHasRights2new(12));
	GetDlgItem(IDC_BUTTON3)->EnableWindow(IsHasRights2new(12));

	GetDlgItem(IDC_BUTshowphoto)->EnableWindow(IsHasRights2new(15));

	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);

	if (g_bAllBranch == 0)
	{
		int idarray[] = { IDC_BUTexportphoto, IDC_BUTimportphoto, IDC_BUTimportphoto2, IDC_BUTimportphoto3, IDC_BUTshowphoto, IDC_BUTTON3, 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);
		}
	}
	else
	{
		GetDlgItem(IDC_BUTshowphoto)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTprint3)->ShowWindow(SW_SHOWNORMAL);
		int idarray[] = { IDC_BUTprint3, IDC_BUTexportphoto, IDC_BUTimportphoto, IDC_BUTimportphoto2, IDC_BUTimportphoto3, IDC_BUTTON3, 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);

	// Jeff.�ھ���״̬�����Ӿ�������;
	if (g_bAllBranch == 0)
	{
#ifdef CHILD_VERSION
		// 19 ��;
		m_List1.SetHeadings("������,100;�ҳ�����,100;��������,100;����,100;��������,100;���,100;�������,100;�����,100;���������,100;�Ӽ�,100;ȡ������,100;�����Ҫ��,100;�ӵ���,100;�������,100;���ʦ,100;��ϵ����,100;��ϵ�۸�,100;�ֻ�,100;�̶��绰,100");
#else
		// 19 ��;
		m_List1.SetHeadings("������,100;�б�����,100;Ů������,100;����,100;��������,100;���,100;�������,100;�����,100;���������,100;�Ӽ�,100;ȡ������,100;�����Ҫ��,100;�ӵ���,100;�������,100;���ʦ,100;��ϵ����,100;��ϵ�۸�,100;�б��绰,100;Ů���绰,100");
#endif
		m_List1.LoadColumnInfo(119);
	}
	else
	{
#ifdef CHILD_VERSION
		// 20 ��;
		m_List1.SetHeadings("����,100;������,100;�ҳ�����,100;��������,100;����,100;��������,100;���,100;�������,100;�����,100;���������,100;�Ӽ�,100;ȡ������,100;�����Ҫ��,100;�ӵ���,100;�������,100;���ʦ,100;��ϵ����,100;��ϵ�۸�,100;�ֻ�,100;�̶��绰,100");
#else
		m_List1.SetHeadings("����,100;������,100;�б�����,100;Ů������,100;����,100;��������,100;���,100;�������,100;�����,100;���������,100;�Ӽ�,100;ȡ������,100;�����Ҫ��,100;�ӵ���,100;�������,100;���ʦ,100;��ϵ����,100;��ϵ�۸�,100;�б��绰,100;Ů���绰,100");
#endif
		m_List1.LoadColumnInfo(199);
	}

	GetData();

	m_combo1.AddString(g_user.name);
	m_combo1.GetWindowRect(rc2);
	ScreenToClient(rc2);
	rc2.bottom += 200;
	m_combo1.MoveWindow(rc2);
	GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2);
	SetComboHei(&m_combo1, rc2.Height());
	GetDlgItem(IDC_BUTexportphoto)->EnableWindow(IsHasRights2new(11));

	m_bN8 = AfxGetApp()->GetProfileInt(LYFZVERSION, "N8SampleChoose", 0);
	if ( m_bN8 )
	{
		SetDlgItemText(IDC_STATIC1,_T("N8ѡ��"));
		SetDlgItemText(IDC_BUTimportphoto, _T("����N8ѡ��"));
		SetDlgItemText(IDC_BUTTON3, _T("����N8ѡ��"));
		SetDlgItemText(IDC_BUTshowphoto, _T("N8ѡ��"));
		GetDlgItem(IDC_BUTimportphoto2)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTimportphoto3)->ShowWindow(SW_HIDE);
		// �ƶ���ťλ��;
		CRect rc;
		GetDlgItem(IDC_BUTimportphoto)->GetWindowRect(rc);
		ScreenToClient(rc);
		printf("top:%d, left:%d, right:%d, bottom:%d, width=%d\n", rc.top, rc.left, rc.right, rc.bottom, rc.Width());
		rc.OffsetRect(rc.Width() + 1, 0);
		GetDlgItem(IDC_BUTshowphoto)->MoveWindow(rc);

		rc.OffsetRect(rc.Width() + 1, 0);
		GetDlgItem(IDC_BUTTON3)->MoveWindow(rc);
	}

	if ( !g_bEnableClound )
	{
		GetDlgItem(BTN_CloundXY)->ShowWindow(SW_HIDE);
		GetDlgItem(BTN_RESULT)->ShowWindow(SW_HIDE);
	}
}

void DesignFrom::FillGrid(BOOL bStatus)
{
	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 != "")
				{
					// ��ѯ����==�������; ԭ������5
					if (m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) < g_filterdate1 || m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) > g_filterdate2)
						continue;
				}
				if (g_waiter1 != "")
				{
					// ��ѯ����==���ʦ; ԭ������13
					if (m_List1array.ElementAt(ii).ElementAt(14 + m_nAdd) != g_waiter1)
						continue;
				}
				if (g_bAllBranch && g_filterbranch != "")
				{
					if (m_List1array.ElementAt(ii).ElementAt(0) != g_filterbranch)
						continue;
				}

				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())
		{
			if (bStatus)
			{
				for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
				{
					// ��ѯ����==����״̬&&���״̬��ԭ����4��;
					if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK" && m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK")
					{
						m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
					}
				}
			}
			else
			{
				for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
				{
					m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
				}
			}
		}
		else
		{
			if (bStatus)
			{
				int type = GetType(m_filter);
				if (type == 1)//�绰
				{
					for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
					{
						// ��ѯ����==����״̬&&���״̬ &&���ֻ���ԭ��16��||������ԭ��17����
						if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK" &&
							m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK" &&
							(m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(18 + m_nAdd).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++)
					{
						// ��ѯ����==����״̬&&���״̬ &&��ƴ��1��ԭ��18��||ƴ��2��ԭ��19����
						if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK"
							&&m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"
							&& (m_List1array.ElementAt(ii).ElementAt(19 + m_nAdd).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(20 + m_nAdd).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(3 + m_nAdd) == "OK" &&
							m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK" &&
							(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(12).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(18).Find(m_filter) != -1 || \
							m_List1array.ElementAt(ii).ElementAt(19).Find(m_filter) != -1))
						{
							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++)
					{
						// ��ѯ����==�ֻ���ԭ��16��||������ԭ��17��
						if (m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(18 + m_nAdd).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++)
					{
						// ��ѯ����==��ƴ��1��ԭ��18��||ƴ��2��ԭ��19��
						if (m_List1array.ElementAt(ii).ElementAt(19 + m_nAdd).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(20 + m_nAdd).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(12).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(18).Find(m_filter) != -1 ||
							m_List1array.ElementAt(ii).ElementAt(19).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);
	}

	if (!g_id.IsEmpty())
	{
		for (int i = 0; i < m_List1.GetItemCount(); i++)
		{
			if (g_id == m_List1.GetItemText(i, 0 + m_nAdd))
			{
				m_List1.SetItemState(i, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
				m_List1.EnsureVisible(i, FALSE);
				break;
			}
		}
	}
}

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

void DesignFrom::OnSelchangeCombo1()
{
	SetTimer(1, 100, NULL);
}

void DesignFrom::OnTimer(UINT nIDEvent)
{
	KillTimer(nIDEvent);
	OnButton1();
}

BOOL DesignFrom::PreTranslateMessage(MSG* pMsg)
{
	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;
			}
		}
		else if (pMsg->message == WM_LBUTTONDBLCLK)
		{
			CPoint pt;
			CRect rc, rc2;
			::GetCursorPos(&pt);
			m_List1.GetWindowRect(rc2);
			if (rc2.PtInRect(pt) == 0)
				return MyFormView::PreTranslateMessage(pMsg);
			pt.x -= rc2.left;
			pt.y -= rc2.top;
			POSITION pos;
			pos = m_List1.GetFirstSelectedItemPosition();
			if (pos == NULL)return MyFormView::PreTranslateMessage(pMsg);
			int iItem = m_List1.GetNextSelectedItem(pos);
			m_List1.GetSubItemRect(iItem, 11 + m_nAdd, LVIR_BOUNDS, rc);
			if (rc.PtInRect(pt))
			{
				CClientRequirement dlg;
				CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
				CString str;

				if (g_bAllBranch == 0)
				{
					for (int i = 0; i < m_List1arraybak.GetSize(); i++)
					{
						if (m_List1arraybak.ElementAt(i).ElementAt(0 + m_nAdd) == id)
						{
							str = m_List1arraybak.ElementAt(i).ElementAt(11 + m_nAdd);
							break;
						}
					}
				}
				else
				{
					CString branch = m_List1.GetItemText(iItem, 0);
					for (int i = 0; i < m_List1arraybak.GetSize(); i++)
					{
						if (m_List1arraybak.ElementAt(i).ElementAt(0 + m_nAdd) == id && branch == m_List1array.ElementAt(i).ElementAt(0))
						{
							str = m_List1arraybak.ElementAt(i).ElementAt(11 + m_nAdd);
							break;
						}
					}
				}

				dlg.m_bz2 = str;
				dlg.m_bSave = 0;
				dlg.DoModal();
			}
		}
	}
	catch (...)
	{
	}
	return MyFormView::PreTranslateMessage(pMsg);
}

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 DesignFrom::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 DesignFrom::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 DesignFrom::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 DesignFrom::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(8) + SEPS_VEB;
#else
		str = "," + spnamearray.ElementAt(i).ElementAt(8) + ",";
#endif
		if (str.Find(name) != -1)
		{
			ret += spnamearray.ElementAt(i).ElementAt(5);
			ret += ";";
		}
	}
	ret.TrimRight(";");
	ret.Replace("*", "x");
	return ret;
}

//-----------------------------------------------------------------
// remark by Jeff 2014-12-12
// ������GetSelName2
// ������
// ������
//		name:��GetNo����������ĵ�����Ƭ��,�磺"001"
//		spnamearray:�����µ���Ʒ����,case 50����;
// ���أ�
// ע�⣺�����ָ�����ɵ�����,�ڸú����ѽ��;
//-----------------------------------------------------------------
CString DesignFrom::GetSelName2(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(8) + SEPS_VEB;
#else
		str = "," + spnamearray.ElementAt(i).ElementAt(8) + ",";
#endif
		if (str.Find(name) != -1)
		{
			ret += spnamearray.ElementAt(i).ElementAt(5);
			ret += ";";
		}
	}
	ret.TrimRight(";");
	ret.Replace("*", "x");
	return ret;
}

void DesignFrom::OnBUTexportphoto()		// �������޺õ�Ƭ ��ť;
{
#ifdef USE_KERNEL_DLL
	// �жϵ�½�û��Ƿ��е���ԭƬ��Ȩ��;
	if ( !IsHasRights2new(11) )
	{
		AfxMessageBox(_T("����Ȩ�޵���ԭƬ��"),MB_ICONINFORMATION);
		return;
	}

	// ��ȡ�б���Ϣ:�����������š����������˿���Ϣ;
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos == NULL )
	{
		AfxMessageBox(_T("��ѡ����Ҫ����ԭƬ�Ķ�����"), MB_ICONINFORMATION);
		return;
	}

	INT nItemCount = m_List1.GetItemCount();
	INT nSelectedItem = m_List1.GetNextSelectedItem(pos);

	CString strBranchId = _T(""); 
	CString strOrderNum = _T("");
	// �����б���֧�־�����,��Ҫ�������ط���ȡ;
	CString strScenery = _T("");
	CString strCustomerInfo = _T("");

	// ��ȡ����;
	if ( g_bAllBranch )
	{// ������ʱ;
		strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) );
	}
	else
	{
		if ( g_branchname.IsEmpty() )
		{// ���ӱ���ʱ;
			strBranchId = g_domain;
		}
		else
		{// ���ӷֵ�ʱ;
			strBranchId = GetDomainFromBranch( g_branchname );
		}
	}

	// ��ȡ������;
	strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
	// ��ȡ�˿���Ϣ;
	strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd); 

	// ��ȡ������,��Ҫ��ȡdindanjd����ȡ��Ŀǰֻ֧�ֶ�ͯ�ɳ���ϵ����;
	IsGrowthTx IsGrowthtxdlg;
	IsGrowthtxdlg.m_mode = 1;
	IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
	IsGrowthtxdlg.DoModal();
	if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
	{
		return;
	}

	if ( IsGrowthtxdlg.m_bGrowthTx )
	{// ��ȡdindanjd����ijɳ���ϵ��,������ѡ�еijɳ���ϵ��;
		strScenery = IsGrowthtxdlg.m_seltxname;
		if ( strScenery == _T("ȫ��") )
		{
			strScenery.Empty();
		}
	}

	// ����ԭƬʱ���Ƿ�ѹ������;
	DWORD dwExportPix = INVALID_COPY_PIX;	// ͨ�������Ի���ѡ�񵼳�ʱѹ��������;

	/////////////////////////////////////////////////////////////////////////////////////////////////
	if ( g_pIMGProcess == NULL )
	{
		return ;
	}
	// ��ȡ����Ϣ����ʼ����ԭƬ;
	ImgExportInterface *pExport = NULL;
	g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
	if ( pExport )
	{
		pExport->ExportFurtherImg(
			TRUE,
			strBranchId,
			strOrderNum,
			strCustomerInfo,
			!strScenery.IsEmpty(),
			strScenery,
			_T("*.jpg|*.jpeg"),
			dwExportPix,
			_T("*.nef|*.cr2|*.raw|*.ra2"),
			FALSE,
			FALSE
			);
	}
	g_pIMGProcess->Release();
	// ����;
#else
	if (IsHasRights2new(11) == 0)return;

	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 + m_nAdd);
	CString branch;
	if (g_bAllBranch)
		branch = m_List1.GetItemText(iItem, 0);
	CString path;
	if (g_bAllBranch)
	{
		CString branchpath = GetBranchPhotoPath(branch);
		path = g_path4 + branchpath + "\\";
	}
	else
		path = g_path4 + "\\";

	path += id;
	path += "\\";

	CStringArray array;

	CString dir;
	GetSavePath(dir);
	if (dir.IsEmpty())
	{
		return;
	}
	CString name1 = m_List1.GetItemText(iItem, 1 + m_nAdd);
	CString name2 = m_List1.GetItemText(iItem, 2 + m_nAdd);
	dir.TrimRight('\\');
	dir += "\\";
	dir += id;
	dir += g_branchname;
	if (g_bAllBranch)
	{
		if (GetBranchPhotoPath(branch) != "")
			dir += branch;
	}
	dir += name1;
	dir += name2;
	dir += "���޺õ�Ƭ";
	dir += "\\";
	::CreateDirectory(dir, NULL);


	CStringArray desarray;
	CStringArray dirarray;

	CString savepath = dir;
	CString str;
	if (1)
	{
		using namespace helper_coffs;
		ffsco o;
		o.dirs(1);
		o.find(LPCSTR(path), LPCSTR("*.*"));
		ffsco::typeT coo;
		ffsco::typeT::iterator it;
		coo = o.co_dir();
		for (it = coo.begin(); coo.end() != it; it++)
		{
			str = (*it).c_str();
			if (FindArray(&dirarray, str) == -1)
			{
				dirarray.Add(str);
				if (str != dirarray.ElementAt(0))
				{
					str = savepath + str.Right(str.GetLength() - dirarray.ElementAt(0).GetLength());
					if (::CheckFolderFileExist(str) == 0)
						::CreateDirectory(str, NULL);
				}
			}
		}
	}
	if (1)
	{
		for (int i = 0; i < dirarray.GetSize(); i++)
		{
			using namespace helper_coffs;
			ffsco o;
			o.dirs(0);
			o.find(LPCSTR(dirarray.ElementAt(i)), LPCSTR("*.jpg"));
			ffsco::typeT coo;
			ffsco::typeT::iterator it;
			coo = o.co_file();
			for (it = coo.begin(); coo.end() != it; it++)
			{
				str = (*it).c_str();
				if (str.GetAt(str.ReverseFind('\\') + 1) == 's')continue;
				if (str.GetAt(str.ReverseFind('\\') + 1) == 'm')continue;
				array.Add(str);
				desarray.Add(savepath + dirarray.ElementAt(i).Right(dirarray.ElementAt(i).GetLength() - dirarray.ElementAt(0).GetLength()) + str.Right(str.GetLength() - str.ReverseFind('\\') - 1));
			}
		}
	}

	if (array.GetSize() == 0)
	{
		AfxMessageBox("�˵�δ��Ƭ!", MB_ICONINFORMATION);
		return;
	}

	CCompressOption comoptdlg;
	comoptdlg.DoModal();

	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	// �������޺�Ƭ;
	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	ImportPhoto dlg;
	dlg.m_nOutputSize = comoptdlg.m_nsize;	// 1.��������Ƭʱ�ijߴ�;
	dlg.m_mode = 1;							// 2.δ֪;
	dlg.m_pArray = &array;					// 3.��Ϊ����Դ�ľ���Ƭ·������;
	dlg.m_pDesArray = &desarray;			// 4.��Ϊ����Ŀ��ľ���Ƭ·������;
	dlg.m_savepath = dir;					// 5.���浼������Ƭ��Ŀ¼;
	dlg.DoModal();
	AfxMessageBox("��Ƭ�ɹ�!", MB_ICONINFORMATION);

	//	CString str;
	str = " ��������Ƭ ";
	str += "����:";
	str += name1 + name2 + id;

	WriteLog(_T("�������޺�Ƭ"), str);
	{
		ShowCut dlg;
		dlg.m_branch = branch;
		dlg.m_mode = 1;
		dlg.m_strOrderNum = id;
		dlg.DoModal();
	}
#endif
}

void DesignFrom::OnBUTimportphoto()		// ������ư�/N8ѡ�� ��ť;
{
#ifdef USE_KERNEL_DLL
	// ��ȡ�б���Ϣ;
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos == NULL )
	{
		AfxMessageBox(_T("��ѡ����Ҫ��Ƭ�Ķ����ţ�"), MB_ICONINFORMATION);
		return;
	}

	INT nItemCount = m_List1.GetItemCount();
	INT nSelectedItem = m_List1.GetNextSelectedItem(pos);

	// �����������Ϣ�����������������š����������˿���Ϣ�����״̬��������ڡ����ʦ;
	CString strBranchName = _T("");
	CString strBranchId = _T("");
	CString strOrderNum = _T("");
	CString strScenery = _T("");
	CString strCustomerInfo = _T("");
	CString strDesignState = _T("");
	CString strDesignDate = _T("");
	CString strDesigner = _T("");

	// ��ȡ����;
	if ( g_bAllBranch )
	{// ������ʱ;
		strBranchName = m_List1.GetItemText(nSelectedItem, 0);
		strBranchId = GetDomainFromBranch( strBranchName );
	}
	else
	{
		if ( g_branchname.IsEmpty() )
		{// ���ӱ���ʱ;
			strBranchName = _T("");
			strBranchId = g_domain;
		}
		else
		{// ���ӷֵ�ʱ;
			strBranchName = g_branchname;
			strBranchId = GetDomainFromBranch( g_branchname );
		}
	}

	// ��ȡ������;
	strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
	// ��ȡ���ʦ;
	strDesigner = m_List1.GetItemText(nSelectedItem, 14 + m_nAdd);
	// ��ȡ���״̬;
	strDesignState = m_List1.GetItemText(nSelectedItem, 5 + m_nAdd);
	// ��ȡ�������;
	strDesignDate = m_List1.GetItemText(nSelectedItem,  6 + m_nAdd);
	// ��ȡ�˿���Ϣ;
	strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd); 

	CDlgChuXiuInfo xpdlg;
	xpdlg.m_nXiupianMode = 1;
	xpdlg.m_strOrderNumber = strOrderNum;
	xpdlg.m_strXiupianRen = strDesigner;
	if ( strDesignState == _T("OK") )
		xpdlg.m_nXiupianStatus = 0;
	else if ( strDesignState == _T("�����"))
		xpdlg.m_nXiupianStatus = 1;
	else if ( strDesignState == _T("��"))
		xpdlg.m_nXiupianStatus = 2;

	CString strSQL = _T("");
	if( xpdlg.DoModal() == IDOK )
	{
		if ( xpdlg.m_bGrowthTx )
			strScenery = xpdlg.m_strScenery;

		if ( xpdlg.m_nXiupianStatus == 0 )
			strDesignState = _T("OK");
		else if ( xpdlg.m_nXiupianStatus == 1)
			strDesignState = _T("�����");
		else if ( xpdlg.m_nXiupianStatus == 2 )
			strDesignState = _T("��");

		strDesigner = xpdlg.m_strXiupianRen;

		if (strDesignDate.IsEmpty())
			strSQL.Format(_T("update dindan set waiter4 = '%s', status5 = '%s', time10 = '%s' where id = '%s'"), strDesigner, strDesignState, g_date, strOrderNum);
		else
			strSQL.Format(_T("update dindan set waiter4 = '%s', status5 = '%s' where id = '%s'"), strDesigner, strDesignState, strOrderNum);

		/////////////////////////////////////////////////////////////////////////////////////////////////
		// �������ݰ�;
		g_sendhead.bsql = TRUE;
		if ( g_bAllBranch )
		{// ������ʱ;
			g_branchip = GetBranchIPbyId(strBranchId);
			g_pMainWnd->OnDisconnect();
			g_branchname = strBranchName;
			g_bBranchModify = TRUE;
			g_pMainWnd->ProcessChatMessageRequest2(strSQL);
			g_pMainWnd->OnDisconnect();
			g_bBranchModify = FALSE;
			g_branchip = g_branchname = _T("");
		}
		else
		{// ���ӱ����ֵ�ʱ;
			g_pMainWnd->ProcessChatMessageRequest2(strSQL);
		}

		// ˢ�½�������;
		if (g_bSendOK == 0)
		{
			OutputDebugString(_T("���շ���������ʧ�ܣ�\n"));
			return;
		}	

		if (g_bAllBranch == 0)
		{// ���ӱ����ֵ�ʱ;
			GetData();
		}
		else
		{// ������ʱ;
			for (int i = 0; i < m_List1array.GetSize(); i++)
			{
				if (strOrderNum == m_List1array.ElementAt(i).ElementAt(1) && strBranchName == m_List1array.ElementAt(i).ElementAt(0))
				{
					m_List1array.ElementAt(i).SetAt(5 + m_nAdd, strDesignState);
					if (strDesignDate.IsEmpty())
						m_List1array.ElementAt(i).SetAt(6 + m_nAdd, g_date);

					m_List1array.ElementAt(i).SetAt(14 + m_nAdd, strDesigner);
					FillGrid();
					break;
				}
			}
		}
	}
	else
	{
		// ��ʼ�������Ƭ;
		if ( MessageBox(_T("�Ƿ����ڿ�ʼ�������Ƭ��"), _T("��Ƭ��ʾ���������Ƭ"), MB_TOPMOST|MB_YESNO|MB_ICONWARNING ) !=  IDYES )
		{// �Ƿ����ϵ�����Ƭ;
			return;
		}

		if ( xpdlg.m_bGrowthTx )
			strScenery = xpdlg.m_strScenery;

		if ( xpdlg.m_bGrowthTx && strScenery.IsEmpty() )
		{
			AfxMessageBox(_T("��ͯ�ɳ���ϵ��Ƭ����ѡ����ϵ����"));
			return;
		}
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////
	if ( g_pIMGProcess == NULL )
	{
		return;
	}
	// ��ȡ����Ϣ����ʼ�������Ƭ;
	ImgImportInterface *pImport = NULL;
	g_pIMGProcess->QueryInterface(IID_ImgImportInterface, (void**)&pImport);
	if ( pImport )
	{
		if ( m_bN8 && PathFileExists(g_szN8Path) )
		{// N8ѡ�湦������;
			pImport->ImportN8(g_szN8ViewUserDir, strBranchId, strOrderNum, strCustomerInfo, !strScenery.IsEmpty(), strScenery, FALSE);
		}
		else
		{
		pImport->ImportDesignImg(
			FALSE,											// ��ƬԴ�����ͣ�true = ѡ���ļ�����ʽ; false = ѡ���ļ���ʽ;
			strBranchId,									// �ֵ�����;
			strOrderNum,									// ������;
			strCustomerInfo,								// �˿���Ϣ;
			!strScenery.IsEmpty(),							// ����ʱ�Ƿ����ɾ�����;
			strScenery,										// Ҫ���벢���ɵľ�����;
			_T("*.jpg|*.jpeg"),								// Ҫ�������չ��;
			INVALID_COPY_PIX,								// Ҫ�������Ƭ��ѹ�����ش�С;INVALID_COPY_PIX��ʾ��ѹ��,ԭ��������;
			_T("*.nef|*.cr2|*.raw|*.ra2"),					// ������Ƭʱ,����Ҫ�������չ��;���ӵ���Ƭ������ѹ������;
			FALSE,											// �������ʱ,�Ƿ���������ͼ;ֻ����lpImportExt��;
			INVALID_COPY_PIX,								// Ҫ���ɵ�����ͼ�����ش�С;
			FALSE											// Ŀ���ļ������Ƿ���,ֻ���lpImportExt��lpImportWithExt��Ӧ���ļ�,����ͼֱ�Ӹ���;
			);
		}
		
		g_pIMGProcess->Release();
	}
	// ����;
#else
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ��Ƭ�Ķ���!", MB_ICONINFORMATION);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString branch;
	CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
	if (g_bAllBranch)
		branch = m_List1.GetItemText(iItem, 0);

	// ԭ��4��5,��Ϊ5��6
	CString oldstatus = m_List1.GetItemText(iItem, 5 + m_nAdd);
	CString time10 = m_List1.GetItemText(iItem, 6 + m_nAdd);

	CString name = m_List1.GetItemText(iItem, 1 + m_nAdd) + "," + m_List1.GetItemText(iItem, 2 + m_nAdd);
	name.TrimLeft(",");
	name.TrimRight(",");
	name = "����:" + name;
	CString phone = m_List1.GetItemText(iItem, 16 + m_nAdd) + "," + m_List1.GetItemText(iItem, 17 + m_nAdd);
	phone.TrimLeft(",");
	phone.TrimRight(",");
	phone = "�绰:" + phone;

	CString strDomain = _T("");
	CString savepath = _T("");
	if (g_bAllBranch)
		strDomain = GetDomainFromBranch(branch);
	else
	{
		if(g_branchname != _T(""))
			strDomain = GetDomainFromBranch(g_branchname);
	}

	//////////////////////////////////////////////////////////////////////////
	// ��ȡ���õĹ���Ŀ¼;
#if USE_SHARE_FLORD
	TCHAR szSharePath[MAX_PATH] = {0};
	if ( CNetShareInfo::GetInstance()->GetEnableShareDirectory(4, id, strDomain, szSharePath) )
	{
		savepath.Format("%s\\",szSharePath);
	}
	else
	{
		AfxMessageBox(_T("û�п��õĹ���Ŀ¼!"));
		return;
	}
#else
	savepath += id + "\\";
#endif //#if USE_SHARE_FLORD
	
	if (::CheckFolderFileExist(savepath) == 0)
		::CreateDirectory(savepath, NULL);
	/*	IsGrowthTx growthtxdlg;
	growthtxdlg.m_id=id;
	growthtxdlg.DoModal ();
	if(growthtxdlg.m_bReturnOK==0)
	return;
	if(growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty ())
	return;
	if(!growthtxdlg.m_seltxname.IsEmpty ())
	{
	savepath+=growthtxdlg.m_seltxname+"\\";
	if(::CheckFolderFileExist (savepath)==0)
	::CreateDirectory (savepath, NULL);
	}*/

	CString srcdir; CString str;
	GetSavePath(srcdir);

	if (srcdir.IsEmpty())
	{
		CString status5;
		if (AfxMessageBox("�����Ƿ�ȫ��������?", MB_YESNO | MB_ICONINFORMATION) == IDYES)
			status5 = "OK";
		else
			status5 = "�����";
		CString sql;


		if (time10.IsEmpty())
			sql = "update dindan set status5='" + status5 + "',time10='" + g_date + "' where id='" + id + "'";
		else
			sql = "update dindan set status5='" + status5 + "' where id='" + id + "'";

		g_sendhead.bsql = 1;
		if (g_bAllBranch)
		{
			g_branchip = GetIP(branch);
			g_pMainWnd->OnDisconnect();
			g_branchname = branch;
			g_bBranchModify = 1;
			g_pMainWnd->ProcessChatMessageRequest2(sql);
			g_pMainWnd->OnDisconnect();
			g_bBranchModify = 0;
			g_branchip = g_branchname = "";
		}
		else
			g_pMainWnd->ProcessChatMessageRequest2(sql);
		if (g_bSendOK == 0)return;
		if (g_bAllBranch == 0)
		{
			GetData();
		}
		else
		{
			for (int i = 0; i < m_List1array.GetSize(); i++)
			{
				if (id == m_List1array.ElementAt(i).ElementAt(1) && branch == m_List1array.ElementAt(i).ElementAt(0))
				{
					m_List1array.ElementAt(i).SetAt(4 + m_nAdd, status5);
					if (time10.IsEmpty())
						m_List1array.ElementAt(i).SetAt(5 + m_nAdd, g_date);
					FillGrid();
					break;
				}
			}
		}
		return;
	}
	if (srcdir.GetLength() < 4)
	{
		AfxMessageBox("��ѡ����ȷ�����ļ����ڵ�Ŀ¼!", MB_ICONSTOP);
		return;
	}
	if (oldstatus != "��")
	{
		CString str;
		str.Format("%s\r\n%s\r\n�˵��ѵ�������Ƭ, ȷ����ѡ�е���Ƭû�е������? ����Ḳ��ԭ������Ƭ, �Ƿ����?", name, phone);
		if (AfxMessageBox(str, MB_YESNO | MB_ICONSTOP) != IDYES)
			return;
	}
	else
	{
		CString str;
		str.Format("%s\r\n%s\r\nȷ����ѡ�е���Ƭ��ͻ����������? �Ƿ����?", name, phone);
		if (AfxMessageBox(str, MB_YESNO | MB_ICONINFORMATION) != IDYES)
			return;
	}
	CStringArray array;
	CStringArray desarray;
	CStringArray dirarray;

	if (1)
	{
		// 1.��ȡԴĿ¼�µ�������Ŀ¼;
		using namespace helper_coffs;
		ffsco o;
		o.dirs(1);
		o.find(LPCSTR(srcdir), LPCSTR("*.*"));
		ffsco::typeT coo;
		ffsco::typeT::iterator it;
		coo = o.co_dir();
		for (it = coo.begin(); coo.end() != it; it++)
		{
			str = (*it).c_str();
			if (FindArray(&dirarray, str) == -1)
			{
				dirarray.Add(str);
				if (str != dirarray.ElementAt(0))
				{
					str = savepath + str.Right(str.GetLength() - dirarray.ElementAt(0).GetLength());
					if (::CheckFolderFileExist(str) == 0)
						::CreateDirectory(str, NULL);
				}
			}
		}
	}
	if (1)
	{
		// 2.��ÿ����Ŀ¼�²������е���Ƭ;
		for (int i = 0; i < dirarray.GetSize(); i++)
		{
			using namespace helper_coffs;
			ffsco o;
			o.dirs(0);
			o.find(LPCSTR(dirarray.ElementAt(i)), LPCSTR("*.jpg"));
			ffsco::typeT coo;
			ffsco::typeT::iterator it;
			coo = o.co_file();
			for (it = coo.begin(); coo.end() != it; it++)
			{
				str = (*it).c_str();
				array.Add(str);
				desarray.Add(savepath + dirarray.ElementAt(i).Right(dirarray.ElementAt(i).GetLength() - dirarray.ElementAt(0).GetLength()) + str.Right(str.GetLength() - str.ReverseFind('\\') - 1));
			}
		}
	}

	if (array.GetSize() == 0)return;

	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	// ������Ƶ�Ƭ;
	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	ImportPhoto dlg;
	dlg.m_branch = branch;			// 1.�����ֵ���;
	dlg.m_nphototype = 3;			// 2.δ֪;
	dlg.m_pArray = &array;			// 3.��ΪԴ�����Ƭ·������;
	dlg.m_pDesArray = &desarray;	// 4.��ΪĿ������Ƭ·������;
	dlg.m_savepath = savepath;		// 5.����ʱ�ı���Ŀ¼;
#ifdef ENTERPRISE_VERSION
	//	if(!g_branchname.IsEmpty ())
	{
		dlg.m_bSaveUploadTask = g_bSaveUploadTask4;
		dlg.m_sel = g_cominfoarraylocal.ElementAt(0).ElementAt(81);
		dlg.m_uploadtaskarray.Add(id + ";" + name);
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
		dlg.m_uploadtaskarray.Add("");
}
#endif
	dlg.DoModal();


	CString status5;
	if (AfxMessageBox("�����Ƿ�ȫ��������?", MB_YESNO | MB_ICONINFORMATION) == IDYES)
		status5 = "OK";
	else
		status5 = "�����";

	CString sql;

	if (time10.IsEmpty())
		sql = "update dindan set status5='" + status5 + "',waiter4='" + g_user.name + "',time10='" + g_date + "' where id='" + id + "'";
	else
		sql = "update dindan set status5='" + status5 + "',waiter4='" + g_user.name + "' where id='" + id + "'";

	g_sendhead.bsql = 1;
	if (g_bAllBranch)
	{
		g_branchip = GetIP(branch);
		g_pMainWnd->OnDisconnect();
		g_branchname = branch;
		g_bBranchModify = 1;
		g_pMainWnd->ProcessChatMessageRequest2(sql);
		g_pMainWnd->OnDisconnect();
		g_bBranchModify = 0;
		g_branchip = g_branchname = "";
	}
	else
		g_pMainWnd->ProcessChatMessageRequest2(sql);
	if (g_bSendOK == 0)return;
	savepath += "ok";
	::DeleteFile(savepath);			// ɾ��ok�ļ�;
	AfxMessageBox("������ճɹ�!", MB_ICONINFORMATION);

	if (g_bAllBranch == 0)
	{
		GetData();
	}
	else
	{
		for (int i = 0; i < m_List1array.GetSize(); i++)
		{
			if (id == m_List1array.ElementAt(i).ElementAt(1) && branch == m_List1array.ElementAt(i).ElementAt(0))
			{

				m_List1array.ElementAt(i).SetAt(4 + m_nAdd, status5);
				if (time10.IsEmpty())
					m_List1array.ElementAt(i).SetAt(5 + m_nAdd, g_date);
				m_List1array.ElementAt(i).SetAt(13 + m_nAdd, g_user.name);
				FillGrid();
				break;
			}
		}
	}
#endif
}

// Jeff:ѡ��ư水ť;
void DesignFrom::OnBUTshowphoto() //Jeff:ѡ��ư桢N8��ť;
{
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ�鿴�Ķ���!", MB_ICONINFORMATION);
		return;
	}
	int nSelectedItem = m_List1.GetNextSelectedItem(pos);
	
	// ������;
	CString strOrderNum = m_List1.GetItemText(nSelectedItem, 0);
	// ���״̬;
	CString strDesignStatus = m_List1.GetItemText(nSelectedItem, 5);
	// �������;
	CString strDesignDate = m_List1.GetItemText(nSelectedItem, 6);
	// ѡ�����;
	CString strXuanPainRen = m_List1.GetItemText(nSelectedItem, 13);

	//////////////////////////////////////////////////////////////////////////
	if ( m_bN8 && PathFileExists(g_szN8Path) )
	{// N8ѡ��;

		// SETUP1.��ȡList�ؼ��ļ�¼��Ϣ��������Ϣ;
		CString strTemp = _T("");
		CString strBranchId = _T(""); 
		CString strBranchName =_T("");
		CString strScenery = _T("");
		// ��ȡ����;
		if ( g_bAllBranch )
		{// ������;
			strBranchName = m_List1.GetItemText(nSelectedItem, 0);
			strBranchId = GetDomainFromBranch(strBranchName);
		}
		else
		{
			if ( g_branchname.IsEmpty() )
			{// ���ӱ���ʱ;
				strBranchId = g_domain;
			}
			else
			{//���ӷֵ�ʱ;
				strBranchName = g_branchname;
				strBranchId = GetDomainFromBranch( g_branchname );
			}
		}

		// SETUP2.��ȡ������,��Ҫ��ȡdindanjd����ȡ��Ŀǰֻ֧�ֶ�ͯ�ɳ���ϵ����;
		IsGrowthTx IsGrowthtxdlg;
		IsGrowthtxdlg.m_mode = 1;
		IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
		IsGrowthtxdlg.DoModal();
		if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
		{
			return;
		}

		if ( IsGrowthtxdlg.m_bGrowthTx )
		{
			// ��ȡdindanjd����ijɳ���ϵ��,������ѡ�еijɳ���ϵ��;
			strScenery = IsGrowthtxdlg.m_seltxname;
		}

		// SETUP3.���ѡ��Ŀ¼,���ж��Ƿ���ڻ���ѡ;
		BOOL bViewFinish = FALSE;
		CString strUserPath = _T("");
		CString strUserPath2 = _T("");
		if ( strBranchId != g_domain )
		{
			if ( IsGrowthtxdlg.m_bGrowthTx )
			{
				strUserPath.Format(_T("%s\\%s"), strBranchId, strOrderNum);
				strUserPath2.Format(_T("%s\\%s"), strBranchId, strOrderNum);
			}
			else
			{
				strUserPath.Format(_T("%s\\%s"), strBranchId, strOrderNum);
				strUserPath2.Format(_T("%s\\[��ѡ]%s"), strBranchId, strOrderNum);
			}
		}
		else
		{
			if ( IsGrowthtxdlg.m_bGrowthTx )
			{
				strUserPath.Format(_T("%s"), strOrderNum);
				strUserPath2.Format(_T("%s"), strOrderNum);
			}
			else
			{
				strUserPath.Format(_T("%s"), strOrderNum);
				strUserPath2.Format(_T("[��ѡ]%s"), strOrderNum);
			}
		}

		if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
		{
			strUserPath += _T("\\[��ѡ]") + strScenery;
		}

		strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
		if ( PathFileExists(strTemp) )
		{
			if (IsGrowthtxdlg.m_bGrowthTx) 
				AfxMessageBox(_T("����ϵѡ������ɣ�"));
			else
				AfxMessageBox(_T("�ö���ѡ������ɣ�"));

			bViewFinish = TRUE;
		}
		else
		{
			strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath);
			if ( !PathFileExists(strTemp) )
			{
				if (IsGrowthtxdlg.m_bGrowthTx) 
					AfxMessageBox(_T("δ�ҵ�����ϵ���ݣ�ѡ��δ��ƣ�"));
				else
					AfxMessageBox(_T("δ�ҵ��ö������ݣ�ѡ��δ��ƣ�"));

				return;
			}
		}
		
		//////////////////////////////////////////////////////////////////////////
		// ����N8����;
		CString strParamter = _T("");
		strParamter.Format(_T("/t \"<task userfolder='%s' staffid='%s' serverip='%s'/>\""), 
			strUserPath, 
			g_user.account, 
			g_szN8SvIP);

		//strUserPath = strTemp;
		//////////////////////////////////////////////////////////////////////////
#ifdef CHILD_VERSION
		if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
			strTemp.Format(_T("id = '%s' and growthxname = '%s'"), strOrderNum, strScenery, strOrderNum, strOrderNum);
		else
			strTemp.Format(_T("id = '%s'"), strOrderNum, strOrderNum, strOrderNum);
#else
		strTemp.Format(_T("id = '%s'"), strOrderNum, strOrderNum, strOrderNum);
#endif//CHILD_VERSION

		g_sendhead.bsql = FALSE;
		g_sendhead.code[0] = 50;	// dindansp;
		g_sendhead.tabcount = 1;

		if( g_bAllBranch )
		{//������ʱ;
			g_branchip = GetBranchIPbyId(strBranchId);
			g_pMainWnd->OnDisconnect();

			g_branchname = strBranchName;
			g_bBranchModify = TRUE;

			g_pMainWnd->ProcessChatMessageRequest2(strTemp);
			g_pMainWnd->OnDisconnect();

			g_bBranchModify = FALSE;
			g_branchip = g_branchname = _T("");
		}
		else
		{// ���ӱ����ֵ�ʱ;
			g_pMainWnd->ProcessChatMessageRequest2(strTemp);
		}

		if( !g_bSendOK )
			return ;

		CArray<CStringArray, CStringArray> Arydindansp;
		DataToArray( &Arydindansp );	

		//////////////////////////////////////////////////////////////////////////
		strTemp.Format(_T("%s\\ѡ����\\"), strUserPath);
		if ( !PathFileExists(strTemp) )
		{
			CreateDirectory(strTemp,NULL);
		}
		N8Process::CResultProduct rp;
		if ( !PathFileExists(strTemp + _T("Product.data")) )
			rp.CreateXML(strTemp + _T("Product.data"));
		rp.SetXMLPath(strTemp + _T("Product.data"));

		N8Process::CResultVgProduct rvgp;
		if ( !PathFileExists(strTemp + _T("VgProduct.data")) )
			rvgp.CreateXML(strTemp + _T("VgProduct.data"));
		rvgp.SetXMLPath(strTemp + _T("VgProduct.data"));

		for ( int i = 0; i < Arydindansp.GetSize(); i++ )
		{
			rp.InsertItem(Arydindansp.ElementAt(i).ElementAt(1), NULL, Arydindansp.ElementAt(i).ElementAt(5), NULL, NULL);
			rvgp.InsertItem(Arydindansp.ElementAt(i).ElementAt(1), NULL, Arydindansp.ElementAt(i).ElementAt(5), NULL, NULL);
		}

		STARTUPINFO si;
		PROCESS_INFORMATION pi;

		ZeroMemory(&si, sizeof(STARTUPINFO));
		si.cb = sizeof(STARTUPINFO);
		ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));

		TCHAR szCommonLine[MAX_PATH] = {0};
		sprintf(szCommonLine, _T("%s"), strParamter);
		if ( !CreateProcess(g_szN8Path, szCommonLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) )
		{
			return;
		}

		WaitForSingleObject(pi.hProcess, INFINITE);

		AfxMessageBox(_T("ѡ�����"));
		if ( !bViewFinish )
		{
			strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
			if ( PathFileExists(strTemp) )
			{
				bViewFinish = TRUE;
			}
		}
		
		CString strViewFinishXml = _T("");
		if ( bViewFinish )
		{
			strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
			if ( PathFileExists(strTemp) )
			{
				CString strXML = _T("");
				strTemp.TrimRight(_T("\\"));
				int nIndex = strTemp.ReverseFind(_T('\\'));
				if ( nIndex != -1 )
				{
					strXML = strTemp.Mid(nIndex+1);
					strTemp = strTemp.Left(nIndex);
				}

				strViewFinishXml.Format(_T("%s\\%s.xml"), strTemp, strXML);
				if ( !PathFileExists(strViewFinishXml) )
				{
					strViewFinishXml.Empty();
				}
			}
		}

		printf("\tĿ¼1��%s\n,\tĿ¼2��%s",strUserPath,strUserPath2);
		CDlgN8ViewReuslt N8dlg;
		if ( !bViewFinish )
			N8dlg.m_strUserDir.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath);
		else
			N8dlg.m_strUserDir.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
		printf("\t����Ŀ¼��%s\n",N8dlg.m_strUserDir);
		N8dlg.m_strOrderNum = strOrderNum;
		if ( bViewFinish )
		{
			N8dlg.m_bViewFinish = TRUE;
			if ( !strViewFinishXml.IsEmpty() )
				N8dlg.m_strViewFinishxml = strViewFinishXml;
		}
		if (IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
			N8dlg.m_strScenery = strScenery;
		N8dlg.m_strCustomer.Format(_T("%s,%s"), m_List1.GetItemText(nSelectedItem, 1), m_List1.GetItemText(nSelectedItem, 2));
		// ��ȡ\����\Ablum.pwt�ļ�;
		// ��ȡ\ѡ����\Product.data�ļ�;
		// ��ȡ\ѡ����\VgProduct.data�ļ�;
		// ��ȡ[��ѡ].xml�ļ�;
		N8dlg.DoModal();

		CloseHandle(pi.hProcess);
		CloseHandle(pi.hThread);

		return;
	}

	//////////////////////////////////////////////////////////////////////////
	ChooseDesignSkin dlg;	// ѡ��ƶԻ���;
	dlg.SetLiaPath("3.lia");
	dlg.m_strOrderNumber = strOrderNum;
	dlg.m_path = g_path3 + "\\";
	dlg.m_path += strOrderNum;
	dlg.m_path += "\\";
	dlg.DoModal();
	g_bInSkin = 0;

	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		if (strOrderNum == m_List1array.ElementAt(i).ElementAt(0))
		{
			m_List1array.ElementAt(i).SetAt(11, dlg.m_bz3);			// ����Ʊ�ע;	
			m_List1array.ElementAt(i).SetAt(7, dlg.m_status8);		// �����״̬;
			m_List1array.ElementAt(i).SetAt(10, dlg.m_time5);		// ȡ������;
			if (dlg.m_status8 != "OK")
				m_List1array.ElementAt(i).SetAt(5, "�����");
			else
				m_List1array.ElementAt(i).SetAt(5, "OK");
			FillGrid();
			break;
		}
	}
}

void DesignFrom::OnButton1()	// ��ѯ ��ť;
{
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid();
}

// ��ѡδ��� ��ť; "��ѡδ���"��������������֪��"��ѡƬOKδ���"����"�Ѿ���δ���"���������
void DesignFrom::OnButton2()	// �Ѿ���δ��� ��ť;
{
	UpdateData();
	m_filter.TrimLeft();
	m_filter.TrimRight();
	FillGrid(1);
}

void DesignFrom::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	//	CString waiter4=m_List1.GetItemText (iItem, 11);
	if (IsHasRights2new(7) || IsHasRights2new(49))
	{
		GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
		//	GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
	}
	else
	{
		GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0);
		//	GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(0);
	}

	/*	if(waiter4.IsEmpty ()  && IsHasRights2new(7)  || IsHasRights2new(49) )
	{
	GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
	GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
	}
	else if(waiter4==g_user.name && IsHasRights2new(7)  )
	{
	GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
	GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
	}
	else
	{
	GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0);
	GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(0);
	}*/
	*pResult = 0;
}

void DesignFrom::OnBUTimportphoto2()	// �鿴 ��ť;
{
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ�鿴�Ķ���!", MB_ICONINFORMATION);
		return;
	}
	int iItem = m_List1.GetNextSelectedItem(pos);
	CString branch;
	CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
	if (g_bAllBranch)
		branch = m_List1.GetItemText(iItem, 0);
	CString name = m_List1.GetItemText(iItem, 1 + m_nAdd) + "," + m_List1.GetItemText(iItem, 2 + m_nAdd);
	name.TrimLeft(",");
	name.TrimRight(",");
	name = "����:" + name;

	ShowPic dlg;
	dlg.m_id = id;
	dlg.m_name = name;
	dlg.m_name2 = m_List1.GetItemText(iItem, 1 + m_nAdd) + m_List1.GetItemText(iItem, 2 + m_nAdd);

	// ���Ҫ��ԭ��10��
	dlg.remark = m_List1.GetItemText(iItem, 11 + m_nAdd);

	dlg.m_mode = 5;

	CString strDomain = _T("");
	CString savepath = _T("");
	if (g_bAllBranch)
	{
		if(branch == _T(""))
			savepath = g_path3 + "\\";
		else
		{
			strDomain = GetDomainFromBranch(branch);
			savepath = g_path3 + "\\" + strDomain + "\\";
		}
		
		if (::CheckFolderFileExist(savepath) == 0)
			::CreateDirectory(savepath, NULL);
	}
	else
	{
		if(g_branchname == _T(""))
			savepath = g_path3 + "\\";
		else
			strDomain = GetDomainFromBranch(g_branchname);
	}

#if !USE_SHARE_FLORD
	// ��������,��Ƭ����,�����Ų�����Ƭ;
	dlg.m_aryOfShareDirectory.RemoveAll();
	CNetShareInfo::GetInstance()->LoadOrderImages(dlg.m_mode, dlg.m_id, g_domain, dlg.m_patharray1, &dlg.m_aryOfShareDirectory);
#endif

	dlg.m_branch = strDomain;
	dlg.m_path = g_path3 + _T("\\");
	dlg.m_path += id;
	dlg.m_path += "\\";
	dlg.DoModal();
}

void DesignFrom::OnBUTimportphoto3()	// ���� (��ƺõ�Ƭ) ��ť;
{
#ifdef USE_KERNEL_DLL
	// �жϵ�½�û��Ƿ��е���ԭƬ��Ȩ��;
	if ( !IsHasRights2new(12) )
	{
		AfxMessageBox(_T("����Ȩ�޵���ԭƬ��"),MB_ICONINFORMATION);
		return;
	}

	// ��ȡ�б���Ϣ:�����������š����������˿���Ϣ;
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos == NULL )
	{
		AfxMessageBox(_T("��ѡ����Ҫ����ԭƬ�Ķ�����"), MB_ICONINFORMATION);
		return;
	}

	INT nItemCount = m_List1.GetItemCount();
	INT nSelectedItem = m_List1.GetNextSelectedItem(pos);

	CString strBranchId = _T(""); 
	CString strOrderNum = _T("");
	// �����б���֧�־�����,��Ҫ�������ط���ȡ;
	CString strScenery = _T("");
	CString strCustomerInfo = _T("");

	// ��ȡ����;
	if ( g_bAllBranch )
	{// ������ʱ;
		strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) );
	}
	else
	{
		if ( g_branchname.IsEmpty() )
		{// ���ӱ���ʱ;
			strBranchId = g_domain;
		}
		else
		{// ���ӷֵ�ʱ;
			strBranchId = GetDomainFromBranch( g_branchname );
		}
	}

	// ��ȡ������;
	strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
	// ��ȡ�˿���Ϣ;
	strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd); 
	// �������Ҫ��;
	strCustomerInfo += _T("$");
	strCustomerInfo += m_List1.GetItemText(nSelectedItem, 11 + m_nAdd);


	// ��ȡ������,��Ҫ��ȡdindanjd����ȡ��Ŀǰֻ֧�ֶ�ͯ�ɳ���ϵ����;
	IsGrowthTx IsGrowthtxdlg;
	IsGrowthtxdlg.m_mode = 1;
	IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
	IsGrowthtxdlg.DoModal();
	if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
	{
		return;
	}

	if ( IsGrowthtxdlg.m_bGrowthTx )
	{
		// ��ȡdindanjd����ijɳ���ϵ��,������ѡ�еijɳ���ϵ��;
		strScenery = IsGrowthtxdlg.m_seltxname;
		if ( strScenery == _T("ȫ��") )
		{
			strScenery.Empty();
		}
	}

	// ����ԭƬʱ���Ƿ�ѹ������;
	DWORD dwExportPix = INVALID_COPY_PIX;	// ͨ�������Ի���ѡ�񵼳�ʱѹ��������;

	/////////////////////////////////////////////////////////////////////////////////////////////////
	if ( g_pIMGProcess == NULL )
	{
		return ;
	}
	// ��ȡ����Ϣ����ʼ����ԭƬ;
	ImgExportInterface *pExport = NULL;
	g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
	if ( pExport )
	{
		pExport->ExportDesignImg(
			TRUE,
			strBranchId,
			strOrderNum,
			strCustomerInfo,
			!strScenery.IsEmpty(),
			strScenery,
			_T("*.jpg|*.jpeg"),
			dwExportPix,
			_T("*.nef|*.cr2|*.raw|*.ra2"),
			FALSE,
			FALSE
			);
	}
	g_pIMGProcess->Release();
	// ����;
#else
	if (IsHasRights2new(12) == 0)return;

	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 + m_nAdd);
	CString branch;
	if (g_bAllBranch)
		branch = m_List1.GetItemText(iItem, 0);

	CString path;
	if (g_bAllBranch)
	{
		CString branchpath = GetBranchPhotoPath(branch);
		path = g_path3 + branchpath + "\\";
	}
	else
		path = g_path3 + "\\";
	path += id;
	path += "\\";

	CStringArray array;

	CString dir;
	GetSavePath(dir);
	if (dir.IsEmpty())
	{
		return;
	}
	CString name1 = m_List1.GetItemText(iItem, 1 + m_nAdd);
	CString name2 = m_List1.GetItemText(iItem, 2 + m_nAdd);
	CString remark = m_List1.GetItemText(iItem, 11 + m_nAdd);	// ���Ҫ��ԭ��10

	dir.TrimRight('\\');
	dir += "\\";
	dir += id;
	dir += g_branchname;
	if (g_bAllBranch)
	{
		if (GetBranchPhotoPath(branch) != "")
			dir += branch;
	}
	dir += name1;
	dir += name2;
	dir += "��ƺõ�Ƭ";
	dir += "\\";
	::CreateDirectory(dir, NULL);

	CStringArray desarray;
	CStringArray dirarray;

	CString savepath = dir;
	CString str;
	if (1)
	{
		using namespace helper_coffs;
		ffsco o;
		o.dirs(1);
		o.find(LPCSTR(path), LPCSTR("*.*"));
		ffsco::typeT coo;
		ffsco::typeT::iterator it;
		coo = o.co_dir();
		for (it = coo.begin(); coo.end() != it; it++)
		{
			str = (*it).c_str();
			if (FindArray(&dirarray, str) == -1)
			{
				dirarray.Add(str);
				if (str != dirarray.ElementAt(0))
				{
					str = savepath + str.Right(str.GetLength() - dirarray.ElementAt(0).GetLength());
					if (::CheckFolderFileExist(str) == 0)
						::CreateDirectory(str, NULL);
				}
			}
		}
	}
	if (1)
	{
		for (int i = 0; i < dirarray.GetSize(); i++)
		{
			using namespace helper_coffs;
			ffsco o;
			o.dirs(0);
			o.find(LPCSTR(dirarray.ElementAt(i)), LPCSTR("*.jpg"));
			ffsco::typeT coo;
			ffsco::typeT::iterator it;
			coo = o.co_file();
			for (it = coo.begin(); coo.end() != it; it++)
			{
				str = (*it).c_str();
				if (str.GetAt(str.ReverseFind('\\') + 1) == 's')continue;
				if (str.GetAt(str.ReverseFind('\\') + 1) == 'm')continue;
				array.Add(str);
				desarray.Add(savepath + dirarray.ElementAt(i).Right(dirarray.ElementAt(i).GetLength() - dirarray.ElementAt(0).GetLength()) + str.Right(str.GetLength() - str.ReverseFind('\\') - 1));
			}
		}
	}

	if (array.GetSize() == 0)
	{
		AfxMessageBox("�˵�δ��Ƭ!", MB_ICONINFORMATION);
		return;
	}

	CStdioFile fp;
	fp.Open(dir + "�ͻ�Ҫ��.txt", CFile::modeCreate | CFile::modeWrite);
	fp.WriteString(remark);
	fp.Close();

	CCompressOption comoptdlg;
	comoptdlg.DoModal();

	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	// ������ƺ�Ƭ;
	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	ImportPhoto dlg;
	dlg.m_nOutputSize = comoptdlg.m_nsize;	// 1.������ƺõ�Ƭ�ijߴ�;
	dlg.m_mode = 1;							// 2.δ֪;
	dlg.m_pArray = &array;					// 3.��Ϊ����ʱ��Դ���Ƭ·������;
	dlg.m_pDesArray = &desarray;			// 4.��Ϊ����ʱ��Ŀ�����Ƭ·������;
	dlg.m_savepath = dir;					// 5.�������Ƭʱ�ı���·��;
	dlg.DoModal();
	AfxMessageBox("��Ƭ�ɹ�!", MB_ICONINFORMATION);

	//	CString str;
	str = " �������Ƭ ";
	str += "����:";
	str += name1 + name2 + id;

	WriteLog(_T("������ƺ�Ƭ"), str);
#endif
}

void DesignFrom::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	POSITION pos;
	pos = m_List1.GetFirstSelectedItemPosition();
	if (pos == NULL)return;
	int iItem = m_List1.GetNextSelectedItem(pos);
	g_id = m_List1.GetItemText(iItem, 0 + m_nAdd);
	*pResult = 0;
}

// ��Ҫ���������ָ�����ɵ�����;
// �Ѵ����ָ�������;
void DesignFrom::OnButton3()	// ����ѡ��� ��ť;����N8ѡ��;
{
#ifdef USE_KERNEL_DLL
	// �ж��û��Ƿ���Ȩ�޵���ѡ��Ƶ�Ƭ
	if ( !IsHasRights2new(12))
	{
		AfxMessageBox(_T("��û��Ȩ�޵���ѡ��Ƶ�Ƭ��"));
		return;
	}

	// ��ȡ�б���Ϣ;
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos == NULL )
	{
		AfxMessageBox(_T("����ѡ��Ҫ��Ƭ�Ķ�����"));
		return;
	}

	INT nItemCount = m_List1.GetItemCount();
	INT nSelectedItem = m_List1.GetNextSelectedItem(pos);

	// ��ȡ�����������š����������˿���Ϣ�����״̬��������ڡ����ʦ��ѡ����ˡ�ѡ���״̬(�����״̬)��ѡ�������;
	CString strBranchName = _T("");
	CString strBranchId = _T("");
	CString strOrderNum = _T("");
	CString strScenery = _T("");
	CString strCustomerInfo = _T("");
	CString strDesignState = _T("");
	CString strDesignDate = _T("");
	CString strDesigner = _T("");
	CString strXuanpianRen = _T("");
	CString strXuanpianState = _T("");
	CString strXuanpianDate = _T("");

	// ��ȡ������;
	strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
	// ��ȡ�˿���Ϣ;
	strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd);
	// ��ȡ���״̬;
	strDesignState = m_List1.GetItemText(nSelectedItem, 5 + m_nAdd);
	// ��ȡ�������;
	strDesignState = m_List1.GetItemText(nSelectedItem, 6 + m_nAdd);
	// ��ȡ���ʦ;
	strDesigner = m_List1.GetItemText(nSelectedItem, 15 + m_nAdd);
	// ��ȡ�����״̬;
	strXuanpianState = m_List1.GetItemText(nSelectedItem, 7 + m_nAdd);
	// ��ȡѡ�������;
	strXuanpianDate = m_List1.GetItemText(nSelectedItem, 8 + m_nAdd);
	// ��ȡ�����ʦ;
	strXuanpianRen = m_List1.GetItemText(nSelectedItem, 14 + m_nAdd);

	if ( strDesignState == _T("��") )
	{
		MessageBox(_T("�˵�δ���!"), _T("Ӱ¥����"), MB_OK | MB_TOPMOST | MB_ICONINFORMATION );
		return;
	}

	// ��ȡ����;
	if ( g_bAllBranch )
	{// ������;
		strBranchName = m_List1.GetItemText(nSelectedItem, 0);
		strBranchId = GetDomainFromBranch(strBranchName);
	}
	else
	{
		if ( g_branchname.IsEmpty() )
		{// ���ӱ���ʱ;
			strBranchId = g_domain;
		}
		else
		{//���ӷֵ�ʱ;
			strBranchName = g_branchname;
			strBranchId = GetDomainFromBranch( g_branchname );
		}
	}

	// ��ȡ������,��Ҫ��ȡdindanjd����ȡ��Ŀǰֻ֧�ֶ�ͯ�ɳ���ϵ����;
	IsGrowthTx IsGrowthtxdlg;
	IsGrowthtxdlg.m_mode = 1;
	IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
	IsGrowthtxdlg.DoModal();
	if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
	{
		return;
	}

	if ( IsGrowthtxdlg.m_bGrowthTx )
	{
		// ��ȡdindanjd����ijɳ���ϵ��,������ѡ�еijɳ���ϵ��;
		strScenery = IsGrowthtxdlg.m_seltxname;
		if ( strScenery == _T("ȫ��") )
		{
			strScenery.Empty();
		}
	}

	if ( m_bN8 && PathFileExists(g_szN8Path) )
	{// N8ѡ��;
		ImgExportInterface *pN8Export = NULL;
		if ( g_pIMGProcess == NULL )
		{
			return ;
		}
		g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pN8Export);
		if ( pN8Export )
		{// ����ѡ�õ�Ƭ;
			pN8Export->ExportN8(
				g_szN8ViewUserDir,
				strBranchId,
				strOrderNum,
				strCustomerInfo,
				!strScenery.IsEmpty(),
				strScenery,
				FALSE
				);
			pN8Export->Release();
			OutputDebugString(_T("����N8��\n"));
		}
		return;
	}

	//////////////////////////////////////////////////////////////////////////
	CString strSQL = _T("");
#ifdef CHILD_VERSION
	if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
		strSQL.Format(_T("id = '%s' and growthxname = '%s'; id = '%s'; id = '%s' and name <> '���' and name <> '���'"), strOrderNum, strScenery, strOrderNum, strOrderNum);
	else
		strSQL.Format(_T("id = '%s'; id = '%s'; id = '%s' and name <> '���' and name <> '���'"), strOrderNum, strOrderNum, strOrderNum);
#else
	strSQL.Format(_T("id = '%s'; id = '%s'; id = '%s' and kind <> '2' and name <> '���' and name <> '���'"), strOrderNum, strOrderNum, strOrderNum);
#endif//CHILD_VERSION

	g_sendhead.bsql = FALSE;
	g_sendhead.code[0] = 50;	// dindansp;
	g_sendhead.code[1] = 11;	// dindan;
	g_sendhead.code[2] = 56;	// dindansp;
	g_sendhead.tabcount = 3;

	if( g_bAllBranch )
	{//������ʱ;
		g_branchip = GetBranchIPbyId(strBranchId);
		g_pMainWnd->OnDisconnect();

		g_branchname = strBranchName;
		g_bBranchModify = TRUE;

		g_pMainWnd->ProcessChatMessageRequest2(strSQL);
		g_pMainWnd->OnDisconnect();

		g_bBranchModify = FALSE;
		g_branchip = g_branchname = _T("");
	}
	else
	{// ���ӱ����ֵ�ʱ;
		g_pMainWnd->ProcessChatMessageRequest2(strSQL);
	}

	if( !g_bSendOK )
		return ;

	CArray<CStringArray, CStringArray> Arydindan;
	CArray<CStringArray, CStringArray> Arydindansp;
	CArray<CStringArray, CStringArray> Arydindansp2;
	DataToArray( &Arydindansp, &Arydindan, &Arydindansp2 );	

	CString strTemp = _T("");
	CStringArray AryImgNums;
	CStringArray AryPerImgGoods;	

	// ��ȡ����dindansp��¼no2�ֶ��е���Ƭ���;
	int i = 0;
	int nSize = Arydindansp.GetSize();
	for ( i = 0; i < nSize; i++)
	{
		strTemp = Arydindansp.ElementAt(i).ElementAt(8);	// dindansp���е�no2�ֶ�;
		GetNo(strTemp, AryImgNums);
	}

	// ��ȡÿ����Ƭ��Ŷ�Ӧ����Ʒ,ÿ����Ʒ���÷ֺŸ���;
	nSize = AryImgNums.GetSize();
	AryPerImgGoods.SetSize(nSize);
	for ( i = 0; i < nSize; i++ )
	{
		strTemp = AryImgNums.ElementAt(i);
		AryPerImgGoods.SetAt(i, GetSelName(strTemp, Arydindansp));
	}

	// ����VC6.0��CStringArray��VC9.0DLL ʱ,������޷�����ļ���������,��ʹ��CString��;
	CString strImgNums = _T("");
	for ( i = 0; i < AryImgNums.GetSize(); i++ )
	{
		strImgNums += AryImgNums.ElementAt(i);
		strImgNums += _T("?|?");
	}

	CString strPerImgGoods = _T("");
	for ( i = 0; i < AryPerImgGoods.GetSize(); i++ )
	{// ��Ʒ����,Ӧ�ý�ֹ�����Ƿ��ַ�;
		strPerImgGoods += AryPerImgGoods.ElementAt(i);
		strPerImgGoods += _T("?|?");
	}

	// ���浼����Ƭ��·��;
	CString strSaveDirectory = _T("");
	ImgExportInterface *pExport = NULL;
	if ( g_pIMGProcess == NULL )
	{
		return ;
	}
	g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
	if ( pExport )
	{// ����ѡ�õ�Ƭ;
		pExport->ExportSelectedDesignImg(
			strBranchId,
			strOrderNum,
			strCustomerInfo,
			!strScenery.IsEmpty(),
			strScenery,
			_T("*.jpg|*.jpeg"),
			INVALID_COPY_PIX,
			_T("*.nef|*.cr2|*.raw|"),
			FALSE,
			IsGrowthtxdlg.m_bGrowthTx,
			strImgNums,
			strPerImgGoods,
			Arydindan.ElementAt(0).ElementAt(60)
			);
		pExport->Release();
		OutputDebugString(_T("������ƺõ�Ƭ��\n"));
	}
	// ����;

#else
	if (IsHasRights2new(12) == 0)return;

	UpdateData();
	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 + m_nAdd);
	CString branch;
	if (g_bAllBranch)
		branch = m_List1.GetItemText(iItem, 0);

	CString name1 = m_List1.GetItemText(iItem, 1 + m_nAdd);
	CString name2 = m_List1.GetItemText(iItem, 2 + m_nAdd);

#ifdef CHILD_VERSION
	CString filter = "id='" + id + "';id='" + id + "';id='" + id + "' and name<>'���' and name<>'���'";
#else
	CString filter = "id='" + id + "';id='" + id + "';id='" + id + "' and kind<>'2' and name<>'���' and name<>'���'";
#endif

	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 50;
	g_sendhead.code[1] = 11;
	g_sendhead.code[2] = 56;
	g_sendhead.tabcount = 3;
	if (g_bAllBranch)
	{
		g_branchip = GetIP(branch);
		g_pMainWnd->OnDisconnect();
		g_branchname = branch;
		g_bBranchModify = 1;
		g_pMainWnd->ProcessChatMessageRequest2(filter);
		g_pMainWnd->OnDisconnect();
		g_bBranchModify = 0;
		g_branchip = g_branchname = "";
	}
	else
		g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)return;
	CArray<CStringArray, CStringArray>sparray;
	CArray<CStringArray, CStringArray>sparray2;
	DataToArray(&sparray, &g_List1array, &sparray2);

	CString path;
	if (g_bAllBranch)
	{
		CString branchpath = GetBranchPhotoPath(branch);
		path = g_path3 + branchpath + "\\";
	}
	else
		path = g_path3 + "\\";

	path += id;
	path += "\\";
	////////////////////////////////////////
	CString str, spname;
	CStringArray noarray;
	CStringArray spnamearray;

	int i = 0;
	for ( i = 0; i < sparray.GetSize(); i++)
	{
		str = sparray.ElementAt(i).ElementAt(8);
		spname = sparray.ElementAt(i).ElementAt(5);
		GetNo(str, noarray);
	}
	if (noarray.GetSize() == 0)
	{
		AfxMessageBox("�˵�δѡ��ư�!", MB_ICONINFORMATION);
		return;
	}

	spnamearray.SetSize(noarray.GetSize());
	for (i = 0; i < noarray.GetSize(); i++)
	{
		str = noarray.ElementAt(i);
		spnamearray.SetAt(i, GetSelName2(str, sparray));
	}

	CString dir;
	GetSavePath(dir);
	if (dir.IsEmpty())return;
	dir.TrimRight('\\');
	dir += "\\";
	dir += id;
	dir += g_branchname;
	if (g_bAllBranch)
	{
		if (GetBranchPhotoPath(branch) != "")
			dir += branch;
	}
	dir += name1;
	dir += name2;
	dir += "ѡ���";
	dir += "\\";

	CStringArray array;
	CStringArray spnamearray2;
	CString src, des;

	for (i = 0; i < noarray.GetSize(); i++)
	{
		src.Format("%s%s.jpg", path, noarray.ElementAt(i));
		if (PathFileExists(src))
		{
			array.Add(src);
			src = spnamearray.ElementAt(i);
			spnamearray2.Add(spnamearray.ElementAt(i));
		}
		else
			AfxMessageBox("δ�ҵ���ư�:" + src.Right(src.GetLength() - src.ReverseFind('\\') - 1), MB_ICONINFORMATION);
	}

	::CreateDirectory(dir, NULL);
	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	// ����ѡ��Ƶ�Ƭ;
	//----------------------------------------------------------------------------------------------
	//----------------------------------------------------------------------------------------------
	ImportPhoto dlg;
	dlg.m_mode = 1;					// 1.δ֪;
	dlg.m_bOrigin = 1;				// 2.δ֪;
	dlg.m_pArray = &array;			// 3.��Ϊ����Դ��ѡ�õ����Ƭ·������;
	dlg.m_pArray2 = &spnamearray2;	// 4.��Ϊ����Ŀ���ѡ�õ����Ƭ·������;
	dlg.m_savepath = dir;			// 5.����ѡ�õ����Ƭ��Ŀ¼;
	dlg.DoModal();
	//////////////
	if (g_List1array.GetSize())
	{
		CStdioFile fp;
		fp.Open(dir + "�ͻ�Ҫ��.txt", CFile::modeCreate | CFile::modeWrite);
		fp.WriteString("ѡ���Ҫ��:\n");
		fp.WriteString(g_List1array.ElementAt(0).ElementAt(57));
		fp.WriteString("\n");
		fp.WriteString("\n");
		fp.WriteString("��ư��滻��Ƭ:\n");
		CString replace = g_List1array.ElementAt(0).ElementAt(59);
		if (!replace.IsEmpty())
		{
			replace.Delete(0, 1);
			replace.Replace("$", "\n");
		}
		fp.WriteString(replace);
		fp.WriteString("\n");
		fp.WriteString("\n");
		fp.WriteString("����Ҫ��:\n");
		fp.WriteString(g_List1array.ElementAt(0).ElementAt(38));


		fp.WriteString("\n");
		fp.WriteString("\n");
		fp.WriteString("���˲�Ʒ:\n");

		CString str;
		str = "��Ʒ����";
		FillLength(str, 20);
		str += "����";
		FillLength(str, 30);
		str += "�Ӽ�";
		FillLength(str, 40);
		str += "ȡ������";
		FillLength(str, 50);
		fp.WriteString(str);
		fp.WriteString("\n");
		for (int i = 0; i < sparray2.GetSize(); i++)
		{
			str.Empty();
			str = sparray2.ElementAt(i).ElementAt(0);
			FillLength(str, 20);
			str += sparray2.ElementAt(i).ElementAt(1);
			FillLength(str, 30);
			str += sparray2.ElementAt(i).ElementAt(18);
			FillLength(str, 40);
			str += sparray2.ElementAt(i).ElementAt(19);
			FillLength(str, 50);
			fp.WriteString(str);
			fp.WriteString("\n");
		}
		fp.Close();
	}
	//////////////
	AfxMessageBox("��Ƭ�ɹ�!", MB_ICONINFORMATION);

	//	CString str;
	str = " ����ѡ���Ƭ ";
	str += "����:";
	str += name1 + name2 + id;

	WriteLog(_T("����ѡ���Ƭ"), str);
#endif
}

void DesignFrom::HidePrice()
{
#ifdef LKAY_VERSION
	if (IsHasRights2new(31))return;
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		m_List1array.ElementAt(i).SetAt(14 + m_nAdd, "***");
		m_List1array.ElementAt(i).SetAt(15 + m_nAdd, "***");
		m_List1array.ElementAt(i).SetAt(16 + m_nAdd, "***");
		m_List1array.ElementAt(i).SetAt(17 + m_nAdd, "***");
}
#else
	if (IsHasRights2new(31))return;
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		m_List1array.ElementAt(i).SetAt(17 + m_nAdd, "***");
		m_List1array.ElementAt(i).SetAt(18 + m_nAdd, "***");
	}
#endif
}

void DesignFrom::OnBtnsearchfilter()	// ������ѯ ��ť;
{
	SearchFilter dlg;
	dlg.m_mode = 5;
	if (dlg.DoModal() == IDOK)FillGrid();
	g_bSearchFilter = 0;
}

void DesignFrom::GetData()
{
	if (g_bAllBranch == 0)
	{
		if (g_bShowOK == 0)
		{
#ifdef LKAY_VERSION
			CString filter = "status3='δȡ' and (dindantype<>'����ͻ�' or dindantype is null)";
#else
			CString filter = "status3='δȡ'";
#endif
			g_sendhead.bsql = 0;
			g_sendhead.code[0] = 31;
			g_sendhead.tabcount = 1;
			g_pMainWnd->ProcessChatMessageRequest2(filter);
			if (g_bSendOK == 0)return;
		}
		else
		{
			g_sendhead.bsql = 0;
			g_sendhead.code[0] = 31;
			g_sendhead.tabcount = 1;
#ifdef LKAY_VERSION	
			CString filter = "dindantype<>'����ͻ�' or dindantype is null";
			g_pMainWnd->ProcessChatMessageRequest2(filter);
#else
			g_pMainWnd->ProcessChatMessageRequest2(1);
#endif
			if (g_bSendOK == 0)return;
		}
		DataToArray(&m_List1array);
	}
	else
	{
		//////////////���ݻ���
		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);

			if (g_bShowOK == 0)
			{
				CString filter = "status3='δȡ'";
				g_sendhead.bsql = 0;
				g_sendhead.code[0] = 31;
				g_sendhead.tabcount = 1;
				g_pMainWnd->ProcessChatMessageRequest2(filter);
				if (g_bSendOK == 0)continue;
			}
			else
			{
				g_sendhead.bsql = 0;
				g_sendhead.code[0] = 31;
				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_List1arraybak.SetSize(m_List1array.GetSize(), 1);
	for (int ii = 0; ii < m_List1array.GetSize(); ii++)
	{
		m_List1arraybak.ElementAt(ii).Copy(m_List1array.ElementAt(ii));

		// ���Ҫ��;ԭ��10
		if (m_List1array.ElementAt(ii).ElementAt(11).GetLength() > 256)
		{
			m_List1array.ElementAt(ii).SetAt(11, m_List1array.ElementAt(ii).ElementAt(11).Left(256) + "...");
		}
	}
	HidePrice();
	FillGrid();
}

void DesignFrom::OnBUTprint3()	// �������� ��ť;
{
	GetData();
}

void DesignFrom::OnBnClickedCloundxy()	// ��ѡ��;
{
	// TODO: �ڴ����ӿؼ�֪ͨ�����������
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos == NULL)
	{
		AfxMessageBox(_T("��ѡ��Ҫʹ����ѡƬ�Ķ�����"));
		return ;
	}

	INT nItem = m_List1.GetNextSelectedItem(pos);

	CString strOrderNum = _T("");
	CString strScenery = _T("");
	CString strCustomerName = _T("");
	CString strCustomerTel = _T("");
	CString strStudioName = _T("");
	CString strStudioTel = _T("");
	CString strUniqueId = _T("");
	CString strClounSite = _T("");

	CString strTemp;
	strOrderNum = m_List1.GetItemText(nItem, 0);
	strCustomerName.Format(_T("%s,%s"), m_List1.GetItemText(nItem, m_nAdd + 1), m_List1.GetItemText(nItem, m_nAdd + 2));
	strCustomerTel.Format(_T("%s,%s"), m_List1.GetItemText(nItem, m_nAdd + 17), m_List1.GetItemText(nItem,m_nAdd + 18));

	strStudioName = g_cominfoarray.ElementAt(0).ElementAt(10);
	strStudioTel = g_cominfoarray.ElementAt(0).ElementAt(11);
	strClounSite = m_List1.m_arLabels.ElementAt(nItem).ElementAt(21);

	INT nIndex = 0;
	strTemp = g_branchname.IsEmpty() ? g_domain : g_branchname;
	if ( ( nIndex = strTemp.Find(_T(".ly.com"))) == -1)
	{
		AfxMessageBox(_T("��������"));
		return;
	}

	strTemp = strTemp.Left(nIndex);
	strTemp = strTemp.Right(6);

	strUniqueId.Format(_T("%s_A_%s_1"), strTemp, strOrderNum);

	if ( lyfzLibrary::LoadCloudSelectionLib() )
	{
		CDlgCloudSelection dlg;
		dlg.SetParamters(1, strUniqueId, g_branchname.IsEmpty() ? g_domain : g_branchname, strStudioName, strStudioTel, strOrderNum,strScenery, m_List1.GetItemText(nItem, m_nAdd + 1),m_List1.GetItemText(nItem, m_nAdd + 2), m_List1.GetItemText(nItem, m_nAdd + 17),m_List1.GetItemText(nItem, m_nAdd + 18), strClounSite);
		dlg.DoModal();

		lyfzLibrary::FreeCloudSelectionLib();
	}
	else
	{
		AfxMessageBox(_T("������ѡƬʧ��,����ģ���ļ��Ƿ��ڿͻ�Ŀ¼�£�"));
	}
}

void DesignFrom::OnBnClickedResult()	// ��ȡѡ�����;
{
	// TODO: �ڴ����ӿؼ�֪ͨ�����������
	CDlgCloundResult dlg;
	dlg.m_pList = &m_List1;
	dlg.m_nAdd = m_nAdd;
	dlg.m_nCloundType = 1;
	POSITION pos = m_List1.GetFirstSelectedItemPosition();
	if ( pos != NULL )
	{
		INT nItem = m_List1.GetNextSelectedItem(pos);
		dlg.m_nSelItem = nItem;
	}

	dlg.DoModal();
}