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 Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinGrid; using System.Collections; using Core.Mes.Client.Comm.Tool; using Infragistics.Win; //接炼钢计划锻造数据 连铸低倍 //ultraGrid1显示需要录入数据的信息,点击ultraGrid1-ultraGrid2显示需要录入的项目 //点击查询ultraGrid3显示查询到的已录入信息 //提供离线录入和打印功能 //项目都有默认值(参考老系统) //一炉也许对应多个试样 炼钢 //中心偏析 夹渣 白亮带 三列先默认隐藏 需要的时候添加进来 namespace Core.StlMes.Client.Lims.Data.Steer { public partial class FrmSteerDBCastingDataCJ : FrmBase { private DataTable m_dtPhyMinItems_DB; public FrmSteerDBCastingDataCJ() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ultraGrid1.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;//不默认加载筛选条件框 } private void FrmSteerDBCastingDataCJ_Load(object sender, EventArgs e) { steerQueryBase1.ChangeLabel("计划时间"); steerQueryBase1.HiddenSampleNo(); InitColumns(); PublicSteer.ColumnsWidth(ultraGrid2, 0, 60); } private void InitColumns() { string[] arrColumnsBase = new string[] { "ID", "HEAT_NO", "CHANGE_HEAT_NO", "HEAT_NUM", "STEEL_NO", "PRODUCT_STD", "SAMPLE_SIZE", "ORDER_NO_SEQ", "PRODUCNAME", "CUSTOMER_NM", "SAMPLE_SOURCE", "DB_SOURCE", "PLAN_TIME", "CHECK_NAME", "CHECK_TIME", "CHECK_TEMP", "CHECK_SHIFT", "CHECK_CLASS", "DEVICE_NO", "DEVICE_NAME", "REMARK" };//, "STEEL_NO" string[] arrCaptionBase = new string[] { "ID", "电炉炉号", "判定炉号", "分切", "钢种", "判定标准", "规格", "合同号", "品种", "客户", "来源", "连铸来源", "计划时间", "录入人", "录入时间", "环境温度", "班次", "班组", "设备编码", "设备名称", "备注" };//, "钢号" PublicSteer.InitColumns(arrColumnsBase, arrCaptionBase, dataTable1); PublicSteer.InitColumns(arrColumnsBase, arrCaptionBase, dataTable3); PublicSteer.setColumnShowOrHidden(ultraGrid1, new string[] { "HEAT_NO", "CHANGE_HEAT_NO", "HEAT_NUM", "STEEL_NO", "PRODUCT_STD", "SAMPLE_SIZE", "ORDER_NO_SEQ", "PRODUCNAME", "CUSTOMER_NM", "SAMPLE_SOURCE", "DB_SOURCE", "PLAN_TIME" }, true); PublicSteer.setColumnShowOrHidden(ultraGrid3, new string[] { "HEAT_NO", "CHANGE_HEAT_NO", "HEAT_NUM", "STEEL_NO", "PRODUCT_STD", "SAMPLE_SIZE", "ORDER_NO_SEQ", "PRODUCNAME", "CUSTOMER_NM", "SAMPLE_SOURCE", "DB_SOURCE", "PLAN_TIME" }, true); PublicSteer.setOtherColumnReadOnly(ultraGrid1, null);//可编辑列 PublicSteer.setOtherColumnReadOnly(ultraGrid3, null);//可编辑列 QueryPhyMinItems_DB(); } private void QueryPhyMinItems_DB() { try { //获取炼钢低倍检验的项目 ArrayList al = new ArrayList(); al.Add("R0011");//C0010 DataTable dt = PublicServer.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QueryPhyMinItems_DB", new Object[] { al }, ob); if (dt == null || dt.Rows.Count == 0) { return; } m_dtPhyMinItems_DB = dt.Copy();//为此赋值 ArrayList alColumns = new ArrayList(); ArrayList alCaption = new ArrayList(); alColumns.Add("CHK"); alCaption.Add("选择"); alColumns.Add("SAMPLE_NO"); alCaption.Add("试样号"); foreach (DataRow dr in dt.Rows) { alColumns.Add(dr["PHY_CODE"].ToString()); alCaption.Add(dr["PHY_NAME"].ToString()); } PublicSteer.InitColumns(alColumns.ToArray(), alCaption.ToArray(), dataTable2); PublicSteer.setColumnShowOrHidden(ultraGrid2, new string[] { "P0141", "P0142", "P0143" }, false); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { QueryPhyDBAuditResultCheck();//低倍要录入数据 } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryPhyDBBaseInfo(); } break; case "Add": AddPhyDBAuditResult();//新增 break; case "Update": UpdatePhyDBAuditResult();//修改 break; case "Delete": DeletePhyDBAuditResult();//删除 break; case "Audit": AuditPhyDBAuditResult();//审核 break; case "Print": RepLimsSteerPhyDBResult();//打印 break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (ultraTabControl1.SelectedTab.Index == 0) { steerQueryBase1.ChangeLabel("计划时间"); if (toolMenu.Toolbars[0].Tools.Exists("Add")) { this.toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("Update")) { this.toolMenu.Toolbars[0].Tools["Update"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; } } else if (ultraTabControl1.SelectedTab.Index == 1) { steerQueryBase1.ChangeLabel("试验时间"); if (toolMenu.Toolbars[0].Tools.Exists("Add")) { this.toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Update")) { this.toolMenu.Toolbars[0].Tools["Update"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { this.toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; } } } //查询需要录入的信息 private void QueryPhyDBAuditResultCheck() { try { ArrayList arrayList = steerQueryBase1.GetQueryDbInfo(); DataTable dt = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.QueryPhyDBAuditResultCheck", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { //ClearData(); dataTable1.Rows.Clear(); dataTable2.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable GridHelper.RefreshAndAutoSize(ultraGrid1);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询已录入的信息 private void QueryPhyDBBaseInfo() { try { ArrayList arrayList = steerQueryBase1.GetQueryInfoNoSample(); arrayList.Insert(0, "0"); DataTable dt = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.QueryPhyDBBaseInfo", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { //ClearData(); dataTable3.Rows.Clear(); dataTable4.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable3, true);//把dt复制给dataTable GridHelper.RefreshAndAutoSize(ultraGrid3);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //新增低倍检验结果 private void AddPhyDBAuditResult() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowWarning("只有在未录入数据页才能进行新增操作!"); return; } if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0 || txtHEAT_NO.Text == "") { MessageUtil.ShowWarning("请选择需要新增的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes) { //string strHeat_No = txtHEAT_NO.Text.Trim();//炉号 //string strCHANGE_HEAT_NO = txtCHANGE_HEAT_NO.Text.Trim();//转换炉号 string strHeat_No = ultraGrid1.ActiveRow.Cells["HEAT_NO"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid1.ActiveRow.Cells["CHANGE_HEAT_NO"].Text.Trim();//转换炉号 ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List //ArrayList alMain = new ArrayList();//炼钢成分表 ArrayList alBase = new ArrayList();//基础表list ArrayList alDetail = new ArrayList();//检验信息详细表list //ArrayList alMainParams = new ArrayList(); ArrayList alBaseParams = new ArrayList();//基础表参数list ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list //alMainParams.Add("1"); //alMainParams.Add(strHeat_No); //alMain.Add(alMainParams); alBaseParams.Add(strHeat_No); alBaseParams.Add(strCHANGE_HEAT_NO); alBaseParams.Add(txtSTEEL_NO.Text.Trim());//连铸低倍 alBaseParams.Add(txtPRODUCT_STD.Text.Trim()); alBaseParams.Add(ultraGrid1.ActiveRow.Cells["SAMPLE_SOURCE"].Text.Trim());//来源 alBaseParams.Add("0");//SAMPLE_TYPE alBaseParams.Add(ultraGrid1.ActiveRow.Cells["HEAT_NUM"].Text.Trim());//分切数 HEAT_NUM alBaseParams.Add(ultraGrid1.ActiveRow.Cells["DB_SOURCE"].Text.Trim());//DB_SOURCE alBaseParams.Add(ultraGrid1.ActiveRow.Cells["ORDER_NO_SEQ"].Text.Trim());//合同号 alBaseParams.Add("");//PRODUCCODE 品种代码 alBaseParams.Add(ultraGrid1.ActiveRow.Cells["PRODUCNAME"].Text.Trim());//PRODUCNAME alBaseParams.Add("");//CUSTOMER_NO 客户代码 alBaseParams.Add(ultraGrid1.ActiveRow.Cells["CUSTOMER_NM"].Text.Trim());//CUSTOMER_NM 客户名称 alBaseParams.Add(ultraGrid1.ActiveRow.Cells["SAMPLE_SIZE"].Text.Trim());//SAMPLE_SIZE 规格 alBaseParams.Add(ultraGrid1.ActiveRow.Cells["PLAN_TIME"].Text.Trim());//PLAN_TIME alBaseParams.Add(ultraCHECK_NAME.Text.Trim() == "" ? UserInfo.GetUserName() : ultraCHECK_NAME.Text.Trim());//试验人 alBaseParams.Add(UserInfo.GetUserOrderText());//班次 alBaseParams.Add(ultraCHECK_CLASS.Text.Trim() == "" ? UserInfo.GetUserGroupText() : ultraCHECK_CLASS.Text.Trim());//班组 alBaseParams.Add(txtCHECK_TEMP.Text.Trim());//温度 alBaseParams.Add(ultraDEVICE_NO.Text.Trim());//设备编码 alBaseParams.Add(ultraDEVICE_NAME.Text.Trim());//设备名称 alBaseParams.Add(txtREMARK.Text.Trim());//备注 alBase.Add(alBaseParams); ultraGrid2.UpdateData();//没委托的情况下使用 bool isAdd = false; foreach (DataRow dr in dataTable2.Rows) { if (dr["CHK"].ToString().Trim() == "False" || dr["SAMPLE_NO"].ToString().Trim() == "") { continue; } isAdd = true; foreach (DataColumn dc in dataTable2.Columns) { if (dc.ColumnName != "CHK" && dc.ColumnName != "SAMPLE_NO" && ultraGrid2.DisplayLayout.Bands[0].Columns[dc.ColumnName].Hidden == false) { alDetailParams = new ArrayList(); alDetailParams.Add(strHeat_No); alDetailParams.Add(strCHANGE_HEAT_NO); alDetailParams.Add(dr["SAMPLE_NO"].ToString()); alDetailParams.Add(dc.ColumnName); alDetailParams.Add(dc.Caption); alDetailParams.Add(dr[dc.ColumnName].ToString());//值 alDetail.Add(alDetailParams); } } } if (isAdd == false) { MessageUtil.ShowWarning("请录入有效的结果信息!"); return; } //alAll.Add(alMain); alAll.Add(alBase); alAll.Add(alDetail); PublicServer.SetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.AddPhyDBAuditResult", new Object[] { strHeat_No, strCHANGE_HEAT_NO, alAll }, ob); txtREMARK.Text = ""; dataTable2.Rows.Clear(); QueryPhyDBAuditResultCheck(); //QueryPhyDBBaseInfo(); //PublicSteer.ActiveOperateRow(ultraGrid3, "HEAT_NO", strHeat_No); //PublicSteer.ActiveOperateRow(ultraGrid3, "CHANGE_HEAT_NO", strCHANGE_HEAT_NO); MessageUtil.ShowTips("新增成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //删除低倍检验结果 private void DeletePhyDBAuditResult() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowWarning("只有在已录入数据页才能进行删除操作!"); return; } if (ultraGrid3.ActiveRow == null || dataTable3.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要删除的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes) { //string strHeat_No = txtHEAT_NO_LOG.Text.Trim();//检验委托编号 string strHeat_No = ultraGrid3.ActiveRow.Cells["HEAT_NO"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid3.ActiveRow.Cells["CHANGE_HEAT_NO"].Text.Trim();//转换炉号 //判断产销是否同步 if (!doQueryAuditFlag(strHeat_No, strCHANGE_HEAT_NO)) { return; } ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List //ArrayList alMain = new ArrayList();//炼钢成分表 ArrayList alBase = new ArrayList();//基础表list ArrayList alDetail = new ArrayList();//检验信息详细表list //ArrayList alMainParams = new ArrayList(); ArrayList alBaseParams = new ArrayList();//基础表参数list ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list //alMainParams.Add("0"); //alMainParams.Add(strHeat_No); //alMain.Add(alMainParams); alBaseParams.Add(strHeat_No); alBaseParams.Add(strCHANGE_HEAT_NO); alBase.Add(alBaseParams); alDetailParams.Add(strHeat_No); alDetailParams.Add(strCHANGE_HEAT_NO); alDetail.Add(alDetailParams); //alAll.Add(alMain); alAll.Add(alBase); alAll.Add(alDetail); PublicServer.SetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.DeletePhyDBAuditResult", new Object[] { strHeat_No, strCHANGE_HEAT_NO, alAll }, ob); QueryPhyDBBaseInfo(); //QueryPhyDBAuditResultCheck(); //PublicSteer.ActiveOperateRow(ultraGrid1, "HEAT_NO", strHeat_No); //PublicSteer.ActiveOperateRow(ultraGrid1, "CHANGE_HEAT_NO", strCHANGE_HEAT_NO); MessageUtil.ShowTips("删除成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } /// /// 查询检验项状态 /// private bool doQueryAuditFlag(string stoveNo, string judgeNo) { DataTable ds = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBCastingOutsourcing.doQueryAuditFlag", new object[] { stoveNo, judgeNo }, ob); if (int.Parse(ds.Rows[0][0].ToString()) > 0) { MessageUtil.ShowTips("低倍检验项产销已同步,不允许对数据进行操作!"); return false; } return true; } //修改低倍检验结果 private void UpdatePhyDBAuditResult() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowWarning("只有在已录入数据页才能进行修改操作!"); return; } if (ultraGrid3.ActiveRow == null || dataTable3.Rows.Count == 0 || txtHEAT_NO_LOG.Text == "") { MessageUtil.ShowWarning("请选择需要修改的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改?") == DialogResult.Yes) { //string strHeat_No = txtHEAT_NO_LOG.Text.Trim();//检验委托编号 //string strCHANGE_HEAT_NO = txtCHANGE_HEAT_NO_LOG.Text.Trim();//转换炉号 string strHeat_No = ultraGrid3.ActiveRow.Cells["HEAT_NO"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid3.ActiveRow.Cells["CHANGE_HEAT_NO"].Text.Trim();//转换炉号 //判断产销是否同步 if (!doQueryAuditFlag(strHeat_No, strCHANGE_HEAT_NO)) { return; } ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List ArrayList alMain = new ArrayList();//炼钢成分表 ArrayList alBase = new ArrayList();//基础表list ArrayList alDetail = new ArrayList();//检验信息详细表list ArrayList alMainParams = new ArrayList(); ArrayList alBaseParams = new ArrayList();//基础表参数list ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list alBaseParams.Add(ultraCHECK_NAME_LOG.Text.Trim() == "" ? UserInfo.GetUserName() : ultraCHECK_NAME_LOG.Text.Trim());//试验人 //arrayList.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//时间 alBaseParams.Add(UserInfo.GetUserOrderText());//班次 alBaseParams.Add(ultraCHECK_CLASS_LOG.Text.Trim() == "" ? UserInfo.GetUserGroupText() : ultraCHECK_CLASS_LOG.Text.Trim());//班组 alBaseParams.Add(txtCHECK_TEMP_LOG.Text.Trim());//温度 alBaseParams.Add(ultraDEVICE_NO_LOG.Text.Trim());//设备编码 alBaseParams.Add(ultraDEVICE_NAME_LOG.Text.Trim());//设备名称 alBaseParams.Add(txtREMARK_LOG.Text.Trim());//备注 alBaseParams.Add(strHeat_No); alBaseParams.Add(strCHANGE_HEAT_NO); alBase.Add(alBaseParams); alMainParams.Add(strHeat_No); alMainParams.Add(strCHANGE_HEAT_NO); alMain.Add(alMainParams); ultraGrid4.UpdateData();//没委托的情况下使用 foreach (DataRow dr in dataTable4.Rows) { if (dr["CHK"].ToString().Trim() == "False" || dr["SAMPLE_NO"].ToString().Trim() == "") { continue; } foreach (DataColumn dc in dataTable4.Columns) { if (dc.ColumnName != "CHK" && dc.ColumnName != "SAMPLE_NO") { alDetailParams = new ArrayList(); alDetailParams.Add(strHeat_No); alDetailParams.Add(strCHANGE_HEAT_NO); alDetailParams.Add(dr["SAMPLE_NO"].ToString()); alDetailParams.Add(dc.ColumnName); alDetailParams.Add(dc.Caption); alDetailParams.Add(dr[dc.ColumnName].ToString());//值 alDetail.Add(alDetailParams); } } } alAll.Add(alBase); alAll.Add(alMain); alAll.Add(alDetail); PublicServer.SetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.UpdatePhyDBAuditResult", new Object[] { strHeat_No, strCHANGE_HEAT_NO, alAll }, ob); //QueryPhyDBAuditResultCheck(); QueryPhyDBBaseInfo(); //PublicSteer.ActiveOperateRow(ultraGrid3, "HEAT_NO", strHeat_No); PublicSteer.ActiveOperateRow(ultraGrid3, "CHANGE_HEAT_NO", strCHANGE_HEAT_NO); MessageUtil.ShowTips("修改成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //审核低倍检验结果 private void AuditPhyDBAuditResult() { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowWarning("只有在已录入数据页才能进行审核操作!"); return; } if (ultraGrid4.ActiveRow == null || dataTable3.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要审核的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认审核?") == DialogResult.Yes) { QueryPhyDBAuditResult(); MessageUtil.ShowTips("审核成功!"); } } //打印低倍检验结果 private void RepLimsSteerPhyDBResult() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowWarning("只有在已录入数据页才能进行打印操作!"); return; } if (ultraGrid3.ActiveRow == null || dataTable4.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要打印的炉号信息!"); return; } this.Cursor = Cursors.WaitCursor; string strHEAT_NO = ultraGrid3.ActiveRow.Cells["HEAT_NO"].Text.Trim(); string strCHANGE_HEAT_NO = ultraGrid3.ActiveRow.Cells["CHANGE_HEAT_NO"].Text.Trim(); string strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsSteerPhyDBResult.cpt&bypagesize=false" + "&HEAT_NO=" + strHEAT_NO + "&CHANGE_HEAT_NO=" + strCHANGE_HEAT_NO; FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "锻造低倍报告"; fBug.Show(); } finally { this.Cursor = Cursors.Default; } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { PublicSteer.ShowBaseInfo(ultraGrid1.ActiveRow, panel5); } private void ultraGrid3_AfterRowActivate(object sender, EventArgs e) { PublicSteer.ShowBaseInfo(ultraGrid3.ActiveRow, panel8, "_LOG"); QueryPhyDBAuditResult(); } private void QueryPhyDBAuditResult() { try { //为行赋值 dataTable4.Rows.Clear();//清除行 ArrayList al = new ArrayList(); al.Add(ultraGrid3.ActiveRow.Cells["HEAT_NO"].Text.Trim()); al.Add(ultraGrid3.ActiveRow.Cells["CHANGE_HEAT_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.QueryPhyDBAuditResult", new Object[] { al }, ob); if (dt == null || dt.Rows.Count == 0) { //dataTable4.Rows.Clear(); return; } ArrayList alColumns = new ArrayList(); ArrayList alCaption = new ArrayList(); alColumns.Add("CHK"); alCaption.Add("选择"); alColumns.Add("SAMPLE_NO"); alCaption.Add("试样号"); foreach (DataRow dr in dt.Rows) { if (!alColumns.Contains(dr["PHY_CODE"].ToString())) { alColumns.Add(dr["PHY_CODE"].ToString()); alCaption.Add(dr["PHY_NAME"].ToString()); } } PublicSteer.InitColumns(alColumns.ToArray(), alCaption.ToArray(), dataTable4, 1); string row = "";//存放所有试样号判断是否有重复试样号 DataRow newDr = dataTable4.NewRow(); foreach (DataRow dr in dt.Rows) { if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复试样号,有则不增加行只增加对应的列 { row += dr["SAMPLE_NO"].ToString() + " "; newDr = dataTable4.NewRow(); newDr["CHK"] = "True"; newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); newDr[dr["PHY_CODE"].ToString()] = dr["VALUE1"].ToString(); dataTable4.Rows.Add(newDr); } else { newDr[dr["PHY_CODE"].ToString()] = dr["VALUE1"].ToString(); } } PublicSteer.ColumnsWidth(ultraGrid4, 0, 60); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHK") { if (e.Cell.Text == "False") { ultraGrid2.UpdateData(); dataTable2.Rows.RemoveAt(e.Cell.Row.Index); } else { foreach (DataRow dr in m_dtPhyMinItems_DB.Rows) { if (ultraGrid2.DisplayLayout.Bands[0].Columns.Exists(dr["PHY_CODE"].ToString())) { if (dr["PHY_UNIT"].ToString() == "级") { if (dr["PHY_NAME"].ToString() == "中心疏松") { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "1"; } else { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "0"; }//中心疏松默认1 } else { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "无"; } } } } ultraGrid2.DataBind();//dataTable发生变化提交给ultraGrid } } private void ultraGrid4_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHK") { if (e.Cell.Text == "False") { ultraGrid4.UpdateData(); dataTable4.Rows.RemoveAt(e.Cell.Row.Index); } else { foreach (DataRow dr in m_dtPhyMinItems_DB.Rows) { if (ultraGrid4.DisplayLayout.Bands[0].Columns.Exists(dr["PHY_CODE"].ToString())) { if (dr["PHY_UNIT"].ToString() == "级") { if (dr["PHY_NAME"].ToString() == "中心疏松") { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "1"; } else { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "0"; } } else { e.Cell.Row.Cells[dr["PHY_CODE"].ToString()].Value = "无"; } } } } ultraGrid4.DataBind();//dataTable发生变化提交给ultraGrid } } private void ultraGrid2_DoubleClickCell(object sender, DoubleClickCellEventArgs e) { if (e.Cell.Text == "无") { e.Cell.Value = "有"; } else if (e.Cell.Text == "有") { e.Cell.Value = "无"; } } private void ultraGrid4_DoubleClickCell(object sender, DoubleClickCellEventArgs e) { if (e.Cell.Text == "无") { e.Cell.Value = "有"; } else if (e.Cell.Text == "有") { e.Cell.Value = "无"; } } private void bntAdd_Click(object sender, EventArgs e) { if (ultraItems.Value != null && dataTable2.Columns.Contains(ultraItems.Value.ToString())) { ultraGrid2.DisplayLayout.Bands[0].Columns[ultraItems.Value.ToString()].Hidden = false; } } private void bntDelete_Click(object sender, EventArgs e) { if (ultraItems.Value != null && dataTable2.Columns.Contains(ultraItems.Value.ToString())) { ultraGrid2.DisplayLayout.Bands[0].Columns[ultraItems.Value.ToString()].Hidden = true; } } } }