using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Lims.Data.Steer.Entity; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.Lims.Data.Steer { public partial class FrmSteerDBCastingOutsourcing : FrmBase { private string[] arr = null; public FrmSteerDBCastingOutsourcing() { InitializeComponent(); } private DataTable m_dtPhyMinItems_DB; private void FrmSteerDBCastingOutsourcing_Load(object sender, EventArgs e) { DateTime now = DateTime.Now; DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天 DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天 this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00"); this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59"); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); arr = this.ValidDataPurviewIds; } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": doQueryData(); break; case "Add": doAdd(); break; case "Update": doUpdate(); break; case "Delete": doDelete(); break; case "Close": close(); break; } } /// /// 查询库存数据 /// private void doQueryData() { string stoveNo = ""; string judgeNo = ""; string strRegStart = ""; string strRegEnd = ""; if (chkRegTime.Checked) { strRegStart = RegStartTime.Value.ToString(); strRegEnd = RegEndTime.Value.ToString(); } if (this.chkFurnace.Checked && this.txtFurnace.Text.Trim() != "") { stoveNo = this.txtFurnace.Text.Trim(); } if (this.chkJudgeNo.Checked && this.txtJudgeNo.Text.Trim() != "") { judgeNo = this.txtJudgeNo.Text.Trim(); } ArrayList parm = new ArrayList(); parm.Add(strRegStart); parm.Add(strRegEnd); parm.Add(stoveNo); parm.Add(judgeNo); List listSource = EntityHelper.GetData( "com.steering.lims.data.steer.FrmSteerDBCastingOutsourcing.doQueryData", new object[] { parm, arr }, this.ob); matGpMEntityBindingSource.DataSource = listSource; } /// /// 新增 /// private void doAdd() { try { if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要新增的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes) { string strHeat_No = ultraGrid1.ActiveRow.Cells["StoveNo"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid1.ActiveRow.Cells["JudgeStoveNo"].Text.Trim();//转换炉号 string gradeName = ultraGrid1.ActiveRow.Cells["Gradename"].Text.Trim(); string gpType = ultraGrid1.ActiveRow.Cells["Gptype"].Text.Trim(); doQueryAuditFlag(strHeat_No, strCHANGE_HEAT_NO); 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(gradeName);//连铸低倍 alBaseParams.Add(""); alBaseParams.Add("4");//来源 if (gpType.Equals("铸坯")) { alBaseParams.Add("0");//SAMPLE_TYPE }else if(gpType.Equals("锻坯")) { alBaseParams.Add("1");//SAMPLE_TYPE } alBaseParams.Add("");//分切数 HEAT_NUM alBaseParams.Add("");//DB_SOURCE alBaseParams.Add(ultraGrid1.ActiveRow.Cells["ProOrderNo"].Text.Trim());//合同号 alBaseParams.Add("");//PRODUCCODE 品种代码 alBaseParams.Add("");//PRODUCNAME alBaseParams.Add("");//CUSTOMER_NO 客户代码 alBaseParams.Add("");//CUSTOMER_NM 客户名称 alBaseParams.Add(ultraGrid1.ActiveRow.Cells["Dimater"].Text.Trim());//SAMPLE_SIZE 规格 alBaseParams.Add("");//PLAN_TIME alBaseParams.Add(UserInfo.GetUserName());//试验人 alBaseParams.Add(UserInfo.GetUserOrderText());//班次 alBaseParams.Add(UserInfo.GetUserGroupText());//班组 alBaseParams.Add("");//温度 alBaseParams.Add("");//设备编码 alBaseParams.Add("");//设备名称 alBaseParams.Add("");//备注 alBase.Add(alBaseParams); ultraGrid2.UpdateData();//没委托的情况下使用 bool isAdd = false; foreach (DataRow dr in dataTable1.Rows) { if (dr["CHK"].ToString().Trim() == "False" || dr["SAMPLE_NO"].ToString().Trim() == "") { continue; } isAdd = true; foreach (DataColumn dc in dataTable1.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.FrmSteerDBCastingOutsourcing.addPhyDBAuditResult", new Object[] { alAll }, ob); //txtREMARK.Text = ""; dataTable1.Rows.Clear(); doQueryData(); 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 doUpdate() { try { if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { 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 = ultraGrid1.ActiveRow.Cells["StoveNo"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid1.ActiveRow.Cells["JudgeStoveNo"].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(UserInfo.GetUserName());//试验人 //arrayList.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//时间 alBaseParams.Add(UserInfo.GetUserOrderText());//班次 alBaseParams.Add(UserInfo.GetUserGroupText());//班组 alBaseParams.Add("");//温度 alBaseParams.Add("");//设备编码 alBaseParams.Add("");//设备名称 alBaseParams.Add("");//备注 alBaseParams.Add(strHeat_No); alBaseParams.Add(strCHANGE_HEAT_NO); alBase.Add(alBaseParams); alMainParams.Add(strHeat_No); alMainParams.Add(strCHANGE_HEAT_NO); alMain.Add(alMainParams); ultraGrid2.UpdateData();//没委托的情况下使用 foreach (DataRow dr in dataTable1.Rows) { if (dr["CHK"].ToString().Trim() == "False" || dr["SAMPLE_NO"].ToString().Trim() == "") { continue; } foreach (DataColumn dc in dataTable1.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.FrmSteerDBCastingOutsourcing.updatePhyDBAuditResult", new Object[] { alAll }, ob); //QueryPhyDBAuditResultCheck(); doQueryData(); //PublicSteer.ActiveOperateRow(ultraGrid3, "HEAT_NO", strHeat_No); PublicSteer.ActiveOperateRow(ultraGrid1, "JudgeStoveNo", strCHANGE_HEAT_NO); MessageUtil.ShowTips("修改成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } /// /// 删除 /// private void doDelete() { try { if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要删除的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes) { //string strHeat_No = txtHEAT_NO_LOG.Text.Trim();//检验委托编号 string strHeat_No = ultraGrid1.ActiveRow.Cells["StoveNo"].Text.Trim();//炉号 string strCHANGE_HEAT_NO = ultraGrid1.ActiveRow.Cells["JudgeStoveNo"].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.FrmSteerDBCastingOutsourcing.deletePhyDBAuditResult", new Object[] { alAll }, ob); doQueryData(); MessageUtil.ShowTips("删除成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void close() { this.Close(); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { UltraGridRow uRow = this.ultraGrid1.ActiveRow; if (uRow == null) { return; } DataTable ds = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBCastingOutsourcing.queryPhyCount", new Object[] { uRow.Cells["StoveNo"].Text, uRow.Cells["JudgeStoveNo"].Text }, ob);//查询是否已录入试样号信息 if (int.Parse(ds.Rows[0][0].ToString()) > 0) { queryPhyAudit(); } else { queryPhyMinItems_DB(uRow.Cells["Gptype"].Text); } } /// /// 查询已录入低倍数据 /// private void queryPhyAudit() { try { //为行赋值 dataTable1.Rows.Clear();//清除行 ArrayList al = new ArrayList(); al.Add(ultraGrid1.ActiveRow.Cells["StoveNo"].Text.Trim()); al.Add(ultraGrid1.ActiveRow.Cells["JudgeStoveNo"].Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.lims.data.steer.FrmSteerDBDataCJ.QueryPhyDBAuditResult", new Object[] { al }, ob); if (dt == null || dt.Rows.Count == 0) { 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(), dataTable1, 1); string row = "";//存放所有试样号判断是否有重复试样号 DataRow newDr = dataTable1.NewRow(); foreach (DataRow dr in dt.Rows) { if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复试样号,有则不增加行只增加对应的列 { row += dr["SAMPLE_NO"].ToString() + " "; newDr = dataTable1.NewRow(); newDr["CHK"] = "True"; newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); newDr[dr["PHY_CODE"].ToString()] = dr["VALUE1"].ToString(); dataTable1.Rows.Add(newDr); } else { newDr[dr["PHY_CODE"].ToString()] = dr["VALUE1"].ToString(); } } PublicSteer.ColumnsWidth(ultraGrid2, 0, 60); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } /// /// 查询基础检验项 /// /// private void queryPhyMinItems_DB(string gpType) { try { dataTable1.Clear(); //获取炼钢低倍检验的项目 ArrayList al = new ArrayList(); if (gpType.Equals("铸坯")) { al.Add("R0011");//C0010 } else if (gpType.Equals("锻坯")) { al.Add("R0026"); } 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(), dataTable1); PublicSteer.setColumnShowOrHidden(ultraGrid2, new string[] { "P0133", "P0131", "P0132", "P0137", "P0143", "P0119" }, false); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } PublicSteer.ColumnsWidth(ultraGrid2, 0, 80); } private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (e.Cell.Column.Key == "CHK") { if (e.Cell.Text == "False") { ultraGrid2.UpdateData(); dataTable1.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 ultraGrid2_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e) { if (e.Cell.Text == "无") { e.Cell.Value = "有"; } else if (e.Cell.Text == "有") { e.Cell.Value = "无"; } } private void chkFurnace_CheckedChanged(object sender, EventArgs e) { this.txtFurnace.Enabled = this.chkFurnace.Checked; } private void chkJudgeNo_CheckedChanged(object sender, EventArgs e) { this.txtJudgeNo.Enabled = this.chkJudgeNo.Checked; } } }