www.gusucode.com > 一个VC++订单系统源码程序 > 一个VC++订单系统/OFManage/OFManage/Src/OFManageView.cpp

    // OFManageView.cpp : implementation of the COFManageView class
//

#include "stdafx.h"
#include "OFManage.h"
#include "MainFrm.h"
#include "OFManageDoc.h"
#include "OFManageView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// COFManageView

IMPLEMENT_DYNCREATE(COFManageView, CEditListView)

BEGIN_MESSAGE_MAP(COFManageView, CEditListView)
	//{{AFX_MSG_MAP(COFManageView)
	ON_WM_CREATE()
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	ON_COMMAND(IDM_ADDRECORD, OnAddrecord)
	ON_COMMAND(IDM_REFRESHRECORD, OnRefreshrecord)
	ON_COMMAND(IDM_DELRECORD, OnDelrecord)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CEditListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditListView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COFManageView construction/destruction

COFManageView::COFManageView()
{
	// TODO: add construction code here
	m_pList = (CListCtrl*)&this->GetListCtrl();
}

COFManageView::~COFManageView()
{
	if (m_pEditStrict != 0)
	{
		delete[] m_pEditStrict;
	}	
}

BOOL COFManageView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CEditListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// COFManageView drawing

void COFManageView::OnDraw(CDC* pDC)
{
	COFManageDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void COFManageView::OnInitialUpdate()
{
	CEditListView::OnInitialUpdate();

	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
	m_pMainFrame = (CMainFrame *)AfxGetMainWnd();
	AfxGetMainWnd()->SetWindowText("订单管理系统");

	m_pOFSet = &GetDocument()->m_OFSet;
	m_pGoodsSet = &GetDocument()->m_GoodsSet;

	if (m_pOFSet->Open() == FALSE)
	{
		MessageBox("连接数据库失败!退出系统", "出错", MB_ICONWARNING);
		AfxGetMainWnd()->SendMessage(WM_CLOSE);
	}
	
	DisplayOFInfo();

	m_pDataBase = m_pGoodsSet->m_pDatabase = m_pOFSet->m_pDatabase;

	m_pGoodsSet->m_strFilter = "OFID = ?";
	m_pGoodsSet->m_nOrderIDParam = m_pOFSet->m_OFID;

	m_toolTip.Create(this);
	m_toolTip.Activate(TRUE);
	m_toolTip.AddTool(m_pList, "在订单列表中按Alt键同时双击订单条目时,可以查看该订单上的货物信息");

	if (!m_restrictDateTimeCtrl.Create(WS_CHILD | WS_TABSTOP | DTS_RIGHTALIGN, 
		CRect(0, 0, 0, 0), this, IDC_DATETIME))
	{
		TRACE("Create DateTimeCtrl failed");
		return;
	}
	m_restrictDateTimeCtrl.SetParentView(this);

	m_pEditStrict = new EDITSTRICT[7];

	m_pEditStrict[0].type = Integer;
	m_pEditStrict[0].nLen = 4;

	m_pEditStrict[1].type = Integer;
	m_pEditStrict[1].nLen = 4;

	m_pEditStrict[2].type = Character;
	m_pEditStrict[2].nLen = 50;

	m_pEditStrict[3].type = Character;
	m_pEditStrict[3].nLen = 50;

	m_pEditStrict[4].type = Character;
	m_pEditStrict[4].nLen = 50;

	m_pEditStrict[5].type = Character;
	m_pEditStrict[5].nLen = 50;

	m_pEditStrict[6].type = Character;
	m_pEditStrict[6].nLen = 50;
}

/////////////////////////////////////////////////////////////////////////////
// COFManageView printing

BOOL COFManageView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void COFManageView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void COFManageView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// COFManageView diagnostics

#ifdef _DEBUG
void COFManageView::AssertValid() const
{
	CEditListView::AssertValid();
}

void COFManageView::Dump(CDumpContext& dc) const
{
	CEditListView::Dump(dc);
}

COFManageDoc* COFManageView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COFManageDoc)));
	return (COFManageDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// COFManageView message handlers

int COFManageView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CEditListView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	m_pList->ModifyStyle(NULL, LVS_REPORT | LVS_SHOWSELALWAYS);

	m_pList->InsertColumn(0, "订单号", LVCFMT_LEFT, 85, -1);

	m_pList->InsertColumn(1, "客户号", LVCFMT_LEFT, 85, -1);
	m_pList->InsertColumn(2, "客户名", LVCFMT_LEFT, 150, -1);
	m_pList->InsertColumn(3, "客户电话", LVCFMT_LEFT, 170, -1);

	m_pList->InsertColumn(4, "生产厂家", LVCFMT_LEFT, 170, -1);
	m_pList->InsertColumn(5, "商标名", LVCFMT_LEFT, 170, -1);
	m_pList->InsertColumn(6, "订货日期", LVCFMT_LEFT, 170, -1);

	//设置列表控件的风格
	m_pList->SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | 
							  LVS_EX_HEADERDRAGDROP | LVS_EX_INFOTIP | 
							  LVS_EX_UNDERLINEHOT | LVS_EX_MULTIWORKAREAS);

	m_pList->SetTextColor(RGB(100, 0, 100));
	m_pList->SetTextBkColor(RGB(240, 247, 233));

	return 0;
}

void COFManageView::DisplayOFInfo()
{
	m_pList->DeleteAllItems();

	int nIndex = 0;
	CString strTemp;

	if (m_pOFSet->IsEOF())
	{
		m_pList->InsertItem(nIndex, "");
		return;
	}

	CString strOrderDate;

	m_pOFSet->MoveFirst();
	while (!m_pOFSet->IsEOF())
	{
		strTemp.Format("%d", m_pOFSet->m_OFID);
		m_pList->InsertItem(nIndex, strTemp);		//订单号

		strTemp.Format("%d", m_pOFSet->m_CustomerID);
		m_pList->SetItemText(nIndex, 1, strTemp);	//客户号

		m_pList->SetItemText(nIndex, 2, m_pOFSet->m_CustomerName);	//客户名

		m_pList->SetItemText(nIndex, 3, m_pOFSet->m_CustomerTel);	//客户电话

		m_pList->SetItemText(nIndex, 4, m_pOFSet->m_Corporation);	//生产厂家

		m_pList->SetItemText(nIndex, 5, m_pOFSet->m_BrandName);		//商标名

		strOrderDate = m_pOFSet->m_OrderDate.Format("%Y-%m-%d");
		m_pList->SetItemText(nIndex, 6, strOrderDate);				//订货日期

		m_pOFSet->MoveNext();

		nIndex++;
	}
	m_pList->InsertItem(nIndex, "");

	m_pOFSet->MoveFirst();
}

void COFManageView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	if (IsOnItem() == FALSE)
	{
		return;
	}

	POINT point;
	int nWidth = 0;
	int nSubItem = 0;
	int nItem = m_pList->GetSelectionMark();
	CRect rect;
	CString strOrderDate;

	if (GetKeyState(VK_MENU) & 0x8000)
	{
		int nSelection = m_pList->GetSelectionMark();

		ViewGoods(nSelection);
	}
	else
	{
		GetCursorPos(&point);
		
		while (nWidth < point.x)
		{
			nWidth += m_pList->GetColumnWidth(nSubItem);
			nSubItem++;
		}
		nSubItem--;
		
		if (nSubItem == 6)
		{
			m_pList->GetSubItemRect(nItem, nSubItem, LVIR_LABEL, rect);
			rect.top -= 2;
			rect.bottom += 2;
			m_restrictDateTimeCtrl.MoveWindow(&rect);
			m_restrictDateTimeCtrl.ShowWindow(SW_SHOW);

			m_restrictDateTimeCtrl.SetFocus();

			m_restrictDateTimeCtrl.SetPos(nItem, nSubItem);

			strOrderDate = m_pList->GetItemText(nItem, 6);
			m_restrictDateTimeCtrl.SetTime(String2Time(strOrderDate));

			return;
		}

		CEditListView::OnDblclk(pNMHDR, pResult);
	}

	*pResult = 0;
}

void COFManageView::UpdateDatabase(CString str, int nItem, int nSubItem, BOOL bCancel, BOOL bModify)
{
	CString strSQL;
	CString strPrev = m_pList->GetItemText(nItem, nSubItem);
	BOOL bSuccess = TRUE;
	int nAllCnt = m_pList->GetItemCount();
	BOOL bTail = (nItem == nAllCnt - 1);
	int nOFID;
	int nCustomerID;
	CString strOFID;
	CTime dateOrder;
	
	//不是最后一条记录,说明是修改记录或者删除记录,这种情况最容易处理
	if (!bTail)
	{
		if (bCancel == TRUE || str == strPrev || bModify == FALSE)
		{
			return;
		}

		//修改订单号
		if (nSubItem == 0)
		{
			//订单号为空
			if (str == "")
			{
				MessageBox("订单号不能为空", "出错", MB_ICONWARNING);
				DblClkProc(nItem, 0);
				return;
			}

			//订单号不为空
			nOFID = atoi((LPCSTR)strPrev);

			strSQL.Format("delete from OrderForm where OFID = %d", nOFID);
			bSuccess = TRUE;
			try
			{
				m_pDataBase->ExecuteSQL(strSQL);
			}
			catch (CDBException *pEx)
			{
				bSuccess = FALSE;
				pEx->ReportError();
			}

			if (bSuccess == FALSE)
			{
				return;
			}

			if (m_pOFSet->CanAppend() == FALSE)
			{
				MessageBox("目前不能添加记录,请稍候再试", "出错", MB_ICONWARNING);
				return;
			}

			m_pOFSet->AddNew();

			m_restrictDateTimeCtrl.SetFormat(m_pList->GetItemText(nItem, 6));
			m_restrictDateTimeCtrl.GetTime(dateOrder);

			m_pOFSet->m_OFID = atoi(LPCSTR(str));
			m_pOFSet->m_CustomerID = atoi(LPCSTR(m_pList->GetItemText(nItem, 1)));
			m_pOFSet->m_CustomerName = m_pList->GetItemText(nItem, 2);
			m_pOFSet->m_CustomerTel = m_pList->GetItemText(nItem, 3);
			m_pOFSet->m_Corporation = m_pList->GetItemText(nItem, 4);
			m_pOFSet->m_BrandName = m_pList->GetItemText(nItem, 5);
			m_pOFSet->m_OrderDate = dateOrder;

			if (m_pOFSet->CanUpdate() == FALSE)
			{
				MessageBox("目前不能更新记录,请稍候再试", "出错", MB_ICONWARNING);
				return;
			}

			bSuccess = TRUE;
			try
			{
				m_pOFSet->Update();
			}
			catch (CDBException *pEx)
			{
				bSuccess = FALSE;
				pEx->ReportError();
			}

			if (bSuccess == FALSE)
			{
				OnRefreshrecord();
				return;
			}

			strSQL.Format("update Goods set OFID = %d where OFID = %d", CString2Int(str), CString2Int(strPrev));
			bSuccess = TRUE;
			try
			{
				m_pDataBase->ExecuteSQL(strSQL);
			}
			catch (CDBException *pEx)
			{
				bSuccess = FALSE;
				pEx->ReportError();
			}

			if (bSuccess == FALSE)
			{
				return;
			}

			m_pList->SetItemText(nItem, nSubItem, str);

			ViewGoods(nItem);
			if (m_pGoodsView->GetItemCount() == 1)
			{
				m_pGoodsView->DblClkProc(0, 0);
			}

			return;
		}

		//nSubItem != 0
		nOFID = atoi((LPCSTR)m_pList->GetItemText(nItem, 0));
		switch(nSubItem)
		{
		case 1:
			nCustomerID = CString2Int(str);
			strSQL.Format("update OrderForm set CustomerID = %d where OFID = %d", nCustomerID, nOFID);
			break;

		case 2:
			strSQL.Format("update OrderForm set CustomerName = '%s' where OFID = %d", str, nOFID);
			break;

		case 3:
			strSQL.Format("update OrderForm set CustomerTel = '%s' where OFID = %d", str, nOFID);
			break;

		case 4:
			strSQL.Format("update OrderForm set FactoryName = '%s' where OFID = %d", str, nOFID);
			break;

		case 5:
			strSQL.Format("update OrderForm set BrandName = '%s' where OFID = %d", str, nOFID);
			break;

		case 6:
			strSQL.Format("update OrderForm set OrderDate = '%s' where OFID = %d", str, nOFID);
			break;
		
		default:
			break;
		}
		bSuccess = TRUE;
		try
		{
			m_pDataBase->ExecuteSQL(strSQL);
		}
		catch (CDBException *pEx)
		{
			bSuccess = FALSE;
			pEx->ReportError();
		}

		m_pList->SetItemText(nItem, nSubItem, str);

		return;
	}

	//最后一条记录,说明为添加记录
	if (bCancel == TRUE || bModify == FALSE)
	{
		m_pList->SetItemText(nItem, 0, "");
		m_pList->SetItemText(nItem, 1, "");
		m_pList->SetItemText(nItem, 2, "");
		m_pList->SetItemText(nItem, 3, "");
		m_pList->SetItemText(nItem, 4, "");
		m_pList->SetItemText(nItem, 5, "");
		m_pList->SetItemText(nItem, 6, "");

		return;
	}

	CString strCustomerID;
	CString strCustomerName;
	CString strCustomerTel;
	CString strFactoryName;
	CString strBrandName;
	CString strOrderDate;

	m_pList->SetItemText(nItem, nSubItem, str);

	if (nSubItem == 0)
	{
		strOFID = str;
	}
	else
	{
		strOFID = m_pList->GetItemText(nItem, 0);
	}
	if (strOFID == "")
	{
		DblClkProc(nItem, 0);
		return;
	}

	if (nSubItem == 1)
	{
		strCustomerID = str;
	}
	else
	{
		strCustomerID = m_pList->GetItemText(nItem, 1);
	}
	if (strCustomerID == "")
	{
		DblClkProc(nItem, 1);
		return;
	}

	if (nSubItem == 2)
	{
		strCustomerName = str;
	}
	else
	{
		strCustomerName = m_pList->GetItemText(nItem, 2);
	}
	if (strCustomerName == "")
	{
		DblClkProc(nItem, 2);
		return;
	}

	if (nSubItem == 3)
	{
		strCustomerTel = str;
	}
	else
	{
		strCustomerTel = m_pList->GetItemText(nItem, 3);
	}

	if (nSubItem == 4)
	{
		strFactoryName = str;
	}
	else
	{
		strFactoryName = m_pList->GetItemText(nItem, 4);
	}

	if (nSubItem == 5)
	{
		strBrandName = str;
	}
	else
	{
		strBrandName = m_pList->GetItemText(nItem, 5);
	}

	if (nSubItem == 6)
	{
		strOrderDate = str;
	}
	else
	{
		strOrderDate = m_pList->GetItemText(nItem, 6);
	}
	
	nOFID = CString2Int(strOFID);

	if (m_pOFSet->CanAppend() == FALSE)
	{
		MessageBox("目前不能添加记录,请稍候再试", "出错", MB_ICONWARNING);
		return;
	}

	m_pOFSet->AddNew();

	m_restrictDateTimeCtrl.SetFormat(strOrderDate);
	m_restrictDateTimeCtrl.GetTime(dateOrder);
	
	m_pOFSet->m_OFID = CString2Int(strOFID);
	m_pOFSet->m_CustomerID = CString2Int(strCustomerID);
	m_pOFSet->m_CustomerName= strCustomerName;
	m_pOFSet->m_CustomerTel = strCustomerTel;
	m_pOFSet->m_Corporation = strFactoryName;
	m_pOFSet->m_BrandName = strBrandName;
	m_pOFSet->m_OrderDate = dateOrder;

	if (m_pOFSet->CanUpdate() == FALSE)
	{
		MessageBox("目前不能更新记录,请稍候再试", "出错", MB_ICONWARNING);
		return;
	}

	bSuccess = TRUE;
	try
	{
		m_pOFSet->Update();
	}
	catch (CDBException *pEx)
	{
		bSuccess = FALSE;
		pEx->ReportError();
	}
	catch (CMemoryException *pEx)
	{
		bSuccess = FALSE;
		pEx->ReportError();
	}
	
	if (bSuccess == FALSE)
	{
		m_pList->SetItemText(nItem, 0, "");
		m_pList->SetItemText(nItem, 1, "");
		m_pList->SetItemText(nItem, 2, "");
		m_pList->SetItemText(nItem, 3, "");
		m_pList->SetItemText(nItem, 4, "");
		m_pList->SetItemText(nItem, 5, "");
		m_pList->SetItemText(nItem, 6, "");

		return;
	}

	m_pList->InsertItem(nItem + 1, "");

	ViewGoods(nItem);
	if (m_pGoodsView->GetItemCount() == 1)
	{
		m_pGoodsView->DblClkProc(0, 0);
	}
}

void COFManageView::DeleteOF(int nOFID)
{
	int i;
	CString strOFID;
	int nCnt = m_pList->GetItemCount();

	strOFID.Format("%d", nOFID);

	for (i = 0; i < nCnt; i++)
	{
		if (m_pList->GetItemText(i, 0) == strOFID)
		{
			m_pList->DeleteItem(i);
			break;
		}
	}

	//下面还有条目
	if (i <= nCnt - 3)
	{
		ViewGoods(i + 1);
		return;
	}

	//上面还有条目
	if (i >= 1)
	{
		ViewGoods(i - 1);
		return;
	}

	//没有任何条目
	m_pGoodsView->DeleteAllItems();
}

void COFManageView::ViewGoods(int nItem)
{
	CString strOFID;

	strOFID = m_pList->GetItemText(nItem, 0);
	if (strOFID == "")
	{
		m_pMainFrame->SetStatusBarText("没有货物信息");
		return;
	}

	m_pGoodsView->SetOFID(strOFID);

	m_pGoodsSet->m_strFilter = "OFID = ?";
	m_pGoodsSet->m_nOrderIDParam = atoi((LPCSTR)strOFID);
	m_pGoodsSet->Requery();
	m_pGoodsView->DisplayGoodsInfo();
}

void COFManageView::OnAddrecord() 
{
	// TODO: Add your command handler code here
	DblClkProc(m_pList->GetItemCount() - 1, 0);
	m_pMainFrame->SetStatusBarText("请输入货物号");
}

void COFManageView::OnRefreshrecord() 
{
	// TODO: Add your command handler code here
	m_pOFSet->Requery();
	DisplayOFInfo();
}

void COFManageView::OnDelrecord() 
{
	// TODO: Add your command handler code here
	int nItem;
	int nCnt = m_pList->GetItemCount();
	int nDelCnt = 0;
	BOOL bSuccess = TRUE;

	POSITION pos = m_pList->GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	
	while (pos)
	{
		nItem = m_pList->GetNextSelectedItem(pos);
		if (nItem != nCnt - 1)
		{
			if (DelRecord(nItem) == FALSE)
			{
				bSuccess = FALSE;
				break;
			}

			nDelCnt++;
		}
	}
	
	if (bSuccess == TRUE)
	{
		if (nItem == nCnt - 1)
		{
			DelItems(nItem - 1, nDelCnt);
		}
		else
		{
			DelItems(nItem, nDelCnt);
		}
	}
	else
	{
		DelItems(nItem - 1, nDelCnt);
	}

	if (m_pList->GetItemCount() > 1)
	{
		ViewGoods(0);
	}
}

int COFManageView::GetItemCount()
{
	return m_pList->GetItemCount();
}

BOOL COFManageView::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	m_toolTip.RelayEvent(pMsg);
	
	return CEditListView::PreTranslateMessage(pMsg);
}

BOOL COFManageView::DelRecord(int nItem)
{
	int nOFID = CString2Int(m_pList->GetItemText(nItem, 0));
	CString strSQL;
	BOOL bSuccess;

	strSQL.Format("delete from OrderForm where OFID = %d", nOFID);
	bSuccess = TRUE;
	try
	{
		m_pDataBase->ExecuteSQL(strSQL);
	}
	catch (CDBException *pEx)
	{
		bSuccess = FALSE;
		pEx->ReportError();
	}

	if (bSuccess == FALSE)
	{
		return FALSE;
	}

	//删除此表单对应的货物信息
	strSQL.Format("delete from Goods where OFID = %d", nOFID);
	bSuccess = TRUE;
	try
	{
		m_pDataBase->ExecuteSQL(strSQL);
	}
	catch (CDBException *pEx)
	{
		bSuccess = FALSE;
		pEx->ReportError();
	}

	return bSuccess;
}

void COFManageView::UpdateDatabase(CTime dateOrder, int nItem, int nSubItem)
{
	int nAllCnt = m_pList->GetItemCount();
	BOOL bSuccess = TRUE;
	CString strSQL;
	int nOFID;
	CString strOrderDate;
	CString strPrev = m_pList->GetItemText(nItem, nSubItem);
	BOOL bTail = (nItem == nAllCnt - 1);

	strOrderDate = dateOrder.Format("%Y-%m-%d");

	//不是最后一条记录,说明是修改记录或者删除记录,这种情况最容易处理
	if (!bTail)
	{
		nOFID = atoi((LPCSTR)m_pList->GetItemText(nItem, 0));
		
		if (strOrderDate == strPrev)
		{
			return;
		}
		
		strSQL.Format("update OrderForm set OrderDate = '%s' where OFID = %d", strOrderDate, nOFID);
		
		bSuccess = TRUE;
		try
		{
			m_pDataBase->ExecuteSQL(strSQL);
		}
		catch (CDBException *pEx)
		{
			bSuccess = FALSE;
			pEx->ReportError();
		}
		
		m_pList->SetItemText(nItem, nSubItem, strOrderDate);
		
		return;
	}

	//添加记录
	CString strOFID;
	CString strCustomerID;
	CString strCustomerName;
	CString strCustomerTel;
	CString strFactoryName;
	CString strBrandName;

	m_pList->SetItemText(nItem, nSubItem, strOrderDate);

	strOFID = m_pList->GetItemText(nItem, 0);
	if (strOFID == "")
	{
		DblClkProc(nItem, 0);
		return;
	}

	strCustomerID = m_pList->GetItemText(nItem, 1);
	if (strCustomerID == "")
	{
		DblClkProc(nItem, 1);
		return;
	}

	strCustomerName = m_pList->GetItemText(nItem, 2);
	if (strCustomerName == "")
	{
		DblClkProc(nItem, 2);
		return;
	}

	strCustomerTel = m_pList->GetItemText(nItem, 3);

	strFactoryName = m_pList->GetItemText(nItem, 4);

	strBrandName = m_pList->GetItemText(nItem, 5);
	
	nOFID = CString2Int(strOFID);

	if (m_pOFSet->CanAppend() == FALSE)
	{
		MessageBox("目前不能添加记录,请稍候再试", "出错", MB_ICONWARNING);
		return;
	}

	m_pOFSet->AddNew();

	m_restrictDateTimeCtrl.SetFormat(strOrderDate);
	m_restrictDateTimeCtrl.GetTime(dateOrder);

	m_pOFSet->m_OFID = CString2Int(strOFID);
	m_pOFSet->m_CustomerID = CString2Int(strCustomerID);
	m_pOFSet->m_CustomerName= strCustomerName;
	m_pOFSet->m_CustomerTel = strCustomerTel;
	m_pOFSet->m_Corporation = strFactoryName;
	m_pOFSet->m_BrandName = strBrandName;
	m_pOFSet->m_OrderDate = dateOrder;

	if (m_pOFSet->CanUpdate() == FALSE)
	{
		MessageBox("目前不能更新记录,请稍候再试", "出错", MB_ICONWARNING);
		return;
	}

	bSuccess = TRUE;
	try
	{
		m_pOFSet->Update();
	}
	catch (CDBException *pEx)
	{
		bSuccess = FALSE;
		pEx->ReportError();
	}
	
	m_pList->InsertItem(nItem + 1, "");

	ViewGoods(nItem);
	if (m_pGoodsView->GetItemCount() == 1)
	{
		m_pGoodsView->DblClkProc(0, 0);
	}
}

COleDateTime COFManageView::String2Time(CString strDate)
{
	COleDateTime loeDateTime;

	loeDateTime.SetTime(0, 0, 0);

	if (strDate == "")
	{
		loeDateTime = COleDateTime::GetCurrentTime();
		return loeDateTime;
	}

	int i = 0;
	char *szDate = strDate.GetBuffer(100);
	int nLen = strDate.GetLength();
	CString strYear;
	CString strMonth;
	CString strDay;
	int nYear;
	int nMonth;
	int nDay;

	strYear = strDate.Mid(0, strDate.Find('-', 0));
	nYear = atoi((LPCSTR)strYear);

	strMonth = strDate.Mid(strYear.GetLength() + 1);
	strMonth = strMonth.Mid(0, strMonth.Find('-' , 0));
	nMonth = atoi((LPCSTR)strMonth);

	strDay = strDate.Mid(strYear.GetLength() + strMonth.GetLength() + 2);
	nDay = atoi((LPCSTR)strDay);

	loeDateTime.SetDate(nYear, nMonth, nDay);

	return loeDateTime;
}