锐腾搅拌上料功能
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.

244 lines
9.0 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 FormICSItemBackAdd : DevExpress.XtraEditors.XtraForm
  23. {
  24. String guid = "";
  25. ICSItemBack entity = new ICSItemBack();
  26. #region 构造函数
  27. public FormICSItemBackAdd()
  28. {
  29. InitializeComponent();
  30. }
  31. public FormICSItemBackAdd(String id)
  32. {
  33. InitializeComponent();
  34. guid = id;
  35. }
  36. #endregion
  37. #region 关闭 退出
  38. private void btnClose_Click(object sender, EventArgs e)
  39. {
  40. this.Close();
  41. }
  42. #endregion
  43. #region 移动窗体
  44. private const int WM_NCHITTEST = 0x84;
  45. private const int HTCLIENT = 0x1;
  46. private const int HTCAPTION = 0x2;
  47. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  48. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  49. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  50. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  51. //重写窗体,使窗体可以不通过自带标题栏实现移动
  52. protected override void WndProc(ref Message m)
  53. {
  54. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  55. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  56. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  57. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  58. switch (m.Msg)
  59. {
  60. case WM_NCHITTEST:
  61. base.WndProc(ref m);
  62. if ((int)m.Result == HTCLIENT)
  63. m.Result = (IntPtr)HTCAPTION;
  64. return;
  65. }
  66. //拦截双击标题栏、移动窗体的系统消息
  67. if (m.Msg != 0xA3)
  68. {
  69. base.WndProc(ref m);
  70. }
  71. }
  72. #endregion
  73. #region 新增 修改
  74. private void save_Click(object sender, EventArgs e)
  75. {
  76. if (txtCode.Text.Trim() == "")
  77. {
  78. ICSBaseSimpleCode.AppshowMessageBox("工单号不能为空!");
  79. return;
  80. }
  81. if (cmbSEQ.Text.Trim() == "")
  82. {
  83. ICSBaseSimpleCode.AppshowMessageBox("生产订单行号不能为空!");
  84. return;
  85. }
  86. if (cmbInvCode.Text.Trim() == "")
  87. {
  88. ICSBaseSimpleCode.AppshowMessageBox("物料代码不能为空!");
  89. return;
  90. }
  91. if (txtQTY.Text.Trim() == "")
  92. {
  93. ICSBaseSimpleCode.AppshowMessageBox("数量不能为空!");
  94. return;
  95. }
  96. entity.MOCODE = txtCode.Text.Trim();
  97. entity.MOSEQ = cmbSEQ.Text.Trim();
  98. entity.INVCode = cmbInvCode.Text.Trim();
  99. entity.QTY =Convert.ToDecimal(txtQTY.Text.Trim());
  100. entity.STATUS = "初始";
  101. entity.MUSER = AppConfig.UserId;
  102. entity.MUSERName = AppConfig.UserName;
  103. entity.MTIME = Convert.ToDateTime(AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString());
  104. entity.WorkPoint = AppConfig.WorkPointCode;
  105. entity.EATTRIBUTE1 = null;
  106. try
  107. {
  108. ICSItemBackBLL.AddandEdit(entity, AppConfig.AppConnectString);
  109. this.Close();
  110. ICSBaseSimpleCode.AppshowMessageBox("操作成功");
  111. }
  112. catch (Exception ex)
  113. {
  114. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  115. }
  116. }
  117. #endregion
  118. #region 取消
  119. private void can_Click(object sender, EventArgs e)
  120. {
  121. this.Close();
  122. }
  123. #endregion
  124. #region 页面加载
  125. private void FormICSItemBackAdd_Load(object sender, EventArgs e)
  126. {
  127. init();
  128. if (guid != "")
  129. {
  130. lblTitle.Text = "退料信息修改";
  131. txtCode.Properties.ReadOnly = true;
  132. cmbSEQ.Properties.ReadOnly = true;
  133. cmbInvCode.Properties.ReadOnly = true;
  134. entity = ICSItemBackBLL.select(guid, AppConfig.AppConnectString);
  135. txtCode.Text = entity.MOCODE;
  136. cmbSEQ.Text = entity.MOSEQ;
  137. cmbInvCode.Text = entity.INVCode;
  138. txtQTY.Text =entity.QTY.ToString();
  139. txtMUSERName.Text = entity.MUSERName;
  140. txtMTIME.Text = Convert.ToDateTime(entity.MTIME).ToString();
  141. }
  142. else
  143. {
  144. lblTitle.Text = "退料信息新增";
  145. txtMUSERName.Text = AppConfig.UserName;
  146. txtMTIME.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  147. }
  148. }
  149. #endregion
  150. #region 初始化查询条件
  151. private void init()
  152. {
  153. #region 单据号
  154. string sql = "SELECT DISTINCT MOCODE AS [工单号] FROM ICSMO WHERE WorkPoint='{0}' ORDER BY MOCODE";
  155. sql = string.Format(sql, AppConfig.WorkPointCode);
  156. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  157. txtCode.Properties.ValueMember = "生产订单号";
  158. txtCode.Properties.DisplayMember = "生产订单号";
  159. txtCode.Properties.DataSource = dt;
  160. txtCode.Properties.NullText = "";//空时的值
  161. txtCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  162. txtCode.Properties.ValidateOnEnterKey = true;//回车确认
  163. txtCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  164. txtCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  165. //自适应宽度
  166. txtCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  167. #endregion
  168. }
  169. #endregion
  170. private void txtCode_EditValueChanged(object sender, EventArgs e)
  171. {
  172. try
  173. {
  174. cmbSEQ.Properties.Items.Clear();
  175. cmbSEQ.Text = "";
  176. string Code = txtCode.EditValue.ToString();
  177. string sql = "SELECT DISTINCT MOSEQ FROM ICSMO WHERE WorkPoint='{0}' AND MOCODE='{1}' ORDER BY MOSEQ";
  178. sql = string.Format(sql, AppConfig.WorkPointCode, Code);
  179. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  180. //cmbSEQ.Properties.Items.Add("");
  181. cmbSEQ.Properties.Items.AddRange(dt.AsEnumerable().Select(a => a["MOSEQ"]).ToList());
  182. if (cmbSEQ.Properties.Items.Count > 0)
  183. cmbSEQ.SelectedIndex = 0;
  184. }
  185. catch (Exception ex)
  186. {
  187. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  188. }
  189. }
  190. private void cmbSEQ_SelectedIndexChanged(object sender, EventArgs e)
  191. {
  192. try
  193. {
  194. if (cmbSEQ.Properties.Items.Count <= 0)
  195. {
  196. return;
  197. }
  198. cmbInvCode.Properties.Items.Clear();
  199. cmbInvCode.Text = "";
  200. string Code = txtCode.EditValue.ToString();
  201. string sql = "SELECT DISTINCT MOBITEMCODE FROM ICSMOBOM WHERE WorkPoint='{0}' AND MOCODE='{1}' AND SEQ='{2}' ORDER BY MOBITEMCODE";
  202. sql = string.Format(sql, AppConfig.WorkPointCode, Code,cmbSEQ.Text.Trim());
  203. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  204. cmbInvCode.Properties.Items.AddRange(dt.AsEnumerable().Select(a => a["MOBITEMCODE"]).ToList());
  205. if (cmbInvCode.Properties.Items.Count > 0)
  206. cmbInvCode.SelectedIndex = 0;
  207. }
  208. catch (Exception ex)
  209. {
  210. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  211. }
  212. }
  213. }
  214. }