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

数据库系统

开发平台:

Visual C++

  1. // CheckManDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Stock.h"
  5. #include "CheckManDlg.h"
  6. #include "COMDEF.H"
  7. #include "Columns.h"
  8. #include "Column.h"
  9. #include "_recordset.h"
  10. #include "CheckEditDlg.h"
  11. #ifdef _DEBUG
  12. #define new DEBUG_NEW
  13. #undef THIS_FILE
  14. static char THIS_FILE[] = __FILE__;
  15. #endif
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CCheckManDlg dialog
  18. CCheckManDlg::CCheckManDlg(CWnd* pParent /*=NULL*/)
  19. : CDialog(CCheckManDlg::IDD, pParent)
  20. {
  21. //{{AFX_DATA_INIT(CCheckManDlg)
  22. //}}AFX_DATA_INIT
  23. }
  24. void CCheckManDlg::DoDataExchange(CDataExchange* pDX)
  25. {
  26. CDialog::DoDataExchange(pDX);
  27. //{{AFX_DATA_MAP(CCheckManDlg)
  28. DDX_Control(pDX, IDC_ADODC1, m_adodc1);
  29. DDX_Control(pDX, IDC_ADODC2, m_adodc2);
  30. DDX_Control(pDX, IDC_ADODC3, m_adodc3);
  31. DDX_Control(pDX, IDC_ADODC5, m_adodc5);
  32. DDX_Control(pDX, IDC_ADODC6, m_adodc6);
  33. DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
  34. DDX_Control(pDX, IDC_PNAME_DATACOMBO, m_Pname);
  35. DDX_Control(pDX, IDC_PROTYPE1_DATACOMBO, m_ProType1);
  36. DDX_Control(pDX, IDC_PROTYPE2_DATACOMBO, m_ProType2);
  37. DDX_Control(pDX, IDC_STOREHOUSE_DATACOMBO, m_Storehouse);
  38. //}}AFX_DATA_MAP
  39. }
  40. BEGIN_MESSAGE_MAP(CCheckManDlg, CDialog)
  41. //{{AFX_MSG_MAP(CCheckManDlg)
  42. ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
  43. //}}AFX_MSG_MAP
  44. END_MESSAGE_MAP()
  45. /////////////////////////////////////////////////////////////////////////////
  46. // CCheckManDlg message handlers
  47. void CCheckManDlg::Refresh_Data()
  48. {
  49. CString cPid;  //保存当前选择的产品编号
  50. if (m_Pname.GetBoundText() == "")
  51. cPid = "0";
  52. else
  53. cPid = m_Pname.GetBoundText();
  54. CString cSid; //保存当前选择的仓库编号
  55. if (m_Storehouse.GetBoundText() == "")
  56. cSid = "0";
  57. else
  58. cSid = m_Storehouse.GetBoundText();
  59. //设置SELECT语句
  60. CString cSource;
  61. cSource = "SELECT SpId, Pprice As 产品入库单价, Pnum As 库存数量, MakeDate As 生产日期";
  62. cSource += " FROM ProInStore WHERE Pid=" + cPid + " AND Sid=" + cSid;
  63. //设置记录源
  64. m_adodc6.SetRecordSource(cSource);
  65. m_adodc6.Refresh();
  66. //设置表格列宽度
  67. _variant_t vIndex;
  68. vIndex = long(0);
  69. m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
  70. vIndex = long(1);
  71. m_datagrid.GetColumns().GetItem(vIndex).SetWidth(180);
  72. vIndex = long(2);
  73. m_datagrid.GetColumns().GetItem(vIndex).SetWidth(180);
  74. vIndex = long(3);
  75. m_datagrid.GetColumns().GetItem(vIndex).SetWidth(180);
  76. }
  77. BEGIN_EVENTSINK_MAP(CCheckManDlg, CDialog)
  78.     //{{AFX_EVENTSINK_MAP(CCheckManDlg)
  79. ON_EVENT(CCheckManDlg, IDC_PROTYPE1_DATACOMBO, -600 /* Click */, OnClickProtype1Datacombo, VTS_I2)
  80. ON_EVENT(CCheckManDlg, IDC_PROTYPE2_DATACOMBO, -600 /* Click */, OnClickProtype2Datacombo, VTS_I2)
  81. ON_EVENT(CCheckManDlg, IDC_PNAME_DATACOMBO, -600 /* Click */, OnClickPnameDatacombo, VTS_I2)
  82. ON_EVENT(CCheckManDlg, IDC_STOREHOUSE_DATACOMBO, -600 /* Click */, OnClickStorehouseDatacombo, VTS_I2)
  83. //}}AFX_EVENTSINK_MAP
  84. END_EVENTSINK_MAP()
  85. void CCheckManDlg::OnClickProtype1Datacombo(short Area) 
  86. {
  87. //读取一级产品类别编号
  88. CString cUpperId;
  89. cUpperId = m_ProType1.GetBoundText();
  90. if (cUpperId == "")
  91. cUpperId = "0";
  92. //设置查询二级产品类型的SELECT语句
  93. CString cSource;
  94. cSource = "SELECT * FROM ProType WHERE UpperId=" + cUpperId;
  95. m_ProType2.SetText("");
  96. //设置m_adodc3,从而刷新二级产品类别的列表
  97. m_adodc2.SetRecordSource(cSource);
  98. m_adodc2.Refresh();
  99. //设置产品列表框,因为没有选中二级产品类别,所以要清空产品列表框
  100. cSource = "SELECT * FROM Product WHERE TypeId=0";
  101. m_Pname.SetText("");
  102. //设置m_adodc3,从而刷新二级产品类别的列表
  103. m_adodc3.SetRecordSource(cSource);
  104. m_adodc3.Refresh();
  105. //刷新库存产品表格
  106. Refresh_Data();
  107. }
  108. BOOL CCheckManDlg::OnInitDialog() 
  109. {
  110. CDialog::OnInitDialog();
  111. //刷新库存产品表格
  112. Refresh_Data();
  113. return TRUE;  // return TRUE unless you set the focus to a control
  114.               // EXCEPTION: OCX Property Pages should return FALSE
  115. }
  116. void CCheckManDlg::OnClickProtype2Datacombo(short Area) 
  117. {
  118. //读取二级产品类别编号
  119. CString cTypeId;
  120. cTypeId = m_ProType2.GetBoundText();
  121. if (cTypeId == "")
  122. cTypeId = "0";
  123. //设置查询二级产品类型的SELECT语句
  124. CString cSource;
  125. cSource = "SELECT * FROM Product WHERE TypeId=" + cTypeId;
  126. m_Pname.SetText("");
  127. //设置m_adodc3,从而刷新二级产品类别的列表
  128. m_adodc3.SetRecordSource(cSource);
  129. m_adodc3.Refresh();
  130. //刷新库存产品表格
  131. Refresh_Data();
  132. }
  133. void CCheckManDlg::OnClickPnameDatacombo(short Area) 
  134. {
  135. //刷新库存产品表格
  136. Refresh_Data();
  137. }
  138. void CCheckManDlg::OnClickStorehouseDatacombo(short Area) 
  139. {
  140. //刷新库存产品表格
  141. Refresh_Data();
  142. }
  143. void CCheckManDlg::OnModiButton() 
  144. {
  145. // TODO: Add your control notification handler code here
  146. if (m_adodc6.GetRecordset().GetEof())
  147. {
  148. MessageBox("请选择盘点记录");
  149. return;
  150. }
  151. CCheckEditDlg dlg;
  152. dlg.cSpId = m_datagrid.GetItem(0); //库存记录编号
  153. dlg.m_Sname = m_Storehouse.GetText(); //仓库名称
  154. dlg.m_Pname = m_Pname.GetText(); //产品名称
  155. dlg.m_MakeDate = m_datagrid.GetItem(3); //生产日期
  156. dlg.m_Price = m_datagrid.GetItem(1); //单价
  157. dlg.m_OldNum = m_datagrid.GetItem(2); //原数量
  158. if (dlg.DoModal() == IDOK)
  159. Refresh_Data();
  160. }