| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410 |
- using Core.Mes.Client.Comm.Control;
- using Core.Mes.Client.Comm.Tool;
- using Core.StlMes.Client.Judge.Commons;
- using Core.StlMes.Client.Judge.Forms;
- using Core.StlMes.Client.Judge.Models;
- using CoreFS.CA06;
- using Infragistics.Win.UltraWinGrid;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.Drawing;
- using System.Linq;
- using System.Reflection;
- using System.Windows.Forms;
- namespace Core.StlMes.Client.Judge.Controls
- {
- public partial class QcmJhyElementsCtrl : UserControl
- {
- private Dal _d;
- private bool _showProcess;
- private string _processCode = "";
- private string _processDesc = "";
- /// <summary>
- ///
- /// </summary>
- /// <param name="container"></param>
- /// <param name="ob"></param>
- /// <param name="judgeType">判定类型:0-炼钢 1-铸造 2-轧管 8-综合</param>
- public QcmJhyElementsCtrl(Control container, OpeBase ob, bool showProcess)
- {
- InitializeComponent();
- _d = new Dal(ob);
- _showProcess = showProcess;
- container.Controls.Add(this);
- this.Dock = DockStyle.Fill;
- this.BringToFront();
- //EntityHelper.ShowGridCaption<QcmJhyElementsEntity>(ultraGrid1.DisplayLayout.Bands[0]);
- }
- private List<CraftOrdDesignStdCicEntity> _craftDesignStdCicList = new List<CraftOrdDesignStdCicEntity>();
- private List<QcmJhyElementsEntity> _jhyElementsList = new List<QcmJhyElementsEntity>();
- /// <summary>
- /// 炼钢成分判定查询
- /// </summary>
- /// <param name="stoveNo"></param>
- /// <param name="judgeStoveNo"></param>
- /// <param name="dtCraftCic"></param>
- /// <param name="processCode"></param>
- public void QueryCraftResultByStoveNo(string stoveNo, string judgeStoveNo, DataTable dtCraftCic, string processCode, string[] zgProPlanIds)
- {
- _processCode = processCode;
- _jhyElementsList = _d.GetEntitysByXmlId<QcmJhyElementsEntity>("QcmJhyElementsDAL.queryByStoveNo", processCode, stoveNo);
- _craftDesignStdCicList.Clear();
- //从基础成分取数据改为从工艺取数据
- //if (dtCraftCic.Rows.Count == 0)
- //{
- // _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryApplyChemByJudgeStoveNo", judgeStoveNo);
- //}
- if (dtCraftCic.Rows.Count == 0)
- {
- DataTable dtCraftNo = _d.GetTableByXmlId("JdgPlnOrderZgS.queryCraftNoByZgProPlanId", new object[] { zgProPlanIds });
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryApplyChemByJudgeStoveNo", judgeStoveNo);
- if (_craftDesignStdCicList.Count > 0 && dtCraftNo.Rows.Count > 0)
- {
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryApplyChemByDesignAndCic", dtCraftNo.Rows[0]["DESGINKEY"].ToString(), _craftDesignStdCicList[0].Cic);
- }
- if (_craftDesignStdCicList.Count == 0)
- {
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryBaseChemByJudgeStoveNo", judgeStoveNo);
- }
- }
- else
- {
- foreach (DataRow drCraftCic in dtCraftCic.Rows)
- {
- var tmpCraftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.getCraftJfChem",
- drCraftCic["desginKey"].ToString(), drCraftCic["cic"].ToString());
- foreach (CraftOrdDesignStdCicEntity craftCic in tmpCraftDesignStdCicList)
- {
- _craftDesignStdCicList.Add(craftCic);
- }
- var tmpCraftDesignStdCicList2 = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmLgChemJudgeDAL.getCraftNkChem",
- drCraftCic["desginKey"].ToString(), drCraftCic["mscPline"].ToString(), processCode, drCraftCic["cic"].ToString());
- foreach (CraftOrdDesignStdCicEntity craftCic in tmpCraftDesignStdCicList2)
- {
- _craftDesignStdCicList.Add(craftCic);
- }
- }
- }
- _craftDesignStdCicList.Sort(new ChemSeqCompare());
- if (_jhyElementsList.Count == 0 && _craftDesignStdCicList.Count == 0)
- {
- ClearData();
- return;
- }
- InitGrid();
- }
- /// <summary>
- /// 炼钢综合判定查询
- /// </summary>
- /// <param name="judgeStoveNo"></param>
- /// <param name="dtCraftCic"></param>
- /// <param name="processCode"></param>
- public void SteelMakingColligateQuery(string stoveNo, string judgeStoveNo, DataTable dtCraftCic, string processCode, string[] zgProPlanIds)
- {
- _processCode = processCode;
- _jhyElementsList = _d.GetEntitysByXmlId<QcmJhyElementsEntity>("QcmJhyElementsDAL.steelMakingColligateQuery", stoveNo);
- _craftDesignStdCicList.Clear();
- if (dtCraftCic.Rows.Count == 0)
- {
- DataTable dtCraftNo = _d.GetTableByXmlId("JdgPlnOrderZgS.queryCraftNoByZgProPlanId", new object[] { zgProPlanIds });
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryApplyChemByJudgeStoveNo", judgeStoveNo);
- if (_craftDesignStdCicList.Count > 0 && dtCraftNo.Rows.Count > 0)
- {
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryApplyChemByDesignAndCic", dtCraftNo.Rows[0]["DESGINKEY"].ToString(), _craftDesignStdCicList[0].Cic);
- }
- if (_craftDesignStdCicList.Count == 0)
- {
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmGpJugdeApplyDAL.queryBaseChemByJudgeStoveNo", judgeStoveNo);
- }
- }
- else
- {
- foreach (DataRow drCraftCic in dtCraftCic.Rows)
- {
- //var tmpCraftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmJhyElementsDAL.queryCraftResultCic",
- // drCraftCic["desginKey"].ToString(), drCraftCic["mscPline"].ToString(), processCode, drCraftCic["cic"].ToString(),
- // new string[] { "0", "1", "2" });
- //foreach (CraftOrdDesignStdCicEntity craftCic in tmpCraftDesignStdCicList)
- //{
- // _craftDesignStdCicList.Add(craftCic);
- //}
- var tmpCraftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.getCraftJfChem",
- drCraftCic["desginKey"].ToString(), drCraftCic["cic"].ToString());
- foreach (CraftOrdDesignStdCicEntity craftCic in tmpCraftDesignStdCicList)
- {
- _craftDesignStdCicList.Add(craftCic);
- }
- var tmpCraftDesignStdCicList2 = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("QcmLgChemJudgeDAL.getCraftNkChem",
- drCraftCic["desginKey"].ToString(), drCraftCic["mscPline"].ToString(), processCode, drCraftCic["cic"].ToString());
- foreach (CraftOrdDesignStdCicEntity craftCic in tmpCraftDesignStdCicList2)
- {
- _craftDesignStdCicList.Add(craftCic);
- }
- }
- }
- _craftDesignStdCicList.Sort(new ChemSeqCompare());
- if (_jhyElementsList.Count == 0 && _craftDesignStdCicList.Count == 0)
- {
- ClearData();
- return;
- }
- InitGrid();
- }
- /// <summary>
- /// 半成品查询
- /// </summary>
- /// <param name="judgeStoveNo"></param>
- /// <param name="dtCraftCic"></param>
- /// <param name="processCode"></param>
- public void QueryCraftResultByBatchNo(string stoveNo, string judgeStoveNo, string batchNo, string ordLnPk, string ordLnDlyPk, string craftSeq,
- string mscPline, string processCode, string cic, string sampleId, string sampleNo, string craftSource)
- {
- _processCode = processCode;
- if (_processCode == "") _processCode = "D";
- _craftDesignStdCicList.Clear();
- if (_processCode == "A")
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.getCraftJfChemByOrdLnPkMaking", ordLnPk,
- craftSeq, cic);
- else
- _craftDesignStdCicList = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.getCraftJfChemByOrdLnPk", ordLnPk,
- craftSeq, mscPline, "A", cic);
- if (_processCode == "A")
- {
- _jhyElementsList = _d.GetEntitysByXmlId<QcmJhyElementsEntity>("QcmJhyElementsDAL.steelMakingColligateQuery", stoveNo);
- for (int i = _jhyElementsList.Count - 1; i >= 0; i--)
- {
- if (_jhyElementsList[i].SampleNo != sampleNo)
- {
- _jhyElementsList.Remove(_jhyElementsList[i]);
- }
- }
- var _craftDesignStdCicListTmp = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.queryMeltingCraftChemByOrdLnPk", ordLnPk,
- craftSeq, mscPline, "A", cic);
- foreach (var craftDesignStdCic in _craftDesignStdCicListTmp)
- {
- _craftDesignStdCicList.Add(craftDesignStdCic);
- }
- }
- else
- {
- _jhyElementsList = _d.GetEntitysByXmlId<QcmJhyElementsEntity>("QcmJhyElementsDAL.queryBySampleNo", processCode, judgeStoveNo,
- batchNo, sampleId, sampleNo);
- var _craftDesignStdCicListTmp = _d.GetEntitysByXmlId<CraftOrdDesignStdCicEntity>("CraftOrdDesignStdCic.queryCraftChemByOrdLnPk", ordLnPk,
- craftSeq, mscPline, "A", cic, craftSource);
- foreach (var craftDesignStdCic in _craftDesignStdCicListTmp)
- {
- _craftDesignStdCicList.Add(craftDesignStdCic);
- }
- }
- _craftDesignStdCicList.Sort(new ChemSeqCompare());
- if (_jhyElementsList.Count == 0 && _craftDesignStdCicList.Count == 0)
- {
- ClearData();
- return;
- }
- InitGrid();
- }
- ///// <summary>
- ///// 成品查询
- ///// </summary>
- ///// <param name="judgeStoveNo"></param>
- ///// <param name="dtCraftCic"></param>
- ///// <param name="processCode"></param>
- //public void QueryCraftResultByBatchNoZc(string judgeStoveNo, DataTable dtCraftCic,
- // string ordLnDlyPk, string craftSeq,
- // string mscPline, string processCode, string cic, string sampleId, string sampleNo)
- //{
- // _processCode = processCode;
- // DataRow drProcess = _d.GetRowByXmlId("JdgComBaseProcess.Query", _processCode);
- // _processDesc = _processCode == "B" ? "炼钢" : drProcess["processDesc"].ToString();
- // if (processCode == "A")
- // {
- // SteelMakingColligateQuery(judgeStoveNo, dtCraftCic, processCode);
- // }
- // else
- // {
- // QueryCraftResultByBatchNo(judgeStoveNo, ordLnDlyPk, craftSeq, mscPline, processCode, cic, sampleId, sampleNo);
- // }
- //}
- private DataTable _dtBaseChem = null;
- private Dictionary<string, string> rounds = new Dictionary<string, string>();
- private DataTable _biasChems = null;
- private void InitGrid()
- {
- try
- {
- ultraGrid1.DisplayLayout.Rows.FixedRows.Clear();
- ultraGrid1.DataSource = null;
- //查询圆整位数
- _dtBaseChem = _d.GetTableByXmlId("JdgComBaseChem.queryRound");
- rounds.Clear();
- foreach (DataRow drBaseChem in _dtBaseChem.Rows)
- {
- var stdCics = _craftDesignStdCicList.Where(a => a.SpeclFl == "2" && a.ChemName == drBaseChem["chemName"].ToString()).ToArray();
- List<int> lens = new List<int>();
- foreach (CraftOrdDesignStdCicEntity stdCic in stdCics)
- {
- if (stdCic.Stdmin.Split('.').Length > 1)
- {
- lens.Add(stdCic.Stdmin.Split('.')[1].Length);
- }
- if (stdCic.Stdmax.Split('.').Length > 1)
- {
- lens.Add(stdCic.Stdmax.Split('.')[1].Length);
- }
- }
- if (lens.Count > 0)
- {
- rounds.Add(drBaseChem["chemName"].ToString(), lens.Max().ToString());
- }
- else
- {
- rounds.Add(drBaseChem["chemName"].ToString(), drBaseChem["roundingDigits"].ToString());
- }
- }
- if (_craftDesignStdCicList.Count > 0 && _processCode != "" && _processCode.ToCharArray()[0] >= 'D')
- {
- _biasChems = _d.GetTableByXmlId("CraftOrdDesignStdCic.getBiasChem", _craftDesignStdCicList[0].DesginKey);
- }
- DataTable dt = CreateDataTable(_craftDesignStdCicList);
- //添加检化验数据
- foreach (QcmJhyElementsEntity jhyElement in _jhyElementsList)
- {
- DataRow dr = dt.NewRow();
- foreach (DataColumn column in dt.Columns)
- {
- if (column.ColumnName != column.Caption)
- {
- if (column.ColumnName == "Process")//工序
- {
- dr[column.ColumnName] = _processDesc;
- }
- else
- {
- dr[column.ColumnName] = EntityHelper.GetEntityPropertyValue(jhyElement, column.ColumnName);
- }
- }
- else
- {
- var craftDesignStdCic = _craftDesignStdCicList.Where(a => a.SpeclFl == "2" && a.ChemName == column.ColumnName).FirstOrDefault();
- if (craftDesignStdCic == null) //优先使用内控,没有则用MSC0->MSCn
- {
- craftDesignStdCic = _craftDesignStdCicList.Where(a => a.SpeclFl == "0" && a.ChemName == column.ColumnName).FirstOrDefault();
- if (craftDesignStdCic == null)
- {
- craftDesignStdCic = _craftDesignStdCicList.Where(a => a.SpeclFl == "1" && a.ChemName == column.ColumnName).FirstOrDefault();
- if (craftDesignStdCic == null)
- {
- continue;
- }
- }
- }
- if (craftDesignStdCic.ChemType == "B")
- {
- // if (craftDesignStdCic.ChemName == "CEⅡw")
- // {
- // string s = "";
- // }
- string express = FillJhyElemetValue(craftDesignStdCic.ChemFormula, jhyElement, craftDesignStdCic, true);
- var craftDesignStdCics = _craftDesignStdCicList.Where(a => a.ChemName == craftDesignStdCic.EleName).FirstOrDefault();
- //if (!String.IsNullOrEmpty(craftDesignStdCic.EleName))
- //{
- // bool checkResult = false;
- // Type Ts = jhyElement.GetType();
- // object o = Ts.GetProperty(craftDesignStdCic.EleName).GetValue(jhyElement, null);
- // string Value = Convert.ToString(o);
- // string strEval = (Value + craftDesignStdCic.EleMinSign + craftDesignStdCic.EleMin).Eval();
- // if (bool.TryParse(strEval, out checkResult) && !checkResult)
- // {
- // //cell.Column.Hidden = true;
- // continue;
- // }
- //}
-
- if (column.ColumnName == "CEpcm" || column.ColumnName == "CEⅡw")
- {
- dr[column.ColumnName] = ChemCaculat(express, rounds[column.ColumnName], column.ColumnName);
- }
- else {
- dr[column.ColumnName] = ChemCaculat(express, rounds[column.ColumnName]);
- }
- }
- else
- {
- string columnName = column.ColumnName;
- if (columnName == "As")
- {
- columnName = "Asn";
- }
- dr[column.ColumnName] = EntityHelper.GetEntityPropertyValue(jhyElement, columnName);
- }
- }
- }
- dt.Rows.Add(dr);
- }
- ultraGrid1.BeginUpdate();
- ultraGrid1.DataBind();
- ultraGrid1.DataSource = dt;
- ultraGrid1.DisplayLayout.Override.FixedRowSortOrder = FixedRowSortOrder.FixOrder;
- ultraGrid1.DisplayLayout.Override.FixedRowAppearance.BackColor = Color.FromArgb(255, 250, 240);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[0]);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[1]);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[2]);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[3]);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[4]);
- //ultraGrid1.DisplayLayout.Rows.FixedRows.Add(ultraGrid1.DisplayLayout.Rows[5]);
- //显示复合元素字段
- foreach (var column in ultraGrid1.DisplayLayout.Bands[0].Columns)
- {
- var craftDesignStdCic = _craftDesignStdCicList.Where(
- a => a.ChemName == column.Key).FirstOrDefault();
- if(craftDesignStdCic == null){
- continue;
- }
- if (craftDesignStdCic != null && craftDesignStdCic.ChemType == "B")
- {
- column.Header.Appearance.BackColor = Color.FromArgb(189, 183, 107);
- column.Header.ToolTipText = craftDesignStdCic.ChemFormula;
-
- }
- //var tmpJhy = _jhyElementsList.Where(a => a.SampleNo == row.GetValue("sampleNo")).FirstOrDefault();
- }
- //绑定工艺评审记录到标准中
- foreach (var row in ultraGrid1.Rows)
- {
- if (row.Index <= 3)
- {
- if (row.Index == 0 || row.Index == 1)
- {
- foreach (var cell in row.Cells)
- {
- var craftDesignStdCics = _craftDesignStdCicList.Where(
- a => (a.SpeclFl == "0" || a.SpeclFl == "1") && a.ChemName == cell.Column.Key).ToArray();
- cell.Tag = craftDesignStdCics;
- }
- }
- else
- {
- foreach (var cell in row.Cells)
- {
- var craftDesignStdCics = _craftDesignStdCicList.Where(
- a => a.SpeclFl == "2" && a.ChemName == cell.Column.Key).ToArray();
- cell.Tag = craftDesignStdCics;
- }
- }
- }
- else
- {
- int cnt601F = _jhyElementsList.Where(a => a.SampleNo.StartsWith("601F")).Count();
- int cnt602F = _jhyElementsList.Where(a => a.SampleNo.StartsWith("602F")).Count();
- int cnt603F = _jhyElementsList.Where(a => a.SampleNo.StartsWith("603F")).Count();
- if (row.GetValue("sampleNo") == "601" && cnt601F > 0)
- {
- row.Appearance.BackColor = Color.Gray;
- }
- if (row.GetValue("sampleNo") == "602" && cnt602F > 0)
- {
- row.Appearance.BackColor = Color.Gray;
- }
- if (row.GetValue("sampleNo") == "603" && cnt603F > 0)
- {
- row.Appearance.BackColor = Color.Gray;
- }
- //检验不合数据变色
- var tmpJhy = _jhyElementsList.Where(a => a.SampleNo == row.GetValue("sampleNo")).FirstOrDefault();
- if (tmpJhy != null && tmpJhy.NkResult == "不合格" && _processCode == "A")
- {
- row.RowSelectorAppearance.BackColor = Color.FromArgb(255, 106, 106);
- }
- }
- if (row.Index == 2 && row.Cells["judgeStoveNo"].Value.ToString() != "")
- {
- row.Cells["judgeStoveNo"].EditorComponent = ultraTextEditor1;
- }
- }
- ultraGrid1.DisplayLayout.Bands[0].Columns["judgeStoveNo"].Width = 100;
- ultraGrid1.DisplayLayout.Bands[0].Columns["judgeStoveNo"].ButtonDisplayStyle = ButtonDisplayStyle.Always;
- if (ultraGrid1.Rows.Count >= 5)
- {
- ultraGrid1.Rows[4].Activate();
- }
- GridHelper.RefreshAndAutoSize(ultraGrid1);
- }
- finally
- {
- ultraGrid1.EndUpdate();
- }
- }
- private DataTable CreateDataTable(List<CraftOrdDesignStdCicEntity> craftDesignStdCicList)
- {
- DataTable dt = new DataTable();
- //new DataColumn[] {new DataColumn("Chk"){Caption = "选择", DataType = typeof(bool)},
- dt.Columns.AddRange(new DataColumn[] {
- new DataColumn("SampleNo"){Caption = "试样号"},
- new DataColumn("StoveNo"){Caption = "熔炼炉号"},
- new DataColumn("JudgeStoveNo"){Caption = "判定炉号"}});
- if (_showProcess)
- {
- dt.Columns.Add(new DataColumn("Process") { Caption = "工序" });
- }
- foreach (CraftOrdDesignStdCicEntity stdCicEntity in craftDesignStdCicList)
- {
- if (dt.Columns.Contains(stdCicEntity.ChemName)) continue;
- if (stdCicEntity.Ischeck != "1" && stdCicEntity.Isjudge != "1") continue;
- dt.Columns.Add(new DataColumn(stdCicEntity.ChemName));
- }
- //成品成分需要显示偏差标准
- if (_processCode.ToCharArray()[0] >= 'D')
- {
- dt.Columns.Add(new DataColumn("BiasStd") { Caption = "偏差标准" });
- }
- //添加国家标准
- var craftDesingStdCicG = craftDesignStdCicList.Where(a => a.SpeclFl == "0" || a.SpeclFl == "1");
- DataRow dr = GetJhyElementsByCraft(craftDesingStdCicG.ToList(), dt, "1");
- dr["SampleNo"] = "交付上限";
- if (dt.Columns.Contains("BiasStd"))
- {
- var bias = _biasChems.Rows.Cast<DataRow>().Where(a => a["speclFl"].ToString() == "0").FirstOrDefault();
- if (bias != null)
- {
- dr["BiasStd"] = bias["stdName"].ToString();
- }
- }
- if (craftDesingStdCicG.Count() > 0)
- {
- foreach (var groupRow in craftDesingStdCicG.GroupBy(a => a.Cic))
- {
- if (dr["StoveNo"].ToString() == "")
- {
- dr["StoveNo"] = groupRow.Key;
- }
- else
- {
- dr["StoveNo"] += "," + groupRow.Key;
- }
- }
- }
- //string stdMemoG = GetStdMemo(craftDesingStdCicG);
- //dr["judgeStoveNo"] = stdMemoG;
- var craftDesingStdCicG2 = craftDesignStdCicList.Where(a => a.SpeclFl == "0" || a.SpeclFl == "1");
- dr = GetJhyElementsByCraft(craftDesingStdCicG2.ToList(), dt, "2");
- dr["SampleNo"] = "交付下限";
- if (dt.Columns.Contains("BiasStd"))
- {
- var bias = _biasChems.Rows.Cast<DataRow>().Where(a => a["speclFl"].ToString() == "0").FirstOrDefault();
- if (bias != null)
- {
- dr["BiasStd"] = bias["stdName"].ToString();
- }
- }
- if (craftDesingStdCicG2.Count() > 0)
- {
- foreach (var groupRow in craftDesingStdCicG2.GroupBy(a => a.Cic))
- {
- if (dr["StoveNo"].ToString() == "")
- {
- dr["StoveNo"] = groupRow.Key;
- }
- else
- {
- dr["StoveNo"] += "," + groupRow.Key;
- }
- }
- }
- ////添加客户标准
- //var craftDesingStdCicA = craftDesignStdCicList.Where(a => a.SpeclFl == "1");
- //dr = GetJhyElementsByCraft(craftDesingStdCicA.ToList(), dt, "1");
- //dr["SampleNo"] = "MSC(n)上限";
- //if (dt.Columns.Contains("BiasStd"))
- //{
- // var bias = _biasChems.Rows.Cast<DataRow>().Where(a => a["speclFl"].ToString() == "1").FirstOrDefault();
- // if (bias != null)
- // {
- // dr["BiasStd"] = bias["stdName"].ToString();
- // }
- //}
- //if (craftDesingStdCicA.Count() > 0)
- //{
- // foreach (var groupRow in craftDesingStdCicA.GroupBy(a => a.Cic))
- // {
- // if (dr["StoveNo"].ToString() == "")
- // {
- // dr["StoveNo"] = groupRow.Key;
- // }
- // else
- // {
- // dr["StoveNo"] += "," + groupRow.Key;
- // }
- // }
- //}
- ////string stdMemoA = GetStdMemo(craftDesingStdCicA);
- ////dr["judgeStoveNo"] = stdMemoA;
- //var craftDesingStdCicA2 = craftDesignStdCicList.Where(a => a.SpeclFl == "1");
- //dr = GetJhyElementsByCraft(craftDesingStdCicA2.ToList(), dt, "2");
- //dr["SampleNo"] = "MSC(n)下限";
- //if (dt.Columns.Contains("BiasStd"))
- //{
- // var bias = _biasChems.Rows.Cast<DataRow>().Where(a => a["speclFl"].ToString() == "1").FirstOrDefault();
- // if (bias != null)
- // {
- // dr["BiasStd"] = bias["stdName"].ToString();
- // }
- //}
- //if (craftDesingStdCicA2.Count() > 0)
- //{
- // foreach (var groupRow in craftDesingStdCicA2.GroupBy(a => a.Cic))
- // {
- // if (dr["StoveNo"].ToString() == "")
- // {
- // dr["StoveNo"] = groupRow.Key;
- // }
- // else
- // {
- // dr["StoveNo"] += "," + groupRow.Key;
- // }
- // }
- //}
- //添加内控标准
- var craftDesingStdCicN = craftDesignStdCicList.Where(a => a.SpeclFl == "2");
- dr = GetJhyElementsByCraft(craftDesingStdCicN.ToList(), dt, "1");
- dr["SampleNo"] = "内控上限";
- if (_showProcess)
- {
- dr["Process"] = _processDesc;
- }
- if (craftDesingStdCicN.Count() > 0)
- {
- foreach (var groupRow in craftDesingStdCicN.GroupBy(a => a.Cic))
- {
- if (dr["StoveNo"].ToString() == "")
- {
- dr["StoveNo"] = groupRow.Key;
- }
- else
- {
- dr["StoveNo"] += "," + groupRow.Key;
- }
- }
- }
- string stdMemoN = GetStdMemo(craftDesingStdCicN);
- dr["judgeStoveNo"] = stdMemoN;
- var craftDesingStdCicN2 = craftDesignStdCicList.Where(a => a.SpeclFl == "2");
- dr = GetJhyElementsByCraft(craftDesingStdCicN2.ToList(), dt, "2");
- dr["SampleNo"] = "内控下限";
- if (_showProcess)
- {
- dr["Process"] = _processDesc;
- }
- if (craftDesingStdCicN2.Count() > 0)
- {
- foreach (var groupRow in craftDesingStdCicN2.GroupBy(a => a.Cic))
- {
- if (dr["StoveNo"].ToString() == "")
- {
- dr["StoveNo"] = groupRow.Key;
- }
- else
- {
- dr["StoveNo"] += "," + groupRow.Key;
- }
- }
- }
- return dt;
- }
- private string GetStdMemo(IEnumerable<CraftOrdDesignStdCicEntity> stdCics)
- {
- string stdMemo = "";
- foreach (var stdCic in stdCics)
- {
- if (stdCic.Stdmemo == "") continue;
- if (stdMemo == "")
- {
- stdMemo = stdCic.ChemName + ":" + stdCic.Stdmemo;
- }
- else
- {
- stdMemo += "\r\n" + stdCic.ChemName + ":" + stdCic.Stdmemo;
- }
- }
- return stdMemo;
- }
- private DataRow GetJhyElementsByCraft(List<CraftOrdDesignStdCicEntity> craftDesingStdCics, DataTable dt, string flag)
- {
- try
- {
- DataRow dr = dt.NewRow();
- if (craftDesingStdCics.Count() == 0)
- {
- foreach (CraftOrdDesignStdCicEntity stdCicEntity in craftDesingStdCics)
- {
- foreach (DataColumn column in dt.Columns)
- {
- if (column.ColumnName == stdCicEntity.ChemName)
- {
- dr[column.ColumnName] = "";
- }
- }
- }
- }
- else
- {
- foreach (DataColumn column in dt.Columns)
- {
- var chems = craftDesingStdCics.Where(a => a.ChemName == column.ColumnName);
- if (chems.Count() == 0) continue;
- if (flag == "1")
- {
- //多个索引码 上限值取最小
- if (chems.Where(a => a.Stdmax != "").Count() == 0) continue;
- if (chems.Where(a => a.Stdmax != "" && a.Stdmax.TryParseDecimal()).Count() > 0)
- {
- string stdMax = "";
- string stdMaxSign = "";
- foreach (var chem in chems.Where(a => a.Stdmax != "" && a.Stdmax.TryParseDecimal()))
- {
- if (stdMax == "" || decimal.Parse(chem.Stdmax) < decimal.Parse(stdMax))
- {
- stdMax = chem.Stdmax;
- stdMaxSign = chem.StdmaxSign;
- }
- }
- //处理成品成分偏差
- if (_processCode.ToCharArray()[0] >= 'D')
- {
- string chemCode = chems.ToArray()[0].ChemCode;
- stdMax = AdjustBiasChem(stdMax, chemCode, false, chems.ToArray()[0].SpeclFl);
- }
- dr[column.ColumnName] = JudgeHelper.GetExpress("", "", stdMaxSign, stdMax);
- }
- else
- {
- dr[column.ColumnName] = chems.FirstOrDefault().Stdmax;
- }
- }
- else
- {
- //多个索引码下限值取最大
- if (chems.Where(a => a.Stdmin != "").Count() == 0) continue;
- if (chems.Where(a => a.Stdmin != "" && a.Stdmin.TryParseDecimal()).Count() > 0)
- {
- string stdMin = "";
- string stdminSign = "";
- foreach (var chem in chems.Where(a => a.Stdmin != "" && a.Stdmin.TryParseDecimal()))
- {
- if (stdMin == "" || decimal.Parse(chem.Stdmin) > decimal.Parse(stdMin))
- {
- stdMin = chem.Stdmin;
- stdminSign = chem.StdminSign;
- }
- }
- //处理成品成分偏差
- if (_processCode.ToCharArray()[0] >= 'D')
- {
- string chemCode = chems.ToArray()[0].ChemCode;
- stdMin = AdjustBiasChem(stdMin, chemCode, true, chems.ToArray()[0].SpeclFl);
- }
- dr[column.ColumnName] = JudgeHelper.GetExpress(stdminSign, stdMin, "", "");
- }
- else
- {
- dr[column.ColumnName] = chems.FirstOrDefault().Stdmin;
- }
- }
- }
- }
- dt.Rows.Add(dr);
- return dr;
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex.Message);
- return null;
- }
- }
- private string _tipMsg = "";
- public string TipMsg
- {
- get { return _tipMsg; }
- set { _tipMsg = value; }
- }
- private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
- {
- try
- {
- this.Cursor = Cursors.WaitCursor;
- ultraGrid1.BeginUpdate();
- DataRowView dataRow = (DataRowView)ultraGrid1.ActiveRow.ListObject;
- if (dataRow["sampleNo"].ToString().Contains("限"))
- {
- return;
- }
- _tipMsg = "";
- GridActiveDele();
- }
- finally
- {
- ultraGrid1.EndUpdate();
- this.Cursor = Cursors.Default;
- }
- }
- private void GridActiveDele()
- {
- 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);
- for (int i = 0; i < 4; i++)
- {
- UltraGridRow row = ultraGrid1.Rows[i];
- //if (!row.GetValue("sampleNo").Contains("内控")) continue;
- foreach (UltraGridCell cell in row.Cells)
- {
- if (cell.Column.Key != cell.Column.Header.Caption) continue;
- CraftOrdDesignStdCicEntity[] stdCics = (CraftOrdDesignStdCicEntity[])cell.Tag;
- if (stdCics.Length == 0) continue;
- var actRow = ultraGrid1.ActiveRow;
- CraftOrdDesignStdCicEntity[] calStdCics = GetCalStdCics(stdCics, ultraGrid1.ActiveRow);
- //合并后的加严标准
- CraftOrdDesignStdCicEntity stdCic = EntityHelper.CopyEntity<CraftOrdDesignStdCicEntity>(calStdCics[0]);
- foreach (CraftOrdDesignStdCicEntity calStdCic in calStdCics)
- {
- //取检、判、报
- if (calStdCic.Ischeck != "")
- {
- stdCic.Ischeck = calStdCic.Ischeck;
- }
- if (calStdCic.Isjudge != "")
- {
- stdCic.Isjudge = calStdCic.Isjudge;
- }
- if (calStdCic.Isquote != "")
- {
- stdCic.Isquote = calStdCic.Isquote;
- }
- //取最严的标准上下限
- decimal min = stdCic.Stdmin == "" ? 0M : decimal.Parse(stdCic.Stdmin);
- decimal calMin = calStdCic.Stdmin == "" ? 0M : decimal.Parse(calStdCic.Stdmin);
- if (calMin > min)
- {
- stdCic.Stdmin = calStdCic.Stdmin;
- stdCic.StdminSign = calStdCic.StdminSign;
- }
- decimal max = stdCic.Stdmax == "" ? 999999M : decimal.Parse(stdCic.Stdmax);
- decimal calMax = calStdCic.Stdmax == "" ? 999999M : decimal.Parse(calStdCic.Stdmax);
- if (calMax < max)
- {
- stdCic.Stdmax = calStdCic.Stdmax;
- stdCic.StdmaxSign = calStdCic.StdmaxSign;
- }
- //取限制元素
- if (calStdCic.EleName != "")
- {
- stdCic.EleName = calStdCic.EleName;
- }
- }
- //foreach (var stdCic in stdCics)
- //{
- // if (row.Index % 2 == 0)
- // {
- // expresss = FillJhyElemetValue(stdCic.Stdmax, jhyElement, stdCic, false);
- // expresss = stdCic.StdmaxSign + ChemCaculat(expresss, round);
- // }
- // else
- // {
- // expresss = FillJhyElemetValue(stdCic.Stdmin, jhyElement, stdCic, false);
- // expresss = stdCic.StdminSign + ChemCaculat(expresss, round);
- // }
- //}
- string activeValue = ultraGrid1.GetActiveRowValue(cell.Column.Key);
- if (activeValue.StartsWith("-"))
- {
- activeValue = activeValue.TrimStart('-'); //负号表示小于某个值。
- if (activeValue.TryParseDecimal())
- {
- activeValue = (decimal.Parse(activeValue) - 0.00000001M).ToString();
- }
- }
- if (stdCic.Isjudge == "0")
- {
- if (stdCic.Isquote == "0")
- {
- continue;
- }
- else
- {
- if (activeValue == "")
- {
- cell.Appearance.BackColor = yellow;
- }
- else
- {
- cell.Appearance.BackColor = gray;
- }
- continue;
- }
- }
- if (cell.Value.ToString() == "") continue;
- //限制元素处理(如果不符合限制元素则不判定)
- string expresss = "";
- string strEval = "";
- bool checkResult = false;
- if (row.Index == 2 || row.Index == 3)
- {
- if (stdCic.EleMinSign != "")
- {
- expresss = stdCic.EleMinSign + stdCic.EleMin;
- strEval = (ultraGrid1.GetActiveRowValue(stdCic.EleName) + expresss).Eval();
- if (bool.TryParse(strEval, out checkResult) && !checkResult)
- {
- cell.Column.Hidden = true;
- continue;
- }
- else
- {
- cell.Column.Hidden = false;
- }
- }
- if (stdCic.EleMaxSign != "")
- {
- expresss = stdCic.EleMaxSign + stdCic.EleMax;
- strEval = (ultraGrid1.GetActiveRowValue(stdCic.EleName) + expresss).Eval();
- if (bool.TryParse(strEval, out checkResult) && !checkResult)
- {
- cell.Column.Hidden = true;
- continue;
- }
- else
- {
- cell.Column.Hidden = false;
- }
- }
- }
- if (stdCic.ComplexType == "0")
- {
- expresss = cell.Value.ToString();
- }
- else
- {
- var jhyElement = _jhyElementsList.Where(a => a.SampleNo == ultraGrid1.GetActiveRowValue("SampleNo")).FirstOrDefault();
- if (row.Index % 2 == 0)
- {
- expresss = FillJhyElemetValue(stdCic.Stdmax, jhyElement, stdCic, false);
- string value = ChemCaculat(expresss, rounds[cell.Column.Key]);
- if (cell.Column.Key == "CEpcm" || cell.Column.Key == "CEⅡw")
- {
- value = ChemCaculat(expresss, rounds[cell.Column.Key], cell.Column.Key);
- }
- value = AdjustBiasChem(value, stdCic.ChemCode, false, stdCic.SpeclFl);
- expresss = stdCic.StdmaxSign + value;
- }
- else
- {
- expresss = FillJhyElemetValue(stdCic.Stdmin, jhyElement, stdCic, false);
- string value = ChemCaculat(expresss, rounds[cell.Column.Key]);
- if (cell.Column.Key == "CEpcm" || cell.Column.Key == "CEⅡw")
- {
- value = ChemCaculat(expresss, rounds[cell.Column.Key], cell.Column.Key);
- }
- value = AdjustBiasChem(value, stdCic.ChemCode, true, stdCic.SpeclFl);
- expresss = stdCic.StdminSign + value;
- }
- cell.Value = expresss;
- }
- strEval = (activeValue + expresss).Eval();
- if (activeValue == "" || !bool.TryParse(strEval, out checkResult) || !checkResult)
- {
- string tipMsg = string.Format("成分化验号:{0}中的{1}不符合内控标准!", ultraGrid1.GetActiveRowValue("sampleNo"), cell.Column.Key);
- if (_tipMsg == "")
- {
- _tipMsg = tipMsg;
- }
- cell.Appearance.BackColor = red;
- }
- else
- {
- cell.Appearance.BackColor = green;
- }
- }
- }
- if (_tipMsg == "")
- {
- _tipMsg = "无";
- }
- ultraGrid1.UpdateData();
- }
- private string AdjustBiasChem(string value, string chemCode, bool min, string speclFl)
- {
- if (_craftDesignStdCicList.Count == 0 || _processCode.ToCharArray()[0] < 'D')
- {
- return value;
- }
- var biasChems = _biasChems.Rows.Cast<DataRow>().Where(a => a["speclFl"].ToString() == speclFl);
- foreach (DataRow biasChem in biasChems)
- {
- if (chemCode != biasChem["chemCode"].ToString()) continue;
- if ((biasChem["minSign"].ToString() == "" || checkStr(value, biasChem["minSign"].ToString(), biasChem["minVal"].ToString()))
- && (biasChem["maxSign"].ToString() == "" || checkStr(value, biasChem["maxSign"].ToString(), biasChem["maxVal"].ToString())))
- {
- if (min)
- {
- double stdMin = biasChem["stdMinVal"].ToString() == "" ? 0.0 : Math.Abs(double.Parse(biasChem["stdMinVal"].ToString()));
- return (double.Parse(value) - stdMin).ToString();
- }
- else
- {
- double stdMax = biasChem["stdMaxVal"].ToString() == "" ? 0.0 : Math.Abs(double.Parse(biasChem["stdMaxVal"].ToString()));
- return (double.Parse(value) + stdMax).ToString();
- }
- }
- }
- return value;
- }
- public static bool checkStr(string strA, string sign, string strB)
- {
- if (strA.Length == 0 || strB.Length == 0)
- {
- return true;
- }
- double a = double.Parse(strA);
- double b = double.Parse(strB);
- if (sign == "=")
- {
- if (a == b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- if (sign == ">")
- {
- if (a > b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- if (sign == ">=")
- {
- if (a >= b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- if (sign == "<")
- {
- if (a < b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- if (sign == "<=")
- {
- if (a <= b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- return false;
- }
- /// <summary>
- /// 获取计算好的标准上下限
- /// </summary>
- /// <param name="stdCics"></param>
- /// <param name="row"></param>
- /// <param name="sampleNo"></param>
- /// <returns></returns>
- private CraftOrdDesignStdCicEntity[] GetCalStdCics(CraftOrdDesignStdCicEntity[] stdCics, UltraGridRow row)
- {
- CraftOrdDesignStdCicEntity[] calStdCics = new CraftOrdDesignStdCicEntity[stdCics.Length];
- String express = "";
- var jhyElement = _jhyElementsList.Where(a => a.SampleNo == row.GetValue("SampleNo")).FirstOrDefault();
- for (int i = 0; i < stdCics.Length; i++)
- {
- calStdCics[i] = EntityHelper.CopyEntity<CraftOrdDesignStdCicEntity>(stdCics[i]);
- if (stdCics[i].RepName != "" && stdCics[i].RepVal != "" && stdCics[i].RepVal.TryParseDecimal())
- {
- express = FillJhyElemetValue(stdCics[i].RepVal, jhyElement, stdCics[i], false);
- calStdCics[i].RepVal = ChemCaculat(express, rounds[stdCics[i].RepName]);
- if (stdCics[i].RepName == "CEpcm" || stdCics[i].RepName == "CEⅡw")
- {
- calStdCics[i].RepVal = ChemCaculat(express, rounds[stdCics[i].RepName], stdCics[i].RepName);
- }
- }
- if (stdCics[i].ComplexType == "1")
- {
- //标准元素
- if (stdCics[i].Stdmin != "")
- {
- express = FillJhyElemetValue(stdCics[i].Stdmin, jhyElement, stdCics[i], false);
- calStdCics[i].Stdmin = ChemCaculat(express, rounds[stdCics[i].ChemName]);
- if (stdCics[i].RepName == "CEpcm" || stdCics[i].RepName == "CEⅡw")
- {
- calStdCics[i].Stdmin = ChemCaculat(express, rounds[stdCics[i].ChemName], stdCics[i].ChemName);
- }
- }
- if (stdCics[i].Stdmax != "")
- {
- express = FillJhyElemetValue(stdCics[i].Stdmax, jhyElement, stdCics[i], false);
- calStdCics[i].Stdmax = ChemCaculat(express, rounds[stdCics[i].ChemName]);
- if (stdCics[i].RepName == "CEpcm" || stdCics[i].RepName == "CEⅡw")
- {
- calStdCics[i].Stdmax = ChemCaculat(express, rounds[stdCics[i].RepName], stdCics[i].RepName);
- }
- }
- }
- //暂时随便取一个复合元素值(不同CIC对应的替代元素可能不一样)
- if (stdCics[i].ChemType == "B")
- {
- express = stdCics[i].ChemFormula;
- express = FillJhyElemetValue(express, jhyElement, stdCics[i], true);
- string value = ChemCaculat(express, rounds[stdCics[i].ChemName]);
- if (stdCics[i].ChemName == "CEpcm" || stdCics[i].ChemName == "CEⅡw")
- {
- value = ChemCaculat(express, rounds[stdCics[i].ChemName], stdCics[i].ChemName);
- }
- row.Cells[stdCics[i].ChemName].Value = value;
- }
- }
- return calStdCics;
- }
- //private CraftOrdDesignStdCicEntity getMergeStdCic(CraftOrdDesignStdCicEntity[] stdCics, int rowIndex, string assayNo)
- //{
- // if (stdCics.Length == 0) return null;
- // CraftOrdDesignStdCicEntity mergeStdCic = new CraftOrdDesignStdCicEntity();
- // if (stdCics[0].ComplexType == "0")
- // {
- // foreach (var stdCic in stdCics)
- // {
- // mergeStdCic
- // }
- // }
- // _jhyElementsList.Where(a => a.SampleNo == ultraGrid1.GetActiveRowValue("SampleNo")).FirstOrDefault();
- // CraftOrdDesignStdCicEntity mergeStdCic = new CraftOrdDesignStdCicEntity();
- // foreach (var stdCic in stdCics)
- // {
- // string value = "";
- // string stdSign = "";
- // if (rowIndex % 2 == 0)
- // {
- // value = FillJhyElemetValue(stdCic.Stdmax, jhyElement, stdCic, false);
- // expresss = stdCic.StdmaxSign + ChemCaculat(expresss, round);
- // }
- // else
- // {
- // expresss = FillJhyElemetValue(stdCic.Stdmin, jhyElement, stdCic, false);
- // expresss = stdCic.StdminSign + ChemCaculat(expresss, round);
- // }
- // }
- //}
- //private List<string> GetExpressValue(CraftOrdDesignStdCicEntity stdCic, QcmJhyElementsEntity jhyElement)
- //{
- // List<string> expresss = new List<string>();
- // if (stdCic.Stdmin != "")
- // {
- // string express = "";
- // express = stdCic.Stdmin;
- // express = FillJhyElemetValue(express, jhyElement, stdCic.ChemName);
- // express = stdCic.StdminSign + express;
- // expresss.Add(express);
- // }
- // if(stdCic.Stdmax != "")
- // {
- // string express = "";
- // express = stdCic.Stdmax;
- // express = FillJhyElemetValue(express, jhyElement, stdCic.ChemName);
- // express = stdCic.StdmaxSign + express;
- // expresss.Add(express);
- // }
- // return expresss;
- //}
- //private string GetChemFormulaValue(CraftOrdDesignStdCicEntity stdCic,
- // List<CraftOrdDesignStdCicEntity> craftDesignStdCicList, UltraGrid jhyElementGrid)
- //{
- // string chemFormula = stdCic.ChemFormula;
- // chemFormula = FillJhyElemetValue(chemFormula, craftDesignStdCicList, jhyElementGrid);
- // return chemFormula.CompileFormula().ToString2();
- //}
- private static string ChemCaculat(string express, string round)
- {
- string strValue = JudgeHelper.Eval(express);
- if (!strValue.TryParseDecimal())
- {
- return strValue;
- }
-
- //double value = Math.Abs(double.Parse(strValue));
- return Math.Round(Decimal.Round(Decimal.Parse(strValue), 8), int.Parse(round)).ToString("F" + round);
- }
- private static string ChemCaculat(string express, string round,string chem)
- {
- string strValue = JudgeHelper.Eval(express);
- if (!strValue.TryParseDecimal())
- {
- return strValue;
- }
- //double value = Math.Abs(double.Parse(strValue));
- return Math.Round(Decimal.Round(Decimal.Parse(strValue), 8), int.Parse(round), MidpointRounding.ToEven).ToString("F" + round);
- }
- private string FillJhyElemetValue(string express, QcmJhyElementsEntity jhyElement, CraftOrdDesignStdCicEntity stdCic,
- bool isMultiChem)
- {
- var properties = jhyElement.GetType().GetProperties();
- Array.Sort(properties, new MyCompare());
- //复合元素处理
- foreach (var property in properties)
- {
- string replaceName = property.Name;
- if (property.Name == "Asn")
- {
- replaceName = "As";
- }
- if (property.Name == "F")
- {
- replaceName = "f";
- }
- if ("NbV" == property.Name)
- {
- string a = "";
- string b = "";
- }
- if (express.Contains(replaceName))
- {
- string value = property.GetValue(jhyElement, null).ToString2();
- if (value.StartsWith("-"))
- {
- if (replaceName == "B" && value == "-0.0005")
- {
- value = "0";
- }
- else
- {
- value = value.TrimStart('-'); //负号表示小于某个值。
- if (value.TryParseDecimal())
- {
- value = (decimal.Parse(value) - 0.00000001M).ToString();
- }
- }
- }
- if (isMultiChem)
- {
- if (stdCic.RepName == replaceName && stdCic.RepVal != "")
- {
- String repExpress = "";
- bool repResult = true;
- bool evalResult = false;
- if (stdCic.RepMinSign != "")
- {
- repExpress = stdCic.RepMinSign + stdCic.RepMin;
- if (bool.TryParse(JudgeHelper.Eval(value + repExpress), out evalResult) && !evalResult)
- {
- repResult = false;
- }
- }
- if (stdCic.RepMaxSign != "")
- {
- repExpress = stdCic.RepMaxSign + stdCic.RepMax;
- if (bool.TryParse(JudgeHelper.Eval(value + repExpress), out evalResult) && !evalResult)
- {
- repResult = false;
- }
- }
- if (jhyElement.Assaytype == "熔炼成分" && replaceName == "B" && stdCic.ChemCode == "C031")
- {
- }
- else if (repResult)
- {
- string repVal = FillJhyElemetValue(stdCic.RepVal, jhyElement, stdCic, false).Eval();
- value = repVal;
- }
- }
- }
- if (value != "")
- {
- express = express.Replace(replaceName, value);
- }
- }
- }
- return express;
- }
- /// <summary>
- /// 从长到短排序, 这样就不会替换元素错误, 比如 S和Sn。
- /// </summary>
- private class MyCompare : IComparer<PropertyInfo>
- {
- public int Compare(PropertyInfo x, PropertyInfo y)
- {
- if (x.Name.Length < y.Name.Length)
- {
- return 1;
- }
- else if (x.Name.Length > y.Name.Length)
- {
- return -1;
- }
- else
- {
- return 0;
- }
- }
- }
- private class ChemSeqCompare : IComparer<CraftOrdDesignStdCicEntity>
- {
- public int Compare(CraftOrdDesignStdCicEntity x, CraftOrdDesignStdCicEntity y)
- {
- if (decimal.Parse(x.ChemSeq) < decimal.Parse(y.ChemSeq))
- {
- return -1;
- }
- else if (decimal.Parse(x.ChemSeq) > decimal.Parse(y.ChemSeq))
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
- }
- private void ultraGrid1_CellChange(object sender, CellEventArgs e)
- {
- ultraGrid1.UpdateData();
- }
- public void ClearData()
- {
- if (ultraGrid1.DataSource != null)
- {
- ((DataTable)ultraGrid1.DataSource).Clear();
- }
- }
- private void ultraGrid1_AfterSortChange(object sender, BandEventArgs e)
- {
- GridHelper.RefreshAndAutoSize(ultraGrid1);
- }
- private void ultraGrid1_BeforeRowDeactivate(object sender, CancelEventArgs e)
- {
- //var a = Cursor.Position;
- //var b = Control.MousePosition;
- //var element = ultraGrid1.DisplayLayout.UIElement.ElementFromPoint(ultraGrid1.PointToClient(a));
- //if (element == null) return;
- //var row = (UltraGridRow)element.GetContext(typeof(UltraGridRow));
- //if (row != null && row.Fixed)
- //{
- // e.Cancel = true;
- //}
- }
- private void ultraTextEditor1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- var row = ultraGrid1.ActiveRow;
- PopupTextBox popupTextBox = new PopupTextBox(row.GetValue("judgeStoveNo"), 4000);
- popupTextBox.TxtInfo.ReadOnly = true;
- popupTextBox.UltraPanel1.Visible = false;
- popupTextBox.Show();
- }
- }
- }
|