F_MST_0702.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:F_MST_0702.cs
  5. * 2.功能描述:新建/编辑报表工序
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 宋扬 2014/12/25 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. using Dongke.IBOSS.PRD.WCF.Proxys.SystemModuleService;
  20. namespace Dongke.IBOSS.PRD.Client.SystemModule
  21. {
  22. /// <summary>
  23. /// 新建/编辑报表工序
  24. /// </summary>
  25. public partial class F_MST_0702 : FormBase
  26. {
  27. #region 成员变量
  28. // 窗体模式ID
  29. private Constant.FormMode _formType;
  30. // 操作实体ID
  31. private int? _entityId;
  32. // 操作实体信
  33. private RptProcedureEntity _rptProcedureEntity = new RptProcedureEntity();
  34. // 工序数据源
  35. private DataTable _dtProcedure = new DataTable();
  36. // 工序
  37. private DataSet _dsProcedure = new DataSet();
  38. //记录数据来源Code
  39. private string _rptProcedureCode = string.Empty;
  40. #endregion
  41. #region 构造函数
  42. /// <summary>
  43. /// 窗体构造
  44. /// </summary>
  45. /// <param name="formType">窗体打开模式</param>
  46. /// <param name="entityId">操作实体ID</param>
  47. public F_MST_0702(Constant.FormMode formType, int entityId)
  48. {
  49. InitializeComponent();
  50. this._formType = formType;
  51. this._entityId = entityId;
  52. // 窗体显示的Title
  53. if (this._formType == Constant.FormMode.Add)
  54. {
  55. this.Text = FormTitles.F_MST_0702_ADD;
  56. }
  57. else if (this._formType == Constant.FormMode.Edit)
  58. {
  59. this.Text = FormTitles.F_MST_0702_EDIT;
  60. }
  61. this.btnSave.Text = ButtonText.BTN_SAVE;
  62. this.btnCancel.Text = ButtonText.BTN_CLOSE;
  63. }
  64. #endregion
  65. #region 事件处理
  66. /// <summary>
  67. /// 窗体加载
  68. /// </summary>
  69. /// <param name="sender"></param>
  70. /// <param name="e"></param>
  71. private void F_MST_0702_Load(object sender, EventArgs e)
  72. {
  73. try
  74. {
  75. BindSelectData();
  76. //如果是修改,要绑定选中的信息
  77. if (this._formType == Constant.FormMode.Edit)
  78. {
  79. BindData();
  80. }
  81. //如果是新建,选项默认值设定
  82. else if (this._formType == Constant.FormMode.Add)
  83. {
  84. BindPage();
  85. }
  86. }
  87. catch (Exception ex)
  88. {
  89. // 对异常进行共通处理
  90. ExceptionManager.HandleEventException(this.ToString(),
  91. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  92. }
  93. }
  94. /// <summary>
  95. /// 保持操作按钮事件
  96. /// </summary>
  97. /// <param name="sender"></param>
  98. /// <param name="e"></param>
  99. private void btnSave_Click(object sender, EventArgs e)
  100. {
  101. try
  102. {
  103. if (this.BindEntity())
  104. {
  105. if (EntityToServer() > Constant.INT_IS_ZERO)
  106. {
  107. MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "报表数据来源", "保存"),
  108. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
  109. this.DialogResult = DialogResult.OK;
  110. }
  111. else
  112. {
  113. MessageBox.Show(string.Format(Messages.MSG_CMN_W001, "报表数据来源", "保存"),
  114. this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  115. }
  116. }
  117. }
  118. catch (Exception ex)
  119. {
  120. throw ex;
  121. }
  122. }
  123. /// <summary>
  124. /// 窗体关闭
  125. /// </summary>
  126. /// <param name="sender"></param>
  127. /// <param name="e"></param>
  128. private void btnCancel_Click(object sender, EventArgs e)
  129. {
  130. this.Close();
  131. }
  132. /// <summary>
  133. /// 窗体释放
  134. /// </summary>
  135. /// <param name="sender"></param>
  136. /// <param name="e"></param>
  137. private void F_MST_0702_FormClosed(object sender, FormClosedEventArgs e)
  138. {
  139. this.Dispose();
  140. }
  141. /// <summary>
  142. /// 数据来源工序变更
  143. /// </summary>
  144. /// <param name="sender"></param>
  145. /// <param name="e"></param>
  146. private void dgvRptSProcedure_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  147. {
  148. try
  149. {
  150. if (this.dgvRptSProcedure.Rows.Count <= Constant.INT_IS_ONE)
  151. {
  152. return;
  153. }
  154. if (string.IsNullOrEmpty(this.dropRptProcedureType.Text))
  155. {
  156. return;
  157. }
  158. DataGridViewRow rowItem = this.dgvRptSProcedure.Rows[e.RowIndex];
  159. DataGridViewColumn columnItem = this.dgvRptSProcedure.Columns[e.ColumnIndex];
  160. // 用编号获取产品信息
  161. if ("ProcedureCode".Equals(columnItem.Name))
  162. {
  163. int flag = Constant.INT_IS_ZERO;
  164. if (this.dropRptProcedureType.SelectedValue.ToString().Equals("A0001"))
  165. {
  166. flag = Constant.INT_IS_ZERO;
  167. }
  168. else
  169. {
  170. flag = Constant.INT_IS_ONE;
  171. }
  172. DataTable dtDataSource =
  173. FormUtility.BindtProcedureRowDataSource(this.dgvRptSProcedure,
  174. e.RowIndex, columnItem.Name, string.Empty, flag, _dtProcedure);
  175. if (dtDataSource != null)
  176. {
  177. this.dgvRptSProcedure.DataSource = dtDataSource;
  178. }
  179. // 设置可输入单元格的颜色
  180. this.dgvRptSProcedure.IsSetInputColumnsColor = true;
  181. }
  182. }
  183. catch (Exception ex)
  184. {
  185. // 对异常进行共通处理
  186. ExceptionManager.HandleEventException(this.ToString(),
  187. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  188. }
  189. }
  190. /// <summary>
  191. /// 数据统计工序变更
  192. /// </summary>
  193. /// <param name="sender"></param>
  194. /// <param name="e"></param>
  195. private void dgvRptTProcedure_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  196. {
  197. try
  198. {
  199. if (this.dgvRptTProcedure.Rows.Count <= 1)
  200. {
  201. return;
  202. }
  203. DataGridViewRow rowItem = this.dgvRptTProcedure.Rows[e.RowIndex];
  204. DataGridViewColumn columnItem = this.dgvRptTProcedure.Columns[e.ColumnIndex];
  205. // 用编号获取产品信息
  206. if ("colProcedureCode".Equals(columnItem.Name))
  207. {
  208. DataTable dtDataSource =
  209. FormUtility.BindtProcedureRowDataSource(this.dgvRptTProcedure,
  210. e.RowIndex, columnItem.Name, string.Empty, 1, _dtProcedure);
  211. if (dtDataSource != null)
  212. {
  213. this.dgvRptTProcedure.DataSource = dtDataSource;
  214. }
  215. // 设置可输入单元格的颜色
  216. this.dgvRptTProcedure.IsSetInputColumnsColor = true;
  217. }
  218. }
  219. catch (Exception ex)
  220. {
  221. // 对异常进行共通处理
  222. ExceptionManager.HandleEventException(this.ToString(),
  223. System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
  224. }
  225. }
  226. #endregion
  227. #region 私有方法
  228. /// <summary>
  229. /// 为实体绑定页面属性
  230. /// </summary>
  231. private bool BindEntity()
  232. {
  233. if (string.IsNullOrEmpty(this.dropRptProcedureType.Text)
  234. || string.IsNullOrEmpty(this.txtRptProcedureName.Text.Trim())
  235. || string.IsNullOrEmpty(this.txtRptProcedureCode.Text.Trim()))
  236. {
  237. return false;
  238. }
  239. if (this._formType == Constant.FormMode.Edit)
  240. {
  241. this._rptProcedureEntity.RptProcedureCode = this.txtRptProcedureCode.Text.Trim();
  242. if (!this._rptProcedureCode.Equals(this.txtRptProcedureCode.Text.Trim()))
  243. {
  244. if (!isCodeBool(_rptProcedureEntity))
  245. {
  246. return false;
  247. }
  248. }
  249. }
  250. else if (this._formType == Constant.FormMode.Add)
  251. {
  252. this._rptProcedureEntity.RptProcedureCode = this.txtRptProcedureCode.Text.Trim();
  253. if (!isCodeBool(_rptProcedureEntity))
  254. {
  255. return false;
  256. }
  257. }
  258. this._rptProcedureEntity.DisplayNo = this.txtDisplayNo.Text.Trim() == "" ? 0 : Convert.ToInt32(this.txtDisplayNo.Text.Trim());
  259. this._rptProcedureEntity.RptProcedureName = this.txtRptProcedureName.Text.Trim();
  260. this._rptProcedureEntity.RptProcedureTpye = this.dropRptProcedureType.SelectedValue.ToString();
  261. return true;
  262. }
  263. /// <summary>
  264. /// 绑定需要操作的实体信息
  265. /// </summary>
  266. private void BindPage()
  267. {
  268. try
  269. {
  270. DataTable dt_DataSource = new DataTable();
  271. dt_DataSource.Columns.Add("ProcedureID", typeof(int));
  272. dt_DataSource.Columns.Add("ProcedureCode", typeof(string));
  273. dt_DataSource.Columns.Add("ProcedureName", typeof(string));
  274. this.dgvRptSProcedure.DataSource = dt_DataSource;
  275. this.dgvRptTProcedure.DataSource = dt_DataSource.Copy();
  276. }
  277. catch (Exception ex)
  278. {
  279. throw ex;
  280. }
  281. }
  282. /// <summary>
  283. /// 绑定数据来源类型
  284. /// </summary>
  285. private void BindSelectData()
  286. {
  287. DataTable newdtb = new DataTable();
  288. newdtb.Columns.Add("RptProcedureTypeId", typeof(string));
  289. newdtb.Columns.Add("RptProcedureType", typeof(string));
  290. DataRow newRow = newdtb.NewRow();
  291. newRow["RptProcedureTypeId"] = "A0001";
  292. newRow["RptProcedureType"] = "出窑统计";
  293. newdtb.Rows.Add(newRow);
  294. this.dropRptProcedureType.DisplayMember = "RptProcedureType";
  295. this.dropRptProcedureType.ValueMember = "RptProcedureTypeId";
  296. this.dropRptProcedureType.DataSource = newdtb;
  297. //获取工序信息
  298. SearchProductionLineEntity line = new SearchProductionLineEntity();
  299. this._dtProcedure = SystemModuleProxy.Service.GetProdureList(line).Tables[0];
  300. //设置表格不自动创建列
  301. this.dgvRptSProcedure.AutoGenerateColumns = false;
  302. this.dgvRptTProcedure.AutoGenerateColumns = false;
  303. }
  304. /// <summary>
  305. /// 绑定数据源
  306. /// </summary>
  307. private void BindData()
  308. {
  309. try
  310. {
  311. if (this._entityId != Constant.INT_IS_ZERO && this._entityId != null)
  312. {
  313. this._rptProcedureEntity = new RptProcedureEntity();
  314. this._rptProcedureEntity.RptProcedureID = this._entityId;
  315. DataSet dsSearchRptProcedure = (DataSet)DoAsync(() =>
  316. {
  317. return SystemModuleProxy.Service.GetRptProcedureModule(_rptProcedureEntity);
  318. });
  319. if (dsSearchRptProcedure != null)
  320. {
  321. if (dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows.Count > Constant.INT_IS_ZERO)
  322. {
  323. this.txtRptProcedureCode.Text = dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows[0]["Rptprocedurecode"].ToString();
  324. this._rptProcedureCode = this.txtRptProcedureCode.Text.Trim();
  325. this.txtRptProcedureName.Text = dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows[0]["RptprocedureName"].ToString();
  326. this.dropRptProcedureType.SelectedValue = dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows[0]["RptprocedureType"].ToString();
  327. this._rptProcedureEntity.OPTimeStamp = Convert.ToDateTime(dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows[0]["OPTimeStamp"]);
  328. this.txtDisplayNo.Text = dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows[0]["displayno"].ToString();
  329. }
  330. this._dsProcedure = (DataSet)DoAsync(() =>
  331. {
  332. return SystemModuleProxy.Service.GetRptProcedureIdByProcedureInfo(Convert.ToInt32(this._entityId));
  333. });
  334. if (this._dsProcedure != null)
  335. {
  336. if (this._dsProcedure.Tables[Constant.INT_IS_ZERO].Rows.Count > Constant.INT_IS_ZERO)
  337. {
  338. this.dgvRptSProcedure.DataSource = this._dsProcedure.Tables[Constant.INT_IS_ZERO];
  339. }
  340. if (this._dsProcedure.Tables[Constant.INT_IS_ONE].Rows.Count > Constant.INT_IS_ZERO)
  341. {
  342. this.dgvRptTProcedure.DataSource = this._dsProcedure.Tables[Constant.INT_IS_ONE];
  343. }
  344. }
  345. }
  346. }
  347. }
  348. catch (Exception ex)
  349. {
  350. throw ex;
  351. }
  352. }
  353. /// <summary>
  354. /// 与服务交互操作
  355. /// </summary>
  356. /// <returns></returns>
  357. private int EntityToServer()
  358. {
  359. int resultCount = Constant.INT_IS_ZERO;
  360. if (this._formType == Constant.FormMode.Add)
  361. {
  362. this._dsProcedure.Tables.Add(this.dgvRptSProcedure.GetDataTable());
  363. this._dsProcedure.Tables.Add(this.dgvRptTProcedure.GetDataTable());
  364. resultCount = (int)DoAsync(() =>
  365. {
  366. return SystemModuleProxy.Service.AddRptProcedure(this._rptProcedureEntity, this._dsProcedure);
  367. });
  368. }
  369. else if (this._formType == Constant.FormMode.Edit)
  370. {
  371. resultCount = (int)DoAsync(() =>
  372. {
  373. return SystemModuleProxy.Service.UpdateRptProcedure(this._rptProcedureEntity, this._dsProcedure);
  374. });
  375. }
  376. return resultCount;
  377. }
  378. /// <summary>
  379. /// 判断编号是否存在
  380. /// </summary>
  381. /// <returns></returns>
  382. private bool isCodeBool(RptProcedureEntity rptProcedureEntity)
  383. {
  384. DataSet dsSearchRptProcedure = (DataSet)DoAsync(() =>
  385. {
  386. return SystemModuleProxy.Service.GetRptProcedureModule(rptProcedureEntity);
  387. });
  388. if (dsSearchRptProcedure.Tables[Constant.INT_IS_ZERO].Rows.Count > Constant.INT_IS_ZERO)
  389. {
  390. return false;
  391. }
  392. return true;
  393. }
  394. #endregion
  395. }
  396. }