?? dlginputstoragem.cpp
字號(hào):
// 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); //設(shè)置按鈕的寬度和長度
CImageList img; //圖標(biāo)列表
//設(shè)置"熱"圖標(biāo)
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); //共九個(gè)按鈕
// 設(shè)置每個(gè)工具按鈕文字//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)); //設(shè)置按鈕的大小
//在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);
}
/***************************************************************
說明: 進(jìn)行添加操作
***************************************************************/
void CDlgInputStorageM::OnAdd()
{
int iCur = m_tab.GetCurSel();
switch (iCur)
{
case 0:
{
InputOpertate();//進(jìn)行入庫操作
break;
}
case 1:
{
BackOperate();//入庫退貨
break;
}
}
}
/***************************************************************
說明: 進(jìn)行取消操作
***************************************************************/
void CDlgInputStorageM::OnCancelInfo()
{
int iCur = m_tab.GetCurSel();
switch(iCur)
{
case 0:
{
InputCancel();
break;
}
case 1:
{
BackCancel();
break;
}
}
}
/***************************************************************
說明: 進(jìn)行入庫取消操作
***************************************************************/
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("");
}
/***************************************************************
說明: 進(jìn)行入庫操作
***************************************************************/
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; //記錄返回的票號(hào)
id = m_pRs->GetFields()->GetItem("tempID")->Value.bstrVal;
//記錄入庫明細(xì)信息
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) //修改商品庫存數(shù)量
{
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("操作成功,票號(hào)為: "+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("商品編號(hào)為: "+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; //記錄返回的票號(hào)
id = m_pRs->GetFields()->GetItem("tempID")->Value.bstrVal;
//記錄入庫明細(xì)信息
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("操作成功,票號(hào)為: "+id,"提示",64);
}
catch(...)
{
//m_pCon->CommitTrans();
MessageBox("操作失敗.","提示",64);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -