www.gusucode.com > VC++毕业设计-库存管理系统(Access)-源码程序 > VC++毕业设计-库存管理系统(Access)-源码程序/code/源程序/DCheck.cpp
//Download by http://www.NewXing.com // DCheck.cpp : implementation file // #include "stdafx.h" #include "商品库存管理系统.h" #include "DCheck.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include "DCheckDlg.h" extern _ConnectionPtr cnn; extern CMyApp theApp; ///////////////////////////////////////////////////////////////////////////// // CDCheck dialog CDCheck::CDCheck(CWnd* pParent /*=NULL*/) : CDialog(CDCheck::IDD, pParent) { //{{AFX_DATA_INIT(CDCheck) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CDCheck::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDCheck) DDX_Control(pDX, IDC_Grid, m_Grid); DDX_Control(pDX, IDC_EDTCondition, m_EdtCondition); DDX_Control(pDX, IDC_COMField, m_ComField); DDX_Control(pDX, IDC_COMEmblem, m_ComEmblem); DDX_Control(pDX, IDC_BUTQuery, m_ButQuery); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDCheck, CDialog) //{{AFX_MSG_MAP(CDCheck) ON_BN_CLICKED(IDC_BUTQuery, OnBUTQuery) ON_BN_CLICKED(IDC_BUTCheck, OnBUTCheck) ON_NOTIFY(NM_DBLCLK, IDC_Grid, OnDblclkGrid) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDCheck message handlers void CDCheck::OnOK() { // TODO: Add extra validation here //CDialog::OnOK(); } void CDCheck::OnBUTQuery() { int ColWidth[]={170,120,80,80,80}; CString sField,sEmblem,sCondition,sSQL; m_Grid.DeleAllCol(); m_ComField.GetWindowText(sField); m_ComEmblem.GetWindowText(sEmblem); m_EdtCondition.GetWindowText(sCondition); if(sField!="库存数量"&& sField!="库存上限"&&sField!="库存下限") { if(sEmblem!="LIKE") sSQL.Format("SELECT 商品名称,仓库名称,库存数量,库存上限,库存下限 from 库存查询 WHERE %s %s '%s'",sField,sEmblem,sCondition); else sSQL.Format("SELECT 商品名称,仓库名称,库存数量,库存上限,库存下限 from 库存查询 WHERE %s LIKE '%s%%'",sField,sCondition); } else { if(sEmblem=="!=") sEmblem="<>"; if(sEmblem=="LIKE") sEmblem="="; sSQL.Format("SELECT 商品名称,仓库名称,库存数量,库存上限,库存下限 from 库存查询 WHERE %s %s %s",sField,sEmblem,sCondition); } try{ rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText); } catch(...) { theApp.ADOError(rst); } if(theApp.GetRecordCount(rst)>0) { this->m_Grid.SetRecordset(rst); } else m_Grid.Clear(); for(int i=0;i<5;i++) m_Grid.SetColumnWidth(i,ColWidth[i]); } BOOL CDCheck::OnInitDialog() { CDialog::OnInitDialog(); //设置图标 m_hIcon=::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON10)); this->SetIcon(m_hIcon,true); this->OnBUTQuery(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDCheck::OnBUTCheck() { CString sWareName,sWareID,sStoreName,sSQL,sStoreNumber,sMax,sMin; int nStoreID; for(int i=0;i<m_Grid.GetItemCount();i++) { sWareName=m_Grid.GetItemText(i,0); sStoreName=m_Grid.GetItemText(i,1); sStoreNumber=m_Grid.GetItemText(i,2); sMax=m_Grid.GetItemText(i,3); sMin=m_Grid.GetItemText(i,4); sWareID=theApp.NumberTOName("商品信息表","编号","名称",sWareName); nStoreID=theApp.NumberTOName("仓库信息表","名称",sStoreName); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%s,库存上限=%s,库存下限=%s WHERE 商品编号='%s', 仓库编号=%d",sStoreNumber,sMax,sMin,sWareID,nStoreID); } } BOOL CDCheck::PreTranslateMessage(MSG* pMsg) { /* if(pMsg->hwnd==m_Grid.GetSafeHwnd() && pMsg->message==WM_LBUTTONDOWN) { POINTS point; point=MAKEPOINTS(pMsg->lParam); LVHITTESTINFO testinfo; testinfo.pt.x=point.x; testinfo.pt.y=point.y; testinfo.flags=LVHT_ONITEMLABEL; if(m_Grid.SubItemHitTest(&testinfo)<0) return false; if(testinfo.iSubItem<2) m_Grid.IsCanEdit=false; else m_Grid.IsCanEdit=true; }*/ return CDialog::PreTranslateMessage(pMsg); } void CDCheck::OnDblclkGrid(NMHDR* pNMHDR, LRESULT* pResult) { POSITION pos; pos=m_Grid.GetFirstSelectedItemPosition(); if(pos) { CDCheckDlg dlg; dlg.m_vEdtStore=m_Grid.GetItemText(m_Grid.GetSelectionMark(),1); dlg.m_vEdtWare=m_Grid.GetItemText(m_Grid.GetHotItem(),0); dlg.m_vEdtMax=m_Grid.GetItemText(m_Grid.GetHotItem(),3); dlg.m_vEdtMin=m_Grid.GetItemText(m_Grid.GetHotItem(),4); dlg.m_vEdtNumber=m_Grid.GetItemText(m_Grid.GetHotItem(),2); dlg.DoModal(); m_Grid.Refresh(); } *pResult = 0; }