📄 dlgstockmange.cpp
字号:
// DlgStockMange.cpp : implementation file
//
#include "stdafx.h"
#include "Manage_WH.h"
#include "DlgStockMange.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgStockMange dialog
CDlgStockMange::CDlgStockMange(CWnd* pParent /*=NULL*/)
: CDialog(CDlgStockMange::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgStockMange)
m_max = 0;
m_min = 0;
//}}AFX_DATA_INIT
m_iAddOrChange = 0;
m_hIcon = AfxGetApp()->LoadIcon(IDI_MYICON);
}
void CDlgStockMange::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgStockMange)
DDX_Control(pDX, IDC_MIN, m_EdtMin);
DDX_Control(pDX, IDC_MAX, m_EdtMax);
DDX_Control(pDX, IDCANCEL, m_ButExit);
DDX_Control(pDX, IDC_UNDO, m_ButUndo);
DDX_Control(pDX, IDC_SAVE, m_ButSave);
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Control(pDX, IDC_DEL, m_ButDel);
DDX_Control(pDX, IDC_CHANGE, m_ButEdit);
DDX_Control(pDX, IDC_ADD, m_ButAdd);
DDX_Text(pDX, IDC_MAX, m_max);
DDV_MinMaxInt(pDX, m_max, 0, 4000);
DDX_Text(pDX, IDC_MIN, m_min);
DDV_MinMaxInt(pDX, m_min, 0, 4000);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgStockMange, CDialog)
//{{AFX_MSG_MAP(CDlgStockMange)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnDblclkList)
ON_BN_CLICKED(IDC_CHANGE, OnChange)
ON_BN_CLICKED(IDC_DEL, OnDel)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_CBN_SELCHANGE(IDC_GOODS, OnSelchangeGoods)
ON_BN_CLICKED(IDC_UNDO, OnUndo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgStockMange message handlers
BOOL CDlgStockMange::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN && (pMsg->wParam==13 || pMsg->wParam==27))
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CDlgStockMange::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon,TRUE);
m_list.InsertColumn(0,"商品编码",LVCFMT_LEFT,90,-1);
m_list.InsertColumn(1,"商品名称",LVCFMT_LEFT,90,-1);
m_list.InsertColumn(2,"最大数量",LVCFMT_LEFT,90,-1);
m_list.InsertColumn(3,"最小数量",LVCFMT_LEFT,90,-1);
m_list.InsertColumn(4,"现有数量",LVCFMT_LEFT,90,-1);
m_list.InsertColumn(5,"放置区域",LVCFMT_LEFT,90,-1);
m_list.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
gFillComboBox(static_cast<CComboBox *>(GetDlgItem(IDC_GOODS)),"T_Products","F_Name");
gFillComboBox(static_cast<CComboBox *>(GetDlgItem(IDC_AREA)),"T_Goods_Area_Manage","F_Remark");
Refresh();
return TRUE;
}
void CDlgStockMange::Refresh()
{
m_list.DeleteAllItems();
int bz = 0;
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
rs.Open("T_Stock",adCmdTable);
if (rs.GetRecordCount() > 0)
{
bz = 1;
int row=0,iVal=0,iMaxNum=0,iMinNum=0,iArea=0;
CString sVal,sMaxNum,sMinNum,sArea;
rs.MoveFirst();
while (!rs.IsEOF())
{
row = m_list.InsertItem(row,"");
rs.GetCollect("F_Code",sVal);
m_list.SetItemText(row,0,sVal);
rs.GetCollect("F_Name",sVal);
m_list.SetItemText(row,1,sVal);
rs.GetCollect("F_MaxNum",iMaxNum);
rs.GetCollect("F_MinNum",iMinNum);
rs.GetCollect("F_Area",iArea);
sMaxNum.Format("%d",iMaxNum);
sMinNum.Format("%d",iMinNum);
sArea.Format("%d",iArea);
m_list.SetItemText(row,2,sMaxNum);
m_list.SetItemText(row,3,sMinNum);
m_list.SetItemText(row,5,sArea);
rs.MoveNext();
row++;
}
}
rs.Close();
if (bz == 1)
{
int iCount=0,iGoodsKind=0,iSum;
CString szSQL,sGoodsCount,sAreaName;
for (int i=0;i<m_list.GetItemCount();i++)
{
iSum=0;
iGoodsKind = gfGetGoodsKind(m_list.GetItemText(i,1));
szSQL.Format("select * from T_Goods_Site_Manage where F_GoodsKind=%d and F_SiteState!=2",iGoodsKind);
rs.Open(szSQL,adCmdText);
if (rs.GetRecordCount() > 0)
{
rs.MoveFirst();
while (!rs.IsEOF())
{
rs.GetCollect("F_GoodsCount",iCount);
iSum += iCount;
rs.MoveNext();
}
}
rs.Close();
sGoodsCount.Format("%d",iSum);
m_list.SetItemText(i,4,sGoodsCount);
sAreaName = gfGetAreaName(atoi(m_list.GetItemText(i,5)));
m_list.SetItemText(i,5,sAreaName);
}
}
cn.Close();
}
void CDlgStockMange::Enabled(BOOL bEnabled)
{
m_list.EnableWindow(!bEnabled);
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->EnableWindow(bEnabled);
static_cast<CComboBox *>(GetDlgItem(IDC_AREA))->EnableWindow(bEnabled);
m_EdtMax.EnableWindow(bEnabled);
m_EdtMin.EnableWindow(bEnabled);
m_ButUndo.EnableWindow(bEnabled);
m_ButSave.EnableWindow(bEnabled);
m_ButExit.EnableWindow(!bEnabled);
m_ButDel.EnableWindow(!bEnabled);
m_ButEdit.EnableWindow(!bEnabled);
m_ButAdd.EnableWindow(!bEnabled);
}
void CDlgStockMange::ClearFrom()
{
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->SetCurSel(-1);
static_cast<CComboBox *>(GetDlgItem(IDC_AREA))->SetCurSel(-1);
m_EdtMax.SetWindowText("");
m_EdtMin.SetWindowText("");
static_cast<CEdit *>(GetDlgItem(IDC_NOW))->SetWindowText("");
}
void CDlgStockMange::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
for (int i=0; i<m_list.GetItemCount(); i++)
{
if (m_list.GetItemState(i,LVIS_SELECTED) == LVIS_SELECTED)
{
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->SetCurSel(static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->FindString(-1,m_list.GetItemText(i,1)));
static_cast<CComboBox *>(GetDlgItem(IDC_AREA))->SetCurSel(static_cast<CComboBox *>(GetDlgItem(IDC_AREA))->FindString(-1,m_list.GetItemText(i,5)));
m_EdtMax.SetWindowText(m_list.GetItemText(i,2));
m_EdtMin.SetWindowText(m_list.GetItemText(i,3));
static_cast<CEdit *>(GetDlgItem(IDC_NOW))->SetWindowText(m_list.GetItemText(i,4));
break;
}
}
*pResult = 0;
}
void CDlgStockMange::OnAdd()
{
ClearFrom();
Enabled(true);
m_iAddOrChange=1;
}
void CDlgStockMange::OnChange()
{
CString sGoodsName;
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->GetWindowText(sGoodsName);
if (sGoodsName.IsEmpty())
{
MessageBox("请选择要修改的商品!","系统提示",MB_ICONSTOP|MB_OK);
return;
}
Enabled(true);
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->EnableWindow(false);
m_iAddOrChange=2;
}
void CDlgStockMange::OnDel()
{
CString sName;
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->GetWindowText(sName);
if (sName.IsEmpty())
{
MessageBox("请选择要删除的商品!\n","系统提示",MB_ICONSTOP|MB_OK);
return;
}
if (gstrPopedom == "普通用户")
{
MessageBox("对不起,您没有执行删除操作的权限!","系统提示",MB_ICONSTOP|MB_OK);
return;
}
CString sGoodsCount;
static_cast<CEdit *>(GetDlgItem(IDC_NOW))->GetWindowText(sGoodsCount);
if (atoi(sGoodsCount) > 0)
{
MessageBox("无法执行删除操作,["+sName+"]的库存数量不为零!","系统提示",MB_ICONSTOP|MB_OK);
return;
}
if (MessageBox("是否删除["+sName+"]的库存设置信息?","系统提示",MB_ICONINFORMATION|MB_YESNO) == IDNO)
return;
CAdoConnection cn;
cn.Execute("delete from T_Stock where F_Name = '"+sName+"'",adCmdText);
cn.Close();
AddLog("删除["+sName+"]的库存设置信息!");
Enabled(false);
ClearFrom();
Refresh();
}
void CDlgStockMange::OnSave()
{
if(MessageBox("确定要保存此商品的库存设置信息吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
//取出文本框中的值
UpdateData(TRUE);
CAdoConnection cn;
CAdoRecordSet rs;
CString sSQL,sName,sMaxNum,sMinNum,sArea,sWarning;
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->GetWindowText(sName);
static_cast<CComboBox *>(GetDlgItem(IDC_AREA))->GetWindowText(sArea);
m_EdtMax.GetWindowText(sMaxNum);
m_EdtMin.GetWindowText(sMinNum);
if (sName.IsEmpty()) sWarning = "商品名称不能为空,请选择!";
else if (sMaxNum.IsEmpty()) sWarning = "商品最大库存量不能为空,请输入!";
else if (sMinNum.IsEmpty()) sWarning = "商品最小库存量不能为空,请选择!";
else if (sMaxNum.Mid(0,1) == "0") sWarning = "商品最大库存量不正确,请重新输入!";
else if (sArea.IsEmpty()) sWarning = "商品放置区域不能为空,请选择!";
else if (m_iAddOrChange==1 && IsHave(sName)) sWarning = "该商品库存设置信息已存在!";
if (!sWarning.IsEmpty())
{
MessageBox(sWarning,"系统提示",MB_ICONSTOP|MB_OK);
return;
}
int nAreaIndex = gfGetAreaIndex(sArea);
switch(m_iAddOrChange)
{
case 1:
sSQL.Format("INSERT INTO T_Stock(F_Type,F_Code,F_Name,F_MaxNum,F_MinNum,F_Area) VALUES(%d,'%s','%s',%d,%d,%d)",gfGetGoodsKind(sName),m_sCode,sName,atoi(sMaxNum),atoi(sMinNum),nAreaIndex);
break;
case 2:
sSQL.Format("UPDATE T_Stock SET F_MaxNum = %d,F_MinNum = %d,F_Area = %d WHERE F_Name = '"+sName+"'",atoi(sMaxNum),atoi(sMinNum),nAreaIndex);
break;
}
if (cn.OpenUDLFile(gstrConSQLSer))
{
cn.Execute(sSQL,adCmdText);
cn.Close();
switch(m_iAddOrChange)
{
case 1:
AddLog("添加商品["+sName+"]的库存设置信息");
MessageBox("信息添加成功!","系统提示",MB_ICONINFORMATION|MB_OK);
break;
case 2:
AddLog("修改商品["+sName+"]的库存设置信息!");
MessageBox("信息修改成功!","系统提示",MB_ICONINFORMATION|MB_OK);
break;
}
Enabled(false);
ClearFrom();
Refresh();
}
else
{
MessageBox("数据库连接失败!","系统提示",MB_ICONSTOP|MB_OK);
}
}
BOOL CDlgStockMange::IsHave(const CString &sName)
{
BOOL bHave;
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
rs.Open("select * from T_Stock where F_Name = '"+sName+"'",adCmdText);
if (rs.GetRecordCount() == 0)
{
bHave = FALSE;
}
else
{
bHave = TRUE;
}
rs.Close();
cn.Close();
return bHave;
}
void CDlgStockMange::OnSelchangeGoods()
{
CString sName;
static_cast<CComboBox *>(GetDlgItem(IDC_GOODS))->GetWindowText(sName);
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
rs.Open("select * from T_Products where F_Name = '"+sName+"'",adCmdText);
rs.GetCollect("F_Code",m_sCode);
rs.Close();
cn.Close();
}
void CDlgStockMange::OnUndo()
{
ClearFrom();
Enabled(false);
Refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -