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

数据库系统

开发平台:

Visual C++

  1. // StoreInEditDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Stock.h"
  5. #include "StoreInEditDlg.h"
  6. #include "StoreIn.h"
  7. #include "ProInStore.h"
  8. extern CUsers curUser;
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CStoreInEditDlg dialog
  16. CStoreInEditDlg::CStoreInEditDlg(CWnd* pParent /*=NULL*/)
  17. : CDialog(CStoreInEditDlg::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CStoreInEditDlg)
  20. m_MakeDate = 0;
  21. m_OptDate = _T("");
  22. m_Pnum = 0;
  23. m_Pprice = 0.0f;
  24. m_Price = _T("");
  25. m_User = _T("");
  26. //}}AFX_DATA_INIT
  27. }
  28. void CStoreInEditDlg::DoDataExchange(CDataExchange* pDX)
  29. {
  30. CDialog::DoDataExchange(pDX);
  31. //{{AFX_DATA_MAP(CStoreInEditDlg)
  32. DDX_Control(pDX, IDC_CLTTYPE_COMBO, m_CltType);
  33. DDX_Control(pDX, IDC_SITYPE_COMBO, m_SiType);
  34. DDX_Control(pDX, IDC_ADODC1, m_adodc1);
  35. DDX_Control(pDX, IDC_ADODC2, m_adodc2);
  36. DDX_Control(pDX, IDC_ADODC3, m_adodc3);
  37. DDX_Control(pDX, IDC_ADODC4, m_adodc4);
  38. DDX_DateTimeCtrl(pDX, IDC_MAKEDATE, m_MakeDate);
  39. DDX_Text(pDX, IDC_OPTDATE_STATIC, m_OptDate);
  40. DDX_Text(pDX, IDC_PNUM_EDIT, m_Pnum);
  41. DDX_Text(pDX, IDC_PPRICE_EDIT, m_Pprice);
  42. DDX_Text(pDX, IDC_PRICE_STATIC, m_Price);
  43. DDX_Control(pDX, IDC_PROTYPE1_DATACOMBO, m_ProType1);
  44. DDX_Control(pDX, IDC_PROTYPE2_DATACOMBO, m_ProType2);
  45. DDX_Text(pDX, IDC_USER_STATIC, m_User);
  46. DDX_Control(pDX, IDC_CLIENT_DATACOMBO, m_Client);
  47. DDX_Control(pDX, IDC_PNAME_DATACOMBO, m_Pname);
  48. DDX_Control(pDX, IDC_ADODC5, m_adodc5);
  49. DDX_Control(pDX, IDC_STOREHOUSE_DATACOMBO, m_Storehouse);
  50. //}}AFX_DATA_MAP
  51. }
  52. BEGIN_MESSAGE_MAP(CStoreInEditDlg, CDialog)
  53. //{{AFX_MSG_MAP(CStoreInEditDlg)
  54. ON_CBN_SELCHANGE(IDC_CLTTYPE_COMBO, OnSelchangeClttypeCombo)
  55. ON_EN_CHANGE(IDC_PPRICE_EDIT, OnChangePpriceEdit)
  56. ON_EN_CHANGE(IDC_PNUM_EDIT, OnChangePnumEdit)
  57. //}}AFX_MSG_MAP
  58. END_MESSAGE_MAP()
  59. /////////////////////////////////////////////////////////////////////////////
  60. // CStoreInEditDlg message handlers
  61. void CStoreInEditDlg::OnOK() 
  62. {
  63. // TODO: Add extra validation here
  64. UpdateData(TRUE);  //将输入数据读取到成员变量
  65. //判断输入数据是否有效
  66. if (m_Client.GetBoundText() == "")
  67. {
  68. MessageBox("请选择客户");
  69. return;
  70. }
  71. if (m_Pname.GetBoundText() == "")
  72. {
  73. MessageBox("请选择产品");
  74. return;
  75. }
  76. if (m_Storehouse.GetBoundText() == "")
  77. {
  78. MessageBox("请选择仓库");
  79. return;
  80. }
  81. if (m_Pnum == 0)
  82. {
  83. MessageBox("请输入入库产品数量");
  84. return;
  85. }
  86. CStoreIn si;
  87. int index;
  88. index = m_SiType.GetCurSel();
  89. CString cType;
  90. m_SiType.GetLBText(index, cType);
  91. si.SetSiType(cType); //入库类型
  92. si.SetPid(atoi(m_Pname.GetBoundText())); //产品编号
  93. si.SetMakeDate(m_MakeDate.Format("%Y-%m-%d"));  //生产日期
  94. si.SetPprice(m_Pprice); //单价
  95. si.SetPnum(m_Pnum); //数量
  96. si.SetCid(atoi(m_Client.GetBoundText())); //客户编号
  97. si.SetSid(atoi(m_Storehouse.GetBoundText())); //仓库编号
  98. si.SetEmpName(m_User); //操作用户
  99. si.SetOptDate(m_OptDate); //操作日期
  100. //插入入库数量
  101. si.sql_insert();
  102. //@@@@@  保存库存产品信息  @@@@@
  103. CProInStore pi;
  104. pi.SetPid(atoi(m_Pname.GetBoundText())); //产品编号
  105. pi.SetPprice(m_Pprice); //单价
  106. pi.SetPnum(m_Pnum); //数量
  107. pi.SetMakeDate(m_MakeDate.Format("%Y-%m-%d")); //生产日期
  108. pi.SetSid(atoi(m_Storehouse.GetBoundText())); //仓库编号
  109. //如果不存在当前库存产品,则插入新记录,否则更新库存数量
  110. CString cPid;
  111. cPid.Format("%d", pi.GetPid());
  112. CString cPrice;
  113. cPrice.Format("%f", m_Pprice);
  114. CString cSid;
  115. cSid.Format("%d", pi.GetSid());
  116. if (pi.HaveData(cPid, cPrice, pi.GetMakeDate(), cSid) == 1)
  117. pi.sql_updateDiff(cPid, cPrice, pi.GetMakeDate(), cSid);
  118. else
  119. pi.sql_insert();
  120. CDialog::OnOK();
  121. }
  122. BOOL CStoreInEditDlg::OnInitDialog() 
  123. {
  124. CDialog::OnInitDialog();
  125. // TODO: Add extra initialization here
  126. m_CltType.SetCurSel(0);  //设置客户类型
  127. m_SiType.SetCurSel(0);  //设置入库类型
  128. CTime t = CTime::GetCurrentTime();  //读取当前系统日期
  129. m_MakeDate = t;  //设置生产日期为当日
  130. m_User = curUser.GetUserName();  //自动设置操作人
  131. m_OptDate = t.Format("%Y-%m-%d");  //自动设置操作时间
  132. UpdateData(FALSE);
  133. return TRUE;  // return TRUE unless you set the focus to a control
  134.               // EXCEPTION: OCX Property Pages should return FALSE
  135. }
  136. void CStoreInEditDlg::OnSelchangeClttypeCombo() 
  137. {
  138. // TODO: Add your control notification handler code here
  139. //设置查询客户的SELECT语句
  140. CString cSource;
  141. cSource = "SELECT * FROM Client";
  142. //根据客户类别设置查询条件
  143. if (m_CltType.GetCurSel() == 0)
  144. cSource += " WHERE Ctype = 1";
  145. else
  146. cSource += " WHERE Ctype = 2";
  147. m_Client.SetText(""); //清除客户组合框的显示内容
  148. m_adodc1.SetRecordSource(cSource);  //设置数据源,重新客户列表
  149. m_adodc1.Refresh();
  150. }
  151. BEGIN_EVENTSINK_MAP(CStoreInEditDlg, CDialog)
  152.     //{{AFX_EVENTSINK_MAP(CStoreInEditDlg)
  153. ON_EVENT(CStoreInEditDlg, IDC_PROTYPE1_DATACOMBO, -600 /* Click */, OnClickProtype1Datacombo, VTS_I2)
  154. ON_EVENT(CStoreInEditDlg, IDC_PROTYPE2_DATACOMBO, -600 /* Click */, OnClickProtype2Datacombo, VTS_I2)
  155. //}}AFX_EVENTSINK_MAP
  156. END_EVENTSINK_MAP()
  157. void CStoreInEditDlg::OnClickProtype1Datacombo(short Area) 
  158. {
  159. // TODO: Add your control notification handler code here
  160. //读取一级产品类别编号
  161. CString cUpperId;
  162. cUpperId = m_ProType1.GetBoundText();
  163. if (cUpperId == "")
  164. cUpperId = "0";
  165. //设置查询二级产品类型的SELECT语句
  166. CString cSource;
  167. cSource = "SELECT * FROM ProType WHERE UpperId=" + cUpperId;
  168. m_ProType2.SetText("");
  169. //设置m_adodc3,从而刷新二级产品类别的列表
  170. m_adodc3.SetRecordSource(cSource);
  171. m_adodc3.Refresh();
  172. //设置产品列表框,因为没有选中二级产品类别,所以要清空产品列表框
  173. cSource = "SELECT * FROM Product WHERE TypeId=0";
  174. m_Pname.SetText("");
  175. //设置m_adodc3,从而刷新二级产品类别的列表
  176. m_adodc4.SetRecordSource(cSource);
  177. m_adodc4.Refresh();
  178. }
  179. void CStoreInEditDlg::OnClickProtype2Datacombo(short Area) 
  180. {
  181. // TODO: Add your control notification handler code here
  182. //读取二级产品类别编号
  183. CString cTypeId;
  184. cTypeId = m_ProType2.GetBoundText();
  185. if (cTypeId == "")
  186. cTypeId = "0";
  187. //设置查询二级产品类型的SELECT语句
  188. CString cSource;
  189. cSource = "SELECT * FROM Product WHERE TypeId=" + cTypeId;
  190. m_Pname.SetText("");
  191. //设置m_adodc3,从而刷新二级产品类别的列表
  192. m_adodc4.SetRecordSource(cSource);
  193. m_adodc4.Refresh();
  194. }
  195. void CStoreInEditDlg::OnChangePpriceEdit() 
  196. {
  197. UpdateData(TRUE); //读取输入数据到成员变量
  198. m_Price.Format("%.2f", m_Pprice * m_Pnum); //计算总价格
  199. UpdateData(FALSE); //显示成员变量值
  200. }
  201. void CStoreInEditDlg::OnChangePnumEdit() 
  202. {
  203. UpdateData(TRUE); //读取输入数据到成员变量
  204. m_Price.Format("%.2f", m_Pprice * m_Pnum); //计算总价格
  205. UpdateData(FALSE); //显示成员变量值
  206. }