Report1Dlg.cpp
上传用户:fangwenmm
上传日期:2014-06-18
资源大小:6955k
文件大小:3k
源码类别:

企业管理

开发平台:

Visual C++

  1. // Report1Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Stock.h"
  5. #include "Report1Dlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CReport1Dlg dialog
  13. CReport1Dlg::CReport1Dlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CReport1Dlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CReport1Dlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CReport1Dlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CReport1Dlg)
  24. DDX_Control(pDX, IDC_ADODC1, m_adodc1);
  25. DDX_Control(pDX, IDC_ADODC2, m_adodc2);
  26. DDX_Control(pDX, IDC_ADODC3, m_adodc3);
  27. DDX_Control(pDX, IDC_DATACOMBO1, m_datacombo1);
  28. DDX_Control(pDX, IDC_DATACOMBO2, m_datacombo2);
  29. DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(CReport1Dlg, CDialog)
  33. //{{AFX_MSG_MAP(CReport1Dlg)
  34. //}}AFX_MSG_MAP
  35. END_MESSAGE_MAP()
  36. /////////////////////////////////////////////////////////////////////////////
  37. // CReport1Dlg message handlers
  38. void CReport1Dlg::Refresh_Data()
  39. {
  40. CString cTypeId;
  41. if (m_datacombo2.GetBoundText() == "")
  42. cTypeId = "0";
  43. else
  44. cTypeId = m_datacombo2.GetBoundText();
  45. //生成SELECT语句
  46. CString cSource;
  47. cSource = "SELECT p.Pname AS 产品名称,";
  48. cSource += " v1.SumNum AS 入库总量, v1.SumPrice AS 入库总金额,";
  49. cSource += " v2.SumNum AS 出库总量, v2.SumPrice AS 出库总金额,";
  50.     cSource += " v3.SumNum AS 库存总量, p.PLow AS 库存下限, p.PHigh AS 库存上限";
  51.     cSource += " FROM (((Product p LEFT JOIN v_StoreIn v1 ON p.Pid=v1.Pid)";
  52. cSource += " LEFT JOIN v_TakeOut v2 ON p.Pid=v2.Pid)";
  53.     cSource += " LEFT JOIN v_ProInStore v3 ON p.Pid=v3.Pid)";
  54. cSource += " WHERE p.TypeId = " + cTypeId;
  55. //设置数据源
  56. m_adodc3.SetRecordSource(cSource);
  57. m_adodc3.Refresh();
  58. }
  59. BEGIN_EVENTSINK_MAP(CReport1Dlg, CDialog)
  60.     //{{AFX_EVENTSINK_MAP(CReport1Dlg)
  61. ON_EVENT(CReport1Dlg, IDC_DATACOMBO1, -600 /* Click */, OnClickDatacombo1, VTS_I2)
  62. ON_EVENT(CReport1Dlg, IDC_DATACOMBO2, -600 /* Click */, OnClickDatacombo2, VTS_I2)
  63. ON_EVENT(CReport1Dlg, IDC_ADODC1, 200 /* WillMove */, OnWillMoveAdodc1, VTS_I4 VTS_PI4 VTS_DISPATCH)
  64. //}}AFX_EVENTSINK_MAP
  65. END_EVENTSINK_MAP()
  66. void CReport1Dlg::OnClickDatacombo1(short Area) 
  67. {
  68. CString cUpper;
  69. cUpper = m_datacombo1.GetBoundText(); //读取选择类别的编号
  70. if (cUpper == "")
  71. cUpper = "0";
  72. m_datacombo2.SetText("");
  73. //设置二级类别的记录源
  74. m_adodc2.SetRecordSource("SELECT * FROM ProType WHERE UpperId=" + cUpper);
  75. m_adodc2.Refresh();
  76. //刷新表格
  77. Refresh_Data();
  78. }
  79. void CReport1Dlg::OnClickDatacombo2(short Area) 
  80. {
  81. //刷新表格
  82. Refresh_Data();
  83. }
  84. BOOL CReport1Dlg::OnInitDialog() 
  85. {
  86. CDialog::OnInitDialog();
  87. // TODO: Add extra initialization here
  88. Refresh_Data();
  89. return TRUE;  // return TRUE unless you set the focus to a control
  90.               // EXCEPTION: OCX Property Pages should return FALSE
  91. }
  92. void CReport1Dlg::OnWillMoveAdodc1(long adReason, long FAR* adStatus, LPDISPATCH pRecordset) 
  93. {
  94. // TODO: Add your control notification handler code here
  95. }