Report1Dlg.cpp
资源名称:final.rar [点击查看]
上传用户:fangwenmm
上传日期:2014-06-18
资源大小:6955k
文件大小:3k
源码类别:
企业管理
开发平台:
Visual C++
- // Report1Dlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "Stock.h"
- #include "Report1Dlg.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CReport1Dlg dialog
- CReport1Dlg::CReport1Dlg(CWnd* pParent /*=NULL*/)
- : CDialog(CReport1Dlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CReport1Dlg)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- }
- void CReport1Dlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CReport1Dlg)
- DDX_Control(pDX, IDC_ADODC1, m_adodc1);
- DDX_Control(pDX, IDC_ADODC2, m_adodc2);
- DDX_Control(pDX, IDC_ADODC3, m_adodc3);
- DDX_Control(pDX, IDC_DATACOMBO1, m_datacombo1);
- DDX_Control(pDX, IDC_DATACOMBO2, m_datacombo2);
- DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CReport1Dlg, CDialog)
- //{{AFX_MSG_MAP(CReport1Dlg)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CReport1Dlg message handlers
- void CReport1Dlg::Refresh_Data()
- {
- CString cTypeId;
- if (m_datacombo2.GetBoundText() == "")
- cTypeId = "0";
- else
- cTypeId = m_datacombo2.GetBoundText();
- //生成SELECT语句
- CString cSource;
- cSource = "SELECT p.Pname AS 产品名称,";
- cSource += " v1.SumNum AS 入库总量, v1.SumPrice AS 入库总金额,";
- cSource += " v2.SumNum AS 出库总量, v2.SumPrice AS 出库总金额,";
- cSource += " v3.SumNum AS 库存总量, p.PLow AS 库存下限, p.PHigh AS 库存上限";
- cSource += " FROM (((Product p LEFT JOIN v_StoreIn v1 ON p.Pid=v1.Pid)";
- cSource += " LEFT JOIN v_TakeOut v2 ON p.Pid=v2.Pid)";
- cSource += " LEFT JOIN v_ProInStore v3 ON p.Pid=v3.Pid)";
- cSource += " WHERE p.TypeId = " + cTypeId;
- //设置数据源
- m_adodc3.SetRecordSource(cSource);
- m_adodc3.Refresh();
- }
- BEGIN_EVENTSINK_MAP(CReport1Dlg, CDialog)
- //{{AFX_EVENTSINK_MAP(CReport1Dlg)
- ON_EVENT(CReport1Dlg, IDC_DATACOMBO1, -600 /* Click */, OnClickDatacombo1, VTS_I2)
- ON_EVENT(CReport1Dlg, IDC_DATACOMBO2, -600 /* Click */, OnClickDatacombo2, VTS_I2)
- ON_EVENT(CReport1Dlg, IDC_ADODC1, 200 /* WillMove */, OnWillMoveAdodc1, VTS_I4 VTS_PI4 VTS_DISPATCH)
- //}}AFX_EVENTSINK_MAP
- END_EVENTSINK_MAP()
- void CReport1Dlg::OnClickDatacombo1(short Area)
- {
- CString cUpper;
- cUpper = m_datacombo1.GetBoundText(); //读取选择类别的编号
- if (cUpper == "")
- cUpper = "0";
- m_datacombo2.SetText("");
- //设置二级类别的记录源
- m_adodc2.SetRecordSource("SELECT * FROM ProType WHERE UpperId=" + cUpper);
- m_adodc2.Refresh();
- //刷新表格
- Refresh_Data();
- }
- void CReport1Dlg::OnClickDatacombo2(short Area)
- {
- //刷新表格
- Refresh_Data();
- }
- BOOL CReport1Dlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: Add extra initialization here
- Refresh_Data();
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CReport1Dlg::OnWillMoveAdodc1(long adReason, long FAR* adStatus, LPDISPATCH pRecordset)
- {
- // TODO: Add your control notification handler code here
- }