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