F_PM_3002.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:F_PM_3002.cs
  5. * 2.功能描述:产品挂起、撤销操作页面
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 付斌 2018/08/07 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Data;
  12. using System.Windows.Forms;
  13. using Dongke.IBOSS.PRD.Basics.BaseControls;
  14. using Dongke.IBOSS.PRD.Basics.BaseResources;
  15. using Dongke.IBOSS.PRD.Client.CommonModule;
  16. using Dongke.IBOSS.PRD.Client.Controls;
  17. using Dongke.IBOSS.PRD.WCF.DataModels;
  18. using Dongke.IBOSS.PRD.WCF.Proxys;
  19. namespace Dongke.IBOSS.PRD.Client.PMModule
  20. {
  21. public partial class F_PM_3002 : DKFormBase
  22. {
  23. #region 成员变量
  24. private string _formStatus; // 窗体状态
  25. private DataTable _dataSourceTable; // 数据源
  26. #endregion
  27. #region 构造函数
  28. /// <summary>
  29. /// 废弃一览构造
  30. /// </summary>
  31. public F_PM_3002(string formStatus)
  32. {
  33. InitializeComponent();
  34. _formStatus = formStatus;
  35. // 控件赋值
  36. this.Text = formStatus;
  37. this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
  38. this.btnSave.Text = ButtonText.BTN_SAVE;
  39. this.btnCancel.Text = ButtonText.BTN_CANCEL;
  40. }
  41. #endregion
  42. #region 事件
  43. /// <summary>
  44. /// 窗体加载
  45. /// </summary>
  46. /// <param name="sender"></param>
  47. /// <param name="e"></param>
  48. private void F_PM_3002_Load(object sender, EventArgs e)
  49. {
  50. try
  51. {
  52. // 如果是撤销,隐藏挂起工序
  53. if ("撤销".Equals(_formStatus))
  54. {
  55. lblProcedure.Visible = false;
  56. ccbProcedure.Visible = false;
  57. lblRemarks.Visible = false;
  58. txtRemarks.Visible = false;
  59. dgvScrapProduct.Columns["suspendprocedurename"].Visible = true;
  60. dgvScrapProduct.Columns["CreateUserCode"].Visible = true;
  61. dgvScrapProduct.Columns["Createtime"].Visible = true;
  62. dgvScrapProduct.Columns["remarks"].Visible = true;
  63. this.gbSelect.Size = new System.Drawing.Size(1124, 48);
  64. this.dgvScrapProduct.Size = new System.Drawing.Size(1124, 510);
  65. this.dgvScrapProduct.Location = new System.Drawing.Point(0, 92);
  66. }
  67. // 否则加载挂起工序数据源
  68. else
  69. {
  70. // 异步处理,验证挂起条码
  71. ClientRequestEntity cre = new ClientRequestEntity();
  72. cre.NameSpace = "F_PM_3002";
  73. cre.Name = "GetSuspendProcedure";
  74. // 调用服务器端获取数据集
  75. ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() =>
  76. {
  77. return PMModuleProxyNew.Service.HandleRequest(cre);
  78. }));
  79. if (sre.Data != null && sre.Data.Tables[0].Rows.Count > 0)
  80. {
  81. this.ccbProcedure.DisplayMember = "ProcedureName";
  82. this.ccbProcedure.ValueMember = "ProcedureID";
  83. this.ccbProcedure.DataSource = sre.Data.Tables[0];
  84. }
  85. }
  86. // 设置表单的只读
  87. foreach (DataGridViewColumn column in this.dgvScrapProduct.Columns)
  88. {
  89. if (!"Sel".Equals(column.Name))
  90. {
  91. column.ReadOnly = true;
  92. }
  93. }
  94. this.dgvScrapProduct.AutoGenerateColumns = false;
  95. }
  96. catch (Exception ex)
  97. {
  98. // 对异常进行共通处理
  99. ExceptionManager.HandleEventException(this.ToString(),
  100. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  101. }
  102. }
  103. /// <summary>
  104. /// 条码按键事件
  105. /// </summary>
  106. /// <param name="sender"></param>
  107. /// <param name="e"></param>
  108. private void txtBarCode_KeyPress(object sender, KeyPressEventArgs e)
  109. {
  110. try
  111. {
  112. if (this.txtBarCode.ReadOnly)
  113. {
  114. return;
  115. }
  116. if ((int)e.KeyChar == 13) // 按了回车键
  117. {
  118. //this.btnSave.Visible = false;
  119. string barCode = this.txtBarCode.Text.Trim();
  120. if (string.IsNullOrEmpty(barCode))
  121. {
  122. MessageBox.Show("产品条码不能为空", this.Text,
  123. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  124. this.txtBarCode.Focus();
  125. return;
  126. }
  127. // 判断产品编码是否已存在
  128. if (_dataSourceTable != null)
  129. {
  130. foreach (DataRow row in _dataSourceTable.Rows)
  131. {
  132. if (barCode.Equals(row["BarCode"] + ""))
  133. {
  134. return;
  135. }
  136. }
  137. }
  138. // 异步处理,验证挂起条码
  139. ClientRequestEntity cre = new ClientRequestEntity();
  140. cre.NameSpace = "F_PM_3002";
  141. cre.Name = "挂起".Equals(_formStatus) ? "CheckSuspendBarcode" : "GetSuspendProduct";
  142. cre.Properties["Barcode"] = barCode;
  143. // 调用服务器端获取数据集
  144. ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() =>
  145. {
  146. return PMModuleProxyNew.Service.HandleRequest(cre);
  147. }));
  148. if (sre.Data != null && sre.Data.Tables[0].Rows.Count > 0)
  149. {
  150. //if (!sre.Data.Tables[0].Columns.Contains("Sel"))
  151. //{
  152. // sre.Data.Tables[0].Columns.Add("Sel", typeof(int));
  153. //}
  154. if(_dataSourceTable == null)
  155. {
  156. _dataSourceTable = sre.Data.Tables[0];
  157. }
  158. else
  159. {
  160. _dataSourceTable.Merge(sre.Data.Tables[0]);
  161. }
  162. this.dgvScrapProduct.DataSource = _dataSourceTable;
  163. this.btnSave.Visible = true;
  164. }
  165. else
  166. {
  167. MessageBox.Show(sre.Message, this.Text,
  168. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  169. this.txtBarCode.SelectAll();
  170. return;
  171. }
  172. }
  173. }
  174. catch (Exception ex)
  175. {
  176. // 对异常进行共通处理
  177. ExceptionManager.HandleEventException(this.ToString(),
  178. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  179. }
  180. }
  181. /// <summary>
  182. /// 保存按钮点击事件
  183. /// </summary>
  184. /// <param name="sender"></param>
  185. /// <param name="e"></param>
  186. private void btnSave_Click(object sender, EventArgs e)
  187. {
  188. try
  189. {
  190. if (_dataSourceTable == null)
  191. {
  192. return;
  193. }
  194. _dataSourceTable.AcceptChanges();
  195. DataTable selectTable = _dataSourceTable.Copy();
  196. selectTable.DefaultView.RowFilter = "Sel = 1";
  197. selectTable = selectTable.DefaultView.ToTable();
  198. if (selectTable.Rows.Count == 0)
  199. {
  200. MessageBox.Show("请选择" + _formStatus + "的对象",
  201. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  202. return;
  203. }
  204. if (ccbProcedure.Visible)
  205. {
  206. if (ccbProcedure.CheckedValues.Length == 0)
  207. {
  208. MessageBox.Show("请选择挂起工序",
  209. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  210. this.ccbProcedure.Focus();
  211. return;
  212. }
  213. }
  214. ClientRequestEntity cre = new ClientRequestEntity();
  215. cre.NameSpace = "F_PM_3002";
  216. cre.Name = "挂起".Equals(_formStatus) ? "SaveSuspendProduct" : "DeleteSuspendProduct";
  217. cre.Properties["Remarks"] = this.txtRemarks.Text.Trim();
  218. if (ccbProcedure.CheckedValues.Length > 0)
  219. {
  220. object[] procedureID = ccbProcedure.CheckedValues;
  221. string procedureIDs = string.Empty;
  222. for (int i = 0; i < procedureID.Length; i++)
  223. {
  224. procedureIDs += procedureID[i] + ",";
  225. }
  226. procedureIDs = procedureIDs.Substring(0, procedureIDs.Length - 1);
  227. cre.Properties["ProcedureIDS"] = procedureIDs;
  228. }
  229. DataSet newData = new DataSet();
  230. newData.Tables.Add(selectTable);
  231. cre.Data = newData;
  232. // 异步处理
  233. ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() =>
  234. {
  235. return PMModuleProxyNew.Service.HandleRequest(cre);
  236. }));
  237. if (Convert.ToInt32(sre.Result) < 0)
  238. {
  239. MessageBox.Show(sre.Message,
  240. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  241. return;
  242. }
  243. else
  244. {
  245. // 提示信息
  246. MessageBox.Show(string.Format(Messages.MSG_CMN_I001, this.Text, "保存"),
  247. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
  248. this.btnSave.Visible = false;
  249. this.Close();
  250. }
  251. }
  252. catch (Exception ex)
  253. {
  254. // 对异常进行共通处理
  255. ExceptionManager.HandleEventException(this.ToString(),
  256. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  257. }
  258. }
  259. /// <summary>
  260. /// 自动列宽
  261. /// </summary>
  262. /// <param name="sender"></param>
  263. /// <param name="e"></param>
  264. private void tsbtnAdaptive_Click(object sender, EventArgs e)
  265. {
  266. this.dgvScrapProduct.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
  267. }
  268. /// <summary>
  269. /// 关闭按钮点击事件
  270. /// </summary>
  271. /// <param name="sender"></param>
  272. /// <param name="e"></param>
  273. private void btnCancel_Click(object sender, EventArgs e)
  274. {
  275. this.Close();
  276. }
  277. #endregion
  278. /// <summary>
  279. /// 全选事件
  280. /// </summary>
  281. /// <param name="sender"></param>
  282. /// <param name="e"></param>
  283. private void cbCheckAll_CheckedChanged(object sender, EventArgs e)
  284. {
  285. int flag = this.cbCheckAll.Checked ? 1 : 0;
  286. foreach (DataRow row in _dataSourceTable.Rows)
  287. {
  288. row["Sel"] = flag;
  289. row.EndEdit();
  290. }
  291. }
  292. }
  293. }