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

📄 dlgstockalert.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 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 + -