using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; 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 CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinMaskedEdit; 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 FrmSteelMerge : FrmBase { public bool Flag = false; private ArrayList list = null; private string furnnacNo1 = "";//炉次号1 private string furnnacNo2 = "";//炉次号2 private string furnnacSeq1 = "";//炉次顺序号1 private string furnnacSeq2 = "";//炉次顺序号2 private string gradename1 = "";// private string gradename2 = "";// private int quantity1 = 0; private int quantity2 = 0; private double weight1 = 0; private double weight2 = 0; private string[] arrString = null; private OpeBase ob; private int countHb = 0; public FrmSteelMerge(ArrayList _list,OpeBase _ob,int _countHb) { list = _list; ob = _ob; countHb = _countHb; InitializeComponent(); } private void FrmSteelMerge_Load(object sender, EventArgs e) { if (list != null) { arrString = (string[])list.ToArray(typeof(string)); if (list.Count > 4)//选择一条数据 { furnnacNo1 = arrString[0].ToString(); furnnacSeq1 = arrString[4].ToString(); furnnacNo2 = arrString[5].ToString(); furnnacSeq2 = arrString[9].ToString(); gradename1 = arrString[1].ToString(); gradename2 = arrString[6].ToString(); } else { furnnacNo1 = arrString[0].ToString(); //furnnacNo2 = arrString[4].ToString(); gradename1 = arrString[1].ToString(); //gradename2 = arrString[5].ToString(); } } EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); BaseHelper.setOtherColumnReadOnly(ultraGrid3, new string[] { }); BaseHelper.setOtherColumnReadOnly(ultraGrid2, new string[] { "CHC", "EditWt" }); BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC", "EditWt" }); BaseHelper.InitCellPosition(ultraGrid2, new string[] { "Sequenceno", "Sequenceincast", "Diameter", "LenGpSingle", "CutNumGp", "LengthM", "WeightGpOne", "WeightM", "TotWeightM", "TotMumM", "EditWt", "EditNum", "CutNum" }); BaseHelper.InitCellPosition(ultraGrid1, new string[] { "Sequenceno", "Sequenceincast", "Diameter", "LenGpSingle", "CutNumGp", "LengthM", "WeightGpOne", "WeightM", "TotWeightM", "TotMumM", "EditWt", "EditNum", "CutNum" }); BaseHelper.GridColumnSum(ultraGrid2, new string[] { "TotWeightM" }); BaseHelper.GridColumnCount(ultraGrid2, new string[] { "TotMumM" }); BaseHelper.GridColumnSum(ultraGrid1, new string[] { "TotWeightM" }); BaseHelper.GridColumnCount(ultraGrid1, new string[] { "TotMumM" }); BaseHelper.setUltraGridColumnMaxInput(ultraGrid1, new string[] { "TotWeightM", "WeightGpOne", "EditWt" }); BaseHelper.setUltraGridColumnMaxInput(ultraGrid2, new string[] { "TotWeightM", "WeightGpOne", "EditWt" }); BaseHelper.setColumnBackColor(ultraGrid2, new string[] { "EditWt" }); BaseHelper.setColumnBackColor(ultraGrid1, new string[] { "EditWt" }); //doGraderCIC(); this.splitContainer1.SplitterDistance = 0; doRefresh(); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "Refresh": // 查询 doRefresh(); break; case "Modify": //修改 doModify(); break; case "QueryCicAll": //索引码合并 doQueryCicAll(); break; case "Close": // 关闭 this.Close(); break; } } /// /// 查询 /// private void doRefresh() { List listSource1 = EntityHelper.GetData ("com.steering.pss.plnsaleord.steelMarkingPlan.ControlFurNacePlan.getFurnSteelOrder", new object[] { furnnacNo1 }, ob); plnSteelforOrdEntityBindingSource.DataSource = listSource1; GridHelper.RefreshAndAutoSize(ultraGrid2); quantity1 = 0; weight1 = 0; double conAmount1 = 0; //合同量 double matAmount1 = 0; //余材量 foreach (UltraGridRow row in ultraGrid2.Rows) { quantity1 += int.Parse(row.Cells["TotMumM"].Value.ToString()); weight1 += double.Parse(row.Cells["TotWeightM"].Value.ToString()); if (row.Cells["Surplusflag"].Text.ToString().Equals("订单材")) { conAmount1 += double.Parse(row.Cells["TotWeightM"].Text.ToString()); } else{ if (row.Cells["SurplusType"].Text.ToString().Equals("生产超量")) { matAmount1 += double.Parse(row.Cells["TotWeightM"].Text.ToString()); } } } List listSource2 = EntityHelper.GetData ("com.steering.pss.plnsaleord.steelMarkingPlan.ControlFurNacePlan.getFurnSteelOrder", new object[] { furnnacNo2 }, ob); plnSteelforOrdEntityBindingSource2.DataSource = listSource2; GridHelper.RefreshAndAutoSize(ultraGrid1); quantity2 = 0; weight2 = 0; double conAmount2 = 0; //合同量 double matAmount2 = 0; //余材量 foreach (UltraGridRow rows in ultraGrid1.Rows) { quantity2 += int.Parse(rows.Cells["TotMumM"].Value.ToString()); weight2 += double.Parse(rows.Cells["TotWeightM"].Value.ToString()); if (rows.Cells["Surplusflag"].Text.ToString().Equals("订单材")) { conAmount2 += double.Parse(rows.Cells["TotWeightM"].Text.ToString()); } else { if (rows.Cells["SurplusType"].Text.ToString().Equals("生产超量")) { matAmount2 += double.Parse(rows.Cells["TotWeightM"].Text.ToString()); } } } ultraLabel1.Text = " 炉次:" + furnnacNo1 + " 钢种:" + gradename1 + " 炉次计划支:" + quantity1 + " 炉次计划量:" + weight1 + " 冶炼量:" + conAmount1 + " 余材量:" + matAmount1; ultraLabel2.Text = " 炉次:" + furnnacNo2 + " 钢种:" + gradename2 + " 炉次计划支:" + quantity2 + " 炉次计划量:" + weight2 + " 冶炼量:" + conAmount2 + " 余材量:" + matAmount2; } private void doGraderCIC() { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge.getDoGraderCIC", new object[] { furnnacNo1, furnnacNo2 }, this.ob); DataTable dat = GetCrossTable(dt, furnnacNo2); ultraGrid3.DataSource = dat; ultraGrid3.DataBind(); GridHelper.RefreshAndAutoSize(ultraGrid3); if (dat.Rows.Count > 0) { this.ultraGrid3.DisplayLayout.Bands[0].Columns["钢种索引码"].MergedCellStyle = MergedCellStyle.Always; } foreach (UltraGridRow row in ultraGrid3.Rows) { if(row.Cells["上下限"].Text.ToString().Equals("目标值")) { row.Activation = Activation.AllowEdit; //row.MaskDisplayMode = MaskMode.IncludeLiterals; //row.MaskInput = "{LOC}-n,nnn,nnn.nnn"; row.Cells["钢种索引码"].Activation = Activation.ActivateOnly; row.Cells["上下限"].Activation = Activation.ActivateOnly; //foreach (UltraGridColumn ugc in ultraGrid3.DisplayLayout.Bands[0].Columns) //{ // if () // ugc.MaskDisplayMode = MaskMode.IncludeLiterals; // ugc.MaskInput = "{LOC}n,nnn,nnn.nnn"; //} } else { row.Activation = Activation.ActivateOnly; } } } /// 将DataTable的第二列的值转化为列(即将原来的行表,转化成交叉表,没有对应值则默认"0") /// /// public static DataTable GetCrossTable(DataTable dt,string falg1) { if (dt == null || dt.Columns.Count != 6 || dt.Rows.Count == 0) { return dt; } else { DataTable result = new DataTable(); result.Columns.Add("钢种索引码"); result.Columns.Add("上下限"); DataTable dtColumns = dt.DefaultView.ToTable("dtColumns", true, dt.Columns[1].ColumnName); for (int i = 0; i < dtColumns.Rows.Count; i++) { string colName; if (dtColumns.Rows[1][0] is DateTime) { colName = Convert.ToDateTime(dtColumns.Rows[i][0]).ToString(); } else { colName = dtColumns.Rows[i][0].ToString(); } result.Columns.Add(colName); result.Columns[i + 1].DefaultValue = ""; } DataTable distinct_object = dt.DefaultView.ToTable(true, "CIC"); if (distinct_object.Rows.Count <= 0) { return result; } for (int i = 0; i < distinct_object.Rows.Count; i++) { string cic = distinct_object.Rows[i]["CIC"].ToString(); DataRow[] drs = dt.Select("CIC='" + cic + "'"); DataRow drNew = result.NewRow(); drNew[0] = drs[0][0]; drNew[1] = "下限"; string rowName = drNew[0].ToString(); foreach (DataRow dr in drs) { string colName = dr[1].ToString(); string dValue1 = dr[2].ToString(); if (dr[0].ToString().Equals(rowName, StringComparison.CurrentCultureIgnoreCase)) { drNew[colName] = dValue1.ToString(); } else { result.Rows.Add(drNew); drNew = result.NewRow(); drNew[0] = dr[0]; rowName = drNew[0].ToString(); drNew[colName] = dValue1.ToString(); } } result.Rows.Add(drNew); drNew = result.NewRow(); drNew[0] = drs[0][0]; drNew[1] = "上限"; foreach (DataRow dr in drs) { string colName = dr[1].ToString(); string dValue2 = dr[3].ToString(); if (dr[0].ToString().Equals(rowName, StringComparison.CurrentCultureIgnoreCase)) { drNew[colName] = dValue2.ToString(); } else { result.Rows.Add(drNew); drNew = result.NewRow(); drNew[1] = dr[0]; rowName = drNew[1].ToString(); drNew[colName] = dValue2.ToString(); } } result.Rows.Add(drNew); //if (falg1.Equals("")) //{ // drNew = result.NewRow(); // drNew[0] = drs[0][0]; // drNew[1] = "目标值"; // foreach (DataRow dr in drs) // { // string colName = dr[1].ToString(); // string dValue2 = dr[4].ToString(); // if (dr[0].ToString().Equals(rowName, StringComparison.CurrentCultureIgnoreCase)) // { // drNew[colName] = dValue2.ToString(); // } // else // { // result.Rows.Add(drNew); // drNew = result.NewRow(); // drNew[1] = dr[0]; // rowName = drNew[1].ToString(); // drNew[colName] = dValue2.ToString(); // } // } // result.Rows.Add(drNew); //} //else //{ if (cic.Equals("交集")) { drNew = result.NewRow(); drNew[0] = drs[0][0]; drNew[1] = "目标值"; foreach (DataRow dr in drs) { string colName = dr[1].ToString(); string dValue2 = dr[4].ToString(); if (dr[0].ToString().Equals(rowName, StringComparison.CurrentCultureIgnoreCase)) { drNew[colName] = dValue2.ToString(); } else { result.Rows.Add(drNew); drNew = result.NewRow(); drNew[1] = dr[0]; rowName = drNew[1].ToString(); drNew[colName] = dValue2.ToString(); } } result.Rows.Add(drNew); } //} } return result; } } /// /// 修改 /// private void doModify() { ultraGrid3.UpdateData(); ArrayList list = new ArrayList(); string cic = ""; string cic1 = ""; foreach (UltraGridRow row in ultraGrid3.Rows) { if (row.Cells["上下限"].Text.ToString().Equals("目标值")) { foreach (UltraGridColumn gvr in ultraGrid3.DisplayLayout.Bands[0].Columns) { if (!gvr.Key.Equals("钢种索引码") && !gvr.Key.Equals("上下限")) { ArrayList listColumn = new ArrayList(); listColumn.Add(gvr.Key); listColumn.Add(row.Cells[gvr.Key].Text.ToString()); list.Add(listColumn); } } cic = furnnacNo1 + furnnacNo2; cic1 = furnnacNo2 + furnnacNo1; } } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge"; ccp.MethodName = "doUpdateCic"; ccp.ServerParams = new object[] { list, cic, cic1,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("修改成功!")) { doRefresh(); } } /// /// 向下合并 /// /// /// private void buttDown_Click(object sender, EventArgs e) { UltraGridRow urg = ultraGrid2.ActiveRow; if (urg == null) return; if (furnnacNo2.Equals("")) return; ArrayList list = new ArrayList(); ArrayList entityList = new ArrayList(); IQueryable chcRows = ultraGrid2.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"); if (chcRows == null || chcRows.Count() == 0) { MessageUtil.ShowWarning("请选择要向下合并的炉次订单信息!"); return; } else { foreach (UltraGridRow ugr in chcRows) { entityList.Add((PlnSteelforOrdEntity)ugr.ListObject); } } string cic = ""; foreach (UltraGridRow ugr in ultraGrid1.Rows) { if (cic.Equals("")) { cic = ugr.Cells["Cic"].Value.ToString(); } if (!cic.Equals(ugr.Cells["Cic"].Value.ToString())) { cic += "," + ugr.Cells["Cic"].Value.ToString(); } } string[] strArray = cic.Split(',').Distinct().ToArray(); cic = string.Join(",", strArray); ArrayList jsonList = new ArrayList(); //int count = 0; //foreach (PlnSteelforOrdEntity entity in entityList) //{ // if (entity.Surplusflag.Equals("余材") && entity.SurplusType.Equals("首炉加量")) // { count = 1; } //} //if() foreach (PlnSteelforOrdEntity entity in entityList) { if (!entity.Status.Equals("编制中")) { MessageUtil.ShowWarning("只有编制中状态的炉次订单才能合并!"); return; } if (!entity.Surplusflag.Equals("余材") && entity.SurplusType.Equals("生产超量")) { MessageUtil.ShowWarning("该炉(" + entity.Furnaceno + ")是余材并且是生产超量的炉次,不能合并!"); return; } //if (countHb != 2) //{ if (entity.Surplusflag.Equals("余材") && entity.SurplusType.Equals("首炉加量")) { MessageUtil.ShowWarning("该炉(" + entity.Furnaceno + ")存在首炉加量不能向下合并!"); return; } //} if (entity.EditWt.ToString().Equals("") || entity.EditWt.ToString().Equals("0")) { MessageUtil.ShowWarning("可编辑重量不能为零或为空!"); return; } if (!cic.Contains(entity.Cic.ToString())) { cic += "," + entity.Cic.ToString(); } string wt = (double.Parse(entity.EditNum.ToString()) * double.Parse(entity.WeightM.ToString())).ToString("f3"); entity.EditWt = Convert.ToDecimal(wt); if (!entity.MergeNo.Equals("")) { MessageUtil.ShowWarning("选中炉已同定尺同去向合并过,不能炉次合并,请转分切!"); return; } jsonList.Add(JSONFormat.Format(entity)); } strArray = cic.Split(',').Distinct().ToArray(); Array.Sort(strArray); cic = string.Join(",", strArray); if (cic.Contains(",")) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge.getQueryCicAll", new object[] { cic }, ob); if (dt.Rows.Count <= 0) { MessageUtil.ShowTips("不存在索引码" + cic + "交集!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否向下合并炉次订单?") == DialogResult.No) { return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge"; ccp.MethodName = "doUpdateFurnOrd"; ccp.ServerParams = new object[] { jsonList, furnnacNo1, furnnacNo2, weight2.ToString(), arrString[2].ToString(), arrString[3].ToString(), this.UserInfo.GetUserName(), "0", furnnacSeq1, furnnacSeq2, cic, countHb.ToString() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("向下合并成功!")) { doRefresh(); Flag = true; } } /// /// 向上合并 /// /// /// private void buttUp_Click(object sender, EventArgs e) { UltraGridRow urg = ultraGrid1.ActiveRow; if (urg == null) return; ArrayList list = new ArrayList(); ArrayList entityList = new ArrayList(); IQueryable chcRows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"); if (chcRows == null || chcRows.Count() == 0) { MessageUtil.ShowWarning("请选择要向上合并的炉次订单信息!"); return; } else { foreach (UltraGridRow ugr in chcRows) { entityList.Add((PlnSteelforOrdEntity)ugr.ListObject); } } string cic = ""; foreach (UltraGridRow ugr in ultraGrid2.Rows) { if (cic.Equals("")) { cic = ugr.Cells["Cic"].Value.ToString(); } if (!cic.Equals(ugr.Cells["Cic"].Value.ToString())) { cic += "," + ugr.Cells["Cic"].Value.ToString(); } } string[] strArray = cic.Split(',').Distinct().ToArray(); cic = string.Join(",", strArray); ArrayList jsonList = new ArrayList(); foreach (PlnSteelforOrdEntity entity in entityList) { if (!entity.Status.Equals("编制中")) { MessageUtil.ShowWarning("只有编制中状态的炉次订单才能合并!"); return; } //if (!entity.Surplusflag.Equals("订单材")) //{ // MessageUtil.ShowWarning("只有订单材的炉次订单才能合并!"); // return; //} if (entity.EditWt.ToString().Equals("") || entity.EditWt.ToString().Equals("0")) { MessageUtil.ShowWarning("可编辑重量不能为零或为空!"); return; } if (entity.Surplusflag.Equals("余材") && entity.SurplusType.Equals("生产超量")) { MessageUtil.ShowWarning("该炉(" + entity.Furnaceno + ")是余材并且是生产超量的炉次,不能合并!"); return; } //if (countHb != 2) //{ if (entity.Surplusflag.Equals("余材") && entity.SurplusType.Equals("尾炉加量")) { MessageUtil.ShowWarning("该炉(" + entity.Furnaceno + ")存在尾炉加量不能向上合并!"); return; } //} if (!cic.Contains(entity.Cic.ToString())) { cic +="," + entity.Cic.ToString(); } string wt = (double.Parse(entity.EditNum.ToString()) * double.Parse(entity.WeightM.ToString())).ToString("f3"); entity.EditWt = Convert.ToDecimal(wt); if (!entity.MergeNo.Equals("")) { MessageUtil.ShowWarning("选中炉已同定尺同去向合并过,不能炉次合并,请转分切!"); return; } jsonList.Add(JSONFormat.Format(entity)); } strArray = cic.Split(',').Distinct().ToArray(); Array.Sort(strArray); cic = string.Join(",", strArray); if (cic.Contains(",")) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge.getQueryCicAll", new object[] { cic }, ob); if (dt.Rows.Count <= 0) { MessageUtil.ShowTips("不存在索引码" + cic + "交集!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否向上合并炉次订单?") == DialogResult.No) { return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMerge"; ccp.MethodName = "doUpdateFurnOrd"; ccp.ServerParams = new object[] { jsonList, furnnacNo2, furnnacNo1, weight1.ToString(), arrString[7].ToString(), arrString[8].ToString(), this.UserInfo.GetUserName(), "1", furnnacSeq2, furnnacSeq1, cic ,countHb.ToString()}; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("向上合并成功!")) { doRefresh(); Flag = true; } } /// /// 向下合并ultraGrid2事件 /// /// /// private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { UltraGridRow urg = ultraGrid2.ActiveRow; ultraGrid2.UpdateData(); if (e.Cell.Column.Key.Equals("EditWt")) { if (e.Cell.Row.Cells["EditWt"].Value == null) { e.Cell.Row.Cells["EditWt"].Value = "0"; e.Cell.Row.Cells["EditNum"].Value = "0"; } else { string actLen = e.Cell.Row.Cells["EditWt"].Value.ToString(); if (!StringUtil.IsFloat(actLen) || actLen == "0") { e.Cell.Row.Cells["EditWt"].Value = "0"; e.Cell.Row.Cells["EditNum"].Value = "0"; } else { //比较输入的重量不能大于原重量 if (double.Parse(actLen) > double.Parse(e.Cell.Row.Cells["TotWeightM"].Value.ToString())) { e.Cell.Row.Cells["EditWt"].Value = e.Cell.Row.Cells["TotWeightM"].Value.ToString(); e.Cell.Row.Cells["EditNum"].Value = e.Cell.Row.Cells["TotMumM"].Value.ToString(); } else { e.Cell.Row.Cells["EditNum"].Value = ((int)Math.Ceiling(double.Parse(actLen) / double.Parse(e.Cell.Row.Cells["TotWeightM"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["TotMumM"].Value.ToString()))).ToString(); //e.Cell.Row.Cells["EditWt"].Value = (double.Parse(e.Cell.Row.Cells["EditNum"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["WeightGpOne"].Value.ToString())).ToString("f3"); } } } } } /// /// 向上合并ultraGrid1事件 /// /// /// private void ultraGrid1_CellChange(object sender, CellEventArgs e) { UltraGridRow urg = ultraGrid1.ActiveRow; ultraGrid1.UpdateData(); if (e.Cell.Column.Key.Equals("EditWt")) { if (e.Cell.Row.Cells["EditWt"].Value == null) { e.Cell.Row.Cells["EditWt"].Value = "0"; e.Cell.Row.Cells["EditNum"].Value = "0"; } else { string actLen = e.Cell.Row.Cells["EditWt"].Value.ToString(); if (!StringUtil.IsFloat(actLen) || actLen == "0") { e.Cell.Row.Cells["EditWt"].Value = "0"; e.Cell.Row.Cells["EditNum"].Value = "0"; } else {//比较输入的重量不能大于原重量 if (double.Parse(actLen) > double.Parse(e.Cell.Row.Cells["TotWeightM"].Value.ToString())) { e.Cell.Row.Cells["EditWt"].Value = e.Cell.Row.Cells["TotWeightM"].Value.ToString(); e.Cell.Row.Cells["EditNum"].Value = e.Cell.Row.Cells["TotMumM"].Value.ToString(); } else { e.Cell.Row.Cells["EditNum"].Value = ((int)Math.Ceiling(double.Parse(actLen)/double.Parse(e.Cell.Row.Cells["TotWeightM"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["TotMumM"].Value.ToString()))).ToString(); //e.Cell.Row.Cells["EditWt"].Value = (double.Parse(e.Cell.Row.Cells["EditNum"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["WeightGpOne"].Value.ToString())).ToString("f3"); } } } } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { BaseHelper.ControlCellEdit(e.Row); } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { BaseHelper.ControlCellEdit(e.Row); } /// /// 索引码合并 /// private void doQueryCicAll() { List list1 = new List(); string gradeCode = ""; string cic = ""; List list = new List(); ArrayList arrlist = new ArrayList(); foreach (UltraGridRow ugr2 in ultraGrid2.Rows) { gradeCode = ugr2.Cells["GradeName"].Text.ToString(); list.Add(ugr2.Cells["Cic"].Text.ToString()); } foreach (UltraGridRow ugr1 in ultraGrid1.Rows) { list.Add(ugr1.Cells["Cic"].Text.ToString()); } list = list.Distinct().ToList(); //for (int i = 0; i < list.Count; i++) //{ foreach (UltraGridRow ugr in ultraGrid2.Rows) { if (!cic.Contains(ugr.Cells["Cic"].Text.ToString())) { //if (ugr.Cells["Cic"].Text.ToString().Equals(list[i])) //{ if (!ugr.Cells["ProPlanId"].Text.Equals("")) { cic += ugr.Cells["Cic"].Text.ToString()+","; ArrayList listar = new ArrayList(); list1.Add(ugr.Cells["ProPlanId"].Text.ToString()); listar.Add(ugr.Cells["Cic"].Text.ToString()); listar.Add(ugr.Cells["ProPlanId"].Text.ToString()); listar.Add("1"); listar.Add("工艺评审"); arrlist.Add(listar); //break; } } } //} //} foreach (UltraGridRow ugr in ultraGrid1.Rows) { if (!cic.Contains(ugr.Cells["Cic"].Text.ToString())) { if (!ugr.Cells["ProPlanId"].Text.Equals("")) { cic += ugr.Cells["Cic"].Text.ToString() + ","; ArrayList listar = new ArrayList(); list1.Add(ugr.Cells["ProPlanId"].Text.ToString()); listar.Add(ugr.Cells["Cic"].Text.ToString()); listar.Add(ugr.Cells["ProPlanId"].Text.ToString()); listar.Add("1"); listar.Add("工艺评审"); arrlist.Add(listar); } } } ArrayList listar1 = new ArrayList(); listar1.Add(""); listar1.Add("null"); listar1.Add("0"); listar1.Add("基础数据"); arrlist.Add(listar1); this.Cursor = Cursors.WaitCursor; AnalysisNkChemPopupLg popup = new AnalysisNkChemPopupLg(list.ToArray(), gradeCode, this.ob, list1.ToArray(), arrlist); popup.TopMost = true; popup.Load += ((a, b) => { this.Cursor = Cursors.Default; }); popup.Show(); } } }