using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.工序排产.entity; using Core.StlMes.Client.PlnSaleOrd.炼钢计划; using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity; using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.PlnSaleOrd.炉计划 { public partial class FrmPlanMaterialDbk : FrmBase { private OpeBase _ob; private string _userName; private string _proPlanId; private string _gxPlanNo; private string cic; private string cicyL; private string desginKey; private string indexSeq; private string outMaterialNo; private string plineCode; private string inMaterialNo; private string _exeStatus; private string wholeBacklogDesc; private string _supplyUnitCode; public DataRow CurrentChem { get; private set; } private bool flag = false; public bool Flag { get { return flag; } set { flag = value; } } public FrmPlanMaterialDbk(string proPlanId, string gxPlanNo, string userName, OpeBase ob, string exeStatus,string supplyUnitCode) { InitializeComponent(); _ob = ob; _userName = userName; _proPlanId = proPlanId; _gxPlanNo = gxPlanNo; _exeStatus = exeStatus; _supplyUnitCode = supplyUnitCode; CurrentChem = null; this.IsLoadUserView = true; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ultraGridDbks.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; ulgridElement.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; } private void FrmPlanMaterialDbk_Load(object sender, EventArgs e) { EntityHelper.ShowGridCaption(ultraGridDbks.DisplayLayout.Bands[0]); BaseHelper.setOtherColumnReadOnly(ultraGridDbks, new string[] { }); BaseHelper.InitCellPosition(ultraGridDbks, new string[] {"CountNum", "GxPlanNo", "OrderSeq", "DeliveryNo", "WeigthS", "NumS", "PlanUsetime", "GxProSeq", "PlnDivideId", "Outdiameter", "Wallthick", "Lengthmax", "Lengthmin", "Aimlength", "OutdiameterIn", "WallthickIn", "LengthmaxIn", "LengthminIn", "Aimoutdiameter", "Aimwallthick", "LenCuthead", "LenCutend" ,"AddWtIn","AddNumIn","MatchWtIn","MatchNumIn", "BatchedWt","BatchedNum","Finishweight","Finishnum","InNumS","InWeightS","FinishWgt","UnfinishWgt","UnfinishNum","MinWgt","RealBatchWt","RealBatchNum","StockNumMononer","StockNumLiku"}); //设置列头名称 EntityHelper.ShowGridCaption(ultraGridChoose.DisplayLayout.Bands[0]); BaseHelper.setOtherColumnReadOnly(ultraGridChoose, new string[] { "CHC", "TakeCount"}); BaseHelper.InitCellPosition(ultraGridChoose, new string[] { "TakeCount", "TakeWeight", "ActDimater", "ActHeight", "ActLen", "ActLenMin", "ActLenMax", "ActCount", "ActWeight", "ActTheoryWeight" }); BaseHelper.GridColumnSum(ultraGridChoose, new string[] { "TakeWeight", "ActWeight", "ActTheoryWeight" }); BaseHelper.GridColumnCount(ultraGridChoose, new string[] { "TakeCount", "ActCount" }); BaseHelper.setUltraGridColumnMaxInput(ultraGridChoose, new string[] { "TakeWeight", "ActTheoryWeight", "ActWeight" }); BaseHelper.setUltraGridColumnBits(ultraGridChoose, new string[] { "TakeCount", "ActCount"}); BaseHelper.setColumnBackColor(ultraGridChoose, new string[] { "TakeCount", "SpecCic" }); StoveHelper.ForbidSort(ulgridElement); ultraGridChoose.DisplayLayout.Bands[0].Columns["SpecCic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; QueryPlanZg(); } private double minLengthRing = 0; /// /// 查询产线对应最小环形炉长度 /// private void QueryPline() { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.queryPline", new object[] { plineCode }, _ob); if (dt.Rows.Count>0) { minLengthRing = double.Parse(dt.Rows[0]["LENGTH_MIN_RING"].ToString()); } } private void QueryPlanZg() { List listSource = EntityHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryDbk.getPlnOrderDbk", new object[] { _proPlanId, _gxPlanNo }, _ob); plnOrderDbkSOEntityBindingSource.DataSource = listSource; GridHelper.RefreshAndAutoSize(ultraGridDbks); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "Query": Query(); break; case "Liku": //利库 Liku(); break; case "Monomer": // 脱单 Monomer(); break; case "Close": this.Close(); break; } } /// /// 查询 /// private void Query() { string surplusflag = ""; List listSourceM = EntityHelper.GetData ("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk.queryMaterial", new object[] { inMaterialNo, "E", wholeBacklogDesc, this.ultraGridDbks.ActiveRow.Cells["PlineCode"].Text }, _ob); matBcMEntityDbkBindingSource.DataSource = listSourceM; //foreach (UltraGridRow item in ultraGridChoose.Rows) //{ //} } /// /// 利库 /// private void Liku() { UltraGridRow ugr = ultraGridDbks.ActiveRow; if (ugr.Cells["ReallWt"].Value.ToString().Equals("0")) { //MessageUtil.ShowTips("待炼支吨为零,不能利库?"); if (MessageUtil.ShowYesNoAndQuestion("待炼支吨为零,是否继续利库?") == DialogResult.No) { return; } } if (!_exeStatus.Equals("计划") && !_exeStatus.Equals("生产中")) { MessageUtil.ShowTips("订单生产完成或关闭,不能利库?"); return; } UltraGridRow row = ultraGridChoose.ActiveRow; if (row == null) return; int count = 0; ArrayList list = new ArrayList(); double wt = 0; foreach (UltraGridRow urg in ultraGridChoose.Rows) { ArrayList list1 = new ArrayList(); if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true) { count++; //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是")) ////&& urg.Cells["CutYuLong"].Text.ToString().Equals("0"))并且切坯余长为零, //{ // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能利库。如需利库,请先删除炉计划!"); // return; //} if (!urg.Cells["UndProOrderId"].Text.ToString().Equals("") && !urg.Cells["UndProOrderId"].Text.ToString().Equals(_proPlanId + "/" + _gxPlanNo)) { MessageUtil.ShowTips("你选择的管坯物料已分配给其他镦拔扩订单,不能利库。如需利库,请先脱单!"); return; } //if (!urg.Cells["JudgeResult"].Text.ToString().Equals("合格")||!urg.Cells["JudgeResult"].Text.ToString().Equals("合同内合格")) //{ // MessageUtil.ShowTips("你选择的管坯物料判定不是合格的炉批,不能利库!"); // return; //} wt += Double.Parse(urg.Cells["TakeWeight"].Value.ToString()); list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString()); list1.Add(urg.Cells["BatchNo"].Value.ToString().ToUpper()); list1.Add(urg.Cells["BatchGroudNo"].Value.ToString()); list1.Add(urg.Cells["MaterialNo"].Value.ToString()); list1.Add(urg.Cells["TakeCount"].Value.ToString()); list1.Add(urg.Cells["UndProOrderId"].Text.ToString()); list1.Add(urg.Cells["OnProOrderId"].Value.ToString()); string specCic = urg.Cells["SpecCic"].Text.ToString(); if (specCic.Equals("")) { string gradeName = urg.Cells["Gradename"].Text.ToString(); string cic = urg.Cells["Cic"].Text.ToString(); UltraGridRow rowCic = entityGrid2.ActiveRow; if (rowCic != null) { int countCic = 0; foreach (UltraGridRow item in entityGrid2.Rows) { if (item.Cells["GRADENAME"].Text.ToString().Equals(gradeName) && item.Cells["CIC"].Text.ToString().Equals(cic)) { countCic++; } } if (countCic == 0) { MessageUtil.ShowTips("库存CIC在订单炼钢CIC集合里没有,请指定CIC!"); return; } } } if (!specCic.Equals("")) { list1.Add(urg.Cells["SpecCic"].Text.ToString()); } else { list1.Add(urg.Cells["Cic"].Text.ToString()); } list1.Add(urg.Cells["StorageNo"].Text); list1.Add(urg.Cells["PlineCode"].Text); list.Add(list1); } } if (count == 0) { MessageUtil.ShowTips("请选择物料信息"); return; } //if (wt - Double.Parse(ugr.Cells["ReallWt"].Value.ToString()) > 0) //{ // MessageUtil.ShowTips("你选择要利库的利库吨不能大于待冶炼吨!"); // return; //} if (MessageUtil.ShowYesNoAndQuestion("是否确认利库?") == DialogResult.No) return; PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk"; ccp.MethodName = "doAddLibrary"; ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName(), _proPlanId, _gxPlanNo }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("利库成功!")) { QueryPlanZg(); Flag = true; } } /// /// 脱单 /// private void Monomer() { UltraGridRow row = ultraGridChoose.ActiveRow; if (row == null) return; int count = 0; ArrayList list = new ArrayList(); foreach (UltraGridRow urg in ultraGridChoose.Rows) { ArrayList list1 = new ArrayList(); if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true) { count++; if (urg.Cells["UndProOrderId"].Text.ToString().Equals("")) { MessageUtil.ShowTips("你选择的管坯物料未分配给其他镦拔扩订单,不能脱单!"); return; } //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是")) //{ // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能脱单。如需脱单,请先删除炉计划!"); // return; //} list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString()); list1.Add(urg.Cells["BatchNo"].Value.ToString()); list1.Add(urg.Cells["BatchGroudNo"].Value.ToString()); list1.Add(urg.Cells["MaterialNo"].Value.ToString()); list1.Add(urg.Cells["TakeCount"].Value.ToString()); list1.Add(urg.Cells["UndProOrderId"].Text.ToString()); list1.Add(urg.Cells["PlineCode"].Text); list.Add(list1); } } if (count == 0) { MessageUtil.ShowTips("请选择管坯物料信息"); return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk"; ccp.MethodName = "doDeleteMonomer"; ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName() }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("脱单成功!")) { Query(); Flag = true; } } private void ultraGridChoose_AfterRowActivate(object sender, EventArgs e) { UltraGridRow row = ultraGridChoose.ActiveRow; if (row == null) return; string gradeName = row.Cells["Gradename"].Text.ToString(); entityGrid2.UpdateData(); DataRow[] datarows = dtCic.Select("GRADENAME = '" + gradeName + "'"); DataTable tab = StoveHelper.ToDataTable(datarows); GridHelper.CopyDataToDatatable(tab, dataTable2, true); GridHelper.RefreshAndAutoSize(entityGrid2); foreach (UltraGridRow ugr in entityGrid2.Rows) { ugr.Cells["CHC"].Value = "指定"; } entityGrid2.Refresh(); entityGrid2.Update(); //QueryChenName(row.Cells["JudgeStoveNo"].Text.ToString(), row.Cells["ChemJudgeId"].Text.ToString()); } private int countMes = 0; private int countStov = 0; /// /// 查询索引码 /// private void QueryChenName(string cudgeStoveNo, string chemJudgeId) { DataTable InternalStandard = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalStd", new object[] { cic, desginKey, indexSeq }, _ob); dtChem.Rows.Clear(); countMes = 0; countStov = 0; foreach (var colums in ulgridElement.DisplayLayout.Bands[0].Columns) { colums.Hidden = true; } ulgridElement.DisplayLayout.Bands[0].Columns["SAMPLE_NO"].Hidden = false; ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].Hidden = false; if (InternalStandard != null) { foreach (DataRow dataRow in InternalStandard.Rows) { string chemsKey = dataRow["CHEM_NAME"].ToString().Replace(" ", "").Replace("/", ""); if (!dtChem.Columns.Contains(chemsKey.ToUpper()) && !string.IsNullOrEmpty(chemsKey)) { DataColumn newDc = new DataColumn { ColumnName = chemsKey.ToUpper(), Caption = chemsKey }; dtChem.Columns.Add(newDc); } ulgridElement.DisplayLayout.Bands[0].Columns[chemsKey.ToUpper()].Hidden = false; } } DataTable distinct_object = InternalStandard.DefaultView.ToTable(true, "CIC"); if (distinct_object.Rows.Count <= 0) { return; } for (int i = 0; i < distinct_object.Rows.Count; i++) { DataRow drMax = dtChem.NewRow(); DataRow drMin = dtChem.NewRow(); DataRow drCic = dtChem.NewRow(); string cicChem = distinct_object.Rows[i]["CIC"].ToString(); DataRow[] drs = InternalStandard.Select("CIC='" + cicChem + "'"); if (cicyL.Equals(drs[i][8])) { drMax["SAMPLE_NO"] = "冶炼CIC上限"; drMin["SAMPLE_NO"] = "冶炼CIC下限"; } else { drMax["SAMPLE_NO"] = "利库CIC上限"; drMin["SAMPLE_NO"] = "利库CIC下限"; } drMax["CIC"] = drs[i][8]; drMin["CIC"] = drs[i][8]; if (InternalStandard != null) { foreach (DataRow dataRow in InternalStandard.Rows) { string columnsName = dataRow["CHEM_NAME"].ToString().ToUpper().Replace(" ", "").Replace("/", ""); drMax[columnsName] = dataRow["STDMAX_SIGN"];//+ dataRow["STDMAX"].ToString() drMin[columnsName] = dataRow["STDMIN_SIGN"];//+ dataRow["STDMIN"].ToString() ulgridElement.DisplayLayout.Bands[0].Columns[columnsName].Tag = dataRow["CHEM_FORMULA"]; } } dtChem.Rows.Add(drMax); dtChem.Rows.Add(drMin); countMes += 2; } //string[] chemJudgeIdAll = chemJudgeId.Split(','); //chemJudgeId = string.Join(",", chemJudgeIdAll); DataTable dtData = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalData", new object[] { cudgeStoveNo, chemJudgeId }, _ob); if (dtData != null && dtData.Rows.Count > 0) { CurrentChem = dtData.Rows[0]; foreach (DataRow dataRow in dtData.Rows) { foreach (DataColumn dc in dtData.Columns) { string columnsName = dc.ColumnName; if (columnsName.Equals("SAMPLE_NO")) continue; if (!dtChem.Columns.Contains(columnsName.ToUpper().Replace("ASN", "AS")) && dataRow[columnsName] != null && !string.IsNullOrEmpty((dataRow[columnsName].ToString()))) { DataColumn newDc = new DataColumn(); newDc.ColumnName = columnsName.ToUpper().Replace("ASN", "AS"); newDc.Caption = columnsName; dtChem.Columns.Add(newDc); } } DataRow tempRow = dtChem.NewRow(); //tempRow["CICLK"] = dataRow["STOVE_NO"]; foreach (DataColumn DataColumn in dtData.Columns) { if (dtChem.Columns.Contains(DataColumn.ColumnName.Replace("ASN", "AS"))) { tempRow[DataColumn.ColumnName.Replace("ASN", "AS")] = dataRow[DataColumn.ColumnName]; if (dataRow[DataColumn.ColumnName] != null && !string.IsNullOrEmpty(dataRow[DataColumn.ColumnName].ToString())) { ulgridElement.DisplayLayout.Bands[0].Columns[DataColumn.ColumnName.Replace("ASN", "AS")] .Hidden = false; ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYNO"].Hidden = true; ulgridElement.DisplayLayout.Bands[0].Columns["STOVE_NO"].Hidden = true; } } } foreach (UltraGridColumn column in ulgridElement.DisplayLayout.Bands[0].Columns) { if (column.Hidden || column.Tag == null || string.IsNullOrEmpty(column.Tag.ToString())) continue; string ChemFormula = column.Tag.ToString().ToUpper(); foreach (DataColumn DataColumn in dtData.Columns) { if (dataRow[DataColumn.ColumnName] == null) continue; ChemFormula = ChemFormula.Replace(DataColumn.ColumnName.Replace("ASN", "AS"), dataRow[DataColumn.ColumnName].ToString()); } try { tempRow[column.Key] = Math.Round(double.Parse(new DataTable().Compute(ChemFormula, null).ToString()), 4); } catch (Exception) { tempRow[column.Key] = null; } } tempRow["SAMPLE_NO"] = dataRow["ASSAYNO"]; tempRow["CIC"] = dataRow["STOVE_NO"]; dtChem.Rows.Add(tempRow); countStov++; } } ulgridElement.Refresh(); BaseHelper.setOtherColumnReadOnly(ulgridElement, new[] { "Check" }); GridHelper.RefreshAndAutoSize(ulgridElement); BaseHelper.ForbidSort(ulgridElement); ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].MergedCellStyle = MergedCellStyle.Always; ulgridElement.DisplayLayout.Bands[0].Columns[0].CellAppearance.FontData.Bold = DefaultableBoolean.True; if (ulgridElement.Rows.Count > countMes) { ulgridElement.Rows[countMes].Activate(); } } private void ulgridElement_InitializeRow(object sender, InitializeRowEventArgs e) { GridActiveDele(); } private void ultraGridChoose_CellChange(object sender, CellEventArgs e) { UltraGridRow row = ultraGridChoose.ActiveRow; ultraGridChoose.UpdateData(); //输入支数 if (e.Cell.Column.Key.Equals("TakeCount")) { if (e.Cell.Row.Cells["TakeCount"].Value == null) { row.Cells["TakeCount"].Value = row.Cells["ActCount"].Value.ToString(); } else { string actLen = e.Cell.Row.Cells["TakeCount"].Value.ToString(); if (!StringUtil.IsInt(actLen) || actLen == "0") { e.Cell.Row.Cells["TakeWeight"].Value = 0; } else { //查询库存重量 DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk.queryMatWeigth", new object[] { row.Cells["JudgeStoveNo"].Value.ToString(), row.Cells["BatchNo"].Value.ToString(), row.Cells["BatchGroudNo"].Value.ToString(), inMaterialNo, actLen }, _ob); if (dt.Rows.Count > 0) { e.Cell.Row.Cells["TakeWeight"].Value = dt.Rows[0]["ACT_WEIGHT"].ToString(); } } } } int xzNum = 0; double xzWt = 0; ultraGroupBox2.Text = "管坯物料信息"; foreach (UltraGridRow ugr in ultraGridChoose.Rows) { if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true) { xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString()); xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString()); } } ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3"); } private int splitterDistance = 0; private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox1.Expanded == false) { this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26; } else { this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance; } } private void GridActiveDele() { UltraGridRow row = ulgridElement.ActiveRow; if (row == null) return; if (row.Index < countMes) return; //foreach (UltraGridRow row in ulgridElement.Rows) //{ foreach (var Cell in row.Cells) { string ColumnsName = Cell.Column.Key; if (ColumnsName.Equals("SAMPLE_NO")) continue; if (ColumnsName.Equals("CIC")) continue; if (ColumnsName.Equals("STOVE_NO")) continue; if (ColumnsName.Equals("ASSAYNO")) continue; for (int i = 0; i < countMes - 1; i = i + 2) { int Result = SteelManagementHelper.CompareChem(Cell.Value, ulgridElement.Rows[i].Cells[ColumnsName].Value, ulgridElement.Rows[i + 1].Cells[ColumnsName].Value); if (Result == 2) { Cell.Appearance.ResetBackColor(); } else if (Result > 0) { ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Red; ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Red; } else if (Result < 0) { ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Yellow; ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Yellow; } else { ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen; ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen; //Cell.Appearance.BackColor = Color.LightGreen; } } //} } } private void ulgridElement_AfterRowActivate(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; ulgridElement.BeginUpdate(); DataRowView dataRow = (DataRowView)ulgridElement.ActiveRow.ListObject; if (dataRow["SAMPLE_NO"].ToString().Contains("限")) { return; } GridActiveDele(); } finally { ulgridElement.EndUpdate(); this.Cursor = Cursors.Default; } } /// /// 托选 /// /// /// private void ultraGridChoose_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridChoose.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } int xzNum = 0; double xzWt = 0; ultraGroupBox2.Text = "管坯物料信息"; foreach (UltraGridRow ugr in ultraGridChoose.Rows) { if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true) { xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString()); xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString()); } } ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3"); } private void ultraGridDbks_AfterRowActivate(object sender, EventArgs e) { UltraGridRow row = ultraGridDbks.ActiveRow; if (row == null) return; inMaterialNo = row.Cells["InwlId"].Value.ToString(); wholeBacklogDesc = row.Cells["WholeBacklogDesc"].Value.ToString(); string ordLnDlyPk = row.Cells["OrdLnDlyPk"].Value.ToString(); string indexSeq = row.Cells["IndexSeq"].Value.ToString(); string carftSeq = row.Cells["CraftSeq"].Value.ToString(); string bom = row.Cells["Bom"].Value.ToString(); QueryCic(ordLnDlyPk, indexSeq, carftSeq); QueryBom(ordLnDlyPk, indexSeq, carftSeq, bom); Query(); } DataTable dtCic = new DataTable(); /// /// 查询工艺评审CIC /// /// /// /// private void QueryCic(string ordLnDlyPk, string indexSeq, string carftSeq) { dtCic = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.StoveHelper.queryCic", new object[] { ordLnDlyPk, indexSeq, carftSeq }, _ob); GridHelper.CopyDataToDatatable(dtCic, dataTable2, true); GridHelper.RefreshAndAutoSize(entityGrid2); foreach (UltraGridRow ugr in entityGrid2.Rows) { ugr.Cells["CHC"].Value = "指定"; } } /// /// 查询符合条件的投入产出物料Bom /// private void QueryBom(string ordLnDlyPk, string indexSeq, string carftSeq, string bom) { string inMaterialNoBom = ""; DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk.queryBaseMaterial", new object[] { ordLnDlyPk, indexSeq,carftSeq ,"E" }, _ob); GridHelper.CopyDataToDatatable(dt, dataTable1, true); GridHelper.RefreshAndAutoSize(entityGrid1); if(dt.Rows.Count<=0)return; foreach (UltraGridRow item in entityGrid1.Rows) { inMaterialNoBom += item.Cells["IN_MATERIAL_NO"].Text.ToString()+","; if (item.Cells["IN_MATERIAL_NO"].Text.ToString().Equals(inMaterialNo) && bom.Equals(item.Cells["BOM"].Text.ToString())) { item.Appearance.BackColor = Color.Orange; item.Activate(); } } if (!inMaterialNoBom.Equals("")) { inMaterialNo = inMaterialNoBom.Substring(0, inMaterialNoBom.Length - 1); } } private void entityGrid2_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGridChoose.ActiveRow; if (row == null) return; if (e.Cell.Column.Key.Equals("CHC")) { UltraGridRow rowCic = entityGrid2.ActiveRow; if (rowCic == null) return; row.Cells["SpecCic"].Value = rowCic.Cells["CIC"].Value.ToString(); } } private void ultraGridChoose_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGridChoose.ActiveRow; if (row == null) return; if (e.Cell.Column.Key.Equals("SpecCic")) { e.Cell.Row.Cells["SpecCic"].Value = ""; } } private void entityGrid1_AfterRowActivate(object sender, EventArgs e) { } } }