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.工序排产; using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity; 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; using Core.StlMes.Client.PlnSaleOrd.炼钢计划; namespace Core.StlMes.Client.PlnSaleOrd.管坯优化 { public partial class FrmGradeAnalysis : FrmBase { UltraComboEditor ucePlinCode = new UltraComboEditor();//铸造产线 //private DataTable dtlz=new DataTable(); private string dimarCic=""; public FrmGradeAnalysis() { InitializeComponent(); this.IsLoadUserView = true; } private void FrmGradeAnalysis_Load(object sender, EventArgs e) { BaseHelper.ForbidSort(ultraGridLenSig); BaseHelper.ForbidSort(ultraGrid1); PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 2, "OUTDIAMETER", "WALLTHICK", "LEN_ROLL_MAX", "LEN_ROLL_MIN", "AIMOUTDIAMETER", "AIMLENGTH", "DIAMETER_GP", "LENGTH_GP", "ROLL_LENGTH", "DIAMETER_MANDREL", "AIMWALLTHICK", "LEN_GP_SINGLE", "LEN_CUTHEAD", "LEN_CUTEND", "TUBE_END_RATIO"); PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 3, "IN_WEIGHT_S", "WEIGTH_S", "BATCHED_WT", "FINISHWEIGHT", "WEIGTH_S_MIN", "GPREQ_WEIGHT", "FurnWt", "LjWeight", "Reall_WT", "ALLOWANCE"); PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 0, "FINISHNUM", "BATCHED_NUM", "NUM_S", "IN_NUM_S", "OUTNUM_CUT", "MULTIPLE_NUM", "PLAN_USETIME", "GPREQ_NUM", "PLANS_NUM", "FurnNum", "LjNum", "Reall_NUM"); ultraGridZgMs.DisplayLayout.Bands[0].Columns["CRAFT_FILE_NO"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridZgMs.DisplayLayout.Bands[0].Columns["GRADENAME"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridAnaly.DisplayLayout.Bands[0].Columns["COMBINED"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridAnaly.DisplayLayout.Bands[0].Columns["GRADENAME"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; PlanComm.setGridDigitalCol(ultraGridLenSig.DisplayLayout.Bands[0], 5, 3, "STDMIN", "STDMAX"); DataTable dt1 = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initPline", new object[] { "B", "", "" }, this.ob); UltraComboEditor uce = new UltraComboEditor(); this.Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; uce.DropDownStyle = DropDownStyle.DropDownList; uce.DataSource = dt1; uce.DisplayMember = "PLINE_NAME"; uce.ValueMember = "PLINE_CODE"; ultraGridZgMs.DisplayLayout.Bands[0].Columns["PLINE_CODE_ZZ"].EditorComponent = uce; ultraGridZgMs.DisplayLayout.Bands[0].Columns["PLINE_CODE_ZZ"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query"://分析 doQuery("0"); break; case "Refresh"://刷新 doQuery("1"); break; case "Calculate"://计算 doCalculate(); break; case "UpadatePlin"://修改铸造产线 doUpadatePlin(); break; case "setFurnace"://预算 doSetFurnace(); break; case "Close": this.Close(); break; default: break; } } /// /// 分析断面,钢种,钢种索引码 /// private void doQuery(string falg) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.getdoQueryGrade", new object[] { }, this.ob); GridHelper.CopyDataToDatatable(dt, dataTable2, true); //if (falg.Equals("0")) //{ //dtlz = ServerHelper.GetData("com.steering.pss.plnsaleord.processO rder.base.ProducHelper.queryLZDataZg", new object[] { }, ob); //} if (dt.Rows.Count <= 0) { DataTable dt1 = new DataTable(); GridHelper.CopyDataToDatatable(dt1, dataTable1, true); GridHelper.CopyDataToDatatable(dt1, dataTable3, true); } foreach(UltraGridRow row in ultraGridAnaly.Rows){ if (dimarCic.Equals(row.Cells["DIAMETER_GP"].Text.ToString() + row.Cells["CIC_GP"].Text.ToString() + row.Cells["GRADENAME"].Text.ToString() + row.Cells["PLINE_NAME_ZZ"].Text.ToString())) { row.Activate(); } } //doCalculate(); //doSetFurnace(); } /// /// 计算待冶炼吨,合计 /// private void doCalculate() { UltraGridRow row = ultraGridAnaly.ActiveRow; if (row == null) return; DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQueryHj", new object[] { }, this.ob); //DataTable dtlz1 = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryLZDataZg", new object[] { }, ob); PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow ugrA in ultraGridAnaly.Rows) { string diameterGp = ugrA.Cells["DIAMETER_GP"].Value.ToString(); string gradecode = ugrA.Cells["GRADECODE"].Value.ToString(); string gradeName = ugrA.Cells["GRADENAME"].Value.ToString(); string cicGp = ugrA.Cells["CIC_GP"].Value.ToString(); string plineCodeZz = ugrA.Cells["PLINE_CODE_ZZ"].Value.ToString(); #region 待冶炼吨 double wt = 0; int num = 0; if (dt.Rows.Count > 0) { DataRow[] drsz = dt.Select("DIAMETER_GP ='" + diameterGp + "' AND GRADECODE='" + gradecode + "' AND CIC_GP='" + cicGp + "' AND PLINE_CODE_ZZ='" + plineCodeZz + "'"); if (drsz != null && drsz.Length > 0) { for (int i = 0; i < drsz.Length; i++) { //double wtz = 0; double wtLj = 0; //double batWt = 0; //int numz = 0; int numLj = 0; //int numbat = 0; //if (dtlz.Rows.Count > 0) //{ // DataRow[] drs = dtlz.Select("订单号 ='" + drsz[i]["PRO_PLAN_ID"].ToString() + "' AND 序号='" + drsz[i]["GX_PLAN_NO"].ToString() + "'"); // if (drs != null && drs.Length > 0) // { // if (!drs[0]["装炉支"].ToString().Equals("")) // { // wtz = double.Parse(drs[0]["装炉吨"].ToString()); // numz = int.Parse(drs[0]["装炉支"].ToString()); // } // if (!drs[0]["LJ支"].ToString().Equals("")) // { // wtLj = double.Parse(drs[0]["LJ吨"].ToString()); // numLj = int.Parse(drs[0]["LJ支"].ToString()); // } // if (!drs[0]["出库支"].ToString().Equals("")) // { // batWt = double.Parse(drs[0]["出库吨"].ToString()); // numbat = int.Parse(drs[0]["出库支"].ToString()); // } // } //} if (drsz[i]["Lj_Num"].ToString().Equals("0")) { numLj = int.Parse(drsz[i]["MATCH_NUM_IN"].ToString()); wtLj = double.Parse(drsz[i]["MATCH_WT_IN"].ToString()); } else { numLj = int.Parse(drsz[i]["Lj_Num"].ToString()); wtLj = double.Parse(drsz[i]["Lj_Weight"].ToString()); } double gpWt = 0; double daiy = 0; int gpNUm = 0; int daiNum = 0; if (!drsz[i]["GPREQ_NUM"].Equals("0")) { gpWt = double.Parse(drsz[i]["GPREQ_WEIGHT"].ToString()); gpNUm = int.Parse(drsz[i]["GPREQ_NUM"].ToString()); } if (gpWt - wtLj > 0) { daiy = gpWt - wtLj; daiNum = gpNUm - numLj; } wt += daiy; num += daiNum; } ugrA.Cells["GPREQ_WEIGHT"].Value = wt.ToString("f3"); ugrA.Cells["GPREQ_NUM"].Value = num; } else { ugrA.Cells["GPREQ_WEIGHT"].Value = "0"; ugrA.Cells["GPREQ_NUM"].Value = "0"; } } #endregion #region 合计 double wthj = 0; if (dt.Rows.Count > 0) { DataRow[] drsz = dt.Select("DIAMETER_GP ='" + diameterGp + "'AND PLINE_CODE_ZZ='" + plineCodeZz + "' AND GRADECODE_ALL like '%" + gradeName + "%'AND CIC_GROUP_GP like ('%" + cicGp + "%')"); if (drsz != null && drsz.Length > 0) { for (int j = 0; j < drsz.Length; j++) { //double wtz1 = 0; double wtLj1 = 0; //double batWt1 = 0; //if (dtlz.Rows.Count > 0) //{ // DataRow[] drs = dtlz.Select("订单号 ='" + drsz[j]["PRO_PLAN_ID"].ToString() + "' AND 序号='" + drsz[j]["GX_PLAN_NO"].ToString() + "'"); // if (drs != null && drs.Length > 0) // { // if (!drs[0]["装炉支"].ToString().Equals("")) // { // wtz1 = double.Parse(drs[0]["装炉吨"].ToString()); // } // if (!drs[0]["LJ支"].ToString().Equals("")) // { // wtLj1 = double.Parse(drs[0]["LJ吨"].ToString()); // } // if (!drs[0]["出库支"].ToString().Equals("")) // { // batWt1 = double.Parse(drs[0]["出库吨"].ToString()); // } // } //} if (drsz[j]["Lj_Num"].ToString().Equals("0")) { //numLj = int.Parse(drsz[j]["MATCH_NUM_IN"].ToString()); wtLj1 = double.Parse(drsz[j]["MATCH_WT_IN"].ToString()); } else { //numLj = int.Parse(drsz[j]["Lj_Num"].ToString()); wtLj1 = double.Parse(drsz[j]["Lj_Weight"].ToString()); } double gpWt1 = 0; double daiy1 = 0; if (!drsz[j]["GPREQ_NUM"].Equals("0")) { gpWt1 = double.Parse(drsz[j]["GPREQ_WEIGHT"].ToString()); } if (gpWt1 - wtLj1 > 0) { daiy1 = gpWt1 - wtLj1; } wthj += daiy1; } ugrA.Cells["COMBINED"].Value = wthj.ToString("f3"); } else { ugrA.Cells["COMBINED"].Value = "0"; } } #endregion } PlanComm.WaitFromColse(this.Cursor); ultraGridAnaly.UpdateData(); dataTable2.DefaultView.RowFilter = "GPREQ_NUM > '0' "; DataTable dt1 = dataTable2.DefaultView.ToTable(); GridHelper.CopyDataToDatatable(dt1, dataTable2, true); } private void doSetFurnace() { UltraGridRow row = ultraGridAnaly.ActiveRow; if (row == null) return; ArrayList list = new ArrayList(); PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow ugrA in ultraGridAnaly.Rows) { string plineCodeZz = ugrA.Cells["PLINE_CODE_ZZ"].Text.ToString(); string plineNameZz = ugrA.Cells["PLINE_NAME_ZZ"].Text.ToString(); string gradeCode = ugrA.Cells["GRADECODE"].Text.ToString(); string gradeName = ugrA.Cells["GRADENAME"].Text.ToString(); string diameterGp = ugrA.Cells["DIAMETER_GP"].Value.ToString(); string wt = ugrA.Cells["GPREQ_WEIGHT"].Value.ToString(); if (wt.Equals("")) { wt = "0"; } if (!plineCodeZz.Equals("")) { #region 查询铸机基础数据获取中包铸余 PlnBasePlineLzEntity entity = GetBasePlineLz(plineCodeZz); string strZbLeftWt = "0"; string strFlowNumMax = "0"; string strFurnaceNumMax = "0"; if (entity == null) { strZbLeftWt = "0";//中包铸余 strFlowNumMax = "0";//最大流数 strFurnaceNumMax = "0"; } else { strZbLeftWt = entity.ZbLeftWt.ToString(); strFlowNumMax = entity.FlowNumMax.ToString(); strFurnaceNumMax = entity.FurnaceNumMax.ToString(); } #endregion #region 查询首炉切头 double cutLenBegin = 0; double endLenBegin = 0; DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQueryFurnace", new object[] { diameterGp }, this.ob); if (dt.Rows.Count > 0) { cutLenBegin = double.Parse(dt.Rows[0]["CUT_LEN_BEGIN"].ToString()); endLenBegin = double.Parse(dt.Rows[0]["CUT_LEN_END_CH"].ToString()); } else { MessageUtil.ShowTips("断面(" + diameterGp + ")没有维护连铸规格切头尾数据!"); break; } #endregion #region 查询小时能力表最大浇次 //DataTable dtSpec = null; //string spceCode = ""; //string spceName = ""; //string wlidZz = "";//铸造物料编码 //string wldescZz = "";//铸造物料描述 //dtSpec = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.CorePlnZgMStoGp.selectSpecDimater", // new object[] { diameterGp }, this.ob); //if (dtSpec == null || dtSpec.Rows.Count == 0) //{ // return; //} //spceCode = dtSpec.Rows[0]["SPEC_CODE"].ToString(); //spceName = dtSpec.Rows[0]["SPEC_NAME"].ToString(); //wlidZz = "PA" + spceCode + gradeCode; //wldescZz = "PA" + spceName + "," + gradeName; ////查询小时能力表最大浇次 //string maxJc = ""; //DataTable dt1 = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQueryMaxJc", new object[] { plineCodeZz, gradeCode, wlidZz }, this.ob); //if (dt1.Rows.Count > 0) //{ // maxJc = dt1.Rows[0]["STOVE_CNT"].ToString(); //} //else //{ // MessageUtil.ShowTips("未找到小时能力表铸造投入产出!"); // return; //} #endregion // 计算米单重 double mSingleWeight = (7.8 * 3.1415926 / 4 * double.Parse(diameterGp) * double.Parse(diameterGp)) / 1000 / 1000; ugrA.Cells["CASTWEIGHT"].Value = (double.Parse(strFlowNumMax) * (cutLenBegin + endLenBegin) * mSingleWeight + double.Parse(strZbLeftWt)).ToString("f3"); #region 出钢量上下限 string plineCodeA = ""; string plineNameA = ""; if (plineNameZz.Equals("一炼铸机")) { plineCodeA = "C001"; plineNameA = "一炼钢电炉"; } else if (plineNameZz.Equals("二炼铸机")) { plineCodeA = "C003"; plineNameA = "二炼钢电炉"; } else { plineCodeA = "C006"; plineNameA = "三炼钢电炉"; } double minSteel = 0; double maxSteel = 0; //查询出钢量上下限 DataTable dt2 = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.getBasePlineLg", new object[] { plineCodeA }, this.ob); if (dt2.Rows.Count > 0) { minSteel = double.Parse(dt2.Rows[0]["OUT_WT_MIN"].ToString()); maxSteel = double.Parse(dt2.Rows[0]["OUT_WT_MAX"].ToString()); } else { MessageUtil.ShowTips("铸造(" + plineNameZz + ")对应电炉(" + plineNameA + ")没有排产基础数据!"); break; } ugrA.Cells["FURNACE_MIN"].Value = (double.Parse(wt) / maxSteel).ToString("f1"); ugrA.Cells["FURNACE_MAX"].Value = (double.Parse(wt) / minSteel).ToString("f1"); #endregion //ArrayList list1 = new ArrayList(); //list1.Add(plineCodeZz); //list1.Add(plineNameZz); //list1.Add(strZbLeftWt); //list1.Add(strFlowNumMax); //list1.Add(strFurnaceNumMax); //list1.Add("1"); //list1.Add(gradeCode); //list1.Add(gradeName); //list1.Add(diameterGp); //list1.Add(wt); //CoreClientParam ccp = new CoreClientParam(); //ccp.ServerName = "com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis"; //ccp.MethodName = "querySetFurn"; //ccp.ServerParams = new object[] { list1 }; //ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); //if (ccp.ReturnCode != -1) //{ // string[] s = ccp.ReturnInfo.Split(','); // if (s.Length >= 4) { // ugrA.Cells["CASTWEIGHT"].Value = s[0]; // ugrA.Cells["FURNACENUMBER"].Value = s[1]; // ugrA.Cells["FIRST_FURNACE_Wt"].Value = s[2]; // ugrA.Cells["TAIL_FURNACE_Wt"].Value = s[3]; // } // else // { // if (ccp.ReturnInfo.Equals("")) // MessageUtil.ShowTips(ccp.ReturnInfo); // } //} } } PlanComm.WaitFromColse(this.Cursor); } /// /// 查询铸造基础表(最大流数,中包铸余) /// /// 铸机 /// private PlnBasePlineLzEntity GetBasePlineLz(string plinecode) { List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelMakingPlanChange.getBasePlineLz", new object[] { plinecode }, ob); if (listSource == null || listSource.Count == 0) { return null; } else { return listSource[0]; } } /// /// 修改铸造产线 /// private void doUpadatePlin() { ultraGridZgMs.UpdateData(); IQueryable urows = ultraGridZgMs.Rows.AsQueryable().Where("CHC = 'True'"); if (urows.Count() == 0) { MessageUtil.ShowTips("请勾选轧管订单详情。"); return; } ArrayList list = new ArrayList(); UltraGridRow row = ultraGridAnaly.ActiveRow; string diameter=row.Cells["DIAMETER_GP"].Text.ToString(); string cicGp=row.Cells["CIC_GP"].Text.ToString() ; string gradeNmae=row.Cells["GRADENAME"].Text.ToString(); string plineName = ""; foreach (UltraGridRow urow in urows) { ArrayList list1 = new ArrayList(); list1.Add(urow.Cells["PLINE_CODE_ZZ"].Value.ToString()); list1.Add(urow.Cells["PLINE_CODE_ZZ"].Text.ToString()); list1.Add(urow.Cells["PRO_PLAN_ID"].Value.ToString()); list1.Add(urow.Cells["GX_PLAN_NO"].Value.ToString()); list.Add(list1); if (plineName.Equals("")) { plineName = urow.Cells["PLINE_CODE_ZZ"].Text.ToString(); } } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis"; ccp.MethodName = "doUpadatePlin"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("修改成功!")) { dimarCic = diameter + cicGp + gradeNmae + plineName; doQuery("1"); doCalculate(); } } private void ultraGridAnaly_AfterRowActivate(object sender, EventArgs e) { UltraGridRow row = ultraGridAnaly.ActiveRow; if (row == null) return; string diameterGp=row.Cells["DIAMETER_GP"].Value.ToString(); string gradecode=row.Cells["GRADECODE"].Value.ToString(); string cicGp=row.Cells["CIC_GP"].Value.ToString(); string plineCodeZz=row.Cells["PLINE_CODE_ZZ"].Value.ToString(); doPlnZgQuery(diameterGp, gradecode, cicGp, "", "0", plineCodeZz); } //查询同钢种所有钢种索引码成分 private void doGraderOrd(string[] cic, string[] desginKey, string[] indexSeq) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doQueryGradecOll", new object[] { cic, desginKey, indexSeq }, this.ob); DataTable dat= GetCrossTable(dt); ultraGrid1.DataSource = dat; ultraGrid1.DataBind(); GridHelper.RefreshAndAutoSize(ultraGrid1); //this.ultraGrid1.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Always; this.ultraGrid1.DisplayLayout.Bands[0].Columns["钢种索引码"].MergedCellStyle = MergedCellStyle.Always; } /// 将DataTable的第二列的值转化为列(即将原来的行表,转化成交叉表,没有对应值则默认"0") /// /// public static DataTable GetCrossTable(DataTable dt) { if (dt == null || dt.Columns.Count != 4 || 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); } return result; } } /// /// 查询钢种成分元素 /// private void dolenSingleGp(string cicGp, string proPlanId, string gxPlanNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQuerySingle", new object[] { cicGp, proPlanId, gxPlanNo }, this.ob); GridHelper.CopyDataToDatatable(dt, dataTable3, true); } /// /// 查询轧管订单详情 /// private void doPlnZgQuery(string diameterGp, string gradecode, string cicGp, string lenGpSingle, string flag, string plineCodeZz) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQuery", new object[] { diameterGp, gradecode, cicGp, lenGpSingle, flag, plineCodeZz }, this.ob); GridHelper.CopyDataToDatatable(dt, dataTable4, true); foreach (UltraGridRow ugr in ultraGridZgMs.Rows) { //int numz = 0; //double wtz = 0; int numLj = 0; double wtLj = 0; //int batNum = 0; //double batWt = 0; //if (dtlz.Rows.Count > 0) //{ // //DataTable dtlz = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.queryLZDataZg", new object[] { ugr.Cells["PRO_PLAN_ID"].Value.ToString(), ugr.Cells["GX_PLAN_NO"].Value.ToString() }, ob); // DataRow[] drs = dtlz.Select("订单号 ='" + ugr.Cells["PRO_PLAN_ID"].Value.ToString() + "' AND 序号='" + ugr.Cells["GX_PLAN_NO"].Value.ToString() + "'"); // if (drs != null && drs.Length > 0) // { // //if(dtlz.Rows.Count>0){ // if (!drs[0]["装炉支"].ToString().Equals("")) // { // ugr.Cells["FurnNum"].Value = drs[0]["装炉支"].ToString(); // ugr.Cells["FurnWt"].Value = drs[0]["装炉吨"].ToString(); // numz = int.Parse(ugr.Cells["FurnNum"].Value.ToString()); // wtz = double.Parse(ugr.Cells["FurnWt"].Value.ToString()); // } // else // { // numz = 0; // wtz = 0; // } // if (!drs[0]["LJ支"].ToString().Equals("")) // { // ugr.Cells["LjNum"].Value = drs[0]["LJ支"].ToString(); // ugr.Cells["LjWeight"].Value = drs[0]["LJ吨"].ToString(); // numLj = int.Parse(ugr.Cells["LjNum"].Value.ToString()); // wtLj = double.Parse(ugr.Cells["LjWeight"].Value.ToString()); // } // else // { // numLj = 0; // wtLj = 0; // } // if (!drs[0]["出库支"].ToString().Equals("")) // { // ugr.Cells["OUT_NUM"].Value = drs[0]["出库支"].ToString(); // ugr.Cells["OUT_WT"].Value = drs[0]["出库吨"].ToString(); // batNum = int.Parse(ugr.Cells["OUT_NUM"].Value.ToString()); // batWt = double.Parse(ugr.Cells["OUT_WT"].Value.ToString()); // } // else // { // batNum = 0; // batWt = 0; // } // } //} //if (ugr.Cells["LjNum"].Value.Equals("0")) //{ // numLj = int.Parse(ugr.Cells["MATCH_NUM_IN"].Value.ToString()); // wtLj = double.Parse(ugr.Cells["MATCH_WT_IN"].Value.ToString()); //} //else //{ numLj = int.Parse(ugr.Cells["LjNum"].Value.ToString()); wtLj = double.Parse(ugr.Cells["LjWeight"].Value.ToString()); //} int gpNum = 0; double gpWt = 0; if (ugr.Cells["GPREQ_NUM"].Text.Equals("")) { gpNum = 0; gpWt = 0; } else { gpNum = int.Parse(ugr.Cells["GPREQ_NUM"].Value.ToString()); gpWt = double.Parse(ugr.Cells["GPREQ_WEIGHT"].Value.ToString()); } if (gpNum - numLj < 0) { ugr.Cells["Reall_NUM"].Value = "0"; } else { ugr.Cells["Reall_NUM"].Value = (gpNum - numLj).ToString(); } if (gpWt - wtLj < 0) { ugr.Cells["Reall_WT"].Value = "0"; } else { ugr.Cells["Reall_WT"].Value = (gpWt - wtLj).ToString(); } if (!ugr.Cells["Reall_WT"].Text.ToString().Equals("")) { } string[] groupCic = null; if (!ugr.Cells["CIC_GROUP_GP"].Text.Equals("")) { groupCic = ugr.Cells["CIC_GROUP_GP"].Text.ToString().Split(','); } string cic = ""; if (groupCic != null) { DataTable dtcic = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.getQueryGradeZl", new object[] { groupCic, "0" }, this.ob); if (dtcic.Rows.Count > 0) { for (int z = 0; z < dtcic.Rows.Count; z++) { cic += dtcic.Rows[z]["CIC"].ToString() + ","; } cic = cic.Substring(0, cic.Length - 1); } } ugr.Cells["CIC_GROUP_GP"].Value = cic; } if (dt.Rows.Count <= 0) { DataTable dt1 = new DataTable(); GridHelper.CopyDataToDatatable(dt1, dataTable3, true); } } private void ultraGridZgMs_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGridZgMs.ActiveRow; if (row == null) return; if (e.Cell.Column.Key.Equals("CRAFT_FILE_NO")) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.CorePlnZgMStoGp.selectCraftPath", new object[] { row.GetValue("PRO_PLAN_ID"), row.GetValue("GX_PLAN_NO"), row.GetValue("CRAFT_FILE_NO"), row.GetValue("CRAFT_SEQ") }, this.ob); if (dt.Rows.Count > 0) { string filePath = dt.Rows[0]["CRAFT_PATH"].ToString(); dlgOrderAskDown askDown = new dlgOrderAskDown(this.ob, filePath); askDown.Show(); } } else if (e.Cell.Column.Key.Equals("GRADENAME")) { string ordLnDlyPk = row.GetValue("ORD_LN_DLY_PK"); string proPlanId = row.GetValue("PRO_PLAN_ID"); string gxPlanNo = row.GetValue("GX_PLAN_NO"); string gradeCode = row.GetValue("GRADECODE"); string gradeCodeAll = row.GetValue("GRADECODE_ALL"); string diameter = row.GetValue("DIAMETER_GP"); if (gradeCode.Equals("")) { return; } string[] groupCic = null; if (!row.GetValue("GRADECODE").Equals("")) { groupCic = row.Cells["CIC_GROUP_GP"].Text.ToString().Split(','); } string cicGp = row.GetValue("CIC_GP"); string outsBilletfl = ""; if (row.Cells["OUTS_BILLET_FL"].Text.ToString().Equals("自炼")) { outsBilletfl = "0"; } else { outsBilletfl = "1"; } //int numz = 0; //double wtz = 0; //if (!row.Cells["FurnNum"].Text.ToString().Equals("")) //{ // numz = int.Parse(row.Cells["FurnNum"].Value.ToString()); // wtz = double.Parse(row.Cells["FurnWt"].Value.ToString()); //} int numLj = 0; double wtLj = 0; //if (!row.Cells["LjNum"].Text.ToString().Equals("")) //{ numLj = int.Parse(row.Cells["LjNum"].Value.ToString()); wtLj = double.Parse(row.Cells["LjWeight"].Value.ToString()); //} //int batNum = 0; //double batWt = 0; //if (!row.Cells["OUT_NUM"].Text.ToString().Equals("")) //{ // batNum = int.Parse(row.Cells["OUT_NUM"].Value.ToString()); // batWt = double.Parse(row.Cells["OUT_WT"].Value.ToString()); //} int num =numLj; FrmChangeGrade frmBomConfirm = new FrmChangeGrade(outsBilletfl, proPlanId, gxPlanNo, this.ob, groupCic, cicGp, gradeCodeAll, diameter,num); frmBomConfirm.ShowDialog(); if (frmBomConfirm.DialogResult == System.Windows.Forms.DialogResult.OK) { bool flag = frmBomConfirm.Flag; if (flag) { dimarCic = diameter + frmBomConfirm.GradeNmaeCic + row.GetValue("PLINE_NAME_ZZ"); doQuery("1"); }//如果有修改数据,则刷新页面 } } } private void ultraGridLenSig_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGridAnaly.ActiveRow; UltraGridRow row1 = ultraGridLenSig.ActiveRow; if (row1 == null) return; if (e.Cell.Column.Key.Equals("Query")) { string diameterGp = row.Cells["DIAMETER_GP"].Value.ToString(); string gradecode = row.Cells["GRADECODE"].Value.ToString(); string cicGp = row.Cells["CIC_GP"].Value.ToString(); string lenGpSingle = row1.Cells["LEN_GP_SINGLE"].Value.ToString(); string plineCodeZz = row.Cells["PLINE_CODE_ZZ"].Value.ToString(); doPlnZgQuery(diameterGp, gradecode, cicGp, lenGpSingle, "0", plineCodeZz); } } private void ultraGridAnaly_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow ugrA = ultraGridAnaly.ActiveRow; if (ugrA == null) return; string diameterGp = ugrA.Cells["DIAMETER_GP"].Value.ToString(); string gradecode = ugrA.Cells["GRADECODE"].Value.ToString(); string gradeName = ugrA.Cells["GRADENAME"].Value.ToString(); string cicGp = ugrA.Cells["CIC_GP"].Value.ToString(); string plineCodeZz = ugrA.Cells["PLINE_CODE_ZZ"].Value.ToString(); if (e.Cell.Column.Key.Equals("COMBINED")) { doPlnZgQuery(diameterGp, gradeName, cicGp, "", "1", plineCodeZz); } if (e.Cell.Column.Key.Equals("GRADENAME")) { string cicGpGroup = ""; string desginKey = ""; string indexSeq = ""; //PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow ugrb in ultraGridAnaly.Rows) { if (gradecode.Equals(ugrb.Cells["gradecode"].Text.ToString())) { cicGpGroup += ugrb.Cells["CIC_GP"].Text.ToString().Trim() + ","; DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.GpOptimize.FrmGradeAnalysis.doPlnZgQueryDesKEY", new object[] { ugrb.Cells["DIAMETER_GP"].Text.ToString().Trim(), ugrb.Cells["GRADECODE"].Value.ToString(), ugrb.Cells["CIC_GP"].Text.ToString().Trim(), ugrb.Cells["PLINE_CODE_ZZ"].Text.ToString().Trim() }, this.ob); if (dt.Rows.Count > 0) { desginKey += dt.Rows[0]["DESGIN_KEY"].ToString() + ","; indexSeq += dt.Rows[0]["INDEX_SEQ"].ToString() + ","; } } } cicGpGroup = cicGpGroup.Substring(0, cicGpGroup.Length - 1); string[] cicGpGrou = null; if (!cicGpGroup.Equals("")) { cicGpGrou = cicGpGroup.Split(','); } desginKey = desginKey.Substring(0, desginKey.Length - 1); string[] desginKey1 = null; if (!desginKey.Equals("")) { desginKey1 = desginKey.Split(','); } indexSeq = indexSeq.Substring(0, indexSeq.Length - 1); string[] indexSeq1 = null; if (!indexSeq.Equals("")) { indexSeq1 = indexSeq.Split(','); } doGraderOrd(cicGpGrou, desginKey1, indexSeq1); //PlanComm.WaitFromColse(this.Cursor); } } private void ultraGridZgMs_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugrA = ultraGridZgMs.ActiveRow; if (ugrA == null) return; string proPlanId = ugrA.Cells["PRO_PLAN_ID"].Value.ToString(); string gxPlanNo = ugrA.Cells["GX_PLAN_NO"].Value.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.queryZzPlin", new object[] { proPlanId, gxPlanNo }, this.ob); if (dt == null || dt.Rows.Count == 0) { ugrA.Cells["PLINE_CODE_ZZ"].Value = ""; return; } ugrA.Cells["PLINE_CODE_ZZ"].ValueList = PlanComm.GeneralValuelist(ref dt, "PLINE_CODE", "PLINE_NAME"); UltraGridRow row = ultraGridAnaly.ActiveRow; string cicGp = row.Cells["CIC_GP"].Value.ToString(); dolenSingleGp(cicGp, proPlanId, gxPlanNo); } private void ultraGridZgMs_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("PLINE_CODE_ZZ")) { ultraGridZgMs.UpdateData(); e.Cell.Row.Cells["PLINE_CODE_ZZ"].Value = e.Cell.Value.ToString(); //e.Cell.Row.Cells["PLINE_CODE_ZZ"].Value = e.Cell.Text; e.Cell.Row.Cells["PLINE_NAME_ZZ"].Value = e.Cell.Text; foreach (UltraGridRow row in ultraGridZgMs.Rows) { if (Convert.ToBoolean(row.Cells["CHC"].Text) == true) { row.Cells["PLINE_CODE_ZZ"].Value = e.Cell.Value.ToString(); //row.Cells["PLINE_CODE_ZZ"].Text = e.Cell.Text; row.Cells["PLINE_NAME_ZZ"].Value = e.Cell.Text; } } } } private void craftImg1_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow row = ultraGridAnaly.ActiveRow; UltraGridRow ugrA = ultraGridZgMs.ActiveRow; if (ugrA == null || row==null) return; ArrayList list = new ArrayList(); list.Add(row.Cells["CIC_GP"].Text.ToString()); list.Add(ugrA.Cells["PRO_PLAN_ID"].Value.ToString()); list.Add(""); list.Add(""); list.Add(row.Cells["Gradecode"].Text.ToString()); list.Add(row.Cells["Gradename"].Text.ToString()); list.Add(""); list.Add(""); list.Add(ugrA.Cells["GX_PLAN_NO"].Value.ToString()); FrmSteelProcessCard steCard = new FrmSteelProcessCard("", ob, list, "2"); steCard.ShowDialog(); bool flag = steCard.Falg; if (flag) { doQuery("1"); } } } }