📄 trade_misview.cpp
字号:
// Trade_MISView.cpp : implementation of the CTrade_MISView class
//
#include "stdafx.h"
#include "Trade_MIS.h"
#include "Trade_MISDoc.h"
#include "Trade_MISView.h"
#include "ProviderDLG.h"
#include "SearchProviderDLG.h"
#include "CustomerDLG.H"
#include "SearchCustomerDLG.h"
#include "ProductDLG.h"
#include "StockDLG.h"
#include "SearchStockDLG.h"
#include "OrderDLG.h"
#include "SearchOrderDLG.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTrade_MISView
IMPLEMENT_DYNCREATE(CTrade_MISView, CView)
BEGIN_MESSAGE_MAP(CTrade_MISView, CView)
//{{AFX_MSG_MAP(CTrade_MISView)
ON_COMMAND(IDD_MENU_ADDPROVIDER, OnAddProvider)
ON_COMMAND(IDD_MENU_ALTERPROVIDER, OnAlterProvider)
ON_COMMAND(IDD_MENU_DELPROVIDER, OnDelProvider)
ON_COMMAND(IDD_MENU_SEARCHPROVIDER, OnSearchProvider)
ON_WM_CONTEXTMENU()
ON_COMMAND(IDD_MENU_ADDCUSTOMER, OnAddCustomer)
ON_WM_SIZE()
ON_COMMAND(IDD_MENU_ALTERCUSTOMER, OnAlterCustomer)
ON_COMMAND(IDD_MENU_DELCUSTOMER, OnDelCustomer)
ON_COMMAND(IDD_MENU_SEARCHCUSTOMER, OnSearchCustomer)
ON_COMMAND(ID_MENU_ADDPRODUCT, OnAddProduct)
ON_COMMAND(ID_MENU_ALTERPRODUCT, OnuAlterProduct)
ON_COMMAND(ID_MENU_DELPRODUCT, OnDelProduct)
ON_COMMAND(ID_MENU_ADDSTOCK, OnAddStock)
ON_COMMAND(ID_MENU_ALTERSTOCK, OnAlterStock)
ON_COMMAND(ID_MENU_DELSTOCK, OnDelStock)
ON_COMMAND(ID_MENU_SEARCHSTOCK, OnSearchStock)
ON_COMMAND(ID_MENU_ADDORDER, OnAddOrder)
ON_COMMAND(ID_MENU_ALTERORDER, OnAlterOrder)
ON_COMMAND(ID_MENU_DELORDER, OnDelOrder)
ON_COMMAND(ID_MENU_SEARCHORDER, OnSearchOrder)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTrade_MISView construction/destruction
CTrade_MISView::CTrade_MISView()
{
// TODO: add construction code here
m_sCurrentList = "";
}
CTrade_MISView::~CTrade_MISView()
{
}
BOOL CTrade_MISView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CTrade_MISView drawing
void CTrade_MISView::OnDraw(CDC* pDC)
{
CTrade_MISDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CTrade_MISView diagnostics
#ifdef _DEBUG
void CTrade_MISView::AssertValid() const
{
CView::AssertValid();
}
void CTrade_MISView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CTrade_MISDoc* CTrade_MISView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTrade_MISDoc)));
return (CTrade_MISDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTrade_MISView message handlers
void CTrade_MISView::OnAddProvider()
{
// TODO: Add your command handler code here
CProviderDLG dlg;
dlg.m_bAppend = true;
dlg.DoModal();
}
void CTrade_MISView::RefreshProvider(_variant_t strQuery)
{
if (m_ListCtrl) m_ListCtrl.DestroyWindow();
CreateProvider( strQuery );
m_sCurrentList = _T("供应商信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
}
void CTrade_MISView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
// Create a Static ctrl for tip
CRect rect;
rect.left = rect.top =5;
rect.bottom = 30;
rect.right = 120;
m_StaticCtrl.Create(m_sCurrentList, WS_VISIBLE, rect, this, 1);
}
void CTrade_MISView::CreateProvider(_variant_t strQuery)
{
// Get Client Rect
CRect rect;
GetClientRect(rect);
rect.top += 30;
// Create
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
// Set Color
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// Create Header
m_ListCtrl.InsertColumn(0,_T("公司名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1,_T("联系人姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2,_T("联系地址"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3,_T("城市名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4,_T("地区名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5,_T("邮政编码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(6,_T("联系电话"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(7,_T("传真号码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(8,_T("公司主页"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(9,_T("备注信息"), LVCFMT_LEFT, 100);
// Get all records
_variant_t Holder;
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0==iCount ) return;
CString str;
COleDateTime time;
theApp.m_pADOSet->MoveFirst();
for(int i=0; i<iCount; i++)
{
// Get CompanyName
Holder = theApp.m_pADOSet->GetCollect("CompanyName");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i, str);
// Get ContactName
Holder = theApp.m_pADOSet->GetCollect("ContactName");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 1, str);
// Get Address
Holder = theApp.m_pADOSet->GetCollect("Address");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 2, str);
// Get City
Holder = theApp.m_pADOSet->GetCollect("City");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 3, str);
// Get Region
Holder = theApp.m_pADOSet->GetCollect("Region");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 4, str);
// Get PostalCode
Holder = theApp.m_pADOSet->GetCollect("PostalCode");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 5, str);
// Get Phone
Holder = theApp.m_pADOSet->GetCollect("Phone");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 6, str);
// Get Fax
Holder = theApp.m_pADOSet->GetCollect("Fax");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 7, str);
// Get HomePage
Holder = theApp.m_pADOSet->GetCollect("HomePage");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 8, str);
// Get Memo
Holder = theApp.m_pADOSet->GetCollect("SupplierMemo");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.SetItemText(i, 9, str);
theApp.m_pADOSet->MoveNext();
}
}
void CTrade_MISView::OnAlterProvider()
{
// TODO: Add your command handler code here
_variant_t strQuery;
strQuery = "select * from suppliers";
if ( m_ListCtrl && m_sCurrentList!=_T("供应商信息列表") )
{
m_ListCtrl.DestroyWindow();
CreateProvider(strQuery);
m_sCurrentList = _T("供应商信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
return;
}
if ( !m_ListCtrl )
{
CreateProvider(strQuery);
m_sCurrentList = _T("供应商信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
return;
}
//Popup Alter Dialog
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL) AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
else
{
CProviderDLG dlg;
dlg.m_bAppend = false;
CString str;
int iItem = m_ListCtrl.GetNextSelectedItem(pos);
// Get CompanyName
dlg.m_sCompany = m_ListCtrl.GetItemText(iItem, 0);
// Get ContactName
dlg.m_sPerson = m_ListCtrl.GetItemText(iItem, 1);
// Get Address
dlg.m_sAddress = m_ListCtrl.GetItemText(iItem, 2);
// Get City
dlg.m_sCity = m_ListCtrl.GetItemText(iItem, 3);
// Get Region
dlg.m_sArea = m_ListCtrl.GetItemText(iItem, 4);
// Get PostalCode
dlg.m_sPostCode = m_ListCtrl.GetItemText(iItem, 5);
// Get Phone
dlg.m_sPhone = m_ListCtrl.GetItemText(iItem, 6);
// Get Fax
dlg.m_sFax = m_ListCtrl.GetItemText(iItem, 7);
// Get HomePage
dlg.m_sHomePage = m_ListCtrl.GetItemText(iItem, 8);
// Get Memo
dlg.m_sMemo = m_ListCtrl.GetItemText(iItem, 9);
dlg.DoModal();
}
}
void CTrade_MISView::OnDelProvider()
{
// TODO: Add your command handler code here
_variant_t Holder, strQuery;
strQuery = "select * from suppliers";
if ( m_ListCtrl && m_sCurrentList!="供应商信息列表" )
{
m_ListCtrl.DestroyWindow();
CreateProvider( strQuery );
m_sCurrentList = _T("供应商信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
return;
}
if ( !m_ListCtrl )
{
CreateProvider(strQuery);
m_sCurrentList = _T("供应商信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
return;
}
// Del Records
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
if ( pos == NULL )
{
AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
return;
}
else
{
int iItem;
CString sCompany;
while (pos)
{
iItem = m_ListCtrl.GetNextSelectedItem(pos);
sCompany = m_ListCtrl.GetItemText(iItem, 0);
strQuery = "delete from suppliers where CompanyName='"+sCompany+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
}
}
// Refresh List
strQuery = "select * from suppliers";
RefreshProvider( strQuery );
}
void CTrade_MISView::OnSearchProvider()
{
// TODO: Add your command handler code here
// Check if thers is any record
_variant_t strQuery, Holder;
strQuery = "select DISTINCT City from suppliers";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if (0==iCount)
{
AfxMessageBox(_T("数据库没有记录,无法查询!"), MB_ICONEXCLAMATION);
return;
}
// Popup Dialog
CSearchProviderDLG dlg;
dlg.DoModal();
}
void CTrade_MISView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
if ( ""==m_sCurrentList ) return;
CMenu menu;
if ( _T("供应商信息列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_PROVIDER);
else if ( _T("顾客信息列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_CUSTOMER);
else if ( _T("商品信息列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_PRODUCT);
else if ( _T("进货信息列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_STOCK);
else if ( _T("销售信息列表")==m_sCurrentList ) menu.LoadMenu(IDR_MENU_ORDER);
CMenu* pMenu=menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,this);
return;
}
void CTrade_MISView::OnAddCustomer()
{
// TODO: Add your command handler code here
CCustomerDLG dlg;
dlg.m_bAppend = true;
dlg.DoModal();
}
void CTrade_MISView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if (m_ListCtrl)
{
CRect rect;
GetClientRect(rect);
rect.top += 30;
m_ListCtrl.MoveWindow(rect);
}
}
void CTrade_MISView::RefreshCustomer(_variant_t strQuery)
{
if (m_ListCtrl) m_ListCtrl.DestroyWindow();
CreateCustomer( strQuery );
m_sCurrentList = _T("顾客信息列表");
m_StaticCtrl.SetWindowText(m_sCurrentList);
}
void CTrade_MISView::CreateCustomer(_variant_t strQuery)
{
// Get Client Rect
CRect rect;
GetClientRect(rect);
rect.top += 30;
// Create
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rect, this, 1);
// Set Color
m_ListCtrl.SetBkColor(RGB(177, 151, 240));
m_ListCtrl.SetTextColor(RGB(0,0,0));
m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
// Set EX-Style
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
// Create Header
m_ListCtrl.InsertColumn(0,_T("公司名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(1,_T("联系人姓名"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(2,_T("联系地址"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(3,_T("城市名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(4,_T("地区名称"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(5,_T("邮政编码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(6,_T("联系电话"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(7,_T("传真号码"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(8,_T("公司主页"), LVCFMT_LEFT, 100);
m_ListCtrl.InsertColumn(9,_T("备注信息"), LVCFMT_LEFT, 100);
// Get all records
_variant_t Holder;
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0==iCount ) return;
CString str;
COleDateTime time;
theApp.m_pADOSet->MoveFirst();
for(int i=0; i<iCount; i++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -