using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using CoreFS.CA06;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
namespace Core.StlMes.Client.LgCommon
{
///
/// 实绩管理响应炉号选中事件
///
///
///
public delegate void GetHeatResultDelegate(
string strHeatProcessNo, string strHeatNo, string strStationCode, string strDisposalTime, string strCastNo);
public partial class ucHeatNoQuery : UserControl
{
private bool _exPanded = true; //是否展开
public GetHeatResultDelegate GetJobInfoHandler = null;
public LG_PROCESS Process;
public int DevicePos;
public OpeBase Ob;
public ucHeatNoQuery()
{
ExPandedWidth = 0;
InitializeComponent();
ClsControlPack.SetUltraGridAppearance(this);
SetDelegate();
try
{
//ultraGrid1.DisplayLayout.Override.RowSelectorWidth = 40;
}
catch
{
// ignored
}
}
[Description("展开宽度")]
public int ExPandedWidth { get; private set; }
///
/// 展开状态
///
[Description("展开状态")]
public bool ExPanded
{
get { return _exPanded; }
set
{
if (value != _exPanded)
{
_exPanded = value;
MainContainer.Expanded = value;
}
}
}
public void Init()
{
InitDropDowList();
time.Start();
}
// 刷新炉次信息
///
/// 刷新炉次信息
///
public void GetHeatNo()
{
try
{
var strTableName = ClsBusinessPack.GetJobTableName(Process); //获得工序表名
//var strProcessCode = ClsBusinessPack.analysProcess(PROCESS.ToString()); //获得工序代码如:C\D\E
if (string.IsNullOrEmpty(strTableName)) return;
if (DevicePos < 0) return;
if (Ob == null) return;
// var StationCode = DEVICE_POS.ToString().PadLeft(2, '0');
var strHeatProcessNo = "";
if ((ultraGrid1.ActiveRow != null) && (ultraGrid1.ActiveRow.Index >= 0))
strHeatProcessNo = Convert.ToString(ultraGrid1.ActiveRow.Cells["HEATPROCESSNO"].Value);
var strWherePlan = "WHERE 1 = 1 ";
var strWhereRes = "WHERE 1 = 1 ";
var strWhereIf = "";
if (cbx_AutoRefresh.Checked)
{
//只查当班生产记录(strWherePlan前去掉了AND INSTR(FACT_ROUTE, '" + strProcessCode.ToString() + DEVICE_POS.ToString() + "', 1) > 0)
strWherePlan += " AND PLN_STARTTIME >= "
+
"TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00','YYYY-MM-DD HH24:MI:SS') AND PLN_STARTTIME <= SYSDATE ";
}
else
{
var strFrom = dateTimePicker1.Value.ToString("yyyy-MM-dd") + " 00:00:00";
var strTo = dateTimePicker2.Value.ToString("yyyy-MM-dd") + " 23:59:59";
var strToRes = dateTimePicker2.Value.AddDays(4).ToString("yyyy-MM-dd") + " 23:59:59";
//(去掉了这句话)
//strWherePlan += " AND INSTR(FACT_ROUTE, '" + strProcessCode.ToString() + DEVICE_POS.ToString() + "', 1) > 0 ";
strWherePlan += "AND PLN_STARTTIME >= TO_DATE('" + strFrom +
"','YYYY-MM-DD HH24:MI:SS') AND PLN_STARTTIME <= TO_DATE('" + strTo +
"','YYYY-MM-DD HH24:MI:SS') ";
if (!string.IsNullOrEmpty(Edt_HeatNo.Text.Trim()))
{
strWherePlan += "AND STOVE_NO LIKE '%" + Edt_HeatNo.Text.Trim() + "%'";
}
else
{
if (cbEdt_Class.SelectedIndex >= 0)
strWhereIf += "AND SUBSTR(B.SHIFTCODE,1,1) = '" + Convert.ToString(cbEdt_Class.Value) + "'";
if (cbEdt_Group.SelectedIndex >= 0)
strWhereIf += "AND SUBSTR(B.SHIFTCODE,2,1) = '" + Convert.ToString(cbEdt_Group.Value) + "'";
if (cbEdt_Steel.SelectedIndex >= 0)
strWhereIf += "AND A.GRADECODE = '" + Convert.ToString(cbEdt_Steel.Value) + "'";
}
}
var ds = ClsResBLL.GetHeatNoList(Process, strTableName, strWherePlan, strWhereRes, strWhereIf, Ob);
if ((ds != null) && (ds.Tables.Count > 0))
{
var table = ds.Tables[0];
ClsControlPack.CopyDataToDatatable(ref table, ref dataTable1, true);
foreach (var row in ultraGrid1.Rows)
{
if (strTableName != "STL_HMP_OPTINFO")
if ((Convert.ToString(row.Cells["DISPOSALTIME"].Value) != "01") &&
(row.Cells["DISPOSALTIME"].Value.ToString().Length > 0))
{
row.Appearance.BackColor = Color.Red;
row.Appearance.ForeColor = Color.White;
}
else
{
row.Appearance.ResetBackColor();
row.Appearance.ResetForeColor();
}
if (!string.IsNullOrEmpty(strHeatProcessNo) &&
strHeatProcessNo.Equals(Convert.ToString(row.Cells["HEATPROCESSNO"].Value)))
{
row.Activated = true;
ultraGrid1.PerformAction(UltraGridAction.EnterEditMode);
}
}
}
else
dataTable1.Rows.Clear();
PublicMethod.RefreshAndAutoSize(ultraGrid1);
}
catch (Exception)
{
// ignored
}
finally
{
ClsControlPack.RefreshAndAutoSize(ultraGrid1);
}
}
#region 初始化
public void InitDropDowList()
{
cbEdt_Class.ValueList = ClsBusinessPack.GetValuelistBanci();
cbEdt_Group.ValueList = ClsBusinessPack.GetValuelistBanzu();
var vlistGradeCode = ClsBusinessPack.GetValuelistSteel(Ob);
cbEdt_Steel.ValueList = vlistGradeCode;
// ClsControlPack.SetGridValuelist(ref ultraGrid1, "GRADECODE", ref vlistGradeCode);
}
#endregion
#region 事件
private void SetDelegate()
{
Resize += ucHeatNoQuery_Resize;
MainContainer.ExpandedStateChanged += ExpandedStateChanged;
}
private void ucHeatNoQuery_Resize(object sender, EventArgs e)
{
try
{
//if ((ExPandedWidth == 0) && _exPanded) ExPandedWidth = Width;
//else if ((ExPandedWidth == 0) && !_exPanded) ExPandedWidth = 250;
}
catch
{
// ignored
}
}
private void ExpandedStateChanged(object sender, EventArgs e)
{
try
{
//ExPanded = MainContainer.Expanded;
//Width = MainContainer.Expanded ? ExPandedWidth : MainContainer.Width;
if (MainContainer.Expanded && cbx_AutoRefresh.Checked)
GetHeatNo();
}
catch
{
// ignored
}
}
private void btnQuery_Click(object sender, EventArgs e)
{
GetHeatNo();
}
private void cbx_AutoRefresh_CheckedChanged(object sender, EventArgs e)
{
try
{
btnQuery.Enabled = !cbx_AutoRefresh.Checked;
cbEdt_Steel.Enabled = Edt_HeatNo.Enabled = !cbx_AutoRefresh.Checked;
cbEdt_Class.Enabled = cbEdt_Group.Enabled = !cbx_AutoRefresh.Checked;
dateTimePicker1.Enabled = dateTimePicker2.Enabled = !cbx_AutoRefresh.Checked;
time.Enabled = cbx_AutoRefresh.Checked;
}
catch
{
// ignored
}
}
private void Edt_HeatNo_EditorButtonClick(object sender, EditorButtonEventArgs e)
{
try
{
if (cbx_AutoRefresh.Checked) return;
if (e.Button.Key.ToUpper().Equals("CLEAR".ToUpper()))
{
if (!string.IsNullOrEmpty(Edt_HeatNo.Text.Trim()))
{
Edt_HeatNo.Tag = Edt_HeatNo.Text.Trim();
Edt_HeatNo.Clear();
}
else if (Edt_HeatNo.Tag != null) Edt_HeatNo.Text = Convert.ToString(Edt_HeatNo.Tag);
}
else if (e.Button.Key.ToUpper().Equals("EDIT".ToUpper()))
{
var frm = new frmHeatNoEditor {InputText = Edt_HeatNo.Text.Trim()};
frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
if (frm.ShowDialog() == DialogResult.OK)
Edt_HeatNo.Text = frm.InputText;
}
}
catch
{
// ignored
}
}
private void ultraGrid1_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
{
try
{
if (e.Row.Index < 0) return;
var strHeatNo = Convert.ToString(e.Row.Cells["HEATNO"].Value);
var strStationCode = Convert.ToString(e.Row.Cells["STATIONCODE"].Value);
var strDisposalTime = Convert.ToString(e.Row.Cells["DISPOSALTIME"].Value);
var strHeatProcessNo = Convert.ToString(e.Row.Cells["HEATPROCESSNO"].Value);
var strCastNo = Convert.ToString(e.Row.Cells["MOULDNO"].Value);
if (GetJobInfoHandler != null)
Invoke(GetJobInfoHandler, strHeatProcessNo, strHeatNo, strStationCode, strDisposalTime, strCastNo);
}
catch
{
// ignored
}
}
#endregion
private void time_Tick(object sender, EventArgs e)
{
if (ExPanded && cbx_AutoRefresh.Checked)
{
GetHeatNo();
}
}
}
}