using Core.Mes.Client.Comm.Server; using Core.StlMes.Client.Judge.Commons; using Core.StlMes.Client.Judge.Controls; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; namespace Core.StlMes.Client.Judge.Forms { public partial class AuditeMeltingDataFrm : FrmBase { private AuditeMeltingDataCtrl _auditMeltingDataCtrl; private CraftLg2CicCtrl _craftLg2CicCtrl; private Dal _d; public AuditeMeltingDataFrm() { InitializeComponent(); this.IsLoadUserView = true; } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": Query(); break; case "Delete": Delete(); break; case "RefreshSteel": RefreshSteel(); break; case "Close": this.Close(); break; } } private void AuditMeltingDataFrm_Load(object sender, EventArgs e) { _auditMeltingDataCtrl = new AuditeMeltingDataCtrl(splitContainer1.Panel1, ob); _auditMeltingDataCtrl.EntityGrid1.AfterRowActivate += EntityGrid1_AfterRowActivate; _d = new Dal(ob); _craftLg2CicCtrl = new CraftLg2CicCtrl(splitContainer1.Panel2, ob); labelComboBox1.SelecteValue = "10"; labelComboBox1.Checked = true; labelDateTimePicker1.DateTimePicker.Value = DateTime.Now.Date.AddDays(-30); labelDateTimePicker2.DateTimePicker.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); ClsBaseInfo.SetComboItemHeight(labelComboBox1.ComboBox); JudgeBaseInfo.LoadPlineName(labelComboBox2.ComboBox, ob, true, "A"); } private UltraGridRow _row; void EntityGrid1_AfterRowActivate(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; if (_row != null) { foreach (var cell in _row.Cells) { cell.Appearance.BackColor = cell.Row.Appearance.BackColor; } } _row = _auditMeltingDataCtrl.EntityGrid1.ActiveRow; string craftNo = _auditMeltingDataCtrl.EntityGrid1.GetActiveRowValue("CraftNo"); _craftLg2CicCtrl.Query(craftNo); var row0 = _craftLg2CicCtrl.EntityGrid1.Rows[0]; var row1 = _craftLg2CicCtrl.EntityGrid1.Rows[1]; var row4 = _craftLg2CicCtrl.EntityGrid1.Rows[4]; var row5 = _craftLg2CicCtrl.EntityGrid1.Rows[5]; Color yellow = Color.FromArgb(238, 238, 0); Color red = Color.FromArgb(255, 106, 106); Color green = Color.FromArgb(60, 179, 113); Color gray = Color.FromArgb(205, 201, 201); foreach (var col in _craftLg2CicCtrl.EntityGrid1.DisplayLayout.Bands[0].Columns) { string key = col.Key; if (col.Header.ToolTipText != null) //复合元素 { string express = col.Header.ToolTipText; string value = FillJhyElemetValue(express, _auditMeltingDataCtrl.EntityGrid1.ActiveRow); row0.Cells[key].ToolTipText = value; if (row0.GetValue(key) == "") { row0.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row0.GetValue(key))) { row0.Cells[key].Appearance.BackColor = red; } else { row0.Cells[key].Appearance.BackColor = green; } if (row1.GetValue(key) == "") { row1.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row1.GetValue(key))) { row1.Cells[key].Appearance.BackColor = yellow; } else { row1.Cells[key].Appearance.BackColor = green; } if (row4.GetValue(key) == "") { row4.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row4.GetValue(key))) { row4.Cells[key].Appearance.BackColor = red; } else { row4.Cells[key].Appearance.BackColor = green; } if (row5.GetValue(key) == "") { row5.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row5.GetValue(key))) { row5.Cells[key].Appearance.BackColor = yellow; } else { row5.Cells[key].Appearance.BackColor = green; } } else { foreach (var cell in _auditMeltingDataCtrl.EntityGrid1.ActiveRow.Cells) { if (cell.Column.Key.ToLower() == key.ToLower()) { cell.Appearance.BackColor = gray; string value = cell.Value.ToString(); if (row0.GetValue(key) == "") { row0.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row0.GetValue(key))) { row0.Cells[key].Appearance.BackColor = red; } else { row0.Cells[key].Appearance.BackColor = green; } if (row1.GetValue(key) == "") { row1.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row1.GetValue(key))) { row1.Cells[key].Appearance.BackColor = yellow; } else { row1.Cells[key].Appearance.BackColor = green; } if (row4.GetValue(key) == "") { row4.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row4.GetValue(key))) { row4.Cells[key].Appearance.BackColor = red; } else { row4.Cells[key].Appearance.BackColor = green; } if (row5.GetValue(key) == "") { row5.Cells[key].Appearance.BackColor = gray; } else if (!JudgeHelper.JudgeExpress(value, row5.GetValue(key))) { row5.Cells[key].Appearance.BackColor = yellow; } else { row5.Cells[key].Appearance.BackColor = green; } break; } } } } } finally { this.Cursor = Cursors.Default; } } private string FillJhyElemetValue(string express, UltraGridRow jhyElement) { ////化学元素长的排前面, 这样替换元素值就不会替换错了。 //var craftDesingStdCicNs = _craftDesignStdCicList. // Where(a => a.SpeclFl == "2").OrderByDescending( // a => a.ChemName, new ChemComparer()); DataTable dt = _d.GetTableByXmlId("AuditMeltingDataDAL.getBaseChem", new Object[] { }); DataRow[] drs = new DataRow[dt.Rows.Count]; dt.Rows.CopyTo(drs, 0); Array.Sort(drs, new MyCompare()); //复合元素处理 foreach (var dr in drs) { if (!jhyElement.Cells.Exists(dr["ChemName"].ToString())) continue; string replaceName = dr["ChemName"].ToString(); if (replaceName == "Asn") { replaceName = "As"; } if (express.Contains(replaceName)) { string value = jhyElement.GetValue(dr["ChemName"].ToString()).ToString(); express = express.Replace(replaceName, value); } } decimal? formulaValue = express.CompileFormula(); return formulaValue == null ? "" : Math.Round(formulaValue.Value, 2).ToString(); } /// /// 从长到短排序, 这样就不会替换元素错误, 比如 S和Sn。 /// private class MyCompare : IComparer { public int Compare(DataRow x, DataRow y) { if (x["ChemName"].ToString().Length < y["ChemName"].ToString().Length) { return 1; } else if (x["ChemName"].ToString().Length > y["ChemName"].ToString().Length) { return -1; } else { return 0; } } } private void Query() { try { this.Cursor = Cursors.WaitCursor; _craftLg2CicCtrl.Clear(); string downtimeB = labelDateTimePicker1.Checked ? labelDateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; string downtimeE = labelDateTimePicker1.Checked ? labelDateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; string judgeFlag = labelComboBox1.Checked ? labelComboBox1.SelecteValue.ToString2() : ""; string plineCode = labelComboBox2.Checked ? labelComboBox2.SelecteValue.ToString2() : ""; string proMonth = labelDateTimePicker3.Checked ? labelDateTimePicker3.Value.ToString("yyyyMMdd") : ""; string stoveNo = labelTextBox1.Checked ? labelTextBox1.Text.Trim() : ""; _auditMeltingDataCtrl.Query(downtimeB, downtimeE, judgeFlag, plineCode, proMonth, stoveNo, this.ValidDataPurviewIds); } finally { this.Cursor = Cursors.Default; } } private void Delete() { _auditMeltingDataCtrl.Delete(); } private void RefreshSteel() { _auditMeltingDataCtrl.RefreshSteel(); } private void labelDateTimePicker1_CheckBox_CheckedChanged(object sender, EventArgs e) { labelDateTimePicker2.DateTimeEnabled = labelDateTimePicker1.DateTimeEnabled; } } }