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

221 lines
7.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. using ICSSoft.Frame.DataConnect;
  21. namespace ICSSoft.Frame.APP
  22. {
  23. public partial class FormICSTSBackflow : DevExpress.XtraEditors.XtraForm
  24. {
  25. String guid = "";
  26. //string moCode = "";
  27. //string itemCode = "";
  28. int flag;
  29. string resCode = "";
  30. #region 构造函数
  31. public FormICSTSBackflow()
  32. {
  33. InitializeComponent();
  34. flag = 0;
  35. }
  36. public FormICSTSBackflow(string tsid,String MOCODE, string ITEMCODE,string rescode)
  37. {
  38. InitializeComponent();
  39. txtMOCODE.Text = MOCODE;
  40. txtITEMCODE.Text = ITEMCODE;
  41. SearchROUTECODE(MOCODE, ITEMCODE);
  42. guid = tsid;
  43. resCode = rescode;
  44. flag = 1;
  45. }
  46. #endregion
  47. #region 查询途程代码
  48. private void SearchROUTECODE(String MOCODE, string ITEMCODE)
  49. {
  50. try
  51. {
  52. string sql = @"select ROUTECODE as ROUTECODE
  53. from ICSMO2ROUTE
  54. where MOCODE = '" + MOCODE + "'";
  55. sql = string.Format(sql);
  56. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  57. txtFRMROUTECODE.DisplayMember = "ROUTECODE"; //显示名称
  58. txtFRMROUTECODE.ValueMember = "ROUTECODE"; //value 值
  59. txtFRMROUTECODE.DataSource = data.DefaultView;
  60. // string sqlView = @"select ROUTECODE as ROUTECODEView
  61. // from ICSMO2ROUTE
  62. // where MOCODE = '" + MOCODE + "'";
  63. // sqlView = string.Format(sqlView);
  64. // DataTable dataView = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlView).Tables[0];
  65. // if (dataView.Rows.Count != 0)
  66. // {
  67. // DataRow dr = dataView.Rows[0];
  68. // txtFRMROUTECODE.SelectedValue = dr["ROUTECODEView"];
  69. // txtFRMROUTECODE.Text = dr["ROUTECODEView"].ToString();
  70. //}
  71. }
  72. catch (Exception ex)
  73. {
  74. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  75. }
  76. }
  77. #endregion
  78. #region 途程代码改变
  79. private void txtFRMROUTECODE_SelectedIndexChanged(object sender, EventArgs e)
  80. {
  81. try
  82. {
  83. string sql = @"select OPCODE as OPCODE
  84. from ICSROUTE2OP
  85. where ROUTECODE = '" + txtFRMROUTECODE.Text.Trim() + "'";
  86. sql = string.Format(sql);
  87. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  88. txtFRMOPCODE.DisplayMember = "OPCODE"; //显示名称
  89. txtFRMOPCODE.ValueMember = "OPCODE"; //value 值
  90. txtFRMOPCODE.DataSource = data.DefaultView;
  91. if (data.Rows.Count != 0)
  92. {
  93. DataRow dr = data.Rows[0];
  94. txtFRMOPCODE.SelectedValue = dr["OPCODE"];
  95. txtFRMOPCODE.Text = dr["OPCODE"].ToString();
  96. }
  97. }
  98. catch (Exception ex)
  99. {
  100. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  101. }
  102. }
  103. #endregion
  104. #region 关闭 退出
  105. private void btnClose_Click(object sender, EventArgs e)
  106. {
  107. this.Close();
  108. }
  109. #endregion
  110. #region 移动窗体
  111. private const int WM_NCHITTEST = 0x84;
  112. private const int HTCLIENT = 0x1;
  113. private const int HTCAPTION = 0x2;
  114. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  115. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  116. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  117. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  118. //重写窗体,使窗体可以不通过自带标题栏实现移动
  119. protected override void WndProc(ref System.Windows.Forms.Message m)
  120. {
  121. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  122. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  123. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  124. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  125. switch (m.Msg)
  126. {
  127. case WM_NCHITTEST:
  128. base.WndProc(ref m);
  129. if ((int)m.Result == HTCLIENT)
  130. m.Result = (IntPtr)HTCAPTION;
  131. return;
  132. }
  133. //拦截双击标题栏、移动窗体的系统消息
  134. if (m.Msg != 0xA3)
  135. {
  136. base.WndProc(ref m);
  137. }
  138. }
  139. #endregion
  140. #region 新增 修改
  141. private void save_Click(object sender, EventArgs e)
  142. {
  143. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  144. db.Connection.Open();
  145. db.Transaction = db.Connection.BeginTransaction();
  146. try
  147. {
  148. ICSTS ts = db.ICSTS.SingleOrDefault(a=> a.TSID == guid);
  149. #region 回流
  150. if (ts.TSSTATUS == TSStatus.TSStatus_TS)
  151. {
  152. ts.TSSTATUS = TSStatus.TSStatus_Reflow;
  153. ts.REFMOCODE = this.txtMOCODE.Text.Trim();
  154. ts.REFROUTECODE = this.txtFRMROUTECODE.Text.Trim();
  155. ts.REFOPCODE = this.txtFRMOPCODE.Text.Trim();
  156. ts.REFRESCODE = resCode;
  157. ts.TSUSER = AppConfig.UserCode;
  158. ts.TSTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  159. }
  160. db.SubmitChanges();
  161. db.Transaction.Commit();
  162. #endregion
  163. }
  164. catch (Exception ex)
  165. {
  166. db.Transaction.Rollback();
  167. throw ex;
  168. }
  169. this.Close();
  170. this.DialogResult = DialogResult.Yes;
  171. }
  172. #endregion
  173. #region 取消
  174. private void can_Click(object sender, EventArgs e)
  175. {
  176. this.Close();
  177. }
  178. #endregion
  179. }
  180. }