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 Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Tool; using System.Collections; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; namespace Core.StlMes.Client.Lims.Data.PipeAndOutdec { public partial class FrmBaseChemStdSteelSelect : FrmBase { private string Departm = "";//部门 public FrmBaseChemStdSteelSelect() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid5.DisplayLayout.Override.RowSelectorNumberStyle = Infragistics.Win.UltraWinGrid.RowSelectorNumberStyle.Default; //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; //ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid5.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmBaseChemStdSteelSelect_Load(object sender, EventArgs e) { Departm = this.UserInfo.GetDeptid(); InitColumns(); RefreshBaseData(); //RefreshUltraGridAutoSize(); } private void InitColumns() { string[] chemMax = PublicPipeAndOutdec.chemMax.Split(' '); string[] chemMin = PublicPipeAndOutdec.chemMin.Split(' '); string[] arrColumnsBase = new string[] { "SAMPLE_NO", "STEEL_NO" }; string[] arrCaptionBase = new string[] { "标钢编号", "钢号" }; PublicPipeAndOutdec.InitColumns(arrColumnsBase, chemMax, arrCaptionBase, chemMin, dataTable5); PublicPipeAndOutdec.setOtherColumnReadOnly(ultraGrid5, chemMax);//可编辑列 } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { //新增、修改修约值、审核、删除、退出 switch (ToolbarKey) { case "Refresh": RefreshBaseData(); break; case "Confirm": SaveChemStdSteelSelect(); break; case "Delete": DeleteChemStdSteelSelect(); break; case "Check": CheckValid(); break; case "Clear": ClearNowRules(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } //刷新可选钢种和标钢 /// /// 刷新可选钢种和标钢 /// private void RefreshUltraGridAutoSize() { //GridHelper.RefreshAndAutoSize(ultraGrid2); //GridHelper.RefreshAndAutoSize(ultraGrid4); //UltraGridColumn[] cols5 = new UltraGridColumn[] { ultraGrid5.DisplayLayout.Bands[0].Columns["SAMPLE_NO"], ultraGrid5.DisplayLayout.Bands[0].Columns["STEEL_NO"] }; //GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid5, cols5); } //刷新可选钢种和标钢 /// /// 刷新可选钢种和标钢 /// private void RefreshBaseData() { QuerySteelNo(); QueryChemStdSteelInfo(); } //检查修约规则的有效性 /// /// 检查修约规则的有效性 /// private void CheckValid() { foreach (DataRow dr in dataTable4.Rows) { if (dr["SAMPLE_NO"].ToString() == "") { MessageUtil.ShowWarning("元素" + dr["ELEMENTS"] + "没有维护修约规则!"); return; } //}else if() //{ //} } } //查询未维护钢种 /// /// 查询未维护钢种 /// private void QuerySteelNo() { try { string steelNo = this.txtSTEEL_NO.Text.Trim(); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QuerySteelNo", new Object[] { steelNo }, ob); if (dt == null || dt.Rows.Count == 0) { txtSTEEL_NO.Text = ""; dataTable1.Rows.Clear(); MessageUtil.ShowWarning("找不到钢种!"); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid1); DataTable dtHave = PublicServer.GetData("com.steering.lims.data.base.FrmBaseChemStdSteelSelect.QueryChemStdSteelSelect_Distinct", new Object[] { steelNo, Departm }, ob); if (dtHave != null && dtHave.Rows.Count > 0) { foreach (UltraGridRow dr in ultraGrid1.Rows) { if (dtHave.Select("STEEL_NO = '" + dr.Cells["STEEL_NO"].Text + "'").Length > 0) { dr.Appearance.BackColor = Color.GreenYellow; } } } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询标钢 /// /// 查询标钢 /// private void QueryChemStdSteelInfo() { try { ArrayList al = new ArrayList(); al.Add(""); al.Add(""); al.Add(""); al.Add(""); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseChemStdSteel.QueryChemStdSteelInfo", new Object[] { }, ob);//al if (dt == null || dt.Rows.Count == 0) { dataTable3.Rows.Clear(); dataTable2.Rows.Clear(); MessageUtil.ShowWarning("没有可选标钢!"); return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid2); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询标钢 /// /// 查询标钢 /// private void QueryChemStdSteelSelect() { try { if (ultraGrid1.ActiveRow != null && ultraGrid1.ActiveRow.Activated == true) { ArrayList al = new ArrayList(); al.Add(ultraGrid1.ActiveRow.Cells["STEEL_NO"].Text.Trim().ToUpper()); al.Add(Departm); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseChemStdSteelSelect.QueryChemStdSteelSelect", new Object[] { al }, ob); //dataTable3.Rows.Clear(); dataTable4.Rows.Clear(); dataTable5.Rows.Clear(); if (dt == null || dt.Rows.Count == 0) { //MessageUtil.ShowWarning("没有可选标钢!"); return; } DataRow[] arrDr = null; DataRow newDr; foreach (DataRow dr in dt.Rows) { //已经选择的修约规则要打钩 newDr = dataTable5.NewRow(); newDr["STEEL_NO"] = dr["SELECT_STEEL_NO"]; newDr["SAMPLE_NO"] = dr["SAMPLE_NO"]; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName.IndexOf("ANA_") == 0) { if (dataTable5.Columns.Contains(dc.ColumnName)) { if (dr[dc.ColumnName].ToString() == "1") { newDr[dc.ColumnName] = "√"; } else { newDr[dc.ColumnName] = ""; } } } } dataTable5.Rows.Add(newDr); } //RefreshUltraGridAutoSize(); GridHelper.RefreshAndAutoSize(ultraGrid5); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //确认修约规则 /// /// 确认修约规则 /// private void SaveChemStdSteelSelect() { try { string steelNo = this.txtSTEEL_NO.Text.Trim(); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QuerySteelNo", new Object[] { steelNo }, ob); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowWarning("没有钢种【" + this.txtSTEEL_NO.Text.Trim() + "】,请联系标准科维护新钢种!"); return; } //if (dataTable2.Select("CHK = 'True'").Length == 0) //{ // MessageUtil.ShowWarning("请挑选修约规则再保存!"); // return; //} if (MessageUtil.ShowYesNoAndQuestion("是否确认保存此修约规则?") == DialogResult.Yes) { string strSTEEL_NO = ultraGrid1.ActiveRow.Cells["STEEL_NO"].Text.Trim();//选择钢号 string strSELECT_NAME = UserInfo.GetUserName();//选择人 string strSELECT_TIME = DateTime.Now.ToString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//选择时间 string strSELECT_SHIFT = UserInfo.GetUserOrderText();//选择班次 string strSELECT_CLASS = UserInfo.GetUserGroupText();//选择班组 ArrayList alAll = new ArrayList(); ArrayList alDelete = new ArrayList(); ArrayList alSelect = new ArrayList();//存放参数集合 ArrayList alDeleteParams = new ArrayList(); ArrayList alSelectParams = new ArrayList();//存放单条参数 alDeleteParams.Add(strSTEEL_NO); alDeleteParams.Add(Departm); alDelete.Add(alDeleteParams); ultraGrid5.UpdateData(); foreach (DataRow dr in dataTable5.Rows) { //alSelect = new ArrayList(); alSelectParams = new ArrayList(); alSelectParams.Add(strSTEEL_NO); alSelectParams.Add(strSELECT_NAME); alSelectParams.Add(strSELECT_TIME); alSelectParams.Add(strSELECT_SHIFT); alSelectParams.Add(strSELECT_CLASS); alSelectParams.Add(Departm); foreach (DataColumn dc in dataTable5.Columns) { if (dc.ColumnName == "STEEL_NO") { alSelectParams.Add(dr["STEEL_NO"].ToString()); } else if (dc.ColumnName == "SAMPLE_NO") { alSelectParams.Add(dr["SAMPLE_NO"].ToString()); } else { if (dr[dc.ColumnName].ToString() == "") { alSelectParams.Add("0"); } else { alSelectParams.Add("1"); } } } alSelect.Add(alSelectParams); } alAll.Add(alDelete); alAll.Add(alSelect); PublicServer.SetData("com.steering.lims.data.base.FrmBaseChemStdSteelSelect.SaveChemStdSteelSelect", new Object[] { alAll }, this.ob); QuerySteelNo(); PublicPipeAndOutdec.ActiveOperateRow(ultraGrid1, "STEEL_NO", strSTEEL_NO); MessageUtil.ShowTips("保存成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //清空已选择修约规则 /// /// 清空已选择修约规则 /// private void ClearNowRules() { if (MessageUtil.ShowYesNoAndQuestion("是否确认清空界面已维护的修约规则?") == DialogResult.Yes) { dataTable5.Rows.Clear(); foreach (DataRow dr in dataTable2.Rows) { dr["CHK"] = "False"; } } } //删除已保存修约规则 /// /// 删除已保存修约规则 /// private void DeleteChemStdSteelSelect() { if (ultraGrid1.ActiveRow == null || ultraGrid1.ActiveRow.Activated == false) { MessageUtil.ShowWarning("请选择需要删除的数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除已维护的修约规则?") == DialogResult.Yes) { string strSTEEL_NO = ultraGrid1.ActiveRow.Cells["STEEL_NO"].Text.Trim(); string strSAMPLE_NO = ultraGrid5.ActiveRow.Cells["SAMPLE_NO"].Text.Trim(); string strSTEEL_NO5 = ultraGrid5.ActiveRow.Cells["STEEL_NO"].Text.Trim(); ArrayList al = new ArrayList(); al.Add(strSTEEL_NO); al.Add(strSAMPLE_NO); al.Add(strSTEEL_NO5); al.Add(Departm); PublicServer.SetData("com.steering.lims.data.base.FrmBaseChemStdSteelSelect.DeleteChemStdSteelSelect", new Object[] { al }, this.ob); QuerySteelNo(); PublicPipeAndOutdec.ActiveOperateRow(ultraGrid1, "STEEL_NO", strSTEEL_NO); MessageUtil.ShowTips("删除成功!"); } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { txtSTEEL_NO.Text = ultraGrid1.ActiveRow.Cells["STEEL_NO"].Text.Trim(); QueryChemStdSteelSelect(); QuerySteelNoStdValue(); } //查询钢种上下限 /// /// 查询钢种上下限 /// private void QuerySteelNoStdValue() { try { if (ultraGrid1.ActiveRow != null) { ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid1.ActiveRow.Cells["STEEL_NO"].Text.Trim()); arrayList.Add(Departm); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseChemStdSteelSelect.QuerySteelNoStdValue", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable4.Rows.Clear(); //MessageUtil.ShowTips("找不到标钢明细数据!"); return; } GridHelper.CopyDataToDatatable(dt, dataTable4, true); DataRow[] arrDr = null; foreach (DataRow dr in dataTable4.Rows) { if (dataTable5.Columns.Contains("ANA_" + dr["CHEM_NAME"].ToString())) { arrDr = dataTable5.Select("ANA_" + dr["CHEM_NAME"].ToString() + " = '√'"); if (arrDr.Length > 0) { dr["SAMPLE_NO"] = arrDr[0]["SAMPLE_NO"].ToString(); } } } GridHelper.RefreshAndAutoSize(ultraGrid4); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { QueryChemStdSteelValue(); } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHK") { string strSAMPLE_NO = ultraGrid2.ActiveRow.Cells["SAMPLE_NO"].Text.Trim(); string strSTEEL_NO = ultraGrid2.ActiveRow.Cells["STEEL_NO"].Text.Trim(); if (e.Cell.Text == "True") { foreach (DataRow dataRow in dataTable5.Rows) { if (dataRow["SAMPLE_NO"].ToString().Trim() == ultraGrid2.ActiveRow.Cells["SAMPLE_NO"].Text.Trim() && dataRow["STEEL_NO"].ToString().Trim() == ultraGrid2.ActiveRow.Cells["STEEL_NO"].Text.Trim()) { MessageUtil.ShowWarning("已经选择了此标钢!"); return; } } DataRow dr = dataTable5.NewRow(); foreach (DataColumn dc in dataTable5.Columns) { if (dc.ColumnName == "SAMPLE_NO") { dr["SAMPLE_NO"] = strSAMPLE_NO; } else if (dc.ColumnName == "STEEL_NO") { dr["STEEL_NO"] = strSTEEL_NO; } else { dr[dc.ColumnName] = ""; } } dataTable5.Rows.Add(dr); } else { //取消选择则要在Grid5删掉 foreach (DataRow dr in dataTable5.Rows) { if (dr["SAMPLE_NO"].ToString().Trim() == strSAMPLE_NO && dr["STEEL_NO"].ToString().Trim() == strSTEEL_NO) { dataTable5.Rows.Remove(dr); return; } } } GridHelper.RefreshAndAutoSize(ultraGrid5); } } //查询标钢标准值 /// /// 查询标钢标准值 /// private void QueryChemStdSteelValue() { try { if (ultraGrid2.ActiveRow != null) { dataTable3.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add("0"); arrayList.Add(ultraGrid2.ActiveRow.Cells["SAMPLE_NO"].Text.Trim()); arrayList.Add(ultraGrid2.ActiveRow.Cells["STEEL_NO"].Text.Trim()); arrayList.Add(ultraGrid2.ActiveRow.Cells["STEEL_NO"].Text.Trim()); arrayList.Add(ultraGrid2.ActiveRow.Cells["STEEL_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseChemStdSteel.QueryChemStdSteelDetail", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { //MessageUtil.ShowTips("找不到标钢明细数据!"); return; } foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName.IndexOf("ANA_") == 0 && dt.Rows[0][dc.ColumnName].ToString() != "") { DataRow dr = dataTable3.NewRow(); dr["ELEMENTS"] = dc.ColumnName.Remove(0, 4); dr["STD_VALUE"] = dt.Rows[0][dc.ColumnName].ToString(); dataTable3.Rows.Add(dr); } } GridHelper.RefreshAndAutoSize(ultraGrid3); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid5_ClickCell(object sender, ClickCellEventArgs e) { if (PublicPipeAndOutdec.chemMax.IndexOf(e.Cell.Column.Key) >= 0) { ultraGrid5.UpdateData(); if (e.Cell.Text.Trim() == "") { e.Cell.Value = "√"; //判断其他行是否有一样选择的元素没有则新增有则提示 DataRow[] arrDr = dataTable5.Select(e.Cell.Column.Key + " = '√'"); if (arrDr.Length > 0) { e.Cell.Value = ""; MessageUtil.ShowWarning("其他标钢已经选择了此元素!"); return; } //打钩则要赋予标钢编号 GridHelper.RefreshAndAutoSize(ultraGrid3); } else { e.Cell.Value = ""; } foreach (DataRow dr in dataTable4.Rows) { if ("ANA_" + dr["CHEM_NAME"].ToString().ToUpper() == e.Cell.Column.Key) { if (e.Cell.Text == "√") { dr["SAMPLE_NO"] = e.Cell.Row.Cells["SAMPLE_NO"].Text.Trim(); } else { dr["SAMPLE_NO"] = ""; } return; } } } } } }