using System; using System.Data; using System.Drawing; 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.Comm; 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.Comm.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); //// } ////} } }