using System; using System.Collections; using System.Windows.Forms; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Drawing; using System.Data; namespace Core.StlMes.Client.LgCommon { public delegate void GetDataDelegate(); public partial class ucResBofc : ucResBase { /// /// 吹氧次数按钮点击事件代理 /// public GetDataDelegate GetOxygenBlastTimesHandler = null; /// /// 氧枪历史按钮点击事件代理 /// public GetDataDelegate GetOxygenLanceHistoryHandler = null; public bool allowSave = true; //是否允许修改实绩 public bool allowSave1 = true; //是否允许修改实绩 public bool allowSave2 = true; //是否允许修改实绩 public bool allowSave3 = true; //是否允许修改实绩 public DataSet dsTept = new DataSet(); //出钢温度 public ucResBofc() { InitializeComponent(); try { if (ultraDataSource1.Rows.Count>0) ultraDataSource1.Rows[0]["OXYGENLANCEHISTORY"] = "氧枪历史"; } catch { } } protected override void InitValuelist() { base.InitValuelist(); try { ValueList vlist = ClsBusinessPack.GetValuelistBlockSlagEffect(); ClsControlPack.SetGridValuelist(ref ultraGrid1, "BLKREDEFFECTS", ref vlist); ValueList vlist1 = ClsBusinessPack.GetValuelistBlockSlagMode(); ClsControlPack.SetGridValuelist(ref ultraGrid1, "BLKREDMODE", ref vlist1); ValueList vlist2 = ClsBusinessPack.GetValuelistIronSourceForBOF(); ClsControlPack.SetGridValuelist(ref ultraGrid1, "MOLIRNTYPE", ref vlist2); } catch { } } public override void ResetData() { base.ResetData(); try { UltraGridRow row = ultraGrid1.Rows[0]; row.Cells["OXYGENLANCEHISTORY"].Value = "氧枪枪位曲线"; } catch { } } public override void SetData(Hashtable ar) { base.SetData(ar); try { UltraGridRow row = ultraGrid1.Rows[0]; row.Cells["OXYGENLANCEHISTORY"].Value = "氧枪枪位曲线"; ClsBusinessPack.GetTimeSpanfromUI(row.Cells["CHANGESTARTTIME"], row.Cells["CHANGEENDTIME"], row.Cells["CHANGETIME"]); //ClsBusinessPack.GetTimeSpanfromUI(row.Cells["OPENOXYGENTIME"], row.Cells["STOPOXYGENTIME"], row.Cells["SUPPLYOXYGENTIME"]); ClsBusinessPack.GetTimeSpanfromUI(row.Cells["TAPPINGSTARTTIME"], row.Cells["TAPPINGENDTIME"], row.Cells["TAPPINGTIME"]); ClsBusinessPack.GetTimeSpanfromUI(row.Cells["PSSTARTTIME"], row.Cells["PSENDTIME"], row.Cells["BRPSTIME"]); if (dsTept != null && dsTept.Tables[0].Rows.Count > 0) { ValueList vlist3 = ClsBusinessPack.GetValuelistTeptForBOF(dsTept); ClsControlPack.SetGridValuelist(ref ultraGrid1, "TERMINUSTEPT", ref vlist3); } else { ultraGrid1.DisplayLayout.Bands[0].Columns["TERMINUSTEPT"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; } } catch { } } private void ultraGrid1_KeyPress(object sender, KeyPressEventArgs e) { string strKey = this.ultraGrid1.ActiveCell.Column.ToString(); if (strKey == "OGGNUMID" || strKey == "GAGE" || strKey == "SAGE" || strKey == "BLOWO2TIMES" || strKey == "EMOLSTLTIME" || strKey == "IRONPOTID") { if (!(Char.IsNumber(e.KeyChar) && ultraGrid1.ActiveRow.Cells[strKey].Value.ToString().Length <= 6) && e.KeyChar != '\b') { e.Handled = true; } } if (strKey == "RSSTOVENO") { if (!(Char.IsNumber(e.KeyChar) && ultraGrid1.ActiveRow.Cells[strKey].Value.ToString().Length <= 8) && e.KeyChar != '\b') { e.Handled = true; } } if (strKey == "IRONPOTWGT" || strKey == "IRONTEMPERATURE" || strKey == "WSTEELWGT" || strKey == "PIGIRONWGT" || strKey == "O2CONSUME" || strKey == "TOPN2CONSUME" || strKey == "TERMINUSC" || strKey == "TERMINUSO2" || strKey == "TERMINUSTEPT" || strKey == "RSWGT" ) { if (!(e.KeyChar == '\b') && ultraGrid1.ActiveRow.Cells[strKey].Value.ToString().Length >= 6) { e.Handled = true; } if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b' || e.KeyChar == '.')) { e.Handled = true; } if (e.KeyChar == '.') { char[] arrary = ultraGrid1.ActiveRow.Cells[strKey].Text.ToCharArray(); if (arrary.Length == 0) { ultraGrid1.ActiveRow.Cells[strKey].Value = "0."; ultraGrid1.ActiveRow.Cells[strKey].SelStart = ultraGrid1.ActiveRow.Cells[strKey].Value.ToString().Length; e.Handled = true; } else { for (int i = 0; i < arrary.Length; i++) { if (arrary[i] == '.') e.Handled = true; } } } } if (strKey == "MEMO") { char[] arrary = ultraGrid1.ActiveRow.Cells[strKey].Text.ToCharArray(); if (!(e.KeyChar == '\b') && arrary.Length >= 40) { // MessageBox.Show("生产记事不能超过40个字!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Handled = true; } } if (strKey == "PROTECTDTEG") { char[] arrary = ultraGrid1.ActiveRow.Cells[strKey].Text.ToCharArray(); if (!(e.KeyChar == '\b') && arrary.Length >= 10) { // MessageBox.Show("保护渣名称不能超过10个字!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Handled = true; } } } protected override void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e) { base.ultraGrid1_AfterCellUpdate(sender, e); try { if (!e.Cell.Column.Hidden && e.Cell.Column.CellActivation == Activation.AllowEdit) { string strKey = e.Cell.Column.Key.ToUpper(); UltraGridRow row = e.Cell.Row; if (strKey.Equals("CHANGESTARTTIME") || strKey.Equals("CHANGEENDTIME")) { if ((DateTime)ultraGrid1.ActiveRow.Cells["CHANGESTARTTIME"].Value > (DateTime)ultraGrid1.ActiveRow.Cells["CHANGEENDTIME"].Value) { e.Cell.Appearance.BackColor = Color.Red; MessageBox.Show("兑铁结束时刻不能早于开始时刻", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); allowSave = false; return; } else { if (ultraGrid1.ActiveRow.Cells["CHANGESTARTTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["CHANGESTARTTIME"].Appearance.BackColor = Color.Orange; } if (ultraGrid1.ActiveRow.Cells["CHANGEENDTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["CHANGEENDTIME"].Appearance.BackColor = Color.Orange; } allowSave = true; } ClsBusinessPack.GetTimeSpanfromUI(row.Cells["CHANGESTARTTIME"], row.Cells["CHANGEENDTIME"], row.Cells["CHANGETIME"]); } else if (strKey.Equals("OPENOXYGENTIME") || strKey.Equals("STOPOXYGENTIME")) { if ((DateTime)ultraGrid1.ActiveRow.Cells["OPENOXYGENTIME"].Value > (DateTime)ultraGrid1.ActiveRow.Cells["STOPOXYGENTIME"].Value) { e.Cell.Appearance.BackColor = Color.Red; MessageBox.Show("停氧时刻不能早于开氧时刻", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); allowSave1 = false; return; } else { if (ultraGrid1.ActiveRow.Cells["OPENOXYGENTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["OPENOXYGENTIME"].Appearance.BackColor = Color.Orange; } if (ultraGrid1.ActiveRow.Cells["STOPOXYGENTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["STOPOXYGENTIME"].Appearance.BackColor = Color.Orange; } allowSave1 = true; } ClsBusinessPack.GetTimeSpanfromUI(row.Cells["OPENOXYGENTIME"], row.Cells["STOPOXYGENTIME"], row.Cells["SUPPLYOXYGENTIME"]); } else if (strKey.Equals("TAPPINGSTARTTIME") || strKey.Equals("TAPPINGENDTIME")) { if ((DateTime)ultraGrid1.ActiveRow.Cells["TAPPINGSTARTTIME"].Value > (DateTime)ultraGrid1.ActiveRow.Cells["TAPPINGENDTIME"].Value) { e.Cell.Appearance.BackColor = Color.Red; MessageBox.Show("出钢结束时刻不能早于出钢开始时刻", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); allowSave2 = false; return; } else { if (ultraGrid1.ActiveRow.Cells["TAPPINGSTARTTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["TAPPINGSTARTTIME"].Appearance.BackColor = Color.Orange; } if (ultraGrid1.ActiveRow.Cells["TAPPINGENDTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["TAPPINGENDTIME"].Appearance.BackColor = Color.Orange; } allowSave2 = true; } ClsBusinessPack.GetTimeSpanfromUI(row.Cells["TAPPINGSTARTTIME"], row.Cells["TAPPINGENDTIME"], row.Cells["TAPPINGTIME"]); } else if (strKey.Equals("PSSTARTTIME") || strKey.Equals("PSENDTIME")) { if ((DateTime)ultraGrid1.ActiveRow.Cells["PSSTARTTIME"].Value > (DateTime)ultraGrid1.ActiveRow.Cells["PSENDTIME"].Value) { e.Cell.Appearance.BackColor = Color.Red; MessageBox.Show("溅渣结束时刻不能早于溅渣开始时刻", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); allowSave3 = false; return; } else { if (ultraGrid1.ActiveRow.Cells["PSSTARTTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["PSSTARTTIME"].Appearance.BackColor = Color.Orange; } if (ultraGrid1.ActiveRow.Cells["PSENDTIME"].Appearance.BackColor == Color.Red) { ultraGrid1.ActiveRow.Cells["PSENDTIME"].Appearance.BackColor = Color.Orange; } allowSave3 = true; } ClsBusinessPack.GetTimeSpanfromUI(row.Cells["PSSTARTTIME"], row.Cells["PSENDTIME"], row.Cells["BRPSTIME"]); } } } catch { } } protected override void ultraGrid1_ClickCellButton(object sender, CellEventArgs e) { base.ultraGrid1_ClickCellButton(sender, e); try { string strKey = e.Cell.Column.Key.ToUpper(); if (e.Cell.Column.DataType != typeof(DateTime)) { if (strKey.Equals("RSSTOVENO")) { frmHeatNoEditor frm = new frmHeatNoEditor(); frm.InputText = Convert.ToString(e.Cell.Text); frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size); if (frm.ShowDialog() == DialogResult.OK) { e.Cell.Value = frm.InputText; ultraGrid1.UpdateData(); } } else if (strKey.Equals("BLOWO2TIMES")) { if (GetOxygenBlastTimesHandler != null) this.Invoke(GetOxygenBlastTimesHandler); } else if (strKey.Equals("OXYGENLANCEHISTORY")) { if (GetOxygenLanceHistoryHandler != null) this.Invoke(GetOxygenLanceHistoryHandler); } else { frmInputDecimal frm = new frmInputDecimal(Convert.ToString(e.Cell.Text)); frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size); if (frm.ShowDialog() == DialogResult.OK) { if (!frm.ValueChanged) return; e.Cell.Value = frm.Value; ultraGrid1.UpdateData(); } } } } catch { } } private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { } } }