⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sumary.cpp

📁 完整功能的企业库存管理系统源码,vc++和sqlserver技术开发
💻 CPP
字号:
// Sumary.cpp : implementation file
//

#include "stdafx.h"
#include "Store.h"
#include "Sumary.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSumary dialog


CSumary::CSumary(CWnd* pParent /*=NULL*/)
	: CDialog(CSumary::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSumary)
	m_storeHouse = _T("1");
	m_num = 0;
	//}}AFX_DATA_INIT
}


void CSumary::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSumary)
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Control(pDX, IDC_storeHouse, m_storeHouseCombo);
	DDX_CBString(pDX, IDC_storeHouse, m_storeHouse);
	DDX_Text(pDX, IDC_trueNum, m_num);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSumary, CDialog)
	//{{AFX_MSG_MAP(CSumary)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_CBN_KILLFOCUS(IDC_COMBO1, OnKillfocusCombo1)
	ON_BN_CLICKED(IDC_save, OnSave)
	ON_BN_CLICKED(IDC_exit, OnExit)
	ON_CBN_SELCHANGE(IDC_storeHouse, OnSelchangestoreHouse)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSumary message handlers

BOOL CSumary::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//设定列表框控件的样式
	DWORD style;
	style=m_list.GetExStyle();
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
	m_list.SetExtendedStyle(style);
	//为列表框控件添加列和列标题
	m_list.InsertColumn(0,"仓库名称",LVCFMT_LEFT,100);
	m_list.InsertColumn(1,"产品编号",LVCFMT_LEFT,100);
	m_list.InsertColumn(2,"产品名称",LVCFMT_LEFT,100);
	m_list.InsertColumn(3,"账面数量",LVCFMT_LEFT,100);
	m_list.InsertColumn(4,"单价",LVCFMT_LEFT,100);
	m_list.InsertColumn(5,"实际数量",LVCFMT_LEFT,100);
	//获取盘点单号
	int formID=((CStoreApp*)AfxGetApp())->m_pIDRecordset->GetCollect("summaryFormID").intVal;
	if(formID<10) //设定盘点单号的格式
		m_summaryFormID.Format("CPPD0000%d",formID);
	else if(formID<100&&formID>9)
		m_summaryFormID.Format("CPPD000%d",formID);
	else if(formID<1000&&formID>99)
		m_summaryFormID.Format("CPPD00%d",formID);
	//更新下一个可用的盘点单号
	CString str;
	str.Format("%d",formID+1);
	((CStoreApp*)AfxGetApp())->m_pIDRecordset->PutCollect("summaryFormID",_variant_t(str));
	((CStoreApp*)AfxGetApp())->m_pIDRecordset->Update();//更新数据库

	_RecordsetPtr m_psummaryFormRecordset;
	CString strSQL;
	strSQL="select * from accountForm"; //构造查询的sql语句
	HRESULT hTRes;
	hTRes = m_psummaryFormRecordset.CreateInstance(_T("ADODB.Recordset"));				
	hTRes = m_psummaryFormRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
		((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
		adOpenDynamic,adLockPessimistic,adCmdText);	//打开查询结果记录集
	
	m_psummaryFormRecordset->AddNew();//添加新记录
	m_psummaryFormRecordset->PutCollect("accountID",_variant_t(m_summaryFormID.Left(25)));//盘点单号
	m_psummaryFormRecordset->PutCollect("formDate",_variant_t(COleDateTime::GetCurrentTime()));//盘点日期
	m_psummaryFormRecordset->Update();//更新数据库

	_RecordsetPtr m_pRecordset;
	//为仓库组合框添加可选项
	strSQL="select distinct storeHouseName from storeHouse";//查询语句	
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
		((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
				adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
		if(SUCCEEDED(hTRes))
		{
			while(!(m_pRecordset->adoEOF))
			{		
				m_storeHouseCombo.AddString(((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("storeHouseName")));//将仓库名称添加到组合框的可选项中
				m_pRecordset->MoveNext();//记录集指针向后移动
			}
		}
	}
	m_pRecordset->Close();//关闭记录集	
	return TRUE;  
}

void CSumary::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);//将控件中的数据更新到对话框变量
	POSITION pos = m_list.GetFirstSelectedItemPosition(); //获取单击的位置
	if(pos)
	{
		nFirstSelItem = m_list.GetNextSelectedItem(pos);//获取单击的条目
		m_productID=m_list.GetItemText(nFirstSelItem,1);//产品编号
		m_storeHouse=m_list.GetItemText(nFirstSelItem,0);//仓库
	}
	*pResult = 0;
}

void CSumary::OnKillfocusCombo1() 
{
//	UpdateData(true);
//	if(m_storeHouse!="")
//	{
//		CString strSQL;
//		_RecordsetPtr m_pRecordset;
//		HRESULT hTRes;
//		m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
//		strSQL="select * from temp";
//		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
//			((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
//			adOpenDynamic,adLockPessimistic,adCmdText);
//		DATE dt;
//		COleDateTime da;
//		dt=m_pRecordset->GetCollect("lastAccountDate").date;
//		da=COleDateTime(dt);
//		m_pRecordset->Close();
//		
//		strSQL="exec account1 '";
//		strSQL=strSQL+m_storeHouse+"','";
//		CString str;
//		str.Format("%d",da.GetYear());
//		strSQL=strSQL+str+"-";
//		str.Format("%d",da.GetMonth());
//		strSQL=strSQL+str+"-";
//		str.Format("%d",da.GetDay());
//		strSQL=strSQL+str+"'";
//		AfxMessageBox(strSQL);
//		m_pRecordset=(((CStoreApp*)AfxGetApp())->m_pConn)->Execute(_bstr_t(strSQL),NULL,adCmdText);
//	}
	
}

void CSumary::OnSave() 
{
	UpdateData(true);
	CString strSQL;
	_RecordsetPtr m_pRecordset;    //用于创建一个查询记录集
	_RecordsetPtr m_psummaryFormRecordset;
	HRESULT hTRes;
	hTRes = m_psummaryFormRecordset.CreateInstance(_T("ADODB.Recordset"));				
	strSQL="SELECT * FROM accountFormCommidity" ;//构造查询的盘点单产品信息的sql语句	

	try
	{
		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
		if (SUCCEEDED(hTRes))
		{				
			hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
				((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
				adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
			if(SUCCEEDED(hTRes))
			{
				int count=m_list.GetItemCount();//获取盘点产品的条数
				for(int i=0;i<count;i++)
				{
					m_pRecordset->AddNew();//添加新的记录
					m_pRecordset->PutCollect("accountID",_variant_t(m_summaryFormID.Left(25)));//盘点单号
					m_pRecordset->PutCollect("storeHouse",_variant_t(m_storeHouse.Left(25)));//仓库名称
					m_pRecordset->PutCollect("productID",_variant_t(m_list.GetItemText(i,1).Left(25)));//产品编号
					CString str;
					str.Format("%d",m_num);
					m_pRecordset->PutCollect("num",_variant_t(str));//数量
					m_pRecordset->PutCollect("price",_variant_t(m_list.GetItemText(i,4)));//单价
					m_pRecordset->Update();//更新数据库
					m_list.SetItemText(nFirstSelItem,5,str);//将盘点数量显示到列表框中对应的位置
				}					
				AfxMessageBox("保存成功!");
			}
		}
	}
	catch(_com_error e)///捕捉异常
	{
		CString errormessage;
		MessageBox("创建记录集失败!","错误");
	}	
}

void CSumary::OnExit() 
{
	this->OnCancel();	
}

void CSumary::OnSelchangestoreHouse() 
{
	UpdateData(true); //将控件中的值更新到对话框控件变量中
	CString strSQL;
	_RecordsetPtr m_pRecordset;
	HRESULT hTRes;
	m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	strSQL="select * from temp";
	hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
		((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
		adOpenDynamic,adLockPessimistic,adCmdText);  //打开查询结果记录集
	DATE dt;
	COleDateTime da;
	dt=m_pRecordset->GetCollect("lastAccountDate").date; //取得上次盘点的日期
	da=COleDateTime(dt);
	m_pRecordset->Close();
	//构造执行存储过程的sql语句,改存储过程获得当前仓库中没有经过盘点的产品的信息和帐面数量
	strSQL="exec account1 '";
	strSQL=strSQL+m_storeHouse+"','"; //第一个参数,仓库名称
	CString str;
	str.Format("%d",da.GetYear());   //第二个参数,上次盘点日期
	strSQL=strSQL+str+"-";
	str.Format("%d",da.GetMonth());
	strSQL=strSQL+str+"-";
	str.Format("%d",da.GetDay());
	strSQL=strSQL+str+"'";
	m_list.DeleteAllItems();//清空列表框控件中的条目
	int i=0;
	//执行存储过程并返回结果记录集
	m_pRecordset=(((CStoreApp*)AfxGetApp())->m_pConn)->Execute(_bstr_t(strSQL),NULL,adCmdText);
	while (!(m_pRecordset->adoEOF))
	{	
		m_list.InsertItem(i,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("storeHouse"))); //仓库名称
		m_list.SetItemText(i,1,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("productID")));//产品编号
		m_list.SetItemText(i,2,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("productName")));//产品名称
		m_list.SetItemText(i,3,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("sumNum"))); //帐面数量
		m_list.SetItemText(i,4,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("sumPrice")));//单价
		m_pRecordset->MoveNext();//记录集指针向后移动
		i++;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -