using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Core.Mes.ClientFrameWork; using System.Collections; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinGrid.ExcelExport; using System.IO; using System.Diagnostics; using System.Threading; using Core.Mes.IBaseInterface; using CoreFS.CA06; using Core.Mes.Client.Common; namespace Core.LgMes.Client.LgDeviceManager { public partial class FrmTappingHole :frmStyleBase { private ValueList vlstShift, vlstShiftClone; private string strCurrID = ""; //保存当前选中转炉炉座 private bool bSelected = false; private bool bRefreshNow = false; private Color clrWarn = Color.Red; //警告颜色 private bool bBold = false; // private Thread _getDataThread; private Thread _setDataThread; private bool _bIfGetData = true; private bool _bIfSetData = true; private delegate void GetDataOperate(); private delegate void SetDataOperate(); public FrmTappingHole() { InitializeComponent(); } //private void StartupThread() //{ // try // { // _getDataThread = new Thread(new ThreadStart(GetData)); // _getDataThread.IsBackground = true; // _getDataThread.Start(); // } // catch { } // try // { // _setDataThread = new Thread(new ThreadStart(SetData)); // _setDataThread.IsBackground = true; // _setDataThread.Start(); // } // catch { } //} //private void GetData() //{ // while (_bIfGetData) // { // try // { // if (!this.On_Off_Thread) // { // Thread.Sleep(500); // continue; // } // try // { // this.Invoke(new GetDataOperate(proc_GetBaseInfo)); // Thread.Sleep(5000); // } // catch { } // } // catch { } // } //} //private void SetData() //{ // while (_bIfSetData) // { // try // { // if (!this.On_Off_Thread) // { // Thread.Sleep(500); // continue; // } // try // { // this.Invoke(new SetDataOperate(proc_SetBaseInfo)); // Thread.Sleep(500); // } // catch { } // } // catch { } // } //} private void FrmTappingHole_Load(object sender, EventArgs e) { try { ultDTFrom.DateTime = DateTime.Today.AddDays(-30); ultDTTo.DateTime = DateTime.Today; cbxSJ.Checked = true; cbxGL.BackColor = Color.Lime; } catch { } vlstShift = proc_ValueListBcbb(); vlstShiftClone = proc_ValueListBcbb(); proc_GetUseInfo(); //StartupThread(); } private ValueList proc_ValueListBcbb() { ValueList vlist = new ValueList(); try { vlist.ValueListItems.Add("11", "白-甲"); vlist.ValueListItems.Add("12", "白-乙"); vlist.ValueListItems.Add("13", "白-丙"); vlist.ValueListItems.Add("14", "白-丁"); vlist.ValueListItems.Add("21", "中-甲"); vlist.ValueListItems.Add("22", "中-乙"); vlist.ValueListItems.Add("23", "中-丙"); vlist.ValueListItems.Add("24", "中-丁"); vlist.ValueListItems.Add("31", "夜-甲"); vlist.ValueListItems.Add("32", "夜-乙"); vlist.ValueListItems.Add("33", "夜-丙"); vlist.ValueListItems.Add("34", "夜-丁"); } catch { } return vlist; } private void LocateRecord(string strID, bool bSelect) { try { for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (Convert.ToString(ultraGrid1.Rows[i].Cells["炉座号"].Value) == strID) { ultraGrid1.ActiveRow = ultraGrid1.Rows[i]; ultraGrid1.Rows[i].Selected = bSelect; return; } } } catch { } } private void proc_SetForeColorforBaseInfo() { try { UltraGridRow row; for (int i = 0; i < ultraGrid1.Rows.Count; i++) { row = ultraGrid1.Rows[i]; if (string.IsNullOrEmpty(Convert.ToString(row.Cells["出钢口编号"].Value))) { row.Cells["炉座号"].Appearance.ForeColor = clrWarn; row.Cells["炉座号"].Appearance.FontData.Bold = (bBold ? DefaultableBoolean.True : DefaultableBoolean.False); } else { row.Cells["炉座号"].Appearance.ForeColor = Color.Black; row.Cells["炉座号"].Appearance.FontData.Bold = DefaultableBoolean.False; } } } catch { } finally { bBold = !bBold; } } private void proc_SetBackColorforUseInfo() { try { UltraGridRow row; string strStatus = ""; for (int i = 0; i < ultraGrid2.Rows.Count; i++) { row = ultraGrid2.Rows[i]; strStatus = Convert.ToString(row.Cells["当前状态"].Value); if (strStatus.Equals("使用")) { row.Appearance.BackColor = Color.LightGreen; } else if (strStatus.Equals("下线")) { row.Appearance.BackColor = Color.FromArgb(210, 208, 208); } } } catch { } } private void proc_GetBaseInfo() { bRefreshNow = true; try { string strErr = ""; string strSql = "select " + "a.POSITION 炉座号, b.ID_ 出钢口编号, AGE_G 使用次数, " + "to_char(TIME_ON, 'yyyy-MM-dd HH24:mi:ss') 时间, SHIFT_ON 班组, OPTOR_ON 操作人员, " + "TAPTIME_H 头炉, TAPTIME_T 尾炉, '' 换上, '' 出钢时间 from " + "(" + "select '1#转炉' POSITION from dual " + "union all " + "select '2#转炉' POSITION from dual " + "union all " + "select '3#转炉' POSITION from dual " + ") a, " + "(select * from " + "(select t.*, row_number() over (partition by t.POSITION order by length(t.ID_) desc, t.ID_ desc, t.CYCLE_ desc) XH " + "from DEV_CGK_INFO t where t.STATUS = '使用' and t.POSITION is not null) where XH = 1 " + ") b " + "where a.POSITION = b.POSITION(+)" + "order by a.POSITION"; CallingMessage par = new CallingMessage(); par.ServerName = "LgDeviceManager"; par.AssemblyName = "Core.LgMes.Server.LgDeviceManager"; par.ClassName = "Core.LgMes.Server.LgDeviceManager.jjqmanager"; par.MethodName = "ExecuteCommand_Return"; par.args = new object[] { strSql }; DataSet ds = (DataSet)ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (strErr == "" && ds != null && ds.Tables.Count > 0) { ultraGrid1.DataSource = ds.Tables[0]; ultraGrid1.DataBind(); try { ultraGrid1.DisplayLayout.Bands[0].Columns["班组"].ValueList = vlstShiftClone; } catch (Exception ex) { Console.WriteLine(ex.Message); } } if (ultraGrid1.Rows.Count > 0) { if (strCurrID.Length > 0) LocateRecord(strCurrID, bSelected); } else strCurrID = ""; } catch { } finally { bRefreshNow = false; } } public void proc_GetUseInfo() { try { string strWhere = ""; if (cbxSJ.Checked) { string strFrom = ultDTFrom.DateTime.ToString("yyyy-MM-dd"); string strTo = ultDTTo.DateTime.ToString("yyyy-MM-dd"); strWhere += " and to_char(TIME_ON, 'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'"; } if (cbxLZ.Checked && cbbLZ.SelectedIndex > -1) { strWhere += " and substr(ID_, 1, 1) = '" + Convert.ToString(cbbLZ.SelectedIndex + 1) + "' "; } string strErr = ""; string strSql = "select " + "ID_ 出钢口编号, STATUS 当前状态, " + "case STATUS when '使用' then POSITION end 炉座," + "nvl(AGE_G, 0) 使用次数, HEATNO_H 头炉炉号, HEATNO_T 尾炉炉号, " + "to_char(TIME_ON, 'yyyy-MM-dd HH24:mi:ss') 时间, " + "SHIFT_ON 班组, OPTOR_ON 操作人员, '' 换上, " + "TAPTIME_H 头炉, TAPTIME_T 尾炉, '' 出钢时间, " + "to_char(TIME_OFF, 'yyyy-MM-dd HH24:mi:ss') 时间2, " + "SHIFT_OFF 班组2, OPTOR_OFF 操作人员2, '' 换下, " + "MEMO 备注, CYCLE_ 周期编号 " + "from DEV_CGK_INFO " + "where 1 = 1 " + strWhere + " " + "order by STATUS, POSITION, length(ID_) desc, ID_ desc, CYCLE_ desc"; CallingMessage par = new CallingMessage(); par.ServerName = "LgDeviceManager"; par.AssemblyName = "Core.LgMes.Server.LgDeviceManager"; par.ClassName = "Core.LgMes.Server.LgDeviceManager.jjqmanager"; par.MethodName = "ExecuteCommand_Return"; par.args = new object[] { strSql }; DataSet ds = (DataSet)ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (strErr == "" && ds != null && ds.Tables.Count > 0) { ultraGrid2.DataSource = ds.Tables[0]; ultraGrid2.DataBind(); try { ultraGrid2.DisplayLayout.Bands[0].Columns["班组"].ValueList = vlstShift; ultraGrid2.DisplayLayout.Bands[0].Columns["班组2"].ValueList = vlstShift; } catch { } } proc_SetBackColorforUseInfo(); if (ultraGrid2.Rows.Count == 0) { proc_ResetEditArea(); } } catch (Exception ex) { MessageBox.Show("使用记录查询过程中出错!\r\n" + ex.Message, "提示"); } } private void proc_SetBaseInfo() { try { proc_SetForeColorforBaseInfo(); } catch { } } private void proc_ResetEditArea() { try { tbxCGKBH.Clear(); tbxCGKBH.Tag = null; tbxDQZT.Clear(); tbxLZH.Clear(); tbxTLLH.Clear(); tbxWLLH.Clear(); nudLGCS.Value = nudTLCGSJ.Value = nudWLCGSJ.Value = 0; dateTimePicker1.Value = dateTimePicker2.Value = null; tbxMemo.Clear(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void proc_Edit() { try { if (ultraGrid2.Rows.Count == 0) return; if (ultraGrid2.ActiveRow == null) { MessageBox.Show("请选择需要修改的出钢口使用信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (MessageBox.Show("确认修改当前出钢口使用信息吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; UltraGridRow row = ultraGrid2.ActiveRow; string strID = Convert.ToString(row.Cells["出钢口编号"].Value); string strCycle = Convert.ToString(row.Cells["周期编号"].Value); string strTllh = tbxTLLH.Text.Trim(); string strWllh = tbxWLLH.Text.Trim(); string strLgcx = Convert.ToString(nudLGCS.Value).Trim(); string strTlcgsj = Convert.ToString(nudTLCGSJ.Value).Trim(); string strWlcgsj = Convert.ToString(nudWLCGSJ.Value).Trim(); string strFrom = dateTimePicker1.Text.Trim(); string strTo = dateTimePicker2.Text.Trim(); string strMemo = tbxMemo.Text.Trim(); string strErr = ""; string strSql = "update " + "DEV_CGK_INFO set " + "AGE_G = to_number('" + strLgcx + "'), " + "HEATNO_H = '" + strTllh + "', " + "HEATNO_T = '" + strWllh + "', " + "TAPTIME_H = to_number('" + strTlcgsj + "'), " + "TAPTIME_T = to_number('" + strWlcgsj + "'), " + "TIME_ON = to_date('" + strFrom + "', 'yyyy-MM-dd HH24:mi:ss'), " + "TIME_OFF = to_date('" + strTo + "', 'yyyy-MM-dd HH24:mi:ss'), " + "MEMO = '" + strMemo + "' " + "where ID_ = '" + strID + "' and CYCLE_ = to_number(" + strCycle + ") "; CallingMessage par = new CallingMessage(); par.ServerName = "LgDeviceManager"; par.AssemblyName = "Core.LgMes.Server.LgDeviceManager"; par.ClassName = "Core.LgMes.Server.LgDeviceManager.jjqmanager"; par.MethodName = "ExecuteCommand_NonReturn"; par.args = new object[] { strSql }; ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (!string.IsNullOrEmpty(strErr)) { MessageBox.Show("出钢口使用信息修改失败!\r\n" + strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } proc_GetUseInfo(); try { for (int i = 0; i < ultraGrid2.Rows.Count; i++) { if (Convert.ToString(ultraGrid2.Rows[i].Cells["出钢口编号"].Value) == strID && Convert.ToString(ultraGrid2.Rows[i].Cells["周期编号"].Value) == strCycle) { ultraGrid2.ActiveRow = ultraGrid2.Rows[i]; ultraGrid2.Rows[i].Selected = true; break; } } } catch { } MessageBox.Show("出钢口使用信息修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (Exception ex) { MessageBox.Show("出钢口使用信息修改过程中出错!\r\n" + ex.Message, "提示"); } } private void proc_Del() { try { if (ultraGrid2.Rows.Count == 0) return; if (ultraGrid2.ActiveRow == null) { MessageBox.Show("请选择需要删除的出钢口使用信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (MessageBox.Show("确认删除当前出钢口使用信息吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; UltraGridRow row = ultraGrid2.ActiveRow; string strID = Convert.ToString(row.Cells["出钢口编号"].Value); string strCycle = Convert.ToString(row.Cells["周期编号"].Value); string strErr = ""; string strSql = "select nvl(STATUS, '不明') STATUS from DEV_CGK_INFO where ID_ = '" + strID + "' and CYCLE_ = to_number(" + strCycle + ") "; CallingMessage par = new CallingMessage(); par.ServerName = "LgDeviceManager"; par.AssemblyName = "Core.LgMes.Server.LgDeviceManager"; par.ClassName = "Core.LgMes.Server.LgDeviceManager.jjqmanager"; par.MethodName = "ExecuteCommand_Return"; par.args = new object[] { strSql }; DataSet ds = (DataSet)ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (!(strErr == "" && ds != null && ds.Tables.Count > 0)) { MessageBox.Show("出钢口使用信息删除失败!\r\n" + strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (ds.Tables[0].Rows.Count > 0) { if (!Convert.ToString(ds.Tables[0].Rows[0]["STATUS"]).Equals("使用")) { MessageBox.Show("出钢口已经下线,不能删除使用信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } } else { MessageBox.Show("出钢口使用信息不存在!\r\n" + strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } strSql = "delete from DEV_CGK_INFO where ID_ = '" + strID + "' and CYCLE_ = to_number(" + strCycle + ") "; par.MethodName = "ExecuteCommand_NonReturn"; par.args = new object[] { strSql }; ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (!string.IsNullOrEmpty(strErr)) { MessageBox.Show("出钢口使用信息删除失败!\r\n" + strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } proc_GetUseInfo(); MessageBox.Show("出钢口使用信息删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (Exception ex) { MessageBox.Show("出钢口使用信息删除过程中出错!\r\n" + ex.Message, "提示"); } } //private static UltraGridExcelExporter ultraGridExcelExporter1 = new UltraGridExcelExporter(); //public static void ExportData(ref UltraGrid ultGrid, string strFileName) //{ // try // { // if (ultGrid.Rows.Count == 0) return; // if (strFileName.Length == 0) // strFileName = "未命名"; // SaveFileDialog dlg = new SaveFileDialog(); // dlg.Title = "保存"; // dlg.OverwritePrompt = true; // dlg.Filter = "Excel文件(*.xls)|*.xls"; // dlg.AddExtension = true; // dlg.FileName = strFileName; // if (dlg.ShowDialog() == DialogResult.OK) // { // strFileName = dlg.FileName; // ultraGridExcelExporter1.Export(ultGrid, strFileName); // if (MessageBox.Show("数据导出成功!\r\n需要打开所导出文件吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // { // ultraGridExcelExporter1.Export(ultGrid, strFileName); // ProcessStartInfo p = new ProcessStartInfo(strFileName); // p.WorkingDirectory = Path.GetDirectoryName(strFileName); // Process.Start(p); // } // } // } // catch (Exception ex) // { // MessageBox.Show(ex.Message); // } //} //private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) //{ // switch (e.Tool.Key) // { // case "Close": // this.Close(); // break; // case "Select": // proc_GetUseInfo(); // break; // case "Modfiy": // proc_Edit(); // break; // case "Delete": // proc_Del(); // break; // case "Export": // string strFileName = "出钢口使用记录"; // ExportData(ref ultraGrid2, strFileName); // break; // } //} private void ultraGrid1_DoubleClickRow(object sender, Infragistics.Win.UltraWinGrid.DoubleClickRowEventArgs e) { try { if (e.Row == null) return; string strBof = Convert.ToString(e.Row.Cells["炉座号"].Value); string strId = ""; string strErr = ""; string strSql = "select * from DEV_CGK_INFO where STATUS = '使用' and POSITION = '" + strBof + "'"; CallingMessage par = new CallingMessage(); par.ServerName = "LgDeviceManager"; par.AssemblyName = "Core.LgMes.Server.LgDeviceManager"; par.ClassName = "Core.LgMes.Server.LgDeviceManager.jjqmanager"; par.MethodName = "ExecuteCommand_Return"; par.args = new object[] { strSql }; DataSet ds = (DataSet)ClientCommon._RemotingHelp.ExecuteMethod(par, out strErr); if (!(strErr == "" && ds != null && ds.Tables.Count > 0)) { MessageBox.Show(strBof + "信息获取失败!\r\n" + strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (ds.Tables[0].Rows.Count > 0) { strId = Convert.ToString(ds.Tables[0].Rows[0]["ID_"]).Trim(); } else { strId = ""; } FrmTapHoleOperate frm = new FrmTapHoleOperate(strBof, strId); frm.Tag = this; frm.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { try { if (ultraGrid2.ActiveRow == null) return; UltraGridRow row = ultraGrid2.ActiveRow; tbxCGKBH.Text = Convert.ToString(row.Cells["出钢口编号"].Value); tbxCGKBH.Tag = Convert.ToString(row.Cells["周期编号"].Value); tbxDQZT.Text = Convert.ToString(row.Cells["当前状态"].Value); tbxLZH.Text = Convert.ToString(row.Cells["炉座"].Value); tbxTLLH.Text = Convert.ToString(row.Cells["头炉炉号"].Value); tbxWLLH.Text = Convert.ToString(row.Cells["尾炉炉号"].Value); try { nudLGCS.Value = Convert.ToDecimal(row.Cells["使用次数"].Value); } catch { nudLGCS.Value = 0; } try { nudTLCGSJ.Value = Convert.ToDecimal(row.Cells["头炉"].Value); } catch { nudTLCGSJ.Value = 0; } try { nudWLCGSJ.Value = Convert.ToDecimal(row.Cells["尾炉"].Value); } catch { nudWLCGSJ.Value = 0; } if (string.IsNullOrEmpty(Convert.ToString(row.Cells["时间"].Value))) { dateTimePicker1.FormatString = " "; dateTimePicker1.Text = ""; } else { try { dateTimePicker1.Value = Convert.ToDateTime(row.Cells["时间"].Value); } catch { dateTimePicker1.Value = DateTime.Now; } } if (string.IsNullOrEmpty(Convert.ToString(row.Cells["时间2"].Value))) { dateTimePicker2.ReadOnly = true; dateTimePicker2.Text = ""; dateTimePicker2.Nullable = true; dateTimePicker2.Value = null; } else { dateTimePicker2.ReadOnly = false; try { dateTimePicker2.Value = Convert.ToDateTime(row.Cells["时间2"].Value); } catch { dateTimePicker2.Value = DateTime.Now; } } tbxMemo.Text = Convert.ToString(row.Cells["备注"].Value); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } private void cbxLZ_CheckedChanged(object sender, EventArgs e) { cbbLZ.Enabled = cbxLZ.Checked; } private void cbxSJ_CheckedChanged(object sender, EventArgs e) { ultDTFrom.Enabled = cbxSJ.Checked; ultDTTo.Enabled = cbxSJ.Checked; } private void cbxGL_CheckedChanged(object sender, EventArgs e) { try { if (cbxGL.Checked) { this.ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True; } else { this.ultraGrid2.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters(); this.ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } } catch { } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { if (bRefreshNow) return; UltraGridRow row = ultraGrid1.ActiveRow; if (row != null) { strCurrID = Convert.ToString(row.Cells["炉座号"].Value); bSelected = ultraGrid1.ActiveRow.Selected; } } catch { strCurrID = ""; } } } }