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

288 lines
9.8 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 FormICSSENDINVPLANAdd : DevExpress.XtraEditors.XtraForm
  23. {
  24. String guid = "";
  25. FormICSSENDINVPLANUIModel modelsend;
  26. int flag;
  27. #region 构造函数
  28. public FormICSSENDINVPLANAdd()
  29. {
  30. InitializeComponent();
  31. flag = 0;
  32. txtmuser.Text = AppConfig.UserName;
  33. txttime.Text = Convert.ToString(DateTime.Now);
  34. chargeFormState("Add");
  35. }
  36. public FormICSSENDINVPLANAdd(String sendid, string time)
  37. {
  38. InitializeComponent();
  39. guid = sendid;
  40. txtmuser.Text = AppConfig.UserName;
  41. txttime.Text = time;
  42. chargeFormState("Edit");
  43. SearchSendInfo(guid);
  44. flag = 1;
  45. }
  46. #endregion
  47. private void chargeFormState(string state)
  48. {
  49. switch (state)
  50. {
  51. case "Add":
  52. txtVersion.Properties.ReadOnly = false;
  53. break;
  54. case "Edit":
  55. txtVersion.Properties.ReadOnly = true;
  56. break;
  57. }
  58. }
  59. private void SearchSendInfo(string guid)
  60. {
  61. modelsend = ICSSENDINVPLANBLL.SearchSendInfoByID(guid, AppConfig.AppConnectString);
  62. txtVersion.Text = Convert.ToString(modelsend.PlanQty);
  63. txtPlanQty.Text = Convert.ToString(modelsend.PlanQty);
  64. txtMoCode.Tag = modelsend.mo as FormICSMOUIModel;
  65. txtMoCode.Text = modelsend.mo.MODESC;
  66. txtMcode.Tag = modelsend.item as FormICSINVENTORYUIModel;
  67. txtMcode.Text = modelsend.item.INVNAME;
  68. }
  69. #region 关闭 退出
  70. private void btnClose_Click(object sender, EventArgs e)
  71. {
  72. this.Close();
  73. }
  74. #endregion
  75. #region 移动窗体
  76. private const int WM_NCHITTEST = 0x84;
  77. private const int HTCLIENT = 0x1;
  78. private const int HTCAPTION = 0x2;
  79. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  80. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  81. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  82. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  83. //重写窗体,使窗体可以不通过自带标题栏实现移动
  84. protected override void WndProc(ref Message m)
  85. {
  86. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  87. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  88. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  89. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  90. switch (m.Msg)
  91. {
  92. case WM_NCHITTEST:
  93. base.WndProc(ref m);
  94. if ((int)m.Result == HTCLIENT)
  95. m.Result = (IntPtr)HTCAPTION;
  96. return;
  97. }
  98. //拦截双击标题栏、移动窗体的系统消息
  99. if (m.Msg != 0xA3)
  100. {
  101. base.WndProc(ref m);
  102. }
  103. }
  104. #endregion
  105. #region 新增 修改
  106. private void save_Click(object sender, EventArgs e)
  107. {
  108. try
  109. {
  110. #region 判断是否为空
  111. if (txtVersion.Text.Trim() == "")
  112. {
  113. ICSBaseSimpleCode.AppshowMessageBox("版本号不能为空");
  114. return;
  115. }
  116. if (txtMoCode.Text.Trim() == "")
  117. {
  118. ICSBaseSimpleCode.AppshowMessageBox("工单不能为空");
  119. return;
  120. }
  121. if (txtMcode.Text.Trim() == "")
  122. {
  123. ICSBaseSimpleCode.AppshowMessageBox("物料不能为空");
  124. return;
  125. }
  126. if (txtPlanQty.Text.Trim() == "")
  127. {
  128. ICSBaseSimpleCode.AppshowMessageBox("计划数量不能为空");
  129. return;
  130. }
  131. #endregion
  132. //版本是否已经存在
  133. if (flag == 0)
  134. {
  135. bool b = ICSSENDINVPLANBLL.IsIncluding(Convert.ToDecimal(txtVersion.Text.Trim()), AppConfig.WorkPointCode, AppConfig.AppConnectString);
  136. if (!b)
  137. {
  138. ICSBaseSimpleCode.AppshowMessageBox("版本已经存在");
  139. return;
  140. }
  141. }
  142. FormICSSENDINVPLANUIModel send = new FormICSSENDINVPLANUIModel();
  143. send.ID = guid;
  144. send.Version = Convert.ToDecimal(txtVersion.Text);
  145. send.PlanQty = Convert.ToDecimal(txtPlanQty.Text);
  146. send.mo = new FormICSMOUIModel();
  147. send.mo = txtMoCode.Tag as FormICSMOUIModel;
  148. send.item = new FormICSINVENTORYUIModel();
  149. send.item = txtMcode.Tag as FormICSINVENTORYUIModel;
  150. ICSSENDINVPLANBLL.Add(send, AppConfig.AppConnectString);
  151. if (flag == 0)
  152. {
  153. ICSBaseSimpleCode.AppshowMessageBox("增加成功");
  154. }
  155. else if (flag == 1)
  156. {
  157. ICSBaseSimpleCode.AppshowMessageBox("修改成功");
  158. }
  159. }
  160. catch (Exception ex)
  161. {
  162. MessageBox.Show(ex.Message);
  163. }
  164. this.Close();
  165. this.DialogResult = DialogResult.Yes;
  166. }
  167. #endregion
  168. #region 取消
  169. private void can_Click(object sender, EventArgs e)
  170. {
  171. this.Close();
  172. }
  173. #endregion
  174. #region 物料查询
  175. private void txtMcode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  176. {
  177. DataTable dt = ICSSENDINVPLANBLL.SearchItemInfoList(AppConfig.AppConnectString);
  178. FormDataRefer reForm = new FormDataRefer();
  179. reForm.FormTitle = "物料";
  180. reForm.DataSource = dt;
  181. reForm.MSelectFlag = false;
  182. reForm.RowIndexWidth = 35;
  183. reForm.HideCols.Add("guid");
  184. reForm.FormWidth = 500;
  185. reForm.FormHeight = 500;
  186. if (reForm.ShowDialog() == DialogResult.OK)
  187. {
  188. DataTable retData = reForm.ReturnData;
  189. foreach (DataRow dr in retData.Rows)
  190. {
  191. FormICSINVENTORYUIModel Item = new FormICSINVENTORYUIModel();
  192. Item.ID = dr["guid"].ToString();
  193. Item.INVCODE = dr["物料代码"].ToString();
  194. Item.INVNAME = dr["存货名称"].ToString();
  195. Item.INVDESC = dr["物料描述"].ToString();
  196. txtMcode.Text = Item.INVNAME;
  197. txtMcode.Tag = Item;
  198. break;
  199. }
  200. }
  201. }
  202. #endregion
  203. #region 工单查询
  204. private void txtMoCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  205. {
  206. DataTable dt = ICSSENDINVPLANBLL.SearchMOInfoList(AppConfig.AppConnectString);
  207. FormDataRefer reForm = new FormDataRefer();
  208. reForm.FormTitle = "工单";
  209. reForm.DataSource = dt;
  210. reForm.MSelectFlag = false;
  211. reForm.RowIndexWidth = 35;
  212. reForm.HideCols.Add("guid");
  213. reForm.FormWidth = 500;
  214. reForm.FormHeight = 500;
  215. if (reForm.ShowDialog() == DialogResult.OK)
  216. {
  217. DataTable retData = reForm.ReturnData;
  218. foreach (DataRow dr in retData.Rows)
  219. {
  220. FormICSMOUIModel mo = new FormICSMOUIModel();
  221. mo.ID = dr["guid"].ToString();
  222. mo.MOCODE = dr["生产订单号"].ToString();
  223. mo.MOMEMO = dr["工单备注"].ToString();
  224. mo.MODESC = dr["工单描述"].ToString();
  225. txtMoCode.Text = mo.MODESC;
  226. txtMoCode.Tag = mo;
  227. }
  228. }
  229. }
  230. #endregion
  231. private void txtMoCode_KeyDown(object sender, KeyEventArgs e)
  232. {
  233. this.txtMoCode.Text = "";
  234. this.txtMoCode.Tag = null;
  235. }
  236. private void txtMoCode_KeyPress(object sender, KeyPressEventArgs e)
  237. {
  238. if (e.KeyChar != (char)Keys.Back)
  239. {
  240. e.Handled = true;
  241. }
  242. }
  243. private void txtMcode_KeyDown(object sender, KeyEventArgs e)
  244. {
  245. this.txtMcode.Text = "";
  246. this.txtMcode.Tag = null;
  247. }
  248. private void txtMcode_KeyPress(object sender, KeyPressEventArgs e)
  249. {
  250. if (e.KeyChar != (char)Keys.Back)
  251. {
  252. e.Handled = true;
  253. }
  254. }
  255. }
  256. }