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

📄 dlginputstoragem.cpp

📁 主要功能 企业仓库管理系统由基本信息管理模块、入库管理模块、库存管理模块、查询管理模块等几部分组成。 &#61553 基本信息管理模块 该模块主要包括操作员管理、商品信息管理、库存信息管理、供
💻 CPP
字号:
// DlgInputStorageM.cpp : implementation file
//

#include "stdafx.h"
#include "aaa.h"
#include "DlgInputStorageM.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern  _ConnectionPtr m_pCon;
extern _RecordsetPtr m_pRs;
extern  _RecordsetPtr m_pRs1;
/////////////////////////////////////////////////////////////////////////////
// CDlgInputStorageM dialog


CDlgInputStorageM::CDlgInputStorageM(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgInputStorageM::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgInputStorageM)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	nSelect = -1;
}

CDlgInputStorageM::CDlgInputStorageM(int iSelect, CWnd* pParent /*=NULL*/)
	: CDialog(CDlgInputStorageM::IDD, pParent)
{
	nSelect = iSelect;
}

void CDlgInputStorageM::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgInputStorageM)
	DDX_Control(pDX, IDC_TAB1, m_tab);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgInputStorageM, CDialog)
	//{{AFX_MSG_MAP(CDlgInputStorageM)
	ON_COMMAND(IDC_SHUTDOWN, OnShut)
	ON_COMMAND(IDC_ADD, OnAdd)
	ON_COMMAND(IDC_MODIFY, OnCancelInfo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgInputStorageM message handlers

BOOL CDlgInputStorageM::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP   
		| CBRS_TOOLTIPS |CBRS_FLYBY | CBRS_SIZE_DYNAMIC))
	{
		return FALSE;      
	}
	
	if(!m_wndReBar.Create(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP|RBS_VERTICALGRIPPER
		| CBRS_TOOLTIPS | CBRS_FLYBY| CBRS_SIZE_DYNAMIC))
	{
		return FALSE;
	}

	m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 80);  //设置按钮的宽度和长度
	
	CImageList img;   //图标列表	
	//设置"热"图标
	img.Create(19, 19, ILC_COLOR24|ILC_MASK,2,2);
	img.SetBkColor(::GetSysColor(COLOR_BTNFACE));
	img.Add(AfxGetApp()->LoadIcon(IDI_ICON11));  //0
    img.Add(AfxGetApp()->LoadIcon(IDI_ICON12));  //1	
	img.Add(AfxGetApp()->LoadIcon(IDI_SHUT_DOWN)); //3	
	m_wndToolBar.GetToolBarCtrl().SetImageList(&img);

		img.Detach();
	m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT|TBBS_CHECKBOX);	//改变工具栏属性
	m_wndToolBar.SetButtons(NULL, 3); //共九个按钮
	
	// 设置每个工具按钮文字//IDC_WRITEMSGIDC_GETALLSIMIDC_MSG_BUTTONSPLIIDC_SCHOOL_REPORT_CARDIDC_MSG_BUTTONSPLI
	//IDC_TELBOOKIDC_MSG_RECIEVEDIDC_MSG_SENDED
	m_wndToolBar.SetButtonInfo(0, IDC_ADD, TBSTYLE_BUTTON, 0);
	m_wndToolBar.SetButtonText(0, "增加");		
	
	m_wndToolBar.SetButtonInfo(1, IDC_MODIFY, TBSTYLE_BUTTON , 1);
	m_wndToolBar.SetButtonText(1, "取消");

	m_wndToolBar.SetButtonInfo(2, IDC_SHUTDOWN, TBSTYLE_BUTTON , 2);
	m_wndToolBar.SetButtonText(2, "退出");

	CRect rectToolBar;
	m_wndToolBar.GetItemRect(0, &rectToolBar);  //得到按钮的大小	
	rectToolBar.right = 55;
	rectToolBar.bottom= 42;
	m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(20,20)); //设置按钮的大小
	
	//在Rebar中加入ToolBar	
	m_wndReBar.AddBar(&m_wndToolBar);
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
	m_tab.AddPage("商品入库",   &m_dlg1, IDD_PRODUCTOR_INPUT2);
	m_tab.AddPage("入库退货",   &m_dlg2, IDD_INPUT_BACK2);

	if (nSelect >=0)
	{
		m_tab.Show(nSelect);
	}
	else
	{
		m_tab.Show();
	}	
	return TRUE;  // return TRUE unless you set the focus to a control
}

void CDlgInputStorageM::OnShut()
{
	m_tab.DestroyWindow();
	CDlgInputStorageM::OnCancel();
}

BOOL CDlgInputStorageM::PreTranslateMessage(MSG* pMsg) 
{
	if (pMsg->message ==WM_KEYDOWN)
		if (pMsg->wParam == 13)
			pMsg->wParam = 9;
		else if (pMsg->wParam == VK_ESCAPE)
			return true;		
	return CDialog::PreTranslateMessage(pMsg);
}
/***************************************************************
说明: 进行添加操作
***************************************************************/
void CDlgInputStorageM::OnAdd()
{
	int iCur = m_tab.GetCurSel();
	switch (iCur)
	{
	case 0:
		{
			InputOpertate();//进行入库操作
			break;
		}
	case 1:
		{
			BackOperate();//入库退货
			break;
		}
	}
}
/***************************************************************
说明: 进行取消操作
***************************************************************/
void CDlgInputStorageM::OnCancelInfo()
{
	int iCur = m_tab.GetCurSel();
	switch(iCur)
	{
	case 0:
		{
			InputCancel();	
			break;
		}
	case 1:
		{
			BackCancel();
			break;
		}
	}
}
/***************************************************************
说明: 进行入库取消操作
***************************************************************/
void CDlgInputStorageM::InputCancel()
{
	m_dlg1.rebate.SetWindowText("1.0");
	CTime time = CTime::GetCurrentTime();
	m_dlg1.inputdate.SetTime(&time);
	m_dlg1.list.DeleteAllItems();
	m_dlg1.list.InsertItem(1,"");
	m_dlg1.list.SetItemText(0,5,"1.0");
	m_dlg1.providername.SetWindowText("");
	m_dlg1.factmoney.SetWindowText("");
	m_dlg1.totalmoney.SetWindowText("");
}
/***************************************************************
说明: 进行入库操作
***************************************************************/
void CDlgInputStorageM::InputOpertate()
{
	if (m_dlg1.InputInfoIsNull())
	{
		MessageBox("入库信息不能为空","提示",64);
		return;
	}
	if (m_dlg1.DetailInfoIsNull())
	{
		MessageBox("商品信息不能为空","提示",64);
		return;
	}
	try
	{		
		CString sql;
		CString c_provider,c_operator,c_rebate,c_sumtotal,c_paymoney,c_factmoney,c_intime;
		float f_rebate,f_sumtotal,f_paymoney,f_factmoney;
		m_dlg1.providername.GetWindowText(c_provider);
		m_dlg1.operatorname.GetWindowText(c_operator);
		m_dlg1.rebate.GetWindowText(c_rebate);
		m_dlg1.totalmoney.GetWindowText(c_sumtotal);
		m_dlg1.paymoney.GetWindowText(c_paymoney);
		m_dlg1.factmoney.GetWindowText(c_factmoney);
		f_rebate = atof(c_rebate);
		f_sumtotal = atof(c_sumtotal);
		f_paymoney = atof(c_paymoney);
		f_factmoney = atof(c_factmoney);
		CTime temptime;
		m_dlg1.inputdate.GetTime(temptime);
		c_intime = temptime.Format("%Y-%m-%d");
		//m_pCon->BeginTrans();
		sql.Format(" sp_instore '%s','%s',%10.2f,%10.2f,%10.2f,%10.2f,'%s','%s'",c_provider,c_operator,f_rebate,f_sumtotal,f_paymoney,f_factmoney,c_intime,"temp");
		m_pRs->raw_Close();
		//记录入库主表信息
		m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		CString id; //记录返回的票号
		id = m_pRs->GetFields()->GetItem("tempID")->Value.bstrVal;
		//记录入库明细信息		
		int rows = m_dlg1.list.GetItemCount();
		for (int c = 0;c<rows;c++)
		{
			CString c_id,c_storage,c_num,c_price,c_rebate,c_money;
			float f_num,f_price,f_rebate,f_money;
			c_id = m_dlg1.list.GetItemText(c,1);
			c_storage = m_dlg1.list.GetItemText(c,0);
			c_num = m_dlg1.list.GetItemText(c,4);
			c_price = m_dlg1.list.GetItemText(c,3);
			c_rebate = m_dlg1.list.GetItemText(c,5);
			c_money = m_dlg1.list.GetItemText(c,6);
			f_price = atof(c_price);
			f_rebate = atof(c_rebate);
			f_money = atof(c_money);
			f_num = atof(c_num);
			CString detailsql;
			m_pRs->raw_Close();
			detailsql.Format("insert into tb_instock_sub values ('%s','%s',%f,%f,%f,%f,'%s')",id,c_id,f_price,f_num,f_rebate,f_money,c_storage);
			m_pRs->Open((_variant_t)detailsql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
			//修改商品库存
			m_pRs1->raw_Close();
			detailsql.Format("select * from tb_merchandisestorage where merchandiseid = '%s' and storagename = '%s'",c_id,c_storage);
			m_pRs1->Open((_bstr_t)detailsql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
			if (m_pRs1->RecordCount>0)  //修改商品库存数量
			{
				m_pRs1->raw_Close();
				detailsql.Format("update tb_merchandisestorage set storagenum = storagenum + %f where merchandiseid = '%s' and storagename = '%s'", f_num ,c_id,c_storage);
				m_pRs1->Open((_bstr_t)detailsql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
			}
			else //添加商品库存信息
			{
				m_pRs1->raw_Close();
				detailsql.Format("insert into tb_merchandisestorage values ( '%s','%s',%f,default,default)",c_id,c_storage,f_num );
				m_pRs1->Open((_bstr_t)detailsql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);				
			}
		}
		//m_pCon->CommitTrans();
		InputCancel();
		MessageBox("操作成功,票号为: "+id,"提示",64);
	}
	catch(...)
	{
		//m_pCon->CommitTrans();
		MessageBox("操作失败.","提示",64);
	}
}
/***************************************************************
说明: 退货取消操作
***************************************************************/
void CDlgInputStorageM::BackCancel()
{
	m_dlg2.rebate.SetWindowText("1.0");
	CTime time = CTime::GetCurrentTime();
	m_dlg2.inputdate.SetTime(&time);
	m_dlg2.list.DeleteAllItems();
	m_dlg2.list.InsertItem(1,"");
	m_dlg2.list.SetItemText(0,5,"1.0");
	m_dlg2.providername.SetWindowText("");
	m_dlg2.factmoney.SetWindowText("");
	m_dlg2.totalmoney.SetWindowText("");
}
/***************************************************************
说明: 入库退货操作
***************************************************************/
void CDlgInputStorageM::BackOperate()
{
	if (m_dlg2.InputInfoIsNull())
	{
		MessageBox("退货信息不能为空","提示",64);
		return;
	}
	if (m_dlg2.DetailInfoIsNull())
	{
		MessageBox("商品信息不能为空","提示",64);
		return;
	}
	CString id;
	if (m_dlg2.MerchandiseIsExis(id)==false)
	{
		MessageBox("商品编号为: "+id+"的商品在仓库中不存在." ,"提示",64);
		return;
	}
	try
	{		
		CString sql;
		CString c_provider,c_operator,c_rebate,c_sumtotal,c_paymoney,c_factmoney,c_intime;
		float f_rebate,f_sumtotal,f_paymoney,f_factmoney;
		m_dlg2.providername.GetWindowText(c_provider);
		m_dlg2.operatorname.GetWindowText(c_operator);
		m_dlg2.rebate.GetWindowText(c_rebate);
		m_dlg2.totalmoney.GetWindowText(c_sumtotal);
		m_dlg2.paymoney.GetWindowText(c_paymoney);
		m_dlg2.factmoney.GetWindowText(c_factmoney);
		f_rebate = atof(c_rebate);
		f_sumtotal = atof(c_sumtotal);
		f_paymoney = atof(c_paymoney);
		f_factmoney = atof(c_factmoney);
		CTime temptime;
		m_dlg2.inputdate.GetTime(temptime);
		c_intime = temptime.Format("%Y-%m-%d");
		//m_pCon->BeginTrans();
		sql.Format(" sp_cancelinstore '%s','%s',%10.2f,%10.2f,%10.2f,%10.2f,'%s','%s'",c_provider,c_operator,f_rebate,f_sumtotal,f_paymoney,f_factmoney,c_intime,"temp");
		m_pRs->raw_Close();
		//记录入库主表信息
		m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		CString id; //记录返回的票号
		id = m_pRs->GetFields()->GetItem("tempID")->Value.bstrVal;
		//记录入库明细信息		
		int rows = m_dlg2.list.GetItemCount();
		for (int c = 0;c<rows;c++)
		{
			CString c_id,c_storage,c_num,c_price,c_rebate,c_money;
			float f_num,f_price,f_rebate,f_money;
			c_id = m_dlg2.list.GetItemText(c,1);
			c_storage = m_dlg2.list.GetItemText(c,0);
			c_num = m_dlg2.list.GetItemText(c,4);
			c_price = m_dlg2.list.GetItemText(c,3);
			c_rebate = m_dlg2.list.GetItemText(c,5);
			c_money = m_dlg2.list.GetItemText(c,6);
			f_price = atof(c_price);
			f_rebate = atof(c_rebate);
			f_money = atof(c_money);
			f_num = atof(c_num);
			CString detailsql;
			m_pRs->raw_Close();
			detailsql.Format("insert into tb_cancelinstock_sub values ('%s','%s',%f,%f,%f,%f,'%s')",id,c_id,f_price,f_num,f_rebate,f_money,c_storage);
			m_pRs->Open((_variant_t)detailsql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
			//修改商品库存
			m_pRs1->raw_Close();
			detailsql.Format("update tb_merchandisestorage set storagenum = storagenum - %f where merchandiseid = '%s' and storagename = '%s'", f_num ,c_id,c_storage);
			m_pRs1->Open((_bstr_t)detailsql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		}
		//m_pCon->CommitTrans();
		BackCancel();
		MessageBox("操作成功,票号为: "+id,"提示",64);
	}
	catch(...)
	{
		//m_pCon->CommitTrans();
		MessageBox("操作失败.","提示",64);
	}
}

⌨️ 快捷键说明

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