using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using Infragistics.Win.UltraWinGrid;
using System.Threading;
using CoreFS.CA06;
using Core.Mes.Client.Common;
using Core.LgMes.Client.LgJobMgt;
namespace Core.LgMes.Client.lgJobMgt
{
public partial class FrmCutBilletDetails : frmStyleBase//CommonClientToServer
{
public bool On_Off_Thread = false;
#region " Valiable "
private DataSet _dsMid;
public bool DataChangedFlag = false;
private string _strWhere = "";
private Thread _refreshDataThread = null;
private DateTime LastUpdateTime;
#endregion
private DataTable steelSchTable, cutSchTable;//调度、切割指示表
private Hashtable routeHash = new Hashtable();//存放工艺路径
public string CCMN0 = "";
private string strOldBlockNo;
private string strOldCastNo;
private delegate void CallRefreshThreadDelegate();
private bool bExit = false;
private Hashtable cutHash = new Hashtable();
private Core.LgMes.Client.LgJobMgt.CommandClass _commClass;
private bool blText = false; //处理装载程序时执行Changed事情
private string _DEVICE_POSITION = ""; // 设备位置
private int _DEVICE_POS = 1; // 设备号
public string strV_BilletID = ""; //虚拟坯料号
public string strV_Heat_ID = ""; //虚拟炉号
public string strOrderNO = "";//订单行号
public string strProdOrderNO = "";//生产订单号
public string strSurplusFlag = "";//是否余材
public string strSteelCode = "";
public string strProductline = ""; //产线
public string strStandardsCode = "";//标准号
public string strStandardRemak = ""; //标准描述
public string strCustomer_Key = "";//客户参数号
public delegate void ReportSelect(string strCastNo, string strBlockNo);
public ReportSelect reportSelect;
public delegate void ReportHandSet(string strHeatID, int nBegin, int nEnd);
public ReportHandSet reportHandSet;
public int intCcm = -1;
public FrmCutBilletDetails()
{
InitializeComponent();
}
#region 界面属性值更改时
///
/// 切割时间属性更改
///
///
///
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
this.dtpCutStart.Enabled = this.chkCutTime.Checked;
this.dtpCutEnd.Enabled = this.chkCutTime.Checked;
}
///
/// 熔炼号属性更改
///
///
///
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (this.chkRlh.Checked)
{
this.txtHeatno.Enabled = true;
this.txtHeatno.BackColor = Color.White;
}
else
{
this.txtHeatno.Enabled = false;
this.txtHeatno.BackColor = Color.Gainsboro;
}
}
///
/// 铸机号属性更改
///
///
///
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
if (this.chkCcm.Checked)
{
if (this.CustomInfo.ToString() != "")
{
this.cmbCcm.Enabled = false;
this.cmbCcm.BackColor = Color.White;
}
else
{
this.cmbCcm.Enabled = true;
this.cmbCcm.BackColor = Color.White;
}
}
else
{
if (this.CustomInfo.ToString() != "")
{
this.cmbCcm.Enabled = false;
this.cmbCcm.BackColor = Color.White;
}
else
{
this.cmbCcm.Enabled = false;
this.cmbCcm.BackColor = Color.White;
}
}
}
///
/// 计划--铸机号属性更改
///
///
///
private void chkCcmNo_CheckedChanged(object sender, EventArgs e)
{
if (this.chkCcmNo.Checked)
{
if (this.CustomInfo.ToString() != "")
{
this.ccmNumCobo.Enabled = false;
this.ccmNumCobo.BackColor = Color.White;
}
else
{
this.ccmNumCobo.Enabled = true;
this.ccmNumCobo.BackColor = Color.White;
}
}
else
{
if (this.CustomInfo.ToString() != "")
{
this.ccmNumCobo.Enabled = false;
this.ccmNumCobo.BackColor = Color.White;
}
else
{
this.ccmNumCobo.Enabled = false;
this.ccmNumCobo.BackColor = Color.White;
}
}
}
///
/// 计划--转炉号属性更改
///
///
///
private void chkConNo_CheckedChanged(object sender, EventArgs e)
{
if (this.chkConNo.Checked)
{
this.combConNo.Enabled = true;
this.combConNo.BackColor = Color.White;
}
else
{
this.combConNo.Enabled = false;
this.combConNo.BackColor = Color.Gainsboro;
}
}
#endregion
///
/// 菜单栏
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Add":
if (!this.ultraExpandableGroupBox1.Expanded)
{
this.ultraExpandableGroupBox1.Expanded = true;
return;
}
Add();
break;
case "Delete":
Del();
break;
case "Update":
if (!this.ultraExpandableGroupBox1.Expanded)
{
this.ultraExpandableGroupBox1.Expanded = true;
return;
}
Edit();
break;
case "Query":
Query();
break;
case "plan":
Plan();
break;
case "Existplan"://显示切换
ShowToolBans();
break;
case "Exit"://显示切换
this.Close();
break;
}
}
///
/// 查询
///
public void Query()
{
LastUpdateTime = DateTime.Now;
this.GetSqlWhere();
this.GetData();
}
///
/// 设置查询条件
///
private void GetSqlWhere()
{
this._strWhere = " where 1=1 ";
if (this.chkCutTime.Checked)
{
this._strWhere += " and CUTTIME between to_date('"+Convert.ToDateTime(this.dtpCutStart.Value).ToString("yyyy-MM-dd HH:mm")+"','yyyy-MM-dd hh24:mi') "
+"and to_date('"+Convert.ToDateTime(this.dtpCutEnd.Value).ToString("yyyy-MM-dd HH:mm")+"','yyyy-MM-dd hh24:mi')";
}
if (this.chkRlh.Checked)
{
this._strWhere += " and HEATNO = '" + this.txtHeatno.Text.Trim()+ "'";
}
if (this.chkCcm.Checked)
{
this._strWhere += " and CCMID = '" + this.cmbCcm.SelectedValue + "'";
}
if (!chkCutTime.Checked && !chkRlh.Checked && !chkCcm.Checked)
{
//if (intCcm == -1)
//{
// this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
// + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') ";
//}
//if (intCcm > -1)
//{
// this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
// + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') and CCMID = '" + this.cmbCcm.SelectedValue + "'";
//}
if (this.CustomInfo.ToString() != "")
{
this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
+ "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') and CCMID = '" + this.cmbCcm.SelectedValue + "'";
}
else
{
this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
+ "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') ";
}
}
}
///
/// 查询语句
///
private void GetData()
{
try
{
string strOut = "";
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query1");
sqlList.Add(_strWhere + " order by cuttime asc,ccmid asc, heatno desc ");
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
DataSet ds=new DataSet();
_dsMid = new DataSet();
_dsMid.Tables.Add(dt);
strOut = CCP_LgEts.ReturnInfo;
if (_dsMid.Tables[0].Rows.Count > 0 && _dsMid != null)
{
this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
SetSteelSum();
}
else
{
try
{
((DataTable)uGrdCutPlan.DataSource).Rows.Clear();
}
catch (Exception)
{
}
}
string strOld = "";
string strNew = "";
string strOld_Order = "";
string strNew_Order = "";
Color c1 = Color.GhostWhite;
Color c2 = Color.MintCream;
Color c3 = c1;
Color color_OrderNo1 = Color.Blue;
Color color_OrderNo2 = Color.Black;
Color color_OrderNo3 = color_OrderNo1;
for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
{
UltraGridRow ugr = this.uGrdCutPlan.Rows[i];
strNew = ugr.Cells["HEATNO"].Value.ToString();
strNew_Order = ugr.Cells["PRODORDERNO"].Value.ToString();
if (strOld != strNew)
{
if (c3 == c1) c3 = c2;
else c3 = c1;
strOld = strNew;
}
ugr.Appearance.BackColor = c3;
if (strOld_Order != strNew_Order)
{
if (color_OrderNo3 == color_OrderNo1) color_OrderNo3 = color_OrderNo2;
else color_OrderNo3 = color_OrderNo1;
strOld_Order = strNew_Order;
}
ugr.Appearance.ForeColor = color_OrderNo3;
}
}
catch (Exception ex)
{
string strMsg = ex.Message;
}
}
///
/// 获取指定炉号的生产状态
///
///
///
private bool GetHeatState(string strHeatNo)
{
string strErr = "";
string strState = "";
bool blState = false;
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query2");
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
arry.Add(strHeatNo);
DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (strErr == "")
{
if (ds != null && ds.Tables[0].Rows.Count > 0)
strState = ds.Tables[0].Rows[0]["Heat_state"].ToString();
if (strState == "08" || strState == "09")
blState = true;
}
return blState;
}
///
/// 新增
///
private void Add()
{
LastUpdateTime = DateTime.Now;
string strLastFla = "";
//只有在连铸机生产或已生产完的
if (!GetHeatState(txtEditRlh.Text))
{
MessageBox.Show("炉号【" + txtEditRlh.Text + "】没有上连铸机生产,不能生成坯料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (this.uGrdCutPlan.Rows.Count < 1)
{
strLastFla = "N";
}
if (this.uGrdCutPlan.Rows.Count > 0)
{
UltraGridRow ugr = this.uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1];
strLastFla = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
}
if (strLastFla == "Y")
{
MessageBox.Show("请将本炉最后一块置成否后再增加支数");
return;
}
if (this.txtEditRlh.Text.Trim().Length == 0)
{
MessageBox.Show("请输入熔炼号!");
return;
}
else
{
string strHID = this.txtEditRlh.Text.Trim();
strHID = strHID.ToUpper();
if (!IsValidOfHeatNo(strHID))
return;
this.txtEditRlh.Text = strHID.ToUpper();
}
if (this.cmbEditCcm.Text.Trim().Length == 0)
{
MessageBox.Show("请输入铸机号!");
return;
}
if (this.cmbEditFlowNo.Text.Trim().Length == 0)
{
MessageBox.Show("请输入铸流号!");
return;
}
if (this.txtEditCutN.Text.Trim().Length == 0)
{
MessageBox.Show("请输入切割序号!");
return;
}
if (string.IsNullOrEmpty(this.strV_BilletID))
{
MessageBox.Show("请选择切割计划!");
return;
}
if (string.IsNullOrEmpty(strOrderNO))
{
MessageBox.Show("请选择切割计划!");
return;
}
ArrayList ar = GetCurrValue();
string strCastNo = ar[5].ToString();
string strHeatNo = ar[0].ToString();
int nHeatNum = 0;
for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
{
UltraGridRow ugrf = this.uGrdCutPlan.Rows[i];
if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
{
if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
{
int nInt = Convert.ToInt32(ugrf.Cells["CUTSEQNO"].Value.ToString());
if (nInt > nHeatNum) nHeatNum = nInt;
}
}
}
nHeatNum++;
ar[4] = nHeatNum.ToString();
ar[13] = DateTime.Now.ToString();
string strHeatNum = nHeatNum.ToString();
if (nHeatNum < 10) ar[16] = strHeatNo.Substring(0, 8) + "0" + strHeatNum;
else if (nHeatNum >= 100) ar[16] = strHeatNo.Substring(0, 8) + strHeatNum.Substring(1, 2);
else ar[16] = strHeatNo.Substring(0, 8) + strHeatNum;
if (ar == null)
{
MessageBox.Show("输入数据格式错误!");
return;
}
string strMsg = "本浇注位是" + CCMN0 + ",您已经标志标示了一个最后块, 操作失败!!!";
// if( comboBox6.Text == "是" ) nLastBlock = nLastBlock + 1;
// if( nLastBlock > 1 )
// {
// MessageBox.Show( strMsg ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
// return;
// }
int nCutSequence = -1;
//检查切割顺序号的合法性
try
{
nCutSequence = Convert.ToInt32(this.txtEditCutN.Text);
}
catch
{
MessageBox.Show("您输入的切割顺序号不对,应该输入数字,\r\n且要注意输入法采用半角。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//检查是否有两个相同的切割顺序
if (CheckDuplicatRec(nHeatNum))
{
MessageBox.Show("您在同一炉中设置了两个相同的切割顺序,操作失败!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
try
{
string strRecNo = DateTime.Now.ToString("yyyyMMddHHmmssfff");
string strSql = "";
string err = "";
float billetNum = 0;
float billetSum = 0;
string strHeatNo_a = "";
//检验实绩切割支数是否超出计划切割支数
if (CheckCutQty_PlanQty(this.txtEditRlh.Text.Trim().ToString(), strOrderNO, strProdOrderNO))
{
strOrderNO = ""; ;//订单行号21
strProdOrderNO= "";//生产订单号22
strSurplusFlag = "1";//是否余材23
}
string strErr = "";
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query4");
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
arry.Add(this.txtEditRlh.Text.Trim());
DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (err == "" && ds.Tables.Count > 0)
{
DataTable dtTemp = ds.Tables[0];
if (dtTemp.Rows.Count >= 1)
{
billetNum = dtTemp.Rows[0]["MaxId"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["MaxId"]) : 0;//最大切割序号
billetSum = dtTemp.Rows[0]["Sumw"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["Sumw"]) : 0;
}
}
billetSum = billetSum + Convert.ToSingle(this.txtEditWeight.Text.Trim());
if (billetSum > 180)
{
MessageBox.Show(strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
strHeatNo_a = this.txtEditRlh.Text.Trim().ToString();
string newbilletNum = (billetNum+1).ToString();
string PHao = strHeatNo_a.Substring(0, 8) + newbilletNum.PadLeft(3, '0');
strErr = "";
arry.Clear();
ccs.ob = ob;
arry.Add("FrmCutBilletDetails_Query5");
arry.Add(this.txtEditPH.Text.Trim());
DataSet dsCount = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (strErr == "" && dsCount.Tables.Count > 0)
{
if (dsCount.Tables[0].Rows.Count >= 1)
{
if (Convert.ToInt32(dsCount.Tables[0].Rows[0][0]) > 0)
{
MessageBox.Show(this.txtEditPH.Text.Trim() + " 坯料已存在,请重新增加!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
}
strErr = "";
arry.Clear();
ccs.ob = ob;
#region ArrtyList数组
arry.Add("FrmCutBilletDetails_Add");
arry.Add(this.txtEditRlh.Text.Trim());//熔炼号 0 熔炼号
arry.Add(this.textBox4.Text.Trim());//1 --连铸炉号
arry.Add(this.cmbEditCcm.Text);//铸机号 2 --铸机号
arry.Add(this.cmbEditFlowNo.Text);//铸流号3 --铸流号
arry.Add((string)(newbilletNum).ToString());//CUTSEQNO,CUTSEQNO 4 ,--切割序号
arry.Add(this.txtEditPnum.Text.Trim());//浇次号5 MOULDNO --浇次号
arry.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号6//HEATCNT,--浇次炉数
arry.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数7//HEATSEQ--炉内序号
arry.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度8// LENGTH--长度
arry.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度9 // WIDTH--宽度
arry.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度10// THICKNESS--厚度
arry.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量11--重量
arry.Add(GetSingle(this.textBox12.Text.Trim().ToString()).ToString());////是否定尺--------12 // SPECRULE SPECRULE, ,--是否定尺
arry.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间13// CUTTIME CUTTIME, ,--生产日期
arry.Add(this.cmbEditClass.Text.ToString());//班次14// SHIFTCODE,SHIFTCODE ,--班组
arry.Add((this.cmbEditEndBlock.Text == "是" ? "Y" : "N"));//是否末块15// LASTBILLETFLAG,LASTBILLETFLAG ,--是否最后一块
arry.Add(PHao);//this.textBox13.Text.Trim());//坯次号16// BILLETNO,BILLETNO ,--批号
arry.Add(strRecNo);//this.textBox14.Text.Trim());////坯料编码17// BILLETCODE,BILLETCODE ,--坯料编码
arry.Add(this.UserInfo.GetUserName());//add on 2009-04-23 记录操作人员 18// OPTPERSONNEL,OPTPERSONNEL ,--操作人员
arry.Add(strV_Heat_ID);//虚拟炉号19// V_HEAT_ID,V_HEAT_ID ,--虚拟炉号
arry.Add(strV_BilletID);//虚拟坯料号20// V_BILLETID, V_BILLETID,--虚拟批号
arry.Add(strOrderNO);//订单行号21// ORDERNO,ORDERNO ,--订单行号
arry.Add(strProdOrderNO);//生产订单号22// PRODORDERNO,PRODORDERNO ,--生产订单号
arry.Add(strSurplusFlag);//是否余材23// SURPLUSFLAG, SURPLUSFLAG,--是否余材
arry.Add(strSteelCode);//计划牌号24// STEELCODE,STEELCODE ,--计划牌号
arry.Add(strProductline);////坯料去向 25// productline,productline ,--坯料去向
arry.Add("0");// l2flag,l2flag ,--喷机号标识0
arry.Add("0");// resflag,resflag ,--刷新标识0
arry.Add(strStandardsCode);//标准号26// STANDARDSCODE,STANDARDSCODE ,--内控标准号
arry.Add(strStandardRemak);//标准描述27// STANDARDREMAK,STANDARDREMAK ,--内控标准号描述
arry.Add(strCustomer_Key);//客户参数号28// CUSTOMER_KEY)CUSTOMER_KEY ,--客户参数号
#endregion
string strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strErr);
if (!(strErr == null || strErr == ""))
{
MessageBox.Show("数据提交失败!");
}
else
{
DataRow dr = (this.uGrdCutPlan.DataSource as DataTable).NewRow();
for (int j = 0; j < dr.Table.Columns.Count; j++)
{
try
{
dr[j] = ar[j];
}
catch
{
dr[j] = DBNull.Value;
}
}
(this.uGrdCutPlan.DataSource as DataTable).Rows.InsertAt(dr, 0);
(this.uGrdCutPlan.DataSource as DataTable).AcceptChanges();
this.uGrdCutPlan.Rows[0].Activate();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Query();
if (uGrdCutPlan.Rows.Count > 0)
uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1].Activated = true;
}
///
/// 修改
///
private void Edit()
{
LastUpdateTime = DateTime.Now;
UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
if (ugr == null)
{
MessageBox.Show("请选择要删除的行!");
return;
}
if (this.uGrdCutPlan.ActiveRow == null)
{
MessageBox.Show("请选择所要修改的行!");
return;
}
if (this.txtEditRlh.Text.Trim().Length == 0)
{
MessageBox.Show("请输入熔炼号!");
return;
}
else
{
string strHID = this.txtEditRlh.Text.Trim();
strHID = strHID.ToUpper();
if (!IsValidOfHeatNo(strHID))
return;
this.txtEditRlh.Text = strHID.ToUpper();
}
if (this.txtEditPH.Text.Trim().Length == 0)
{
MessageBox.Show("请输入钢坯号!");
return;
}
if (this.cmbEditCcm.Text.Trim().Length == 0)
{
MessageBox.Show("请输入铸机号!");
return;
}
if (this.cmbEditFlowNo.Text.Trim().Length == 0)
{
MessageBox.Show("请输入铸流号!");
return;
}
if (this.txtEditCutN.Text.Trim().Length == 0)
{
MessageBox.Show("请输入切割序号!");
return;
}
ArrayList ar = GetCurrValue();//暂时不用
//if (ar == null)
//{
// MessageBox.Show("输入数据格式错误!");
// return;
//}
string strChildNo = this.txtEditBlock.Text.Trim();
if (strChildNo.Length == 0) strChildNo = "NULL";
//ar.Add( strChildNo );
int nSelCutNo = Convert.ToInt32(ugr.Cells["CUTSEQNO"].Value.ToString());
int nCutSequence = -1;
//检查切割顺序号的合法性
try
{
nCutSequence = Convert.ToInt32(this.txtEditCutN.Text);
}
catch
{
MessageBox.Show("您输入的切割顺序号不对,应该输入数字,\r\n且要注意输入法采用半角。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if(nCutSequence != nSelCutNo)
{
//检查是否有两个相同的切割顺序
if (CheckDuplicatRec(nCutSequence))
{
MessageBox.Show("您在同一路中设置了两个相同的切割顺序,这将导致记录重复,操作失败!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
string strLastFlag = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
//if( comboBox6.Text == "是" ) nLastBlock = nLastBlock + 1;
int nMaxCutNo = 0;
string strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
string strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
{
UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
{
if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
{
int nTempCutNo = Convert.ToInt32(ugrf.Cells["CUTSEQNO"].Value);
if (nTempCutNo > nMaxCutNo) nMaxCutNo = nTempCutNo;
}
}
}
string strMsg = "本浇注位是" + CCMN0 + ":" + Environment.NewLine + "修改数据禁用,请将最后一块的‘是’改为‘否’后再修改数据!!";
int nLastBlock = CheckLastBlockCount();//如果是最后一块,需要检查是否多置了标志
if (nLastBlock >= 1)
{
bool bShowMsg = true;
if (nSelCutNo == nMaxCutNo)
{
if (strLastFlag == "N" && cmbEditEndBlock.Text.Trim() == "是")
{
bShowMsg = false;
}
else if (strLastFlag == "Y" && cmbEditEndBlock.Text.Trim() == "否")
{
bShowMsg = false;
}
else
{
bShowMsg = true;
}
}
if (bShowMsg)
{
MessageBox.Show(strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (strLastFlag == "N" && cmbEditEndBlock.Text.Trim() == "是")
{
if (nSelCutNo != nMaxCutNo)
{
MessageBox.Show("请在最后一行置为'是'", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
try
{
string strOut = "";
string strReturn = "";
ArrayList arry = new ArrayList();
arry.Clear();
arry.Add("FrmCutBilletDetails_Edit");
arry.Add(this.txtEditRlh.Text.Trim());//熔炼号 0
arry.Add(this.cmbEditCcm.Text);//铸机号 1
arry.Add(this.cmbEditFlowNo.Text);//铸流号2
arry.Add(this.txtEditCutN.Text.Trim());//切割序号3
arry.Add(this.txtEditPnum.Text.Trim());//浇次号4
//ar.Add(GetSingle(this.textBox6.Text.Trim().ToString()));//浇次内序号
//ar.Add(GetSingle(this.textBox7.Text.Trim().ToString()));//浇次内炉数
//ar.Add(GetSingle(this.textBox3.Text.Trim().ToString()));//长度
//ar.Add(GetSingle(this.textBox9.Text.Trim().ToString()));//宽度
arry.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号5
arry.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数6
arry.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度7
arry.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度8
arry.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度9
arry.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量10
//ar.Add(GetSingle(this.textBox10.Text.Trim().ToString()));//厚度
//ar.Add(GetSingle(this.textBox11.Text.Trim().ToString()));//重量
//ar.Add(GetSingle(this.textBox12.Text.Trim().ToString()));//暂时不用
arry.Add(ugr.Cells["SPECRULE"].Value.ToString());//是否定尺--------
arry.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间
arry.Add(this.cmbEditClass.SelectedValue);//班次SelectedValue cmbEditClass
if (this.cmbEditEndBlock.Text == "是")
arry.Add("Y");
else//是否末块
//arry.Add(this.comboBox6.SelectedIndex);
arry.Add("N");
arry.Add(this.txtEditPH.Text.Trim());//坯次号
//ar.Add(this.textBox14.Text.Trim());//暂时不用
arry.Add(this.UserInfo.GetUserName()); //add on 2009-04-23 记录操作人员
arry.Add(ugr.Cells["BILLETCODE"].Value.ToString());//坯料编码---------
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strOut);
if (!(strOut==null||strOut==""))
{
MessageBox.Show("数据提交失败!\n" + strOut);
}
else
{
//this.ultraGrid1.UpdateData();
Query();
if (uGrdCutPlan.Rows.Count > 0)
uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1].Activated = true;
//if (i == this.ultraGrid1.Rows.Count - 1)
//{
// ugr.Activated = true;
// ugr.Selected = true;
//}
//else
//{
// ugr.Activated = false;
// ugr.Selected = false;
//}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
///
/// 删除
///
private void Del()
{
LastUpdateTime = DateTime.Now;
int i = 0;
int nCutNo = 0;
int nSelCutNo = 0;
string strHeatNo = "";
string strCastNo = "";
string strErr = "";
UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
if (ugr == null)
{
MessageBox.Show("请选择要删除的行!");
return;
}
strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query6");
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
arry.Add(strCastNo);
arry.Add(strHeatNo);
DataSet dsCount = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (strErr == "" && dsCount != null)
{
if (dsCount.Tables[0].Rows.Count > 0)
nSelCutNo = Convert.ToInt16(dsCount.Tables[0].Rows[0][0]);
}
for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
{
UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
{
if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
{
nCutNo++;
}
}
}
if (nCutNo != nSelCutNo)
{
MessageBox.Show("选择的钢坯不是本浇次本炉最后一支,请选择要最后一行删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
FrmSelDel frm = new FrmSelDel(ob);
frm.ShowDialog();
i = ugr.Index;
string strWhere = "";
if (frm._Flag == "A")
{
strWhere = " where BILLETCODE = '" + ugr.Cells["BILLETCODE"].Value.ToString() + "'";
}
else if (frm._Flag == "B")
{
strWhere = " where HEATNO = '" + ugr.Cells["HEATNO"].Value.ToString() + "'";
}
else
{
return;
}
try
{
string strsql = "delete stl_incision " + strWhere + "";
string strsql_old = "delete J#stl_incision " + strWhere + "";
CoreClientParam ccp_K = new CoreClientParam();
ccp_K.ServerName = "Core.LgMes.Server.DEV.Methods.DEVPublicMethods";
ccp_K.MethodName = "UpdateMethods";
ccp_K.ServerParams = new object[] { strsql };
ExecuteNonQuery(ccp_K, CoreInvokeType.Internal);
//strerr = ccp_K.ReturnInfo.ToString();
string strOut = ccp_K.ReturnInfo.ToString();
strOut = "";
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "Core.LgMes.Server.DEV.Methods.DEVPublicMethods";
ccp.MethodName = "UpdateMethods";
ccp.ServerParams = new object[] { strsql_old };
ExecuteNonQuery(ccp_K, CoreInvokeType.Internal);
strOut = ccp_K.ReturnInfo.ToString();
if (strOut!= "")
{
MessageBox.Show(strOut, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
if (frm._Flag == "B")
{
this.GetSqlWhere();
this.GetData();
return;
}
this.uGrdCutPlan.ActiveRow.Delete(false);
this.uGrdCutPlan.UpdateData();
try
{
this.uGrdCutPlan.Rows[i].Activate();
}
catch
{
int count = this.uGrdCutPlan.Rows.Count;
if (count > 0)
this.uGrdCutPlan.Rows[count - 1].Activate();
}
}
///
/// 计划查询
///
private void Plan()
{
if (bHandleCoup)
{
bHandleCoup = false;
}
else
{
bHandleCoup = true;
if (_dsMid != null && _dsMid.Tables.Count > 0)
{
_dsMid.Tables[0].Rows.Clear();
this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
uGrdCutPlan.DataBind();
uGrdCutPlan.Refresh();
}
}
//上次开始的计时更新时间(开始用到)
LastUpdateTime = DateTime.Now;
strOldBlockNo = "";
strOldCastNo = "";
//将两个grid利用FixRow分开
SplitTwoGrid();
//装载两个对应关系的数据
RalationUIChange();
}
///
/// 显示切换
///
private void ShowToolBans()
{
if (this.panel2.Visible)
{
//计划框体展现
this.panel2.Visible = false;
this.ultraExpandableGroupBox1.Expanded = false;
}
else
{
//计划框体展现
this.panel2.Visible = true;
this.ultraExpandableGroupBox1.Expanded = true;
}
}
//将两个grid利用FixRow分开
///
/// 将两个grid利用FixRow分开
///
private void SplitTwoGrid()
{
this.uGrdCutPlan.DisplayLayout.Override.FixedRowsLimit = -1;
this.uGrdCutPlan.DisplayLayout.Override.FixedRowStyle = FixedRowStyle.Default;
this.uGrdCutPlan.DisplayLayout.Override.FixedRowIndicator = FixedRowIndicator.Default;
this.uGrdCutPlan.DisplayLayout.Override.SpecialRowSeparator = SpecialRowSeparator.Default;
this.uGrdCutPlan.DisplayLayout.Override.SpecialRowSeparatorHeight = -1;
}
//装载两个对应关系的数据
///
/// 装载两个对应关系的数据
///
private void RalationUIChange()
{
if (bHandleCoup)
{
//ultraToolbarsManager1.Toolbars[0].Tools[5].SharedProps.Caption = "关联察看";
}
else
{
// ultraToolbarsManager1.Toolbars[0].Tools[5].SharedProps.Caption = "单独查询";
}
}
//切换到手动匹配模式
private bool bHandleCoup = false;
///
/// 获取参数(新增、修改)
///
///
private ArrayList GetCurrValue()
{
ArrayList ar = new ArrayList();
//ar.Clear();
try
{
ar.Add(this.txtEditRlh.Text.Trim());//熔炼号 0
ar.Add(this.textBox4.Text.Trim());////连铸炉号 1
ar.Add(this.cmbEditCcm.Text);//铸机号 2
ar.Add(this.cmbEditFlowNo.Text);//铸流号3
ar.Add(this.txtEditCutN.Text.Trim());//切割序号4
ar.Add(this.txtEditPnum.Text.Trim());//浇次号5
ar.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号6
ar.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数7
ar.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度8
ar.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度8
ar.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度10
ar.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量11
ar.Add(GetSingle(this.textBox12.Text.Trim().ToString()));////是否定尺--------12
ar.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间13
//
ar.Add(this.cmbEditClass.SelectedIndex);//班次14
if (this.cmbEditEndBlock.Text == "是")
ar.Add("Y");
else//是否末块15
ar.Add("N");
ar.Add(this.txtEditPH.Text.Trim());//坯次号16
ar.Add(this.textBox14.Text.Trim());////坯料编码17
ar.Add(this.UserInfo.GetUserName()); //add on 2009-04-23 记录操作人员 18
ar.Add(strV_Heat_ID);//虚拟炉号19
ar.Add(strV_BilletID);//虚拟坯料号20
ar.Add(strOrderNO);//订单行号21
ar.Add(strProdOrderNO);//生产订单号22
ar.Add(strSurplusFlag);//是否余材23
ar.Add(strSteelCode);//计划牌号24
ar.Add(strProductline);////坯料去向 25
ar.Add(strStandardsCode);//标准号26
ar.Add(strStandardRemak);//标准描述27
ar.Add(strCustomer_Key);//客户参数号28
return ar;
}
catch
{
return null;
}
}
private object GetSingle(string str)
{
if (str == "")
return "null";
else
return Convert.ToSingle(str);
}
///
/// 本函数检查是否有重复的记录( 重点是切割顺序 )
///
///
///
private bool CheckDuplicatRec(int nCutSeqence)
{
// true 不合法
if (nCutSeqence == -1) return true;
//再次在恰当的数据源查找
DataTable dtFind = uGrdCutPlan.DataSource as DataTable;
//展现的数据行数
try
{
foreach (DataRow dr in dtFind.Rows)
{
int nInt = Convert.ToInt32(dr["CUTSEQNO"].ToString());
if (nCutSeqence == nInt)
return true;
}
}
catch { }
//false 合法
return false;
}
///
/// 本函数检查是否有两个记录都标示是最后一块
///
///
private int CheckLastBlockCount()
{
/*//首先停止现程的扫描
LastUpdateTime = DateTime.Now;
//再次在恰当的数据源查找
DataTable dtFind = ultraGrid1.DataSource as DataTable;
//展现的数据行数
//ultraGrid1.Rows.Count+1
int nRowCount = dtFind.Rows.Count;
int CheckCount = 0;
int MaxRows =0;
foreach( DataRow dr in dtFind.Rows )
{
MaxRows=MaxRows+1;
if (MaxRows==(ultraGrid1.Rows.Count))
break;
if( dr["LASTBILLETFLAG"].ToString() == "Y" )
CheckCount = CheckCount + 1;
}*/
bool bHasLastCutBillet = false;
string strCastNo = "";
string strHeatNo = "";
int CheckCount = 0;
UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
{
UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
{
if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
{
if (ugrf.Cells["LASTBILLETFLAG"].Value.ToString() == "Y")
{
bHasLastCutBillet = true;
break;
}
}
}
}
if (bHasLastCutBillet) CheckCount = 1;
else CheckCount = 0;
return CheckCount;
}
///
/// 统计产量
///
private void SetSteelSum()
{
try
{
UltraGridBand band = this.uGrdCutPlan.DisplayLayout.Bands[0];
band.Summaries.Clear();
SummarySettings summary = band.Summaries.Add(SummaryType.Count, band.Columns["HEATNO"]);
summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
summary.DisplayFormat = "合计:";
summary = band.Summaries.Add(SummaryType.Sum, band.Columns["WEIGHT"]);
summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
summary.DisplayFormat = " {0:#####.00}";
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
summary.Appearance.ForeColor = Color.DarkBlue;
summary.Appearance.BackColor = Color.White;
band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
}
catch (Exception ex) { string strMsg = ex.Message;};
}
private void FrmCutBilletDetails_Load(object sender, EventArgs e)
{
string strKey = "";
if (this.CustomInfo.ToString() != "")
{
if (this.Tag != null)
{
_DEVICE_POSITION = "CCM" + this.Tag.ToString().Substring(0, 1);
_DEVICE_POS = Convert.ToInt32(this.Tag.ToString().Substring(0, 1));
}
else
{
_DEVICE_POSITION = this.CustomInfo.ToString();// this.Key.Substring(this.Key.Length - 5, 5);
int aa = Convert.ToInt32(this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1));
_DEVICE_POS = Convert.ToInt32(this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1));
}
CCMN0= this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1);
}
uGrdCutPlan.DisplayLayout.Appearance.FontData.SizeInPoints = 10;
this.dtpCutStart.Text = System.DateTime.Today.AddDays(-2).ToString("yyyy-MM-dd") + " 00:00";
this.dtpCutEnd.Text = System.DateTime.Today.ToString("yyyy-MM-dd") + " 23:59";
if (_DEVICE_POS == 2 || _DEVICE_POS == 3)
{
uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[1].DisplayText = "1流";
uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[2].DisplayText = "2流";
uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[3].DisplayText = "3流";
}
InitSteel(); //初始化Grid牌号信息
// GetSqlWhere();
// GetData();
//OpenFromGetData();
InitComboBoxSource();
if (_DEVICE_POS > -1)
{
cmbEditCcm.SelectedIndex = _DEVICE_POS;
cmbEditCcm.Enabled = false;
cmbCcm.SelectedIndex = _DEVICE_POS;
intCcm = _DEVICE_POS;
}
strOldBlockNo = "";
strOldCastNo = "";
////计划框体展现
this.panel2.Visible = true;
this.ultraExpandableGroupBox1.Expanded = true;
CheckForIllegalCrossThreadCalls = false;
blText = true;
this.txtEditCutN.TextChanged += new System.EventHandler(this.textBox5_TextChanged);
//刷新线程
ThreadStart ts = new ThreadStart(SetDataThread);
_refreshDataThread = new Thread(ts);
_refreshDataThread.Name = "RefreshData";
_refreshDataThread.Start();
bHandleCoup = true;
bExit = false;
#region 切割信息
dtpCutTime.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
steelSchTable = new DataTable("steelSchTable");
cutSchTable = new DataTable("cutSchTable");
createTable();
this.uGrdPlanInfo.DataSource = steelSchTable;
this.uGrdCutInfo.DataSource = cutSchTable;
setGrid1View();
InitComboBoxSource_A();
this.combConNo.SelectedIndex = 0;
if (this.CustomInfo.ToString() != "")
{
//分铸机
if (intCcm == -1)
{
this.ccmNumCobo.SelectedIndex = 0;
}
else
{
this.ccmNumCobo.SelectedIndex = intCcm;
chkCcmNo.Checked = true;
cmbCcm.Enabled = false;//铸机号
cmbCcm.SelectedIndex = intCcm;
ccmNumCobo.Enabled = false;
chkCcm.Checked = true;
cboZJH.SelectedIndex = intCcm;
cboZJH.Enabled = false;
}
}
else
{
chkCcm.Enabled = true; ;
cmbCcm.Enabled=false;//铸机号
chkCcmNo.Enabled = true;
ccmNumCobo.Enabled=false;
cboZJH.Enabled=true;
cmbEditCcm.Enabled = true;
}
this.queryBtn_Click(null, new EventArgs());
#endregion
}
///
/// 初始化Grind牌号
///
private void InitSteel()
{
string strErr = "";
uGrdCutPlan.DisplayLayout.ValueLists.Add("SteelCode");
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query12");
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
DataSet dsSteel = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (strErr == "" && dsSteel != null)
{
//初始经Grid牌号字段数据集
for (int i = 0; i < dsSteel.Tables[0].Rows.Count; i++)
{
uGrdCutPlan.DisplayLayout.ValueLists["SteelCode"].ValueListItems.Add(dsSteel.Tables[0].Rows[i]["SteelCode"].ToString(), dsSteel.Tables[0].Rows[i]["Steel"].ToString());
}
//绑定单位
uGrdCutPlan.DisplayLayout.Bands[0].Columns["SteelCode"].ValueList = uGrdCutPlan.DisplayLayout.ValueLists["SteelCode"];
}
}
///
/// 验证炉号
///
///
///
private bool IsValidOfHeatNo(string strSmeltingID)
{
if (strSmeltingID == "")
return false;
if (strSmeltingID.Length != 10)
{
return false;
}
return true;
}
public void TimerRefresh()
{
LastUpdateTime = DateTime.Now;
this.GetSqlWhere();
this.RefreshTable();
}
private void InitComboBoxSource()
{
this.cmbEditClass.DataSource = GetDutyData();
this.cmbEditClass.DisplayMember = "name";
this.cmbEditClass.ValueMember = "id";
this.cmbEditCcm.DataSource = GetCcmData();
this.cmbEditCcm.DisplayMember = "name";
this.cmbEditCcm.ValueMember = "id";
this.cmbCcm.DataSource = GetCcmData();
this.cmbCcm.DisplayMember = "name";
this.cmbCcm.ValueMember = "id";
this.cmbEditFlowNo.DataSource = GetFlowData();
this.cmbEditFlowNo.DisplayMember = "name";
this.cmbEditFlowNo.ValueMember = "id";
this.cmbEditEndBlock.DataSource = GetStatusData();
this.cmbEditEndBlock.DisplayMember = "name";
this.cmbEditEndBlock.ValueMember = "id";
}
///
/// 班次班组
///
///
private DataTable GetDutyData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
dt.Rows.Add(new object[] { "11", "白班甲组" });
dt.Rows.Add(new object[] { "12", "白班乙组" });
dt.Rows.Add(new object[] { "13", "白班丙组" });
dt.Rows.Add(new object[] { "14", "白班丁组" });
dt.Rows.Add(new object[] { "21", "中班甲组" });
dt.Rows.Add(new object[] { "22", "中班乙组" });
dt.Rows.Add(new object[] { "23", "中班丙组" });
dt.Rows.Add(new object[] { "24", "中班丁组" });
dt.Rows.Add(new object[] { "31", "夜班甲组" });
dt.Rows.Add(new object[] { "32", "夜班乙组" });
dt.Rows.Add(new object[] { "33", "夜班丙组" });
dt.Rows.Add(new object[] { "34", "夜班丁组" });
dt.AcceptChanges();
return dt;
}
///
/// 铸机号
///
///
private DataTable GetCcmData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
//dt.Rows.Add(new object[] { "0", "0#铸机" });
dt.Rows.Add(new object[] { "1", "1#铸机" });
dt.Rows.Add(new object[] { "2", "2#铸机" });
dt.Rows.Add(new object[] { "3", "3#铸机" });
//dt.Rows.Add(new object[] { "4", "4#铸机" });
dt.AcceptChanges();
return dt;
}
///
/// 是否是本来末块
///
///
private DataTable GetStatusData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
dt.Rows.Add(new object[] { "Y", "是" });
dt.Rows.Add(new object[] { "N", "否" });
dt.AcceptChanges();
return dt;
}
///
/// 流号
///
///
private DataTable GetFlowData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
if (_DEVICE_POS == 2 || _DEVICE_POS == 3)
{
//dt.Rows.Add(new object[] { "1", "0流" });
dt.Rows.Add(new object[] { "2", "1流" });
dt.Rows.Add(new object[] { "3", "2流" });
dt.Rows.Add(new object[] { "4", "3流" });
dt.Rows.Add(new object[] { "5", "4流" });
}
else
{
dt.Rows.Add(new object[] { "1", "1流" });
dt.Rows.Add(new object[] { "2", "2流" });
dt.Rows.Add(new object[] { "3", "3流" });
dt.Rows.Add(new object[] { "4", "4流" });
//dt.Rows.Add(new object[] { "5", "5流" });
}
dt.AcceptChanges();
return dt;
}
///
///
///
private void RefreshTable()
{
//将Grid的左侧移动到开始位置
Infragistics.Win.UltraWinGrid.Scrollbars scrollbars = this.uGrdCutPlan.DisplayLayout.Scrollbars;
if (scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Automatic ||
scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Both ||
scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Vertical)
{
this.uGrdCutPlan.DisplayLayout.ColScrollRegions[0].Position = 0;
}
try
{
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query13");
sqlList.Add(_strWhere + " order by cuttime asc,ccmid asc, heatno desc ");
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
//_dsMid.Tables.Add(dt);
this.uGrdCutPlan.BeginUpdate(); //避免重画
if (_dsMid != null && _dsMid.Tables.Count > 0)
{
if (_dsMid != null && _dsMid.Tables.Count > 0)
_dsMid.Tables[0].Rows.Clear();
}
DataSet dsTemp = new DataSet();
dsTemp.Tables.Add(dt);
if (dsTemp.Tables[0].Rows.Count > 0)
{
_dsMid = dsTemp;
this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
}
dsTemp.Dispose();
//准许重画
this.uGrdCutPlan.EndUpdate();
string strOld = "";
string strNew = "";
string strOld_Order = "";
string strNew_Order = "";
Color c1 = Color.GhostWhite;//Color.White;
Color c2 = Color.MintCream;//Color.GhostWhite;//Color.LightCyan;
Color c3 = c1;
Color color_OrderNo1 = Color.Blue;
Color color_OrderNo2 = Color.Black;
Color color_OrderNo3 = color_OrderNo1;
//同时定位到最后一行
for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
{
UltraGridRow ugr = this.uGrdCutPlan.Rows[i];
strNew = ugr.Cells["HEATNO"].Value.ToString();
if (i == this.uGrdCutPlan.Rows.Count - 1)
{
ugr.Activated = true;
ugr.Selected = true;
}
else
{
ugr.Activated = false;
ugr.Selected = false;
}
if (strOld != strNew)
{
if (c3 == c1) c3 = c2;
else c3 = c1;
strOld = strNew;
}
ugr.Appearance.BackColor = c3;
if (strOld_Order != strNew_Order)
{
if (color_OrderNo3 == color_OrderNo1) color_OrderNo3 = color_OrderNo2;
else color_OrderNo3 = color_OrderNo1;
strOld_Order = strNew_Order;
}
ugr.Appearance.ForeColor = color_OrderNo3;
}
}
catch (Exception ex)
{
string strMsg = ex.Message;
}
}
///
/// 切割顺序属性更改事件
///
///
///
private void textBox5_TextChanged(object sender, System.EventArgs e)
{
try
{
this.txtEditPH.Text = "";
if (this.txtEditCutN.Text.Trim().Length == 0)
return;
if (this.txtEditRlh.Text.Trim().Length == 0 && blText == false)
{
MessageBox.Show("请先输入熔炼号!");
return;
}
else
{
string strHID = this.txtEditRlh.Text.Trim();
strHID = strHID.ToUpper();
if (!IsValidOfHeatNo(strHID))
return;
this.txtEditRlh.Text = strHID.ToUpper();
}
int cutno = Convert.ToInt32(this.txtEditCutN.Text.Trim());
string heatno = this.txtHeatno.Text.Trim();
string strCutNo = "";
strCutNo = cutno.ToString();
if (strCutNo.Length == 1) strCutNo = "0" + strCutNo;
if (strCutNo.Length == 3)
{
int nNum = cutno;
if (nNum >= 100 && nNum < 110) strCutNo = "A" + strCutNo.Substring(2, 1);
if (nNum >= 110 && nNum < 120) strCutNo = "B" + strCutNo.Substring(2, 1);
if (nNum >= 120 && nNum < 130) strCutNo = "C" + strCutNo.Substring(2, 1);
if (nNum >= 130 && nNum < 140) strCutNo = "D" + strCutNo.Substring(2, 1);
if (nNum >= 140 && nNum < 150) strCutNo = "E" + strCutNo.Substring(2, 1);
if (nNum >= 150 && nNum < 160) strCutNo = "F" + strCutNo.Substring(2, 1);
if (nNum >= 160 && nNum < 170) strCutNo = "G" + strCutNo.Substring(2, 1);
if (nNum >= 170 && nNum < 180) strCutNo = "H" + strCutNo.Substring(2, 1);
if (nNum >= 180 && nNum < 190) strCutNo = "J" + strCutNo.Substring(2, 1);
}
if (strCutNo.Length >= 3 && cutno >= 190)
{
MessageBox.Show("请先切割序号过大!!!,最大不能超过190");
this.txtEditCutN.Text = "";
return;
}
if (heatno.Trim().Length > 0)
this.txtEditPH.Text = heatno.Substring(1) + strCutNo;
blText = false;
}
catch
{
}
}
public void GetCutPromptFromServer()
{
try
{
string strDevNo = CCMN0.Substring(0, 1);
int nDevNo = Convert.ToInt16(strDevNo);
if (nDevNo == 0) nDevNo = 4;
string strOut = "";
Hashtable htl=new Hashtable ();
GetCuttinPrompt(nDevNo, out htl, out strOut);
if (strOut == "")
{
cutHash = htl;
}
else
{
cutHash.Clear();
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
cutHash.Clear();
}
}
public void GetCuttinPrompt(int nDevNo,out Hashtable hsa,out string errs )//ReturnObject
{
Hashtable hash = new Hashtable();
string strHeatNo = "";
float fltFirstWeight = 0;
float fltMouldWeight = 0;
float fltNetWeight = 0;
int nForecastNum = 0;
int nCutBilletNum = 0;
int nRemainNum = 0;
float sumBillet = 0;
string _DEVICE_POSITION = "CCM01"; // 设备位置
string err = "";
string heatnonoy = "";
int intRealityPredictNum = 0; //实际预测支数
int intCastNum = 0; //浇次总支数
string strHeatNoing = ""; //正在浇的炉号
float flBilletweight = 0; //米单重
string strCast_No = ""; //浇次号
float fltFcpWeight = 0; //副产品重量(切头、挑废等)
try
{
if (nDevNo == 1)
{
DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM01_DEVICE");
if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
{
hsa = null;
errs = "";
}
DataRow dr = TrackInfoDs.Tables[0].Rows[0];
strHeatNoing = dr["OBJECTID"].ToString();
if (dr["OBJECTPOS"].ToString() == "CCM01_DEVICE" || dr["OBJECTID"] == null)
{
TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
if (span.TotalMinutes > 80)
{
hsa = hash;
errs = "浇铸已结束";
}
}
}
if (nDevNo == 2)
{
DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM02_DEVICE");
if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
{
hsa = null;
errs = "";
}
DataRow dr = TrackInfoDs.Tables[0].Rows[0];
strHeatNoing = dr["OBJECTID"].ToString();
if (dr["OBJECTPOS"].ToString() == "CCM02_DEVICE" || dr["OBJECTID"] == null)
{
TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
if (span.TotalMinutes > 80)
{
hsa=hash;
errs="浇铸已结束";
//return(hsa,err);
}
}
}
if (nDevNo == 3)
{
DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM03_DEVICE");
if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
{
hsa = null;
errs = "";
}
DataRow dr = TrackInfoDs.Tables[0].Rows[0];
strHeatNoing = dr["OBJECTID"].ToString();
if (dr["OBJECTPOS"].ToString() == "CCM03_DEVICE" || dr["OBJECTID"] == null)
{
TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
if (span.TotalMinutes > 80)
{
hsa = hash;
errs = "浇铸已结束";
}
}
}
if (nDevNo == 4)
{
DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM04_DEVICE");
if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
{
hsa = null;
errs = "";
}
DataRow dr = TrackInfoDs.Tables[0].Rows[0];
strHeatNoing = dr["OBJECTID"].ToString();
if (dr["OBJECTPOS"].ToString() == "CCM04_DEVICE" || dr["OBJECTID"] == null)
{
TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
if (span.TotalMinutes > 80)
{
hsa = hash;
errs = "浇铸已结束";
}
}
}
string strErr = "";
ArrayList arry = new ArrayList();
CommonClientToServer ccs = new CommonClientToServer();
DataSet ds = new DataSet();
//获取切割炉号
if (nDevNo == 1)
{
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query14");
ccs.ob = this.ob;
arry.Add(nDevNo);
}
if (nDevNo == 2)
{
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query14");
ccs.ob = this.ob;
arry.Add(nDevNo);
}
if (nDevNo == 3)
{
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query14");
ccs.ob = this.ob;
arry.Add(nDevNo);
}
if (nDevNo == 4)
{
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query14");
ccs.ob = this.ob;
arry.Add(nDevNo);
}
ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count >= 1)
{
strHeatNo = dt.Rows[0][0].ToString();
}
}
if (strHeatNo != "")
{
string str = " WHERE heatno = '" + strHeatNo.Substring(5, 8) + "' AND stationcode = '" + strHeatNo.Substring(1, 2) + "' AND disposaltime = '" + strHeatNo.Substring(3, 2) + "'";
string strOut = "";
ds = null;
arry.Clear();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query15");
sqlList.Add(str);
sqlList.Add(str);
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
ds.Tables.Add(dt);
if (err == "" && ds.Tables.Count > 0)
{
dt = null;
dt = ds.Tables[0];
if (dt.Rows.Count >= 1)
{
fltFirstWeight = Convert.ToSingle(dt.Rows[0][0]);
fltMouldWeight = Convert.ToSingle(dt.Rows[0][1]);
fltNetWeight = fltFirstWeight - fltMouldWeight;
}
}
err = "";
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query16");
arry.Add(strHeatNo.Substring(5));
ccs.ob = ob;
ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (err == "" && ds.Tables.Count > 0)
{
dt = null;
dt = ds.Tables[0];
if (dt.Rows.Count >= 1)
{
nCutBilletNum = Convert.ToInt16(dt.Rows[0][0]);
sumBillet = Convert.ToSingle(dt.Rows[0][1]);
}
else
{
nCutBilletNum = 0;
sumBillet = 0;
}
}
if (nCutBilletNum > 0 && sumBillet > 0)
{
err = "";
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query17");
ccs.ob = ob;
ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (err == "" && ds.Tables.Count > 0)//获取熔炼号
{
dt = null;
dt = ds.Tables[0];
if (dt.Rows.Count >= 1)
{
int j = dt.Rows.Count;
int k = ds.Tables[0].Columns.Count;
for (int i = 0; i < dt.Rows.Count; i++)
{
heatnonoy = heatnonoy + dt.Rows[i][0].ToString() + ",";
}
}
}
err = "";
arry.Clear();
ds = null;
arry.Add("FrmCutBilletDetails_Query18");
arry.Add(strHeatNo.Substring(5));
ccs.ob = ob;
ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (err == "" && ds.Tables.Count > 0)
{
dt = null;
dt = ds.Tables[0];
if (dt.Rows.Count >= 1)
{
nForecastNum = Convert.ToInt32(dt.Rows[0][1]);
flBilletweight = Convert.ToSingle(dt.Rows[0]["BILLETWEIGHT"]);
strCast_No = dt.Rows[0]["CAST_NO"].ToString();
}
if (nForecastNum >= nCutBilletNum)
{
nRemainNum = nForecastNum - nCutBilletNum;
}
}
}
if (!string.IsNullOrEmpty(strCast_No))
{
strErr = "";
arry.Clear();
arry.Add("FrmCutBilletDetails_Query19");
arry.Add(strCast_No);
ccs.ob = ob;
DataSet dsCast = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
if (strErr == "")
{
if (dsCast != null)
intCastNum = Convert.ToInt32(dsCast.Tables[0].Rows[0][0]);
}
}
//副产品重量
if (!string.IsNullOrEmpty(strHeatNo))
{
string strFcpErr = "";
arry.Clear();
arry.Add("FrmCutBilletDetails_Query20");
arry.Add(strHeatNo.Substring(5, 8));
ccs.ob = ob;
DataSet dsFcp = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strFcpErr);
if (strFcpErr == "")
{
if (dsFcp != null) fltFcpWeight = Convert.ToSingle(dsFcp.Tables[0].Rows[0][0]);
}
}
//计算实际预测支数
if (strHeatNoing != strHeatNo && flBilletweight > 0)
intRealityPredictNum = Convert.ToInt32((fltNetWeight - fltFcpWeight) / flBilletweight);
else
intRealityPredictNum = Convert.ToInt32((fltFirstWeight - fltFcpWeight - 43) / flBilletweight);
}
}
catch
{
}
hash.Add(0, strHeatNo);
hash.Add(1, fltFirstWeight);
hash.Add(2, fltMouldWeight);
hash.Add(3, fltNetWeight);
hash.Add(4, nForecastNum);
hash.Add(5, nCutBilletNum);
hash.Add(6, nRemainNum);
hash.Add(7, sumBillet);
hash.Add(8, heatnonoy);
hash.Add(9, intRealityPredictNum);
hash.Add(10, intCastNum);
hsa = hash;
errs = "";
}
///
/// 获取当前设备的后台实时跟踪信息
///
private DataSet GetTrackInfoData(string DevNo)
{
try
{
string err = "", szWhere = " WHERE OBJECTPOS ='" + DevNo + "'";
DataSet obj = new DataSet();
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query21");
sqlList.Add(szWhere);
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
obj.Tables.Add(dt);
return obj;
}
catch
{
return null;
}
}
public void RefreshCutPrompt()
{
this.txtCutHeatN.Tag = "";
this.txtCutHeatN.Text = "";
this.txtOfficeWeight.Text = "";
this.txtDBWeight.Text = "";
this.txtSteelMWeight.Text = "";
this.txtPalnCount.Text = "";
this.txtCutCount.Text = "";
this.txtRemCount.Text = "";
this.txtEditTotBlank.Text = "";
this.txtActForecast.Text = "";
this.txtEditPacketsN.Text = "";
if (cutHash.Count < 6) return;
string strHeatNo = cutHash[0].ToString();
if (strHeatNo == "") return;
this.txtCutHeatN.Text = strHeatNo.Substring(5);
this.txtOfficeWeight.Text = cutHash[1].ToString();
this.txtDBWeight.Text = cutHash[2].ToString();
this.txtSteelMWeight.Text = cutHash[3].ToString();
this.txtPalnCount.Text = cutHash[4].ToString();
this.txtCutCount.Text = cutHash[5].ToString();
this.txtRemCount.Text = cutHash[6].ToString();
this.txtEditTotBlank.Text = cutHash[7].ToString();
this.txtActForecast.Text = cutHash[9].ToString();
this.txtEditPacketsN.Text = cutHash[10].ToString();
}
///
/// 长度属性事件
///
///
///
private void textBox3_TextChanged(object sender, System.EventArgs e)
{
try
{
float a = Convert.ToSingle(this.txtEdidLength.Text.Trim());
float b = Convert.ToSingle(this.txtEditWidth.Text.Trim());
float c = Convert.ToSingle(this.txtEditThick.Text.Trim());
this.txtEditWeight.Text = Convert.ToString(Math.Round(a * b * c * 7.82 / 1000000000, 3));
}
catch { }
}
///
/// 刷新数据
///
private void SetDataThread()
{
ReStartSetDataThread:
while (true)
{
if (!this.On_Off_Thread)
{
System.Threading.Thread.Sleep(500);
continue;
}
if (bExit) return;
//在数据处于定时刷新
if (bHandleCoup)
{
//如果更新超过一定的时间长度(半分钟内),即组织刷新
TimeSpan timespan = DateTime.Now - LastUpdateTime;
if (timespan.TotalSeconds > 30)
{
LastUpdateTime = DateTime.Now;
try
{
//刷新右边的数据
this.Invoke(new CallRefreshThreadDelegate(TimerRefresh));
}
catch { }
}
if (DateTime.Now.Second % 2 == 0)
{
GetCutPromptFromServer();
Thread.Sleep(300);
}
if (DateTime.Now.Second % 3 == 1)
{
this.Invoke(new CallRefreshThreadDelegate(RefreshCutPrompt));
}
}
for (int j = 0; j < 3; j++)
{
Thread.Sleep(1000);
if (bExit) return;
}
}
goto ReStartSetDataThread;
}
///
/// 单击切割信息 编辑区赋值
///
///
///
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
if (this.uGrdCutPlan.ActiveRow == null) return;
UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
int i1 = 0; //炉内切割数
int i2 = 0; //浇次内炉数
string str1 = ugr.Cells["HEATNO"].Value.ToString(); //smeltingid 炉号
string str2 = ugr.Cells["MOULDNO"].Value.ToString(); //castno 浇次号
string str3 = "";
for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
{
UltraGridRow ugrf = this.uGrdCutPlan.Rows[i];
if (str2 == ugrf.Cells["MOULDNO"].Value.ToString())
{
if (str1 == ugrf.Cells["HEATNO"].Value.ToString())
{
i1++;
}
if (str3 != ugrf.Cells["HEATNO"].Value.ToString())
{
i2++;
str3 = ugrf.Cells["HEATNO"].Value.ToString();
}
}
}
//////try
//////{
////// this.richTextBox1.Text = "浇次内炉数:" + i2.ToString() + " 炉内切割数:" + i1.ToString();
//////}
//////catch (Exception ex)
//////{
////// MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
//////}
this.txtEditRlh.Text = ugr.Cells["HEATNO"].Value.ToString();//熔炼号
this.textBox4.Text = ugr.Cells["CCMSTOVENO"].Value.ToString();// 连铸炉号
this.cmbEditCcm.Text = ugr.Cells["CCMID"].Value.ToString();//铸机号
this.cmbEditFlowNo.Text = ugr.Cells["FLOWNO"].Value.ToString();//铸流号
this.txtEditCutN.Text = ugr.Cells["CUTSEQNO"].Value.ToString();//切割顺序号
this.txtEditPnum.Text = ugr.Cells["MOULDNO"].Value.ToString();//浇次号
strSteelCode = ugr.Cells["SteelCode"].Value.ToString();
if (ugr.Cells["HEATCNT"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["HEATCNT"].Value.ToString()))
this.txtEditPourViews.Text = "";
else//浇次顺序号
this.txtEditPourViews.Text = Convert.ToSingle(ugr.Cells["HEATCNT"].Value).ToString();
if (ugr.Cells["HEATSEQ"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["HEATSEQ"].Value.ToString()))
this.txtEditHViews.Text = "";
else//浇次内炉数
this.txtEditHViews.Text = Convert.ToSingle(ugr.Cells["HEATSEQ"].Value).ToString();
if (ugr.Cells["LENGTH"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["LENGTH"].Value.ToString()))
this.txtEdidLength.Text = "";
else//长度
this.txtEdidLength.Text = Convert.ToSingle(ugr.Cells["LENGTH"].Value).ToString();
if (ugr.Cells["WIDTH"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["WIDTH"].Value.ToString()))
this.txtEditWidth.Text = "";
else//宽度
this.txtEditWidth.Text = Convert.ToSingle(ugr.Cells["WIDTH"].Value).ToString();
if (ugr.Cells["THICKNESS"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["THICKNESS"].Value.ToString()))
this.txtEditThick.Text = "";
else//厚度
this.txtEditThick.Text = Convert.ToSingle(ugr.Cells["THICKNESS"].Value).ToString();
if (ugr.Cells["WEIGHT"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["WEIGHT"].Value.ToString()))
this.txtEditWeight.Text = "";
else//重量
this.txtEditWeight.Text = Convert.ToString(Math.Round(Convert.ToSingle(ugr.Cells["WEIGHT"].Value), 3));
if (ugr.Cells["SPECRULE"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["SPECRULE"].Value.ToString()))
this.textBox12.Text = "";
else//是否定尺
this.textBox12.Text = Convert.ToSingle(ugr.Cells["SPECRULE"].Value).ToString();
if (ugr.Cells["BILLETNO"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["BILLETNO"].Value.ToString()))
this.txtEditPH.Text = "";
else//坯料号
this.txtEditPH.Text = ugr.Cells["BILLETNO"].Value.ToString();
if (ugr.Cells["BILLETCODE"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["BILLETCODE"].Value.ToString()))
this.textBox14.Text = "";
else//坯料编码
this.textBox14.Text = ugr.Cells["BILLETCODE"].Value.ToString();
if (ugr.Cells["CHILDBLOCKNO"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["CHILDBLOCKNO"].Value.ToString()))
this.txtEditBlock.Text = "";
else//块号
this.txtEditBlock.Text = ugr.Cells["CHILDBLOCKNO"].Value.ToString();
try
{
this.dTPEditCutTime.Value = Convert.ToDateTime(ugr.Cells["CUTTIME"].Value);//切割时间
if (ugr.Cells["SHIFTCODE"].Value != System.DBNull.Value)
this.cmbEditClass.SelectedValue = ugr.Cells["SHIFTCODE"].Value.ToString();
else//班次
{
this.cmbEditClass.SelectedIndex = -1;
this.cmbEditClass.Text = "";
}
if (ugr.Cells["LASTBILLETFLAG"] == null)
this.cmbEditEndBlock.Text = "N";
else//是否末块
this.cmbEditEndBlock.Text = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
}
catch { }
}
///
/// 检验实绩切割支数是否超出计划切割支数
///
///
///
public bool CheckCutQty_PlanQty(string strHeatNo, string strOrder_No, string strProdorder_No)
{
string strOrderWhere = "";
string strProdorderWhere = "";
string strHeatNoWhere = "";
string strErr = "";
try
{
//非计划不作任何操作
if (string.IsNullOrEmpty(strOrder_No) && string.IsNullOrEmpty(strProdorder_No))
{
return false;
}
strHeatNoWhere = " and heatno = '" + strHeatNo + "'";
if (!string.IsNullOrEmpty(strOrder_No))
{
strOrderWhere = " and orderno = '" + strOrder_No + "' ";
}
if (string.IsNullOrEmpty(strProdorder_No))
{
strProdorderWhere = " and (prodorderno is null or prodorderno = '')";
}
else
{
strProdorderWhere = " and prodorderno = '" + strProdorder_No + "'";
}
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query3");
sqlList.Add(strHeatNoWhere);
sqlList.Add(strOrderWhere);
sqlList.Add(strProdorderWhere);
sqlList.Add(strHeatNoWhere);
sqlList.Add(strOrderWhere);
sqlList.Add(strProdorderWhere);
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
DataSet dsCutQty_PlanQty = new DataSet();
dsCutQty_PlanQty.Tables.Add(dt);
strErr = CCP_LgEts.ReturnInfo;
if (strErr == "" && dsCutQty_PlanQty != null)
{
if (dsCutQty_PlanQty.Tables[0].Rows.Count > 0)
{
if (Convert.ToInt64(dsCutQty_PlanQty.Tables[0].Rows[0]["billetqty"]) <= Convert.ToInt64(dsCutQty_PlanQty.Tables[0].Rows[0]["CutQty"]))
return true;
else
return false;
}
else
{
return false;
}
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
}
}
///
/// 计划切割信息查询
///
///
///
private void queryBtn_Click(object sender, EventArgs e)
{
try
{
string startTime = dtpCutStart.Value.ToString();
string endTime = dtpCutEnd.Value.ToString();
string strWhere = "where 1=1";
if (chkCutTime.Checked)
{
strWhere += " and PLAN_MAKING_TIME>=to_date('" + startTime + "','yyyy-MM-dd HH24:Mi:ss') AND PLAN_MAKING_TIME<=to_date('" + endTime + "','yyyy-MM-dd HH24:Mi:ss')";
}
if (this.chkCcmNo.Checked)
{
strWhere += " AND CAST_ID='" + this.ccmNumCobo.SelectedValue + "'";
}
//以下是转炉查询
if (this.chkConNo.Checked)
{
strWhere += " AND substr(heatno,3,1)='" + this.combConNo.SelectedValue + "'";
}//转炉
;
strWhere += " and heatno is not null ";
string err = "";
this.steelSchTable.Clear();
routeHash.Clear();
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query7");
sqlList.Clear();
sqlList.Add(strWhere);
sqlList.Add(strWhere);
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
err = CCP_LgEts.ReturnInfo;
if (err != "" && ds.Tables[0].Rows.Count <= 0)
{
//MessageBox.Show("炼钢数据查询错误:"+err,"提示");
return;
}
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
this.uGrdPlanInfo.BeginUpdate();
this.cutSchTable.Clear();
int rowCount = ds.Tables[0].Rows.Count;
DataRow row;
string name = "";
for (int i = 0; i < rowCount; i++)
{
row = this.steelSchTable.NewRow();
foreach (DataColumn column in steelSchTable.Columns)
{
name = column.ColumnName;
if (name != "PLAN_LINES")
row[name] = ds.Tables[0].Rows[i][name].ToString();
else
{
row[name] = CStaticMethod.analysPlan_Lines(ds.Tables[0].Rows[i][name].ToString());//analysPath(ds.Tables[0].Rows[i][name].ToString());
}
}
this.steelSchTable.Rows.Add(row);
string status = row["HEAT_STATE"].ToString();
if (status == "03")
{
foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
cell.Appearance.BackColor = Color.White;//计划状态
}
else if (status == "09")
{
foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
cell.Appearance.BackColor = Color.LightCyan; //Color.MintCream;//连铸结束
}
else
{
foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
cell.Appearance.BackColor = Color.LightGreen;//在生产用颜色区分
}
}
this.uGrdPlanInfo.EndUpdate();
}
}
catch { }
}
#region
private void createTable()//----创建对应表
{
try
{
//炼钢指示表
DataColumn myDataColumn = new DataColumn();
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "HEATNO";
myDataColumn.Caption = "炉号";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "AIM_GRADE_CODE";
myDataColumn.Caption = "目标钢号";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CAST_ID";
myDataColumn.Caption = "铸机";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CAST_NO";
myDataColumn.Caption = "浇次号";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "HEAT_NUM";
myDataColumn.Caption = "炉数";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CAST_SEQ";
myDataColumn.Caption = "顺序";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_LINES";// "PLAN_ROUTE";
myDataColumn.Caption = "工艺路径";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "BILLETQTY";
myDataColumn.Caption = "方坯数";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_S";
//myDataColumn.Caption = "目标含硫量";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_IRON_QTY";
myDataColumn.Caption = "计划铁水量";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_MIF_STR_TIME";
//myDataColumn.Caption = "计划出铁开始时刻";
//steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_MIF_END_TIME";
//myDataColumn.Caption = "计划出铁结束时刻";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_HMP_STR_TIME";
myDataColumn.Caption = "计划脱硫开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_HMP_END_TIME";
myDataColumn.Caption = "计划脱硫结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_HM_STR_TIME";
//myDataColumn.Caption = "计划装料开始时刻";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_BOF_STR_TIME";
myDataColumn.Caption = "计划吹炼开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_BOF_END_TIME";
myDataColumn.Caption = "计划吹炼结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_TAP_END_TIME";
//myDataColumn.Caption = "计划出钢结束时刻";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "AIM_STEEL_QTY";
myDataColumn.Caption = "目标出钢量";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_STEEL_QTY";
//myDataColumn.Caption = "出钢目标温度";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_AR_STR_TIME";
myDataColumn.Caption = "计划AR开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_AR_END_TIME";
myDataColumn.Caption = "计划AR结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_AR_TEMP";
//myDataColumn.Caption = "AR目标温度";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_LF_STR_TIME";
myDataColumn.Caption = "计划LF开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_LF_END_TIME";
myDataColumn.Caption = "计划LF结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_LF_TEMP";
//myDataColumn.Caption = "LF目标温度";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_RH_STR_TIME";
myDataColumn.Caption = "计划RH开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_RH_ENT_TIME";
myDataColumn.Caption = "计划RH结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_VD_TEMP";
//myDataColumn.Caption = "RH目标温度";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_CCM_STR_TIME";
myDataColumn.Caption = "计划浇注开始时刻";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PLAN_CCM_END_TIME";
myDataColumn.Caption = "计划浇注结束时刻";
steelSchTable.Columns.Add(myDataColumn);
//myDataColumn = new DataColumn();
//myDataColumn.DataType = System.Type.GetType("System.String");
//myDataColumn.ColumnName = "AIM_TD_TEMP";
//myDataColumn.Caption = "浇注温度";
//steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "HEAT_STATE";
myDataColumn.Caption = "生产状态";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "v_heat_ID";
myDataColumn.Caption = "虚拟炉号";
steelSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "STEELCODE";
myDataColumn.Caption = "牌号编码";
steelSchTable.Columns.Add(myDataColumn);
//切割指示表
myDataColumn = new DataColumn();
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "heatno";
myDataColumn.Caption = "炉号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "BILLET_XN";
myDataColumn.Caption = "计划坯号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "DIRECTIONTYPE";
myDataColumn.Caption = "计划去向";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CUTTASKCODE";
myDataColumn.Caption = "铸机号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CAST_NO";
myDataColumn.Caption = "浇次号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SLABLENGTH";
myDataColumn.Caption = "目标长度";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SLABWIDTH";
myDataColumn.Caption = "目标宽度";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SLABHEIGHT";
myDataColumn.Caption = "目标厚度";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "THEROYWEIGHT";
myDataColumn.Caption = "坯料重量";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SEQUENCENO";
myDataColumn.Caption = "炉内顺序号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SEQUENCEINCAST";
myDataColumn.Caption = "浇次内炉序";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "BILLETQTY";
myDataColumn.Caption = "方坯数";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "BILLETWEIGHT";
myDataColumn.Caption = "坯料单重";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "FURNACENO";
myDataColumn.Caption = "虚拟炉号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PRODORDERNO";
myDataColumn.Caption = "生产订单号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "ORDERNO";
myDataColumn.Caption = "订单行号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "BATCHPLANNO";
myDataColumn.Caption = "批量计划号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SEQUENCEINBATCH";
myDataColumn.Caption = "批量计划内序号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CUSTOMER_KEY";
myDataColumn.Caption = "客户参数号";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SURPLUSFLAG";
myDataColumn.Caption = "是否余材";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "STANDARDSCODE";
myDataColumn.Caption = "内控标准";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "STANDARDREMAK";
myDataColumn.Caption = "标准描述";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PDTSTYLE";
myDataColumn.Caption = "产品类型";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "SPECDESCRIPTION";
myDataColumn.Caption = "成品规格描述";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "FOREIGN_TRADE";
myDataColumn.Caption = "是否出口";
cutSchTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "CUTSTARTTIME";
myDataColumn.Caption = "计划切割时间";
cutSchTable.Columns.Add(myDataColumn);
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
///
/// 设置grid外观
///
private void setGrid1View()//----设置grid外观
{
try
{
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_STATE"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["v_heat_ID"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_RH_STR_TIME"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_RH_ENT_TIME"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_HMP_STR_TIME"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_HMP_END_TIME"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_IRON_QTY"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_NUM"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[2].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[5].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[6].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[7].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[9].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[21].Format = "yy-MM-dd HH:mm";
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEATNO"].Width = 80;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["AIM_GRADE_CODE"].Width = 60;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_ID"].Width = 50;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_NO"].Width = 70;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_NUM"].Width = 50;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_SEQ"].Width = 50;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_LINES"].Width = 150;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns["BILLETQTY"].Width = 38;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].Width = 60;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].Width = 60;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].Width = 130;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[1].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[2].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[3].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[4].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[5].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[6].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[7].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[9].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].CellAppearance.BackColor = Color.GhostWhite;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].CellAppearance.BackColor = Color.LightGoldenrodYellow;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].CellAppearance.BackColor = Color.LightGoldenrodYellow;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[21].CellAppearance.BackColor = Color.LightGoldenrodYellow;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[22].CellAppearance.BackColor = Color.LightPink;
uGrdPlanInfo.DisplayLayout.Bands[0].Columns[23].CellAppearance.BackColor = Color.LightPink;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["FURNACENO"].Hidden = true;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["HeatNo"].Width = 80;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["STANDARDREMAK"].Width = 100;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLET_XN"].Width = 90;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABLENGTH"].Width = 60;//目标长度
uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABWIDTH"].Width = 60;//目标宽度
uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABHEIGHT"].Width = 60;//目标厚度
uGrdCutInfo.DisplayLayout.Bands[0].Columns["THEROYWEIGHT"].Width = 70;//目标重量
uGrdCutInfo.DisplayLayout.Bands[0].Columns["CUTTASKCODE"].Width = 50;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["CAST_NO"].Width = 50;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["SEQUENCEINCAST"].Width = 50;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["DIRECTIONTYPE"].Width = 70;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLETQTY"].Width = 60;
uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLETWEIGHT"].Width = 80;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[19].Width = 60;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[24].Width = 60;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[25].Width = 126;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[2].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[5].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[6].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[7].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[8].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[9].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[10].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[11].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[12].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[13].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[14].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[15].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[16].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[17].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[18].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[19].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[20].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[21].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[22].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[23].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[24].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
uGrdCutInfo.DisplayLayout.Bands[0].Columns[25].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
///
/// 路径解析
///
///
///
private string analysPath(string craftPath)//----路径解析
{
string path = "";
try
{
if (craftPath.Length > 14)
{
string str = "", route = "";
if (craftPath.Length >= 2)
{
str = craftPath.Substring(0, 2);
switch (str)
{
case "A0":
route = "";
break;
case "A1":
route = "1#混铁炉";
break;
case "A2":
route = "2#混铁炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 4)
{
str = craftPath.Substring(2, 2);
switch (str)
{
case "B0":
route = "";
break;
case "B1":
route = "->1#铁水预处理";
break;
case "B2":
route = "->2#铁水预处理";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 6)
{
str = craftPath.Substring(4, 2);
switch (str)
{
case "C0":
route = "";
break;
case "C1":
route = "->1#转炉";
break;
case "C2":
route = "->2#转炉";
break;
case "C3":
route = "->3#转炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 8)
{
str = craftPath.Substring(6, 2);
switch (str)
{
case "D0":
route = "";
break;
case "D1":
route = "->1#吹氩站";
break;
case "D2":
route = "->2#吹氩站";
break;
case "D3":
route = "->3#吹氩站";
break;
}
path = path + route;
}
else
return path;
///2008-02-28 刘现
if (craftPath.Length >= 10)
{
str = craftPath.Substring(8, 2);
switch (str)
{
case "F0":
route = "";
break;
case "F1":
route = "->1#RH炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 12)
{
str = craftPath.Substring(10, 2);
switch (str)
{
case "E0":
route = "";
break;
case "E1":
route = "->1#精练";
break;
case "E2":
route = "->2#精练";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 14)
{
str = craftPath.Substring(12, 2);
switch (str)
{
case "F0":
route = "";
break;
case "F1":
route = "->1#RH炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 14)
{
str = craftPath.Substring(14, 2);
switch (str)
{
case "G0":
route = "";
break;
case "G1":
route = "->1#连铸机";
break;
case "G2":
route = "->2#连铸机";
break;
case "G3":
route = "->3#连铸机";
break;
case "G4":
route = "->0#连铸机";
break;
}
path = path + route;
}
else
return path;
if (path.Length < 2)
return "";
if (path.IndexOf("->", 0) == 0)
{
int len = path.Length;
path = path.Substring(2, len - 2);
}
}
else
{
string str = "", route = "";
if (craftPath.Length >= 2)
{
str = craftPath.Substring(0, 2);
switch (str)
{
case "A0":
route = "";
break;
case "A1":
route = "1#混铁炉";
break;
case "A2":
route = "2#混铁炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 4)
{
str = craftPath.Substring(2, 2);
switch (str)
{
case "B0":
route = "";
break;
case "B1":
route = "->1#铁水预处理";
break;
case "B2":
route = "->2#铁水预处理";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 6)
{
str = craftPath.Substring(4, 2);
switch (str)
{
case "C0":
route = "";
break;
case "C1":
route = "->1#转炉";
break;
case "C2":
route = "->2#转炉";
break;
case "C3":
route = "->3#转炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 8)
{
str = craftPath.Substring(6, 2);
switch (str)
{
case "D0":
route = "";
break;
case "D1":
route = "->1#吹氩站";
break;
case "D2":
route = "->2#吹氩站";
break;
case "D3":
route = "->3#吹氩站";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 10)
{
str = craftPath.Substring(8, 2);
switch (str)
{
case "E0":
route = "";
break;
case "E1":
route = "->1#精练";
break;
case "E2":
route = "->2#精练";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 12)
{
str = craftPath.Substring(10, 2);
switch (str)
{
case "F0":
route = "";
break;
case "F1":
route = "->1#RH炉";
break;
case "F2":
route = "->2#RH炉";
break;
}
path = path + route;
}
else
return path;
if (craftPath.Length >= 14)
{
str = craftPath.Substring(12, 2);
switch (str)
{
case "G0":
route = "";
break;
case "G1":
route = "->1#连铸机";
break;
case "G2":
route = "->2#连铸机";
break;
case "G3":
route = "->3#连铸机";
break;
case "G4":
route = "->0#连铸机";
break;
}
path = path + route;
}
else
return path;
if (path.Length < 2)
return "";
if (path.IndexOf("->", 0) == 0)
{
int len = path.Length;
path = path.Substring(2, len - 2);
}
}
return path;
}
catch (Exception ex)
{
string msg = ex.Message;
return path;
}
}
private void InitComboBoxSource_A()
{
this.ccmNumCobo.DataSource = GetCcmData();
this.ccmNumCobo.DisplayMember = "name";
this.ccmNumCobo.ValueMember = "id";
this.combConNo.DataSource = GetConData();
this.combConNo.DisplayMember = "name";
this.combConNo.ValueMember = "id";
this.cboFlowNo.DataSource = GetFlowData();
this.cboFlowNo.DisplayMember = "name";
this.cboFlowNo.ValueMember = "id";
}
//private DataTable GetCcmData()
//{
// DataTable dt = new DataTable();
// dt.Columns.Add("id", typeof(System.String));
// dt.Columns.Add("name", typeof(System.String));
// //dt.Rows.Add(new object[] { "0", "0#铸机" });
// dt.Rows.Add(new object[] { "1", "1#铸机" });
// dt.Rows.Add(new object[] { "2", "2#铸机" });
// dt.Rows.Add(new object[] { "3", "3#铸机" });
// // dt.Rows.Add(new object[] { "4", "4#铸机" });
// dt.AcceptChanges();
// return dt;
//}
///
/// 加载转炉号
///
///
private DataTable GetConData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
dt.Rows.Add(new object[] { "1", "1#转炉" });
dt.Rows.Add(new object[] { "2", "2#转炉" });
//dt.Rows.Add(new object[] { "3", "3#转炉" });
dt.AcceptChanges();
return dt;
}
///
/// 计划信息单击
///
///
///
private void uGrdPlanInfo_AfterRowActivate(object sender, EventArgs e)
{
try
{
if (this.uGrdPlanInfo.Rows.Count < 1)
return;
if (this.uGrdPlanInfo.ActiveRow == null)
return;
UltraGridRow ultraRow = this.uGrdPlanInfo.ActiveRow;
string castNo = ultraRow.Cells["heatNo"].Value.ToString();
string strV_HeatID = ultraRow.Cells["v_heat_ID"].Value.ToString();
string strWhere = " WHERE FURNACENO='" + strV_HeatID + "' ";
txtHeatno.Text = ultraRow.Cells["HEATNO"].Value.ToString();
//this.textBox1.Enabled = true;
this.chkRlh.Checked = true;
Query();
string err = "";
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmCutBilletDetails_Query8");
sqlList.Clear();
sqlList.Add(strWhere);
sqlList.Add(strWhere);
CoreClientParam CCP_LgEts = new CoreClientParam();
DataTable dt = new DataTable();
CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_LgEts.MethodName = "doQuery";
CCP_LgEts.ServerParams = new object[] { arry, sqlList };
CCP_LgEts.SourceDataTable = dt;
this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
err = CCP_LgEts.ReturnInfo;
if (err != "" && ds.Tables[0].Rows.Count <= 0)
{
//MessageBox.Show("切割数据查询错误:"+err,"提示");
this.groupBox1.Text = "切割信息";
return;
}
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
string strMsg = "切割信息 块数:";
strMsg = strMsg + ds.Tables[0].Rows.Count.ToString();
this.groupBox1.Text = strMsg;
this.cutSchTable.Clear();
uGrdCutInfo.UpdateData();
int rowCount = ds.Tables[0].Rows.Count;
DataRow row;
for (int i = 0; i < rowCount; i++)
{
row = this.cutSchTable.NewRow();
foreach (DataColumn column in cutSchTable.Columns)
{
if (column.ColumnName.ToUpper() == "DIRECTIONTYPE") //坯料去向
//row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "0" ? "弹扁" : (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "棒材" : "高线"));
//去向类型(0:下线,1:中板(Z)),2:厚板(P),3:热轧(H))
row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "0" ? "下线" : (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "中板" :(ds.Tables[0].Rows[i][column.ColumnName].ToString() == "2" ? "厚板" :(ds.Tables[0].Rows[i][column.ColumnName].ToString() == "3" ? "热轧" : "未知") ) ));
//去向类型(0:下线,1:中板(Z)),2:厚板(P),3:热轧(H))
else if (column.ColumnName.ToUpper() == "SURPLUSFLAG") //是否余材
row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "是" : "否");
else
row[column.ColumnName] = ds.Tables[0].Rows[i][column.ColumnName].ToString();
}
this.cutSchTable.Rows.Add(row);
if (i > 0)
{
Color color1;
Color color2;
if (ds.Tables[0].Rows[i]["SLABLENGTH"].ToString() != ds.Tables[0].Rows[i - 1]["SLABLENGTH"].ToString())
{
color1 = (Color)uGrdCutInfo.Rows[i - 1].Cells["SLABLENGTH"].Appearance.BackColor;
if (color1 == Color.LightGreen)//Color.FromArgb(205, 228, 225))
color2 = Color.MintCream;// Color.FromArgb(0, 0, 0, 0);
else
color2 = Color.LightGreen;//Color.FromArgb(205, 228, 225);
}
else
color2 = (Color)uGrdCutInfo.Rows[i - 1].Cells["SLABLENGTH"].Appearance.BackColor;
foreach (UltraGridCell cell in uGrdCutInfo.Rows[i].Cells)
cell.Appearance.BackColor = color2;//在生产用颜色区分
}
}
//UltraGridRow ulCutRow = this.uGrdCutInfo.ActiveRow;
this.txtHLH.Text = castNo;
this.cboZJH.Text = ultraRow.Cells["CAST_ID"].Value.ToString();
this.txtBlocks.Text = this.uGrdCutInfo.Rows.Count.ToString();
this.tbxLength.Text = this.uGrdCutInfo.Rows[0].Cells["SLABLENGTH"].Value.ToString();
this.tbxWidth.Text = this.uGrdCutInfo.Rows[0].Cells["SLABWIDTH"].Value.ToString();
this.tbxThick.Text = this.uGrdCutInfo.Rows[0].Cells["SLABHEIGHT"].Value.ToString();
float a = Convert.ToSingle(this.tbxLength.Text.Trim());
float b = Convert.ToSingle(this.tbxWidth.Text.Trim());
float c = Convert.ToSingle(this.tbxThick.Text.Trim());
if (this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value.ToString() != "")//&& Convert.ToDouble(this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value.ToString()) > 0
this.tbxWeight.Text = Convert.ToString(Convert.ToInt32(this.uGrdCutInfo.Rows[0].Cells["THEROYWEIGHT"].Value) / Convert.ToInt32(this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value));
else
{
tbxWeight.Text = Convert.ToString(Math.Round(Convert.ToDouble(this.uGrdCutInfo.Rows[0].Cells["THEROYWEIGHT"].Value) / Math.Round(a * b * c * 7.82 / 1000000000, 3), 4));
}
}
else
{
this.cutSchTable.Clear();
this.groupBox1.Text = "";
this.txtHLH.Text = null;
this.cboZJH.Text = "";
this.txtBlocks.Text = "";
this.tbxLength.Text ="";
this.tbxWidth.Text ="";
this.tbxThick.Text = "";
this.tbxWeight.Text ="";
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
///
/// 切割信息单击
///
///
///
private void uGrdCutInfo_AfterRowActivate(object sender, EventArgs e)
{
try
{
if (this.uGrdCutInfo.Rows.Count < 1)
return;
if (this.uGrdCutInfo.ActiveRow == null)
return;
UltraGridRow ultraRow = this.uGrdCutInfo.ActiveRow;
string strCastNo = ultraRow.Cells[0].Value.ToString();
string strBlockNo = ultraRow.Cells[1].Value.ToString();
strV_BilletID = ultraRow.Cells["BILLET_XN"].Value.ToString();//虚拟批号
strV_Heat_ID = ultraRow.Cells["FURNACENO"].Value.ToString();//虚拟炉号strV_Heat_ID
strOrderNO = ultraRow.Cells["ORDERNO"].Value.ToString();//订单行号
strProdOrderNO = ultraRow.Cells["PRODORDERNO"].Value.ToString();//生产订单号
strSurplusFlag = (ultraRow.Cells["SURPLUSFLAG"].Value.ToString() == "是" ? "1" : "0");
strProductline = (ultraRow.Cells["DIRECTIONTYPE"].Value.ToString()) == "弹扁" ? "0" : (ultraRow.Cells["DIRECTIONTYPE"].Value.ToString()) == "棒材" ? "1" : "2";
strStandardsCode = ultraRow.Cells["STANDARDSCODE"].Value.ToString();
strStandardRemak = ultraRow.Cells["STANDARDREMAK"].Value.ToString();
strCustomer_Key = ultraRow.Cells["CUSTOMER_KEY"].Value.ToString();
this.txtHLH.Text = ultraRow.Cells["HeatNo"].Value.ToString();
this.cboZJH.Text = ultraRow.Cells["CAST_No"].Value.ToString();
this.txtBlocks.Text = ultraRow.Cells["BILLETQTY"].Value.ToString();
this.tbxLength.Text = ultraRow.Cells["SLABLENGTH"].Value.ToString();
this.tbxWidth.Text = ultraRow.Cells["SLABWIDTH"].Value.ToString();
this.tbxThick.Text = ultraRow.Cells["SLABHEIGHT"].Value.ToString();
this.txtProdorderNO.Text = ultraRow.Cells["ProdorderNo"].Value.ToString();
txtOrderNO.Text = ultraRow.Cells["OrderNo"].Value.ToString();
txtSurplusFlag.Text = ultraRow.Cells["SurplusFlag"].Value.ToString();
float a = Convert.ToSingle(this.tbxLength.Text.Trim());
float b = Convert.ToSingle(this.tbxWidth.Text.Trim());
float c = Convert.ToSingle(this.tbxThick.Text.Trim());
if (ultraRow.Cells["BILLETWEIGHT"].Value != null && ultraRow.Cells["BILLETWEIGHT"].Value.ToString().Length > 0)
tbxWeight.Text = ultraRow.Cells["BILLETWEIGHT"].Value.ToString();
else
{
if (ultraRow.Cells["BILLETQTY"].Value != null && !string.IsNullOrEmpty(ultraRow.Cells["BILLETQTY"].Value.ToString()) && Convert.ToDouble(ultraRow.Cells["BILLETQTY"].Value) > 0)
this.tbxWeight.Text = Convert.ToString(Convert.ToInt32(ultraRow.Cells["THEROYWEIGHT"].Value) / Convert.ToInt32(ultraRow.Cells["BILLETQTY"].Value));
else
tbxWeight.Text = Convert.ToString(Math.Round(Convert.ToDouble(ultraRow.Cells["THEROYWEIGHT"].Value) / Math.Round(a * b * c * 7.82 / 1000000000, 3),4));
}
//选择行进行了改变
if (reportSelect != null)
reportSelect(strCastNo, strBlockNo);
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
///
/// 生成
///
///
///
private void button3_Click(object sender, EventArgs e)
{
{
string yncheck = "";
yncheck = yncheckCut();
//只有在连铸机生产或已生产完的
if (!GetHeatState(txtHLH.Text))
{
MessageBox.Show("炉号【" + txtHLH.Text + "】没有上连铸机生产,不能生成坯料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (yncheck == "Y")
{
MessageBox.Show("请将本炉最后一块置成否后再增加支数");
return;
}
if (this.uGrdPlanInfo.ActiveRow == null || this.uGrdCutInfo.Rows.Count == 0)
{
return;
}
if (this.uGrdCutInfo.ActiveRow == null)
{
MessageBox.Show("没有选择切割计划,请选择!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (this.cboFlowNo.Text.Trim().Length == 0)
{
MessageBox.Show("请输入铸流号!");
return;
}
if (this.textBox26.Text.Trim().Length == 0)
this.textBox26.Text = "1";
int intIndex = 1;
try
{
intIndex = Convert.ToInt32(this.textBox26.Text.Trim());
}
catch
{
MessageBox.Show("起始序号请输入数字!");
return;
}
//检查一下数量
string strInputSmeltID = txtHLH.Text;
//通过计划查找其铸机号
int nCCMNo = FindCCMNoInPlan(strInputSmeltID);
if (nCCMNo == -1)
{
MessageBox.Show("不存在指定的计划,或者数据查询错误,请重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
//对比现在选择的铸机
//int nSelectCCMNo = Convert.ToInt32(comboBox3.SelectedItem) ;
int nSelectCCMNo = Convert.ToInt32(cboZJH.SelectedItem);
if (nCCMNo != nSelectCCMNo)
{
if (DialogResult.No == MessageBox.Show("您选择的铸机号和计划要去的连铸机号不同。确实要继续吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning))
return;
}
//InsertAllData(GetCurrValue());
InsertAllData();
////提示用户修改班次信息
//MessageBox.Show("该炉号所有坯子重量不能大于140,请修改手动生成记录的班次信息!", "插入记录成功!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Query();
}
}
private void InsertAllData()
{
try
{
UltraGridRow ugr = this.uGrdPlanInfo.ActiveRow;
UltraGridRow ugr2 = this.uGrdCutInfo.ActiveRow;
string err = "";
int billetNum = 0;//切割顺序
float billetSum = 0;//重量
string strDutyNo = "";//班次
//得到班次
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query9");
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (err == "" && ds.Tables.Count > 0)
{
DataTable dtTemp = ds.Tables[0];
if (dtTemp.Rows.Count >= 1)
{
strDutyNo = dtTemp.Rows[0][0].ToString();
}
}
//交给数据库统计总重量
arry.Clear();
ds = null;
ccs.ob = ob;
arry.Add("FrmCutBilletDetails_Query10");
arry.Add(ugr.Cells["HEATNO"].Value.ToString());
ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (err == "" && ds.Tables.Count > 0)
{
DataTable dtTemp = ds.Tables[0];
if (dtTemp.Rows.Count >= 1)
{
billetNum = dtTemp.Rows[0]["cutseqno"] != System.DBNull.Value ? Convert.ToInt32(dtTemp.Rows[0]["cutseqno"]) : 0;
billetSum = dtTemp.Rows[0]["weight"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["weight"]) : 0;
}
}
billetNum = billetNum + 1;
DataTable dt =((DataTable) uGrdCutInfo.DataSource);
if (dt == null || dt.Rows.Count == 0) return ;
int index = Convert.ToInt32(this.textBox26.Text.Trim());//
int count1 = Convert.ToInt32(this.txtBlocks.Text.Trim());//生产块数
DataRow dr = null;
for (int i = 0; i < count1; i++)
{
string strRecNo = "";
string strBilletNo = "";
//检验实绩切割支数是否超出计划切割支数
if (CheckCutQty_PlanQty(ugr.Cells["HEATNO"].Value.ToString(), txtOrderNO.Text,txtProdorderNO.Text))
{
strOrderNO = "";//订单行号
strProdOrderNO = "";//生产订单号
strSurplusFlag = "1";//是否余材
}
if (i < dt.Rows.Count)
dr = dt.Rows[i];
if (billetNum == 0)
billetNum = index + i;
else
billetNum = index + i;// billetNum + i;
string strCutNo = "";
strCutNo = Convert.ToString(index + i);// billetNum.ToString();// this.textBox26.Text.Trim();// this.txtHLH.Text.ToString().Trim();// Convert.ToInt32(this.txtHLH.Text.Trim());
//if (strCutNo.Length == 1) strCutNo = "0" + strCutNo;
//if (strCutNo.Length == 3)
//{
// int nNum = Convert.ToInt32(ar[3]);
// if (nNum >= 100 && nNum < 110) strCutNo = "A" + strCutNo.Substring(2, 1);
// if (nNum >= 110 && nNum < 120) strCutNo = "B" + strCutNo.Substring(2, 1);
// if (nNum >= 120 && nNum < 130) strCutNo = "C" + strCutNo.Substring(2, 1);
// if (nNum >= 130 && nNum < 140) strCutNo = "D" + strCutNo.Substring(2, 1);
// if (nNum >= 140 && nNum < 150) strCutNo = "E" + strCutNo.Substring(2, 1);
// if (nNum >= 150 && nNum < 160) strCutNo = "F" + strCutNo.Substring(2, 1);
// if (nNum >= 160 && nNum < 170) strCutNo = "G" + strCutNo.Substring(2, 1);
// if (nNum >= 170 && nNum < 180) strCutNo = "H" + strCutNo.Substring(2, 1);
// if (nNum >= 180 && nNum < 190) strCutNo = "J" + strCutNo.Substring(2, 1);
//}
strBilletNo = this.txtHLH.Text.Trim() + strCutNo.PadLeft(3, '0');
billetSum = billetSum + Convert.ToSingle(tbxWeight.Text);
if (billetSum > 100) break; //钢包总重量的限制
strRecNo = DateTime.Now.ToString("yyyyMMddhhmmssfff") + strCutNo.PadLeft(3, '0');
arry.Clear();
ccs.ob = ob;
arry.Add("FrmCutBilletDetails_Add1");
arry.Add(ugr.Cells["HEATNO"].Value.ToString());//熔炼号
arry.Add(cboZJH.Text.Trim());//铸机号
arry.Add(this.cboFlowNo.SelectedValue);//流号
arry.Add(billetNum);//切割序号
arry.Add(ugr.Cells["CAST_NO"].Value.ToString());//浇次号
arry.Add(ugr.Cells["CAST_SEQ"].Value.ToString());//炉内序号 5
arry.Add(ugr.Cells["HEAT_NUM"].Value.ToString());//浇次炉数 6
arry.Add(tbxLength.Text);//长度
arry.Add(tbxWidth.Text);//8宽度
arry.Add(tbxThick.Text);//9厚度
arry.Add(tbxWeight.Text);//10重量
arry.Add(Convert.ToDateTime(dtpCutTime.Value).ToString("yyyy-MM-dd HH:mm:ss"));//11生产时间
arry.Add(strRecNo);//坯料编码
arry.Add(strDutyNo);//班次
arry.Add(strBilletNo);//坯号
arry.Add(UserInfo.GetUserName());//记录操作人员13
arry.Add(ugr2.Cells["FURNACENO"].Value.ToString());//虚拟炉号
arry.Add(ugr2.Cells["BILLET_XN"].Value.ToString());//虚拟坯号
arry.Add(txtOrderNO.Text);//16订单行号
arry.Add(txtProdorderNO.Text);//17生产订单号
arry.Add((txtSurplusFlag.Text == "是" ? "1" : "0"));//18是否余材
arry.Add(ugr.Cells["SteelCode"].Value.ToString());//19计划牌号
//是否最后一块
//是否定尺-- DIRECTIONTYPE
arry.Add((ugr2.Cells["DIRECTIONTYPE"].Value.ToString()) == "弹扁" ? "0" : (ugr2.Cells["DIRECTIONTYPE"].Value.ToString()) == "棒材" ? "1" : "2");//去向
//l2flag,--喷号机标识
// resflag,--刷新标识
arry.Add(ugr2.Cells["STANDARDSCODE"].Value.ToString());//21内控标准号
arry.Add(ugr2.Cells["STANDARDREMAK"].Value.ToString());//22内控标准号描述
arry.Add(ugr2.Cells["CUSTOMER_KEY"].Value.ToString());//23客户参数号
string strOut = "";
string strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strOut);
if (!(strOut==""||strOut==null))
{
MessageBox.Show("数据提交失败!\n" + strOut);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public string yncheckCut()
{
string strLastFla = "";
if (this.uGrdCutPlan.Rows.Count < 1)
{
strLastFla = "N";
}
if (this.uGrdCutPlan.Rows.Count > 0)
{
UltraGridRow ugr = this.uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1];
strLastFla = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
}
return Convert.ToString(strLastFla);
}
///
/// 切割信息生产时获取铸机号
///
///
///
private int FindCCMNoInPlan(string strSmeltID)
{
string err = "";
ArrayList arry = new ArrayList();
arry.Add("FrmCutBilletDetails_Query11");
arry.Add(strSmeltID);
CommonClientToServer ccs = new CommonClientToServer();
ccs.ob = this.ob;
DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
return Convert.ToInt32(ds.Tables[0].Rows[0][0].ToString());
}
return -1;
}
#endregion
///
/// 炉号设置
///
///
///
private void btn_setheatid_Click(object sender, EventArgs e)
{
string strDevNo =CCMN0.Substring(0, 1);
if (strDevNo == "0") strDevNo = "4";
FrmSetHeatid setheatCcmFrm= new FrmSetHeatid(ob);
setheatCcmFrm.Location = GetChildWindowLocation(setheatCcmFrm.Size);
setheatCcmFrm.Ccmno = strDevNo;
setheatCcmFrm.Heatno = txtCutHeatN.Text;
setheatCcmFrm.ShowDialog();
}
private void btnDown_Click(object sender, EventArgs e)
{
////SendCommdForLadleWeight();
}
////private void SendCommdForLadleWeight()
////{
//// string strDevNo = CCMN0.Substring(0, 1);
//// string strPosition = "";
//// if (Convert.ToString(this.txtCutHeatN.Tag) == "") return;
//// strPosition = string.Format("CCM0{0}_DEVICE", strDevNo);
//// this._commClass.setHeatID(Convert.ToString(this.txtCutHeatN.Tag));
//// this._commClass.setProcValueCommand(strPosition, "JOB_CCM_OPTINFO", "PFBALEWGT", "FLTTYPE", this.txtOfficeWeight.Text);
//// this._commClass.setProcValueCommand(strPosition, "JOB_CCM_OPTINFO", "MOULDBALEWGT", "FLTTYPE", this.txtDBWeight.Text);
//// SendCommResetBilletNum();
////}
////public void SendCommResetBilletNum()
////{
//// string strHeatNo = "";
//// float fltFirstWeight = 0;
//// float fltMouldWeight = 0;
//// strHeatNo = Convert.ToString(this.textBox16.Tag);
//// fltFirstWeight = Convert.ToSingle(this.textBox17.Text);
//// fltMouldWeight = Convert.ToSingle(this.textBox18.Text);
//// //hengxing
//// //CallingMessage par = new CallingMessage();
//// //par.ServerName = "lgJobMgt";
//// //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
//// //par.ClassName = "Core.LgMes.Server.lgJobMgt.classCutJob";
//// //par.MethodName = "ResetBilletNum";
//// //par.args = new object[] { strHeatNo, fltFirstWeight, fltMouldWeight };
//// string strOut = "";
//// object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out strOut);
//// if (strOut != "")
//// {
//// MessageBox.Show("数据更新失败! " + strOut);
//// }
////}
}
}