锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
6.3 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Base.Config.AppConfig;
  10. using System.Data.Linq;
  11. using System.Linq;
  12. using ICSSoft.Base.Language.Tool;
  13. using System.Reflection;
  14. using ICSSoft.Base.Config.DBHelper;
  15. using ICSSoft.Base.ReferForm;
  16. using ICSSoft.Base.Report;
  17. using ICSSoft.Base.ReferForm.AppReferForm;
  18. using ICSSoft.Frame.Data.Entity;
  19. using ICSSoft.Frame.Data.BLL;
  20. namespace ICSSoft.Frame.APP
  21. {
  22. public partial class FormICSPACKINGINPUTOUT : DevExpress.XtraEditors.XtraForm
  23. {
  24. public List<string> Trans = new List<string>();
  25. DataTable dt = new DataTable();
  26. #region 构造函数
  27. public FormICSPACKINGINPUTOUT()
  28. {
  29. InitializeComponent();
  30. this.cbTrans.Items.Clear();
  31. this.Trans.Clear();
  32. this.dgvTrans.DataSource = null;
  33. this.Search();
  34. }
  35. #endregion
  36. #region 关闭 退出
  37. private void btnClose_Click(object sender, EventArgs e)
  38. {
  39. this.Close();
  40. }
  41. #endregion
  42. #region 移动窗体
  43. private const int WM_NCHITTEST = 0x84;
  44. private const int HTCLIENT = 0x1;
  45. private const int HTCAPTION = 0x2;
  46. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  47. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  48. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  49. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  50. //重写窗体,使窗体可以不通过自带标题栏实现移动
  51. protected override void WndProc(ref Message m)
  52. {
  53. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  54. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  55. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  56. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  57. switch (m.Msg)
  58. {
  59. case WM_NCHITTEST:
  60. base.WndProc(ref m);
  61. if ((int)m.Result == HTCLIENT)
  62. m.Result = (IntPtr)HTCAPTION;
  63. return;
  64. }
  65. //拦截双击标题栏、移动窗体的系统消息
  66. if (m.Msg != 0xA3)
  67. {
  68. base.WndProc(ref m);
  69. }
  70. }
  71. #endregion
  72. #region 反审核
  73. private void save_Click(object sender, EventArgs e)
  74. {
  75. if (this.Trans.Count > 0)
  76. {
  77. for (int i = 0; i < this.Trans.Count; i++)
  78. {
  79. try
  80. {
  81. string sql = @"update ICSPACKINGINPUT set Status = '反审核',Approver='{0}',Approvtime='{1}' where 1=1 and TransferNO = '" + this.Trans[i] + "'";
  82. sql = string.Format(sql, AppConfig.UserName, AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString("yyyy-MM-dd HH:mm:ss"));
  83. DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, sql);
  84. }
  85. catch (Exception ex)
  86. {
  87. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  88. return;
  89. }
  90. this.Close();
  91. ICSBaseSimpleCode.AppshowMessageBox("选择的调拨单已成功反审核");
  92. }
  93. }
  94. else
  95. {
  96. ICSBaseSimpleCode.AppshowMessageBox("需要反审核的调拨单号不能为空");
  97. return;
  98. }
  99. }
  100. #endregion
  101. #region 取消
  102. private void can_Click(object sender, EventArgs e)
  103. {
  104. this.Close();
  105. }
  106. #endregion
  107. #region 添加单据
  108. private void cbTrans_SelectedIndexChanged(object sender, EventArgs e)
  109. {
  110. #region 判断是否为空
  111. if (this.cbTrans.Text.Trim() == "")
  112. {
  113. ICSBaseSimpleCode.AppshowMessageBox("调拨单号不能为空");
  114. return;
  115. }
  116. #endregion
  117. if (!this.Trans.Contains(this.cbTrans.Text.Trim()))
  118. {
  119. this.Trans.Add(this.cbTrans.Text.Trim());
  120. }
  121. string sql = @"SELECT C.TransferNO AS 调拨单, C.TransferLineNo AS 调拨单行, C.MOBITEMCODE AS 存货编码, C.CINVNAME AS 存货名称, C.INVUOM AS 单位, C.MOBITEMQTY AS 数量
  122. FROM ICSPACKINGINPUT C WHERE C.TransferNO = '{0}'";
  123. sql = string.Format(sql, this.cbTrans.Text.Trim());
  124. dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  125. foreach (DataRow dr in dt.Rows)
  126. {
  127. string[] values = { dr["调拨单"].ToString(), dr["调拨单行"].ToString(), dr["存货编码"].ToString(), dr["存货名称"].ToString(), dr["单位"].ToString(), dr["数量"].ToString() };
  128. this.dgvTrans.Rows.Add(values);
  129. }
  130. }
  131. #endregion
  132. #region 查询未审核的调拨单号
  133. public void Search()
  134. {
  135. string sql = @"SELECT * FROM ICSPACKINGINPUT A
  136. WHERE 1=1 AND A.TransferNO IS NOT NULL AND A.Status = '' AND ISNULL(A.StatusX, 0) <> '' ORDER BY A.MTIME DESC";
  137. sql = string.Format(sql);
  138. dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  139. if (dt.Rows.Count <= 0)
  140. {
  141. ICSBaseSimpleCode.AppshowMessageBox("不存在未调拨的已审核的调拨单");
  142. }
  143. else
  144. {
  145. foreach (DataRow dr in dt.Rows)
  146. {
  147. this.cbTrans.Items.Add(dr["TransferNO"].ToString());
  148. }
  149. }
  150. }
  151. #endregion
  152. }
  153. }