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