using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using Core.StlMes.Client.LgCommon;
using Infragistics.Win.UltraWinEditors;
using System.Collections;
namespace Core.StlMes.Client.LgResMgt
{
public partial class ucCcmResultAdd : frmStyleBase
{
public string strProduceSys = "";
public ucCcmResultAdd(OpeBase ob_)
{
this.ob = ob_;
InitializeComponent();
}
private void ucCcmResultAdd_Load(object sender, EventArgs e)
{
init();
}
///
/// 初始化
///
private void init()
{
try
{
ultraCCM.Value = strProduceSys;
ultraClass.SelectedIndex = 0;
txtHeatno.Text = "";
clearData();
}
catch { }
}
///
/// 清除控件
///
private void clearData()
{
try
{
ultraCastBegin.Text = "";
txtSteel.Text = "";
txtSection.Text = "";
txtOrder.Text = "";
txtCastNo.Text = "";
txtStoveNum.Text = "";
txtLength.Text = "";
txtPfWgt.Text = "";
txtCastWgt.Text = "";
txtLeaveWgt.Text = "";
ultraPfTime.Text = "";
ultraLeaveTime.Text = "";
ultraCastEnd.Text = "";
}
catch { }
}
///
/// 保存实绩
///
private void saveData()
{
try
{
if (ultraCCM.SelectedIndex < 0)
{
labtishi.Text = "提示:请选择铸机!";
return;
}
if (txtHeatno.Text.Trim().Length != 8)
{
labtishi.Text = "提示:无效的炉号,请重新输入!";
return;
}
if (ultraClass.SelectedIndex < 0)
{
labtishi.Text = "提示:请选择班次!";
return;
}
if (ultraCastBegin.Text.Trim() == "")
{
labtishi.Text = "提示:【开浇时间】不能为空!";
return;
}
if (checkTime(ultraCastBegin.Text.Trim()))
{
labtishi.Text = "提示:【开浇时间】格式错误!";
return;
}
if (txtSteel.Text.Trim() == "")
{
labtishi.Text = "提示:牌号不能为空!";
return;
}
if (txtOrder.Text.Trim() == "")
{
labtishi.Text = "提示:订单编号不能为空!";
return;
}
if (txtCastNo.Text.Trim() == "")
{
labtishi.Text = "提示:浇次号不能为空!";
return;
}
if (checkNumber(txtPfWgt.Text.Trim()))
{
labtishi.Text = "提示:【上台重量】必须为数字!";
return;
}
if (checkNumber(txtLeaveWgt.Text.Trim()))
{
labtishi.Text = "提示:【离台重量】必须为数字!";
return;
}
if (checkTime(ultraPfTime.Text.Trim()))
{
labtishi.Text = "提示:【上台时间】格式错误!";
return;
}
if (checkTime(ultraLeaveTime.Text.Trim()))
{
labtishi.Text = "提示:【离台时间】格式错误!";
return;
}
if (checkTime(ultraCastEnd.Text.Trim()))
{
labtishi.Text = "提示:【浇注结束时间】格式错误!";
return;
}
string strErr = "";
string strSqlID = "STL_RESULT0015"; //SQLID
Hashtable ht = new Hashtable();
ht.Add("I1", txtHeatno.Text.Trim()); //炉号
ht.Add("I2", "0"+ultraCCM.Value.ToString()); //连铸机号
ht.Add("I3", ultraClass.Value.ToString()); //班次班组
ht.Add("I4", ultraCastBegin.Text.Trim()); //开浇时间
ht.Add("I5", txtSteel.Text.Trim()); //牌号
ht.Add("I6", txtOrder.Text.Trim()); //订单编号
ht.Add("I7", txtSection.Text.Trim()); //铸坯断面
ht.Add("I8", txtLength.Text.Trim()); //钢坯定尺
ht.Add("I9", txtCastNo.Text.Trim()); //浇次号
ht.Add("I10", txtStoveNum.Text.Trim()); //浇次内顺序号
ht.Add("I11", txtPfWgt.Text.Trim()); //上台重量
ht.Add("I12", txtLeaveWgt.Text.Trim()); //下台重量
ht.Add("I13", ultraPfTime.Text.Trim()); //上台时间
ht.Add("I14", ultraLeaveTime.Text.Trim()); //下台时间
ht.Add("I15", ultraCastEnd.Text.Trim()); //浇注结束时间
ht.Add("O1", "");
ht.Add("O2", "");
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
CoreClientParam ccp = ccTs.ExecuteProcedureFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
"executeProcedure", strSqlID, 5, ht, out strErr);
ArrayList alReturn = ccp.ReturnObject as ArrayList;
if (strErr == "" && alReturn[3] == null)
{
labtishi.Text = "提示:保存成功!";
}
else
{
labtishi.Text = "提示:保存失败!" + alReturn[3];
}
}
catch { }
}
///
/// 检验时间格式
///
private bool checkTime(string value)
{
bool flag = true;
try
{
if (value != "")
{
DateTime dt = Convert.ToDateTime(value);
}
flag = false;
}
catch { }
return flag;
}
///
/// 检验数字格式
///
private bool checkNumber(string value)
{
bool flag = true;
try
{
if (value != "")
{
double d =Convert.ToDouble(value);
}
flag = false;
}
catch { }
return flag;
}
///
/// 检验时间格式
///
private string changeTime(string value)
{
string strvalue = "";
try
{
if (value != "")
{
strvalue = Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss");
}
}
catch { }
return strvalue;
}
private void txtHeatno_TextChanged(object sender, EventArgs e)
{
if (txtHeatno.Text.Trim().Length == 8)
{
labtishi.Text = "提示:请点击查询!";
}
else
{
labtishi.Text = "提示:请输入炉号!";
}
}
private void ubtQuery_Click(object sender, EventArgs e)
{
try
{
clearData();
int count = -1;
string strHeatno = txtHeatno.Text.Trim();
if (strHeatno == "" || strHeatno.Length != 8)
{
labtishi.Text = "提示:无效的炉号,请重新输入!";
//MessageBox.Show("无效的炉号,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
string strErr = "";
ArrayList arry = new ArrayList();
arry.Add(strHeatno);
CommonClientToServer ccTos = new CommonClientToServer();
ccTos.ob = this.ob;
DataSet dsPpc = ccTos.ExecuteQueryFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
"QueryWithParameter", "STL_RESULT0014", 5, arry, out strErr);
if (strErr == "" && dsPpc != null && dsPpc.Tables.Count > 0 && dsPpc.Tables[0].Rows.Count > 0)
{
DataRow dr = dsPpc.Tables[0].Rows[0];
txtCastNo.Text = dr["CAST_NO"].ToString();
txtOrder.Text = dr["ORD_GON_ID"].ToString();
txtSteel.Text = dr["AIM_GRADE_CODE"].ToString();
txtStoveNum.Text = dr["CAST_SEQ"].ToString();
txtSection.Text = dr["WIDTH"].ToString() + "X" + dr["THICK"].ToString();
txtLength.Text = dr["LEN"].ToString();
ultraCCM.Value = dr["FACT_ROUTE"].ToString().Substring(dr["FACT_ROUTE"].ToString().Length-1, 1);
}
else
{
if (strErr == "" && dsPpc.Tables[0].Rows.Count == 0)
{
labtishi.Text = "提示:你输入的炉号不存在!";
return;
}
labtishi.Text = "提示:" + strErr + "!";
return;
}
arry = new ArrayList();
arry.Add(strHeatno);
arry.Add(strHeatno);
arry.Add(strHeatno);
DataSet ds = ccTos.ExecuteQueryFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
"QueryWithParameter", "STL_RESULT0013", 5, arry, out strErr);
if (strErr == "" && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
count = Convert.ToInt16(ds.Tables[0].Rows[0]["SUMVALUE"].ToString());
}
else
{
labtishi.Text = "提示:" + strErr + "!";
return;
}
if (count == 0)
{
labtishi.Text = "提示:你输入的炉号对应的实绩信息异常缺失!";
}
if (count > 0)
{
arry = new ArrayList();
arry.Add(strHeatno);
arry.Add(strHeatno);
arry.Add(strHeatno);
DataSet ds1 = ccTos.ExecuteQueryFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
"QueryWithParameter", "STL_RESULT0016", 5, arry, out strErr);
if (strErr == "" && ds1 != null && ds1.Tables.Count > 0 && ds1.Tables[0].Rows.Count > 0)
{
DataRow dr = ds1.Tables[0].Rows[0];
txtCastNo.Text = dr["MOULDNO"].ToString();
txtOrder.Text = dr["WOID"].ToString();
ultraClass.Value = dr["SHIFTCODE"].ToString();
txtSteel.Text = dr["PLANSTEEL"].ToString();
txtStoveNum.Text = dr["MOULDNUMID"].ToString();
txtSection.Text = dr["BILLETSECTION"].ToString();
txtLength.Text = dr["BILLETFIXSIZE"].ToString();
ultraCCM.Value = dr["STATIONCODE"].ToString().Substring(1, 1);
txtPfWgt.Text = dr["PFBALEWGT"].ToString();
txtLeaveWgt.Text = dr["BALELEAVEWGT"].ToString();
ultraPfTime.Text = changeTime(dr["BALEPFTIME"].ToString());
ultraLeaveTime.Text = changeTime(dr["BALELEAVETIME"].ToString());
ultraCastBegin.Text = changeTime(dr["BALESTARTTIME"].ToString());
ultraCastEnd.Text = changeTime(dr["BALEENDTIME"].ToString());
}
labtishi.Text = "提示:你输入的炉号对应的实绩信息已存在!";
//return;
}
}
catch { }
}
private void ubtSave_Click(object sender, EventArgs e)
{
try
{
saveData();
}
catch { }
}
private void ute_TimeEditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
try
{
frmSetTime frm = new frmSetTime(e.Context);
UltraTextEditor ute = (UltraTextEditor)sender;
//frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
frm.Location = new Point(400, 300);//ClsControlPack.GetChildWindowLocation(frm.Size);
frm.AutoSize = true;
if (frm.ShowDialog() == DialogResult.OK)
{
ute.Text = (Convert.ToDateTime(frm.SelectDate.ToString())).ToString("yyyy-MM-dd HH:mm:ss");
ute.Update();
}
}
catch { }
}
private void txtWgt_TextChanged(object sender, EventArgs e)
{
try
{
double pfWgt = 0;
double leaveWgt = 0;
try
{
pfWgt = Convert.ToDouble(txtPfWgt.Text.Trim()==""?"0":txtPfWgt.Text.Trim());
}
catch { }
try
{
leaveWgt = Convert.ToDouble(txtLeaveWgt.Text.Trim()==""?"0":txtLeaveWgt.Text.Trim());
}
catch { }
txtCastWgt.Text = Math.Round((pfWgt - leaveWgt),2).ToString();
}
catch { }
}
}
}