📄 dlgstockalert.cpp
字号:
// DlgStockAlert.cpp : implementation file
//
#include "stdafx.h"
#include "Manage_WH.h"
#include "DlgStockAlert.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgStockAlert dialog
CDlgStockAlert::CDlgStockAlert(CWnd* pParent /*=NULL*/)
: CDialog(CDlgStockAlert::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgStockAlert)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDlgStockAlert::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgStockAlert)
DDX_Control(pDX, IDC_LIST, m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgStockAlert, CDialog)
//{{AFX_MSG_MAP(CDlgStockAlert)
ON_BN_CLICKED(IDC_HIGH, OnHigh)
ON_BN_CLICKED(IDC_LOW, OnLow)
ON_BN_CLICKED(IDC_ALL, OnAll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgStockAlert message handlers
BOOL CDlgStockAlert::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN && (pMsg->wParam==13 || pMsg->wParam==27))
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CDlgStockAlert::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.InsertColumn(0,"商品名称",LVCFMT_LEFT,120,-1);
m_list.InsertColumn(1,"现存数量",LVCFMT_LEFT,120,-1);
m_list.InsertColumn(2,"最大数量",LVCFMT_LEFT,120,-1);
m_list.InsertColumn(3,"最小数量",LVCFMT_LEFT,120,-1);
m_list.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
rs.Open("T_Stock",adCmdTable);
if (rs.GetRecordCount() > 0)
{
rs.MoveFirst();
int iMaxNum,iMinNum,iGoodsKind;
CString sGoodsName;
while (!rs.IsEOF())
{
rs.GetCollect("F_Name",sGoodsName);
rs.GetCollect("F_MaxNum",iMaxNum);
rs.GetCollect("F_MinNum",iMinNum);
rs.GetCollect("F_Type",iGoodsKind);
m_sGoodsNameArra.Add(sGoodsName);
m_iGoodsKindArra.Add(iGoodsKind);
m_iMaxNumArra.Add(iMaxNum);
m_iMinNumArra.Add(iMinNum);
rs.MoveNext();
}
}
rs.Close();
cn.Close();
return TRUE;
}
void CDlgStockAlert::SearchBelow()
{
int iNum(0),row(0);
CString sSQL;
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
for (int i=0;i<m_iGoodsKindArra.GetSize();i++)
{
int iSum(0);
sSQL.Format("select * from T_Goods_Site_Manage where F_GoodsKind=%d and F_SiteState!=2",m_iGoodsKindArra[i]);
rs.Open(sSQL,adCmdText);
if (rs.GetRecordCount() > 0)
{
rs.MoveFirst();
while (!rs.IsEOF())
{
rs.GetCollect("F_GoodsCount",iNum);
iSum += iNum;
rs.MoveNext();
}
}
rs.Close();
if (iSum < m_iMinNumArra[i])
{
CString sMaxNum,sMinNum,sNowNum;
sMaxNum.Format("%d",m_iMaxNumArra[i]);
sMinNum.Format("%d",m_iMinNumArra[i]);
sNowNum.Format("%d",iSum);
row = m_list.InsertItem(row,"");
m_list.SetItemText(row,0,m_sGoodsNameArra[i]);
m_list.SetItemText(row,1,sNowNum);
m_list.SetItemText(row,2,sMaxNum);
m_list.SetItemText(row,3,sMinNum);
}
}
cn.Close();
}
void CDlgStockAlert::SearchOver()
{
int iNum(0),row(0);
CString sSQL;
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
for (int i=0;i<m_iGoodsKindArra.GetSize();i++)
{
int iSum(0);
sSQL.Format("select * from T_Goods_Site_Manage where F_GoodsKind=%d and F_SiteState!=2",m_iGoodsKindArra[i]);
rs.Open(sSQL,adCmdText);
if (rs.GetRecordCount() > 0)
{
rs.MoveFirst();
while (!rs.IsEOF())
{
rs.GetCollect("F_GoodsCount",iNum);
iSum += iNum;
rs.MoveNext();
}
}
rs.Close();
if (iSum > m_iMaxNumArra[i])
{
CString sMaxNum,sMinNum,sNowNum;
sMaxNum.Format("%d",m_iMaxNumArra[i]);
sMinNum.Format("%d",m_iMinNumArra[i]);
sNowNum.Format("%d",iSum);
row = m_list.InsertItem(row,"");
m_list.SetItemText(row,0,m_sGoodsNameArra[i]);
m_list.SetItemText(row,1,sNowNum);
m_list.SetItemText(row,2,sMaxNum);
m_list.SetItemText(row,3,sMinNum);
}
}
cn.Close();
}
void CDlgStockAlert::OnHigh()
{
m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
SearchOver();
m_list.SetRedraw(TRUE);
}
void CDlgStockAlert::OnLow()
{
m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
SearchBelow();
m_list.SetRedraw(TRUE);
}
void CDlgStockAlert::OnAll()
{
m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
SearchBelow();
SearchOver();
m_list.SetRedraw(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -