Report2Dlg.cpp
上传用户:biney012
上传日期:2022-05-09
资源大小:4592k
文件大小:4k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // Report2Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Stock.h"
  5. #include "Report2Dlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CReport2Dlg dialog
  13. CReport2Dlg::CReport2Dlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CReport2Dlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CReport2Dlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CReport2Dlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CReport2Dlg)
  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_ADODC5, m_adodc5);
  28. DDX_Control(pDX, IDC_DATACOMBO1, m_datacombo1);
  29. DDX_Control(pDX, IDC_DATACOMBO3, m_datacombo3);
  30. DDX_Control(pDX, IDC_DATACOMBO2, m_datacombo2);
  31. DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
  32. //}}AFX_DATA_MAP
  33. }
  34. BEGIN_MESSAGE_MAP(CReport2Dlg, CDialog)
  35. //{{AFX_MSG_MAP(CReport2Dlg)
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CReport2Dlg message handlers
  40. void CReport2Dlg::Refresh_Data()
  41. {
  42. CString cPid;
  43. cPid = m_datacombo3.GetBoundText();
  44. if (cPid == "")
  45. cPid = "0";
  46. //生成SELECT语句
  47. CString cSource;
  48. cSource = "SELECT r.SiType As 入出库类型, p.Pname As 产品名称, r.Pprice As 产品单价,";
  49.     cSource += " r.Pnum As 产品数量, r.Amount As 总金额, c.Cname As 客户单位, s.Sname As 存放仓库,";
  50.     cSource += " r.EmpName As 经办人, r.OptDate As 入出库日期"; 
  51.     cSource += " FROM Report2 r, Product p, Client c, Storehouse s";
  52.     cSource += " WHERE r.Pid=p.Pid AND r.Cid=c.Cid AND";
  53.     cSource += " r.Sid=s.Sid AND p.Pid=" + cPid;
  54.     //设置记录源
  55. m_adodc3.SetRecordSource(cSource);
  56. m_adodc3.Refresh();
  57. }
  58. BOOL CReport2Dlg::OnInitDialog() 
  59. {
  60. CDialog::OnInitDialog();
  61. // TODO: Add extra initialization here
  62. Refresh_Data();
  63. return TRUE;  // return TRUE unless you set the focus to a control
  64.               // EXCEPTION: OCX Property Pages should return FALSE
  65. }
  66. BEGIN_EVENTSINK_MAP(CReport2Dlg, CDialog)
  67.     //{{AFX_EVENTSINK_MAP(CReport2Dlg)
  68. ON_EVENT(CReport2Dlg, IDC_DATACOMBO1, -600 /* Click */, OnClickDatacombo1, VTS_I2)
  69. ON_EVENT(CReport2Dlg, IDC_DATACOMBO2, -600 /* Click */, OnClickDatacombo2, VTS_I2)
  70. ON_EVENT(CReport2Dlg, IDC_DATACOMBO3, -600 /* Click */, OnClickDatacombo3, VTS_I2)
  71. //}}AFX_EVENTSINK_MAP
  72. END_EVENTSINK_MAP()
  73. void CReport2Dlg::OnClickDatacombo1(short Area) 
  74. {
  75. //读取一级产品类别编号
  76. CString cUpperId;
  77. cUpperId = m_datacombo1.GetBoundText();
  78. if (cUpperId == "")
  79. cUpperId = "0";
  80. //设置查询二级产品类型的SELECT语句
  81. CString cSource;
  82. cSource = "SELECT * FROM ProType WHERE UpperId=" + cUpperId;
  83. m_datacombo2.SetText("");
  84. //设置m_adodc3,从而刷新二级产品类别的列表
  85. m_adodc2.SetRecordSource(cSource);
  86. m_adodc2.Refresh();
  87. //设置产品列表框,因为没有选中二级产品类别,所以要清空产品列表框
  88. cSource = "SELECT * FROM Product WHERE TypeId=0";
  89. m_datacombo3.SetText("");
  90. //设置m_adodc5,从而刷新产品的列表
  91. m_adodc5.SetRecordSource(cSource);
  92. m_adodc5.Refresh();
  93. //刷新库存产品表格
  94. Refresh_Data();
  95. }
  96. void CReport2Dlg::OnClickDatacombo2(short Area) 
  97. {
  98. //读取二级产品类别编号
  99. CString cTypeId;
  100. cTypeId = m_datacombo2.GetBoundText();
  101. if (cTypeId == "")
  102. cTypeId = "0";
  103. //设置查询二级产品类型的SELECT语句
  104. CString cSource;
  105. cSource = "SELECT * FROM Product WHERE TypeId=" + cTypeId;
  106. m_datacombo3.SetText("");
  107. //设置m_adodc5,从而刷新产品的列表
  108. m_adodc5.SetRecordSource(cSource);
  109. m_adodc5.Refresh();
  110. //刷新库存产品表格
  111. Refresh_Data();
  112. }
  113. void CReport2Dlg::OnClickDatacombo3(short Area) 
  114. {
  115. Refresh_Data();
  116. }