Report1Dlg.cpp
上传用户:biney012
上传日期:2022-05-09
资源大小:4592k
文件大小: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. //}}AFX_EVENTSINK_MAP
  64. END_EVENTSINK_MAP()
  65. void CReport1Dlg::OnClickDatacombo1(short Area) 
  66. {
  67. CString cUpper;
  68. cUpper = m_datacombo1.GetBoundText(); //读取选择类别的编号
  69. if (cUpper == "")
  70. cUpper = "0";
  71. m_datacombo2.SetText("");
  72. //设置二级类别的记录源
  73. m_adodc2.SetRecordSource("SELECT * FROM ProType WHERE UpperId=" + cUpper);
  74. m_adodc2.Refresh();
  75. //刷新表格
  76. Refresh_Data();
  77. }
  78. void CReport1Dlg::OnClickDatacombo2(short Area) 
  79. {
  80. //刷新表格
  81. Refresh_Data();
  82. }
  83. BOOL CReport1Dlg::OnInitDialog() 
  84. {
  85. CDialog::OnInitDialog();
  86. // TODO: Add extra initialization here
  87. Refresh_Data();
  88. return TRUE;  // return TRUE unless you set the focus to a control
  89.               // EXCEPTION: OCX Property Pages should return FALSE
  90. }