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