FrmChooseProbe.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Core.Mes.Client.Comm.Server;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.StlMes.Client.Mcp.Control.Entity;
  12. using CoreFS.CA06;
  13. using Infragistics.Win;
  14. using Infragistics.Win.UltraWinEditors;
  15. using Infragistics.Win.UltraWinGrid;
  16. using Infragistics.Win.UltraWinToolbars;
  17. namespace Core.StlMes.Client.Mcp.Control.HeatTreatment
  18. {
  19. public partial class FrmChooseProbe : FrmBase
  20. {
  21. private readonly List<HttReportDefaultEntity> _listDefault;
  22. public FrmChooseProbe(List<HttReportDefaultEntity> listDefault, List<HttCrackDetectionProbeEntity> listProbe, OpeBase Ob)
  23. {
  24. InitializeComponent();
  25. ob = Ob;
  26. _listDefault = listDefault;
  27. var ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() == "PROBE_QTY_NAME").ToList();
  28. DataTable dt;
  29. if (ProDefault.Any() && ProDefault[0].DroplistUsed != "")
  30. {
  31. dt =
  32. ServerHelper.GetData(
  33. "com.steering.mes.mcp.heatTreatment.ScrapHelper.doQuery",
  34. new object[] { "4097",ProDefault[0].DroplistUsed.Split(';') }, ob);
  35. }
  36. else
  37. {
  38. dt =
  39. ServerHelper.GetData(
  40. "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
  41. new object[] { "4097" }, ob);
  42. }
  43. List<HttCrackDetectionProbeEntity> ListProbeAll = new List<HttCrackDetectionProbeEntity>();
  44. listProbe.ForEach(p => p.Chk = true);
  45. ListProbeAll.AddRange(listProbe);
  46. for (int i = 0; i < dt.Rows.Count; i++)
  47. {
  48. if (listProbe.Any(p => p.ProbeTypeCode == dt.Rows[i]["BASECODE"].ToString2())) continue;
  49. HttCrackDetectionProbeEntity a = new HttCrackDetectionProbeEntity();
  50. a.ProbeTypeCode = dt.Rows[i]["BASECODE"].ToString2();
  51. a.ProbeTypeName = dt.Rows[i]["BASENAME"].ToString2();
  52. a.Chk = false;
  53. bool exits = false;
  54. var qty = listDefault.Where(p => p.ReportColumn == "PROBE_QTY_" + a.ProbeTypeCode).ToList();
  55. if (qty.Any())
  56. {
  57. exits = true;
  58. a.ProbeQty = qty.First().TextDefault;
  59. }
  60. var para = listDefault.Where(p => p.ReportColumn == "PROBE_PARAMETERS_" + a.ProbeTypeCode).ToList();
  61. if (para.Any())
  62. {
  63. exits = true;
  64. a.ProbeParameters = para.First().TextDefault;
  65. }
  66. if(exits) ListProbeAll.Add(a);
  67. }
  68. httCrackDetectionProbeEntityBindingSource.DataSource = ListProbeAll;
  69. ProbeType.DataSource = dt;
  70. ProbeType.ValueMember = "BASECODE";
  71. ProbeType.DisplayMember = "BASENAME";
  72. if (!_listDefault.Any(p => p.ReportColumn.StartsWith("PROBE_QTY_")))
  73. ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["ProbeQty"].Hidden = true;
  74. }
  75. private void ultraToolbarsManager1_ToolClick(object sender, ToolClickEventArgs e)
  76. {
  77. switch (e.Tool.Key)
  78. {
  79. case "Save":
  80. Save();
  81. break;
  82. case "Close":
  83. CloseFrm();
  84. break;
  85. }
  86. }
  87. protected override void OnLoad(EventArgs e)
  88. {
  89. base.OnLoad(e);
  90. foreach (var ugc in ultraGridDetailDes1.DisplayLayout.Bands[0].Columns)
  91. ugc.SortIndicator = SortIndicator.Disabled;
  92. ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  93. EntityHelper.ShowGridCaption<HttCrackDetectionProbeEntity>(ultraGridDetailDes1.DisplayLayout.Bands[0]);
  94. }
  95. private void CloseFrm()
  96. {
  97. DialogResult = DialogResult.Cancel;
  98. Close();
  99. }
  100. /// <summary>
  101. /// 保存可疑、剔除品
  102. /// </summary>
  103. private void Save()
  104. {
  105. ultraGridDetailDes1.UpdateData();
  106. List<HttCrackDetectionProbeEntity> list = GetValue();
  107. if (!list.Any())
  108. {
  109. MessageBox.Show("请维护探头信息");
  110. return;
  111. }
  112. if (list.Any(p => p.ProbeTypeCode == ""))
  113. {
  114. MessageBox.Show("请选择探头种类");
  115. return;
  116. }
  117. if (! ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["ProbeQty"].Hidden && list.Any(p => p.ProbeQty == ""))
  118. {
  119. MessageBox.Show("请输入探头个数");
  120. return;
  121. }
  122. if (list.Any(p => p.ProbeParameters == ""))
  123. {
  124. MessageBox.Show("请输入探头参数");
  125. return;
  126. }
  127. if (list.GroupBy(p => p.ProbeTypeCode).Max(p=>p.Count())>1)
  128. {
  129. MessageBox.Show("有重复的探头种类");
  130. return;
  131. }
  132. DialogResult = DialogResult.OK;
  133. }
  134. private void ultraGridDetailDes1_InitializeTemplateAddRow(object sender, Infragistics.Win.UltraWinGrid.InitializeTemplateAddRowEventArgs e)
  135. {
  136. if (ultraGridDetailDes1.ActiveRow == null && ultraGridDetailDes1.Rows.Count<=0)
  137. e.TemplateAddRow.Activated = true;
  138. }
  139. private void ultraGridDetailDes1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
  140. {
  141. HttCrackDetectionProbeEntity data = e.Row.ListObject as HttCrackDetectionProbeEntity;
  142. if(data.ProbeTypeCode=="") return;
  143. var ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + data.ProbeTypeCode).ToList();
  144. if (ProDefault.Any())
  145. {
  146. if (ProDefault[0].ColumnType == "1" || ProDefault[0].ColumnType == "2")
  147. {
  148. UltraComboEditor UltraComboEditor = new UltraComboEditor();
  149. if (ProDefault[0].DroplistUsed != "")
  150. {
  151. ProDefault[0].DroplistUsed.Split(';').ToList().ForEach(p => UltraComboEditor.Items.Add(p));
  152. }
  153. else if (ProDefault[0].DroplistDefult != "")
  154. {
  155. DataTable dt =
  156. ServerHelper.GetData(
  157. "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
  158. new object[] {ProDefault[0].DroplistDefult}, ob);
  159. UltraComboEditor.DataSource = dt;
  160. UltraComboEditor.DisplayMember = "BASENAME";
  161. UltraComboEditor.ValueMember = "BASENAME";
  162. }
  163. e.Row.Cells["probeParameters"].EditorComponent = UltraComboEditor;
  164. e.Row.Cells["probeParameters"].Style = ProDefault[0].ColumnType == "1"
  165. ? Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList
  166. : Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown;
  167. }
  168. }
  169. ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() =="PROBE_QTY_" + data.ProbeTypeCode).ToList();
  170. if (ProDefault.Any())
  171. {
  172. if (ProDefault[0].ColumnType == "1" || ProDefault[0].ColumnType == "2")
  173. {
  174. UltraComboEditor UltraComboEditor = new UltraComboEditor();
  175. e.Row.Cells["probeQty"].EditorComponent = UltraComboEditor;
  176. if (ProDefault[0].DroplistUsed != "")
  177. {
  178. UltraComboEditor.DataSource = ProDefault[0].DroplistUsed.Split(';');
  179. }
  180. else if (ProDefault[0].DroplistDefult != "")
  181. {
  182. DataTable dt =
  183. ServerHelper.GetData(
  184. "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
  185. new object[] { ProDefault[0].DroplistDefult }, ob);
  186. UltraComboEditor.DataSource = dt;
  187. ProbeType.DisplayMember = "BASENAME";
  188. ProbeType.ValueMember = "BASENAME";
  189. }
  190. }
  191. }
  192. }
  193. public List<HttCrackDetectionProbeEntity> GetValue()
  194. {
  195. ultraGridDetailDes1.UpdateData();
  196. List<HttCrackDetectionProbeEntity> data =
  197. httCrackDetectionProbeEntityBindingSource.DataSource as List<HttCrackDetectionProbeEntity>;
  198. if (data.Any())
  199. {
  200. return data.Where(p => p.Chk).ToList();
  201. }
  202. return new List<HttCrackDetectionProbeEntity>();
  203. }
  204. private void ultraGridDetailDes1_CellChange(object sender, CellEventArgs e)
  205. {
  206. ultraGridDetailDes1.UpdateData();
  207. if (e.Cell.Column.Key == "ProbeTypeCode")
  208. {
  209. HttCrackDetectionProbeEntity HttCrackDetectionProbeEntity =
  210. e.Cell.Row.ListObject as HttCrackDetectionProbeEntity;
  211. if (HttCrackDetectionProbeEntity == null) return;
  212. HttCrackDetectionProbeEntity.ProbeTypeName = e.Cell.Text;
  213. }
  214. }
  215. }
  216. }