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;
}
}
}