using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using System; using System.Data; using System.Drawing; using System.Linq; namespace Core.StlMes.Client.Qcm { public partial class FrmWaterRatioPopup : FrmBase { private FrmWaterRatio ratio = new FrmWaterRatio(); private string _ordLnPk = ""; private string _stdName = ""; public FrmWaterRatioPopup(string stdCode, string stdName, string steelCode, string stdStyleCode, string ordLnPk, string stdCodeNk, OpeBase ob) { InitializeComponent(); ExceptionHelper.RegistException(); _ordLnPk = ordLnPk; _stdName = stdName; this.ob = ob; if (_ordLnPk.Length < 32 && !_ordLnPk.StartsWith("BL")) { ultraToolbarsManager1.Tools["设定"].SharedProps.Visible = false; } ratio.Load += ratio_Load; ratio.UltraGrid1.AfterRowActivate += ratio_AfterRowActivate; ratio.StdCode = stdCode; ratio.SteelCode = steelCode; ratio.StdStyleCode = stdStyleCode; ratio.StdCodeNk = stdCodeNk; ratio.PopupLoad("", ob); SetDefaultCondition(); FrmWaterRatioPopup_Fill_Panel.Controls.Add(ratio.SplitContainer1); ratio.UltraGrid1.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(UltraGrid1_InitializeRow); ratio.UltraGrid1.AfterRowInsert += new Infragistics.Win.UltraWinGrid.RowEventHandler(UltraGrid1_AfterRowInsert); } void ratio_AfterRowActivate(object sender, EventArgs e) { ratio_Load(null, null); } public void ratio_Load(object sender, EventArgs e) { DataRow setRatio = GetSetRatio(_ordLnPk); if (setRatio != null) { string ratioId = setRatio["RATIO_ID"].ToString(); var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("RATIO_ID") == ratioId).FirstOrDefault(); if (row != null) { row.Cells["CHK"].Value = true; row.Update(); } } DataTable dt = GetMatchRatioId(_ordLnPk); if (dt.Rows.Count > 0) { var rows = ratio.UltraGrid1.Rows.Where(a => dt.Select("RATIO_ID = '" + a.GetValue("RATIO_ID") + "'").Length > 0); ratio.UltraGrid1.BeginUpdate(); foreach (var row in rows) { row.Appearance.BackColor = Color.FromArgb(124, 205, 124); } ratio.UltraGrid1.EndUpdate(); } } /// /// 获取设定水压系数 /// /// /// private DataRow GetSetRatio(string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getSetRatio", new object[] { ordLnPk }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]; } else { return null; } } private DataTable GetMatchRatioId(string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getMatchRatioId", new object[] { ordLnPk }, ob); return dt; } void UltraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { //DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource; //DataRow[] drs = dt.Select("STD_CODE = '" + ratio.StdCode + "'"); //if (drs.Length > 0) //{ // e.Row.SetValue("STD_NAME", drs[0]["STD_CODE"].ToString()); // e.Row.SetValue("STD_CODE", drs[0]["STD_CODE"].ToString()); //} e.Row.Cells["STD_NAME"].Value = _stdName; e.Row.Cells["STD_CODE"].Value = ratio.StdCode; DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource; DataRow[] dr2s = dt2.Select("STD_STYLE_DESC = '" + ratio.StdStyleCode + "'"); if (dr2s.Length > 0) { e.Row.SetValue("STD_STYLE_DESC", dr2s[0]["STD_STYLE_DESC"].ToString()); e.Row.SetValue("STD_STYLE", dr2s[0]["STD_STYLE"].ToString()); } ratio.GetSteelNew(e.Row.Cells["RATIO_ID"].Value.ToString(), e.Row.Cells["STD_CODE"].Value.ToString()); } void UltraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { //DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource; //if (ratio.StdCode != "") //{ // dt.DefaultView.RowFilter = "STD_CODE = '" + ratio.StdCode + "'"; //} //e.Row.Cells["STD_NAME"].Value = _stdName; //e.Row.Cells["STD_CODE"].Value = ratio.StdCode; } private void SetDefaultCondition() { DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource; if (ratio.StdStyleCode != "") { dt2.DefaultView.RowFilter = "STD_STYLE_DESC = '" + ratio.StdStyleCode + "'"; } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "查询": ratio.ToolBar_Click(null, "Query"); break; case "保存": ratio.ToolBar_Click(null, "Save"); break; case "作废": ratio.ToolBar_Click(null, "Delete"); break; case "恢复": ratio.ToolBar_Click(null, "Resume"); break; case "刷新": ratio.ToolBar_Click(null, "Refresh"); break; case "水压引用": ratio.ToolBar_Click(null, "WaterStd"); break; case "设定": SetRatio(); break; case "关闭": this.Close(); break; } } private void SetRatio() { var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").FirstOrDefault(); if (row == null) { MessageUtil.ShowWarning("请选择一条记录!"); return; } string ordLnPk = _ordLnPk; string ratioId = row.GetValue("RATIO_ID"); ServerHelper.SetData("com.steering.pss.qcm.CoreWaterRatio.setRatio", new object[] { ordLnPk, ratioId }, ob); MessageUtil.ShowTips("设定成功!"); } } }