FrmWaterRatioPopup.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. using Core.Mes.Client.Comm.Server;
  2. using Core.Mes.Client.Comm.Tool;
  3. using CoreFS.CA06;
  4. using Infragistics.Win.UltraWinEditors;
  5. using System;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. namespace Core.StlMes.Client.Qcm
  10. {
  11. public partial class FrmWaterRatioPopup : FrmBase
  12. {
  13. private FrmWaterRatio ratio = new FrmWaterRatio();
  14. private string _ordLnPk = "";
  15. private string _stdName = "";
  16. public FrmWaterRatioPopup(string stdCode, string stdName, string steelCode, string stdStyleCode,
  17. string ordLnPk, string stdCodeNk, OpeBase ob)
  18. {
  19. InitializeComponent();
  20. ExceptionHelper.RegistException();
  21. _ordLnPk = ordLnPk;
  22. _stdName = stdName;
  23. this.ob = ob;
  24. if (_ordLnPk.Length < 32 && !_ordLnPk.StartsWith("BL"))
  25. {
  26. ultraToolbarsManager1.Tools["设定"].SharedProps.Visible = false;
  27. }
  28. ratio.Load += ratio_Load;
  29. ratio.UltraGrid1.AfterRowActivate += ratio_AfterRowActivate;
  30. ratio.StdCode = stdCode;
  31. ratio.SteelCode = steelCode;
  32. ratio.StdStyleCode = stdStyleCode;
  33. ratio.StdCodeNk = stdCodeNk;
  34. ratio.PopupLoad("", ob);
  35. SetDefaultCondition();
  36. FrmWaterRatioPopup_Fill_Panel.Controls.Add(ratio.SplitContainer1);
  37. ratio.UltraGrid1.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(UltraGrid1_InitializeRow);
  38. ratio.UltraGrid1.AfterRowInsert += new Infragistics.Win.UltraWinGrid.RowEventHandler(UltraGrid1_AfterRowInsert);
  39. }
  40. void ratio_AfterRowActivate(object sender, EventArgs e)
  41. {
  42. ratio_Load(null, null);
  43. }
  44. public void ratio_Load(object sender, EventArgs e)
  45. {
  46. DataRow setRatio = GetSetRatio(_ordLnPk);
  47. if (setRatio != null)
  48. {
  49. string ratioId = setRatio["RATIO_ID"].ToString();
  50. var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("RATIO_ID") == ratioId).FirstOrDefault();
  51. if (row != null)
  52. {
  53. row.Cells["CHK"].Value = true;
  54. row.Update();
  55. }
  56. }
  57. DataTable dt = GetMatchRatioId(_ordLnPk);
  58. if (dt.Rows.Count > 0)
  59. {
  60. var rows = ratio.UltraGrid1.Rows.Where(a => dt.Select("RATIO_ID = '" + a.GetValue("RATIO_ID") + "'").Length > 0);
  61. ratio.UltraGrid1.BeginUpdate();
  62. foreach (var row in rows)
  63. {
  64. row.Appearance.BackColor = Color.FromArgb(124, 205, 124);
  65. }
  66. ratio.UltraGrid1.EndUpdate();
  67. }
  68. }
  69. /// <summary>
  70. /// 获取设定水压系数
  71. /// </summary>
  72. /// <param name="ordLnPk"></param>
  73. /// <returns></returns>
  74. private DataRow GetSetRatio(string ordLnPk)
  75. {
  76. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getSetRatio",
  77. new object[] { ordLnPk }, ob);
  78. if (dt.Rows.Count > 0)
  79. {
  80. return dt.Rows[0];
  81. }
  82. else
  83. {
  84. return null;
  85. }
  86. }
  87. private DataTable GetMatchRatioId(string ordLnPk)
  88. {
  89. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getMatchRatioId",
  90. new object[] { ordLnPk }, ob);
  91. return dt;
  92. }
  93. void UltraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
  94. {
  95. //DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource;
  96. //DataRow[] drs = dt.Select("STD_CODE = '" + ratio.StdCode + "'");
  97. //if (drs.Length > 0)
  98. //{
  99. // e.Row.SetValue("STD_NAME", drs[0]["STD_CODE"].ToString());
  100. // e.Row.SetValue("STD_CODE", drs[0]["STD_CODE"].ToString());
  101. //}
  102. e.Row.Cells["STD_NAME"].Value = _stdName;
  103. e.Row.Cells["STD_CODE"].Value = ratio.StdCode;
  104. DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource;
  105. DataRow[] dr2s = dt2.Select("STD_STYLE_DESC = '" + ratio.StdStyleCode + "'");
  106. if (dr2s.Length > 0)
  107. {
  108. e.Row.SetValue("STD_STYLE_DESC", dr2s[0]["STD_STYLE_DESC"].ToString());
  109. e.Row.SetValue("STD_STYLE", dr2s[0]["STD_STYLE"].ToString());
  110. }
  111. ratio.GetSteelNew(e.Row.Cells["RATIO_ID"].Value.ToString(), e.Row.Cells["STD_CODE"].Value.ToString());
  112. }
  113. void UltraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
  114. {
  115. //DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource;
  116. //if (ratio.StdCode != "")
  117. //{
  118. // dt.DefaultView.RowFilter = "STD_CODE = '" + ratio.StdCode + "'";
  119. //}
  120. //e.Row.Cells["STD_NAME"].Value = _stdName;
  121. //e.Row.Cells["STD_CODE"].Value = ratio.StdCode;
  122. }
  123. private void SetDefaultCondition()
  124. {
  125. DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource;
  126. if (ratio.StdStyleCode != "")
  127. {
  128. dt2.DefaultView.RowFilter = "STD_STYLE_DESC = '" + ratio.StdStyleCode + "'";
  129. }
  130. }
  131. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  132. {
  133. switch (e.Tool.Key)
  134. {
  135. case "查询":
  136. ratio.ToolBar_Click(null, "Query");
  137. break;
  138. case "保存":
  139. ratio.ToolBar_Click(null, "Save");
  140. break;
  141. case "作废":
  142. ratio.ToolBar_Click(null, "Delete");
  143. break;
  144. case "恢复":
  145. ratio.ToolBar_Click(null, "Resume");
  146. break;
  147. case "刷新":
  148. ratio.ToolBar_Click(null, "Refresh");
  149. break;
  150. case "水压引用":
  151. ratio.ToolBar_Click(null, "WaterStd");
  152. break;
  153. case "设定":
  154. SetRatio();
  155. break;
  156. case "关闭":
  157. this.Close();
  158. break;
  159. }
  160. }
  161. private void SetRatio()
  162. {
  163. var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").FirstOrDefault();
  164. if (row == null)
  165. {
  166. MessageUtil.ShowWarning("请选择一条记录!");
  167. return;
  168. }
  169. string ordLnPk = _ordLnPk;
  170. string ratioId = row.GetValue("RATIO_ID");
  171. ServerHelper.SetData("com.steering.pss.qcm.CoreWaterRatio.setRatio",
  172. new object[] { ordLnPk, ratioId }, ob);
  173. MessageUtil.ShowTips("设定成功!");
  174. }
  175. }
  176. }