DlgRuKuKaiDan.cpp
上传用户:jzscgs158
上传日期:2022-05-25
资源大小:8709k
文件大小:11k
源码类别:

百货/超市行业

开发平台:

Visual C++

  1. // DlgRuKuKaiDan.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ncshop.h"
  5. #include "DlgRuKuKaiDan.h"
  6. #include "ADOConn.h"
  7. #include "MyTime.h"
  8. #include "DlgAll.h"
  9. #include "DlgPrint.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CDlgRuKuKaiDan dialog
  17. CDlgRuKuKaiDan::CDlgRuKuKaiDan(CWnd* pParent /*=NULL*/)
  18. : CDialog(CDlgRuKuKaiDan::IDD, pParent)
  19. {
  20. //{{AFX_DATA_INIT(CDlgRuKuKaiDan)
  21. // NOTE: the ClassWizard will add member initialization here
  22. m_str1 = _T("");
  23. m_str2 = _T("");
  24. m_str8 = _T("");
  25. m_str3 = _T("");
  26. m_str4 = _T("");
  27. m_str5 = _T("");
  28. m_flt6 = 0.0f;
  29. m_flt7 = 0.0f;
  30. //}}AFX_DATA_INIT
  31. }
  32. void CDlgRuKuKaiDan::DoDataExchange(CDataExchange* pDX)
  33. {
  34. CDialog::DoDataExchange(pDX);
  35. //{{AFX_DATA_MAP(CDlgRuKuKaiDan)
  36. DDX_Control(pDX, IDC_BUTTON8, m_Btn10);
  37. DDX_Control(pDX, IDC_BUTTON5, m_Btn9);
  38. DDX_Control(pDX, IDC_BUTTON2, m_Btn2);
  39. DDX_Control(pDX, IDC_BUTTON4, m_Btn8);
  40. DDX_Control(pDX, IDC_LIST1, m_listMain);
  41. DDX_Control(pDX, IDFIND, m_Btn6);
  42. DDX_Control(pDX, IDDEL, m_Btn5);
  43. DDX_Control(pDX, IDCANCEL, m_Btn4);
  44. DDX_Control(pDX, IDC_BUTTON3, m_Btn3);
  45. DDX_Control(pDX, IDC_BUTTON1, m_Btn1);
  46. DDX_Text(pDX, IDC_EDIT1, m_str1);
  47. DDX_Text(pDX, IDC_EDIT2, m_str2);
  48. DDX_Text(pDX, IDC_EDIT20, m_str8);
  49. DDX_Text(pDX, IDC_EDIT3, m_str3);
  50. DDX_Text(pDX, IDC_EDIT4, m_str4);
  51. DDX_Text(pDX, IDC_EDIT5, m_str5);
  52. DDX_Text(pDX, IDC_EDIT16, m_flt6);
  53. DDX_Text(pDX, IDC_EDIT18, m_flt7);
  54. //}}AFX_DATA_MAP
  55. }
  56. BEGIN_MESSAGE_MAP(CDlgRuKuKaiDan, CDialog)
  57. //{{AFX_MSG_MAP(CDlgRuKuKaiDan)
  58. // NOTE: the ClassWizard will add message map macros here
  59. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  60. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  61. ON_BN_CLICKED(IDFIND, OnFind)
  62. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  63. ON_BN_CLICKED(IDDEL, OnDel)
  64. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  65. ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
  66. ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  67. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  68. //}}AFX_MSG_MAP
  69. END_MESSAGE_MAP()
  70. /////////////////////////////////////////////////////////////////////////////
  71. // CDlgRuKuKaiDan message handlers
  72. BOOL CDlgRuKuKaiDan::OnInitDialog() 
  73. {
  74. CDialog::OnInitDialog();
  75. // TODO: Add extra initialization here
  76. CString strSql;
  77. m_Btn1.SetXIcon(IDI_ICONALL);
  78. m_Btn2.SetXIcon(IDI_ICONALL);
  79. m_Btn3.SetXIcon(IDI_ICONBUTTON);
  80. m_Btn4.SetXIcon(IDI_ICONBUTTON);
  81. m_Btn5.SetXIcon(IDI_ICONBUTTON);
  82. m_Btn6.SetXIcon(IDI_ICONFIND);
  83. m_Btn8.SetXIcon(IDI_ICONBUTTON);
  84. m_Btn9.SetXIcon(IDI_ICONBUTTON);
  85. m_Btn10.SetXIcon(IDI_ICONBUTTON);
  86. m_listMain.InsertColumn(0,"条形码",LVCFMT_CENTER,100);
  87. m_listMain.InsertColumn(1,"名称",LVCFMT_CENTER,100);
  88. m_listMain.InsertColumn(2,"库存上限",LVCFMT_CENTER,100);
  89. m_listMain.InsertColumn(3,"库存下限",LVCFMT_CENTER,100);
  90. m_listMain.InsertColumn(4,"进货价",LVCFMT_CENTER,100);
  91. m_listMain.InsertColumn(5,"库存",LVCFMT_CENTER,100);
  92. m_listMain.InsertColumn(6,"数量",LVCFMT_CENTER,100);
  93. m_listMain.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
  94. GetDlgItem(IDC_STATIC1)->SetFont(&ftHeader,TRUE);
  95. return TRUE;  // return TRUE unless you set the focus to a control
  96.               // EXCEPTION: OCX Property Pages should return FALSE
  97. }
  98. void CDlgRuKuKaiDan::OnButton4() 
  99. {
  100. // TODO: Add your control notification handler code here
  101. int i;
  102. CString strSql,str;
  103. CADOConn adoMain;
  104. CMyTime time1;
  105. if(m_str1!="")
  106. {
  107. for(i=0;i<m_listMain.GetItemCount();i++)
  108. {
  109. strSql="update 商品库存数量统计表 set 进货价=";
  110. strSql=strSql+m_listMain.GetItemText(i,4)+",库存=";
  111. str.Format("%0.2f",atof(m_listMain.GetItemText(i,5))+atof(m_listMain.GetItemText(i,6)));
  112. strSql=strSql+str+" where 条形码='";
  113. strSql=strSql+m_listMain.GetItemText(i,0)+"'";
  114. adoMain.ExecuteSQL(strSql);
  115. }
  116. }
  117. time1.SetNow();
  118. m_str1=time1.GetSimpleString();
  119. m_str2=time1.GetDateString(FALSE);
  120. m_str3="";
  121. m_str4="";
  122. m_str5="";
  123. m_flt6=0;
  124. m_flt7=0;
  125. UpdateData(FALSE);
  126. strSql="insert into 非进货单统计表(单编号,开票日期) values('";
  127. strSql=strSql+m_str1+"','";
  128. strSql=strSql+m_str2+"')";
  129. adoMain.ExecuteSQL(strSql);
  130. adoMain.ExitConnect();
  131. m_listMain.DeleteAllItems();
  132. }
  133. void CDlgRuKuKaiDan::OnButton2() 
  134. {
  135. // TODO: Add your control notification handler code here
  136. CDlgAll dlg;
  137. UpdateData(TRUE);
  138. dlg.strTitle="管理员基本信息表";
  139. dlg.strSql="select 编号,姓名 from 管理员基本信息表";
  140. dlg.intOpen=2;
  141. if(dlg.DoModal()==IDOK)
  142. {
  143. m_str3=dlg.strKey;
  144. UpdateData(FALSE);
  145. }
  146. }
  147. void CDlgRuKuKaiDan::OnFind() 
  148. {
  149. // TODO: Add your control notification handler code heres
  150. UpdateData(TRUE);
  151. if(m_str1=="") 
  152. {
  153. MessageBox("请先开单,后加载商品!","提示",MB_OK|MB_ICONWARNING);
  154. return;
  155. }
  156. CADOConn adoMain;
  157. CString strSql,str;
  158. CDlgAll dlg;
  159. int i=0;
  160. strSql="SELECT 商品档案基本信息表.条形码, 商品档案基本信息表.名称,";
  161. strSql=strSql+"商品档案基本信息表.库存上限, 商品档案基本信息表.库存下限";
  162. strSql=strSql+",商品库存数量统计表.进货价," ;
  163. strSql=strSql+"商品库存数量统计表.库存 FROM 商品档案基本信息表 INNER JOIN 商品库存数量统计表 ON ";
  164. strSql=strSql+"商品档案基本信息表.条形码 = 商品库存数量统计表.条形码 where 商品档案基本信息表.条形码='";
  165. strSql=strSql+m_str8+"' or 商品档案基本信息表.商品编码='";
  166. strSql=strSql+m_str8+"' or 商品档案基本信息表.助记码='";
  167. strSql=strSql+m_str8+"' or 商品档案基本信息表.拼音码='";
  168. strSql=strSql+m_str8+"'";
  169. dlg.strTitle="商品档案基本信息";
  170. dlg.strSql=strSql;
  171. dlg.intOpen=6;
  172. dlg.intKey=0;
  173. if(dlg.DoModal()==IDOK)
  174. {
  175. while(i<m_listMain.GetItemCount()&&m_listMain.GetItemText(i,0)!=dlg.strKey)
  176. {
  177. i=i+1;
  178. }
  179. if(i<m_listMain.GetItemCount()) 
  180. {
  181. MessageBox("表中已经存在此商品!","提示",MB_OK|MB_ICONWARNING);
  182. return;
  183. }
  184. if(i==m_listMain.GetItemCount())
  185. {
  186. if(m_listMain.GetItemText(i,0)==dlg.strKey)
  187. {
  188. MessageBox("表中已经存在此商品!","提示",MB_OK|MB_ICONWARNING);
  189. return;
  190. }
  191. }
  192. strSql="SELECT 商品档案基本信息表.条形码, 商品档案基本信息表.名称,";
  193. strSql=strSql+"商品档案基本信息表.库存上限, 商品档案基本信息表.库存下限";
  194. strSql=strSql+",商品库存数量统计表.进货价," ;
  195. strSql=strSql+"商品库存数量统计表.库存 FROM 商品档案基本信息表 INNER JOIN 商品库存数量统计表 ON ";
  196. strSql=strSql+"商品档案基本信息表.条形码 = 商品库存数量统计表.条形码 where 商品档案基本信息表.条形码='";
  197. strSql=strSql+dlg.strKey+"'";
  198. adoMain.Open(strSql);
  199. adoMain.FillList(&m_listMain);
  200. strSql="insert into 非进货商品管理表(单编号,条形码,进货单价,数量) values('";
  201. strSql=strSql+m_str1+"','";
  202. strSql=strSql+dlg.strKey+"',";
  203. strSql=strSql+m_listMain.GetItemText(0,4)+",1)";
  204. adoMain.ExecuteSQL(strSql);
  205. m_listMain.SetItemText(0,6,"1");
  206. }
  207. adoMain.ExitConnect();
  208. }
  209. void CDlgRuKuKaiDan::OnButton1() 
  210. {
  211. // TODO: Add your control notification handler code here
  212. CDlgAll dlg;
  213. UpdateData(TRUE);
  214. dlg.strTitle="供应商基本信息表";
  215. dlg.strSql="select 编号,名称 from 供应商基本信息表";
  216. dlg.intOpen=2;
  217. if(dlg.DoModal()==IDOK)
  218. {
  219. m_str4=dlg.strKey;
  220. UpdateData(FALSE);
  221. }
  222. }
  223. void CDlgRuKuKaiDan::OnDel() 
  224. {
  225. // TODO: Add your control notification handler code here
  226. CADOConn adoMain,adoFile;
  227. CString strSql;
  228. POSITION pos;
  229. int i;
  230. UINT j=0;
  231. UpdateData(TRUE);
  232. pos=m_listMain.GetFirstSelectedItemPosition();
  233. i=m_listMain.GetNextSelectedItem(pos);
  234. if (i>=0)
  235. {
  236. if(MessageBox("确信删除这些信息吗?","提示",MB_YESNO|MB_ICONQUESTION)==IDNO) return;
  237. i=m_listMain.GetItemCount();
  238. while(j<m_listMain.GetSelectedCount()&&i>=0)
  239. {
  240. if(m_listMain.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
  241. {
  242. strSql="delete * from 非进货商品管理表 where 单编号='";
  243. strSql=strSql+m_str1+"' and 条形码='";
  244. strSql=strSql+m_listMain.GetItemText(i,0)+"'";
  245. adoMain.ExecuteSQL(strSql);
  246. m_listMain.DeleteItem(i);
  247. j=j+1;
  248. }
  249. i=i-1;
  250. }
  251. }
  252. adoMain.ExitConnect();
  253. m_flt6=0;
  254. m_flt7=0;
  255. UpdateData(FALSE);
  256. }
  257. void CDlgRuKuKaiDan::OnButton3() 
  258. {
  259. // TODO: Add your control notification handler code here
  260. UpdateData(TRUE);
  261. if(m_str1=="") 
  262. {
  263. MessageBox("请先开单,后加载商品!","提示",MB_OK|MB_ICONWARNING);
  264. return;
  265. }
  266. POSITION pos;
  267. CString str;
  268. int i;
  269. pos=m_listMain.GetFirstSelectedItemPosition();
  270. i=m_listMain.GetNextSelectedItem(pos);
  271. if (i>=0)
  272. {
  273. str.Format("%0.2f",m_flt6);
  274. m_listMain.SetItemText(i,4,str);
  275. str.Format("%0.2f",m_flt7);
  276. m_listMain.SetItemText(i,6,str);
  277. UpdateData(FALSE);
  278. }
  279. CString strSql;
  280. CADOConn adoMain;
  281. double dbl=0;
  282. strSql="update 非进货单统计表 set 开票日期='";
  283. strSql=strSql+m_str2+"',经办人='";
  284. strSql=strSql+m_str3+"',供应商编号='";
  285. strSql=strSql+m_str4+"',备注='";
  286. strSql=strSql+m_str5+"' where 单编号='";
  287. strSql=strSql+m_str1+"'";
  288. adoMain.ExecuteSQL(strSql);
  289. for(i=0;i<m_listMain.GetItemCount();i++)
  290. {
  291. strSql="update 非进货商品管理表 set 进货单价=";
  292. strSql=strSql+m_listMain.GetItemText(i,4)+",数量=";
  293. strSql=strSql+m_listMain.GetItemText(i,6)+" where 单编号='";
  294. strSql=strSql+m_str1+"' and 条形码='";
  295. strSql=strSql+m_listMain.GetItemText(i,0)+"'";
  296. adoMain.ExecuteSQL(strSql);
  297. strSql="update 商品库存数量统计表 set 进货价=";
  298. strSql=strSql+m_listMain.GetItemText(i,4)+",库存=";
  299. strSql=strSql+m_listMain.GetItemText(i,5)+" where 条形码='";
  300. strSql=strSql+m_listMain.GetItemText(i,0)+"'";
  301. adoMain.ExecuteSQL(strSql);
  302. }
  303. for(i=0;i<m_listMain.GetItemCount();i++)
  304. {
  305. dbl=dbl+atof(m_listMain.GetItemText(i,4))*atof(m_listMain.GetItemText(i,6));
  306. }
  307. str.Format("%0.2f",dbl);
  308. GetDlgItem(IDC_EDIT19)->SetWindowText(str);
  309. adoMain.ExitConnect();
  310. }
  311. void CDlgRuKuKaiDan::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
  312. {
  313. // TODO: Add your control notification handler code here
  314. UpdateData(TRUE);
  315. POSITION pos;
  316. int i;
  317. pos=m_listMain.GetFirstSelectedItemPosition();
  318. i=m_listMain.GetNextSelectedItem(pos);
  319. if (i>=0)
  320. {
  321. m_flt6=atof(m_listMain.GetItemText(i,4));
  322. m_flt7=atof(m_listMain.GetItemText(i,6));
  323. UpdateData(FALSE);
  324. }
  325. *pResult = 0;
  326. }
  327. void CDlgRuKuKaiDan::OnButton5() 
  328. {
  329. // TODO: Add your control notification handler code here
  330. int i;
  331. CString strSql,str;
  332. CADOConn adoMain;
  333. if(m_str1!="")
  334. {
  335. for(i=0;i<m_listMain.GetItemCount();i++)
  336. {
  337. strSql="update 商品库存数量统计表 set 进货价=";
  338. strSql=strSql+m_listMain.GetItemText(i,4)+",库存=";
  339. str.Format("%0.2f",atof(m_listMain.GetItemText(i,5))+atof(m_listMain.GetItemText(i,6)));
  340. strSql=strSql+str+" where 条形码='";
  341. strSql=strSql+m_listMain.GetItemText(i,0)+"'";
  342. adoMain.ExecuteSQL(strSql);
  343. }
  344. }
  345. m_str1="";
  346. m_str2="";
  347. m_str3="";
  348. m_str4="";
  349. m_str5="";
  350. m_flt6=0;
  351. m_flt7=0;
  352. UpdateData(FALSE);
  353. m_listMain.DeleteAllItems();
  354. }
  355. void CDlgRuKuKaiDan::OnButton8()
  356. {
  357. UpdateData(TRUE);
  358. CDlgPrint dlg;
  359. dlg.strTitle=m_str1;
  360. dlg.strSql="SELECT '' as 条形码,'' as 名称,'' as 库存上限,'' as 库存下限,'' as 进货价,'' as 库存,'' as 数量";
  361. dlg.strSql=dlg.strSql+" from 商品库存数量统计表";
  362. dlg.m_ListMain=&m_listMain;
  363. dlg.DoModal();
  364. }