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.Tool; using Core.Mes.Client.Comm.Control; using System.Collections; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinGrid; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; namespace Core.StlMes.Client.Lims.Port { public partial class FrmMilGetBatchAndSample : FrmBase { private string PlineCode = "";//产线 //private DataTable m_dtSampleReqDetail;//存放检验项目明细 //private DataTable m_dtSampleReqDetail_Chem;//存放检验项目明细 //private DataTable m_dtSelectPhyMax;//已选择的大项 //public DataTable DtSelectPhyMax //{ // get { return m_dtSelectPhyMax; } // set { m_dtSelectPhyMax = value; } //} // private DataTable m_dtSelectPhySampleCode;//选择的取样码 private DataTable m_dtSelectChem;//成分 public DataTable DtSelectPhySampleCode { get { return m_dtSelectPhySampleCode; } set { m_dtSelectPhySampleCode = value; } } private DataTable m_dtSelectPhyMin;//已选择的小项 public DataTable DtSelectPhyMin { get { return m_dtSelectPhyMin; } set { m_dtSelectPhyMin = value; } } private DataTable m_dtSelectPhyR;//已选择的方向温度尺寸 public DataTable DtSelectPhyR { get { return m_dtSelectPhyR; } set { m_dtSelectPhyR = value; } } private DataTable m_dtSelectSampleKey;//选择的试样组+方向温度尺寸 public DataTable DtSelectSampleKey { get { return m_dtSelectSampleKey; } set { m_dtSelectSampleKey = value; } } public FrmMilGetBatchAndSample() { 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; ultraGrid2.DisplayLayout.Override.RowSelectors = 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; ultraGrid6.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid7.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid7.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;//不显示行头 ultraGrid8.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid9.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid10.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid11.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid12.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid13.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid14.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid15.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid16.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid17.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmMilGetBatchAndSample_Complex_Load(object sender, EventArgs e) { portQueryBase1.UpdateControl("开始时间"); PlineCode = PublicPort.GetPCode(this.ValidDataPurviewIds, ob);//获取 用户 对应的产线 BindProcessDesc(); InitColumnsDataTable(); ColumnsNotSort(); } private void InitColumnsDataTable() { portMilShowBase1.TxtBATCH_MAX.TextChanged += TxtBATCH_MAX_TextChanged; //生产批号、炉号队列 string[] arrColumnsLot = new string[] { "ID", "SEQ", "LOT_NO", "STOVE_NO", "JUDGE_STOVE_NO", "JUDGE_STOVE_NO_DESC", "FEED_HEAT_NO", "PLINE_CODE", "VARIETIES", "IMP_PROCESS", "CRAFT_PATH", "ROLL_STANDRAD", "PRODUCE_STANDRAD", "CONTRACT_NO", "STEELNAME", "GRADENAME", "PIPE_SIZE", "BUCKLE_TYPE", "PROCESS_STATUS", "TARGET_LENGTH", "LENGTH_RANGE", "SIMPLE_PROCESS", "BATCH_MAX", "SAW_NUM", "SPLINE_DESC", "BATCH_INTERVAL", "CHECK_NO", "ORD_LN_DLY_PK","PRO_PLAN_ID","GX_PLAN_NO" }; string[] arrCaptionLot = new string[] { "ID", "SEQ", "生产批号", "熔炼炉号", "炉号", "炉号", "上料炉号", "产线", "品名", "工艺文件号", "工艺文件路径", "轧管标准", "成品判定标准", "工序合同", "钢级", "钢号", "规格", "扣型", "工艺状态", "目标长度", "长度范围", "取样工序点", "分批上限", "分切数", "编号首字母", "批号区间", "检验编号", "交货行PK","轧管排产单号","排产序号" }; PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable1, ultraGrid1, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null); PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable6, ultraGrid6, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null); PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable11, ultraGrid11, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null); PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable16, ultraGrid16, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC", "CHECK_NO" }, true, null); //管号队列 string[] arrColumnsPipe = new string[] { "CHK", "SEQ", "PIPE_NO", "SAMPLE_PIPE_LEN", "BATCH_NO", "ISVALID", "ORDER_LENGTH", "ACT_THEORY_WEIGHT" }; string[] arrCaptionPipe = new string[] { "选择", "序号", "材料号", "长度(mm)", "批号", "有效", "定尺长度", "理论重量" };//{ "选择", "管号序号", "材料号", "取样长度(mm)", "性能批号", "是否有效", "定尺长度", "理论重量" }; PublicPort.InitColumns(arrColumnsPipe, arrCaptionPipe, dataTable2, ultraGrid2, new string[] { "ORDER_LENGTH", "ACT_THEORY_WEIGHT" }, false, new string[] { "CHK", "SAMPLE_PIPE_LEN" });//"PIPE_NO", PublicPort.InitColumns(arrColumnsPipe, arrCaptionPipe, dataTable7, ultraGrid7, new string[] { "ORDER_LENGTH", "ACT_THEORY_WEIGHT" }, false, null); //性能批号队列 string[] arrColumnsBatch = new string[] { "BATCH_NO", "START_PIPE_NO", "START_SEQ", "END_PIPE_NO", "END_SEQ", "PIPE_NUM", "SAMPLE_NUM" }; string[] arrCaptionBatch = new string[] { "性能批号", "起始管号", "起始序号", "结束管号", "结束序号", "管数", "取样数" };//有效管数 PublicPort.InitColumns(arrColumnsBatch, arrCaptionBatch, dataTable3, ultraGrid3, new string[] { "START_PIPE_NO", "END_PIPE_NO" }, false, new string[] { "BATCH_NO" });//null PublicPort.InitColumns(arrColumnsBatch, arrCaptionBatch, dataTable8, ultraGrid8, new string[] { "START_PIPE_NO", "END_PIPE_NO" }, false, null); //取样要求队列 string[] arrColumnsSampleReq = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "SAMPLE_STYLE", "DESC_SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "WIDTH", "RATE", "DESC_RATE", "BATCH_UNIT", "BATCH_CNT", "POSITION", "DESC_POSITION", "DESC_COUNT", "SAMPLE_COUNT", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "STD_NAME_TEST", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" };//CHECK_STD string[] arrCaptionSampleReq = new string[] { "试样组代码", "试样组", "部门ID", "检验大项代码", "检验大项", "试样组描述代码", "试样组描述", "样片类型", "样片类型", "标准代码", "标准名称", "取样长度", "取样宽度", "取样频率代码", "取样频率", "分批单位", "分批数量", "取样位置代码", "取样位置", "取样数量", "样条数", "数据类型", "数据类型", "样品类型", "样品类型", "试验标准", "试样索引号", "试样编码", "试验方向", "名义规格" }; PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable4); PublicPort.setColumnShowOrHidden(ultraGrid4, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行 PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable9); PublicPort.setColumnShowOrHidden(ultraGrid9, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行 PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable14); PublicPort.setColumnShowOrHidden(ultraGrid14, new string[] { "PHY_CODE_MAX", "SAMPLE_KEY_DESC", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行 //委托字段 string[] arrColumnsConsign = new string[] { "BATCH_NO", "PIPE_NO", "SAMPLE_PIPE_LEN","HX" }; string[] arrCaptionConsign = new string[] { "批号", "材料号", "长度(mm)","化学" }; PublicPort.InitColumns(arrColumnsConsign, arrCaptionConsign, dataTable12); //PublicPort.InitColumns(arrColumnsConsign, arrCaptionConsign, dataTable17); //化学检验元素明细 string[] arrColumnsChem = new string[] { "CHEM_CODE", "CHEM_NAME", "ISCHECK", "ISJUDGE", "ISQUOTE", "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX", "STDTARGET" }; string[] arrCaptionChem = new string[] { "元素", "元素", "是否检验", "是否判定", "是否报出", "下限符号", "下限", "上限符号", "上限", "目标值" }; PublicPort.InitColumns(arrColumnsChem, arrCaptionChem, dataTable13, ultraGrid13, new string[] { "CHEM_CODE", "ISCHECK", "ISJUDGE", "ISQUOTE" }, false, null); //理化检验元素 string[] arrColumnsDetail = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "PHY_NAME", "ITEM_CODE_F", "ITEM_NAME_F", "ITEM_CODE_W", "ITEM_NAME_W", "ITEM_CODE_C", "ITEM_NAME_C" }; string[] arrCaptionDetail = new string[] { "试样组代码", "试样组", "检验大项代码", "检验大项", "试样组描述代码", "试样组描述", "检验基础项代码", "检验基础项", "试验方向代码", "试验方向", "试验温度代码", "试验温度", "试样尺寸代码", "试样尺寸" }; PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable15, ultraGrid15, new string[] { "PHY_CODE_MAX", "PHY_NAME_MIN", "PHY_CODE_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "ITEM_CODE_F", "ITEM_CODE_W", "ITEM_CODE_C" }, false, null); //委托字段 string[] arrColumnsConsignDetail = new string[] { "BATCH_NO", "SAMPLE_PIPE_LEN", "SAMPLE_NO", "HX", "ONH" }; string[] arrCaptionConsignDetail = new string[] { "批号", "长度(mm)", "样管号", "化学", "ONH" }; PublicPort.InitColumns(arrColumnsConsignDetail, arrCaptionConsignDetail, dataTable17); } //列不允许排序 private void ColumnsNotSort() { foreach (DataColumn dc in dataTable2.Columns) { if (ultraGrid2.DisplayLayout.Bands[0].Columns.Exists(dc.ColumnName)) { ultraGrid2.DisplayLayout.Bands[0].Columns[dc.ColumnName].SortIndicator = Infragistics.Win.UltraWinGrid.SortIndicator.Disabled; } } } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { QueryLotNoAndStoveNo(dataTable1, ultraGrid1, "0");//未分批 } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryLotNoAndStoveNo(dataTable6, ultraGrid6, "123");//已分批 } else if (ultraTabControl1.SelectedTab.Index == 2) { QueryLotNoAndStoveNo(dataTable11, ultraGrid11, "2");//已委托 } else if (ultraTabControl1.SelectedTab.Index == 3) { QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3");//已委托 } break; case "AddBatch": AddBatchSampleInfo(); break; case "AddSample": //AddSampleInfo(); break; case "Delete": //if (ultraTabControl1.SelectedTab.Index == 0) //{ // DeleteBatchInfo(); //} //else if (ultraTabControl1.SelectedTab.Index == 1) { DeleteBatchInfo(); } break; case "Confirm": AddCheckConsign(); break; case "Cancel": DeleteCheckConsign(); break; case "PrintSample": if (ultraTabControl1.SelectedTab.Index == 1) { RepLimsPortGetSample(ultraGrid6); } break; case "PrintConsign": if (ultraTabControl1.SelectedTab.Index == 3) { RepLimsPortCheckConsignOrder(ultraGrid16); } break; case "Close": this.Close(); break; } } private void FrmMilGetBatchAndSample_Complex_Shown(object sender, EventArgs e) { if (toolMenu == null) return; if (toolMenu.Toolbars[0].Tools.Exists("AddBatch")) { toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("AddSample")) { this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Cancel")) { toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintSample")) { toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign")) { toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False; } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (ultraTabControl1.SelectedTab.Index == 0)//委托 { if (toolMenu.Toolbars[0].Tools.Exists("AddBatch")) { toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("AddSample")) { this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { //委托确认放在第三个Tab页 toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Cancel")) { toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintSample")) { toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign")) { toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False; } } else if (ultraTabControl1.SelectedTab.Index == 1) { if (toolMenu.Toolbars[0].Tools.Exists("AddBatch")) { toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("AddSample")) { this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Cancel")) { toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintSample")) { toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign")) { toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False; } } else if (ultraTabControl1.SelectedTab.Index == 2) { if (toolMenu.Toolbars[0].Tools.Exists("AddBatch")) { toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("AddSample")) { this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("Cancel")) { toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintSample")) { toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign")) { toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False; } } else if (ultraTabControl1.SelectedTab.Index == 3) { if (toolMenu.Toolbars[0].Tools.Exists("AddBatch")) { toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("AddSample")) { this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Cancel")) { toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("PrintSample")) { toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign")) { toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.True; } } } //绑定工序下拉框、选择不同的工序显示不同的管号队列 private void BindProcessDesc() { Infragistics.Win.ValueList valueList = new Infragistics.Win.ValueList(); //valueList.ValueListItems.Add("0", "锯切前");//锯切完成 1 //valueList.ValueListItems.Add("1", "锯切后"); //valueList.ValueListItems.Add("2", "加热炉"); //valueList.ValueListItems.Add("3", "穿孔"); //valueList.ValueListItems.Add("4", "连轧"); //valueList.ValueListItems.Add("5", "再加热炉"); //valueList.ValueListItems.Add("6", "定径"); valueList.ValueListItems.Add("7", "分切前");//在此工序分批 分切表 valueList.ValueListItems.Add("8", "分切后");//在此工序分批 矫直 valueList.ValueListItems.Add("9", "矫直"); valueList.ValueListItems.Add("10", "探伤"); valueList.ValueListItems.Add("-10", "精整区域"); valueList.ValueListItems.Add("11", "人工质检"); ultraSIMPLE_PROCESS.ValueList = valueList; ultraSIMPLE_PROCESS.Text = valueList.ValueListItems.GetItem(4).ToString(); } //获取计划基本信息 private void QueryLotNoAndStoveNo(DataTable dataTable, UltraGrid ultraGrid, string param) { try { dataTable.Rows.Clear(); ArrayList al = portQueryBase1.GetQueryInfo(param); //产线、批次号、炉号 DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryLotNoAndStoveNo", new Object[] { al, PlineCode }, ob); if (dt == null || dt.Rows.Count == 0) { if (dataTable == dataTable1) { dataTable2.Rows.Clear(); dataTable3.Rows.Clear(); dataTable4.Rows.Clear(); dataTable5.Rows.Clear(); } else if (dataTable == dataTable6) { dataTable7.Rows.Clear(); dataTable8.Rows.Clear(); dataTable9.Rows.Clear(); dataTable10.Rows.Clear(); dataTable10.Columns.Clear(); } else if (dataTable == dataTable11) { dataTable12.Rows.Clear();//从第四列开始清除 for (int i = 3; i < dataTable12.Columns.Count; i++) { dataTable12.Columns.RemoveAt(i); } dataTable13.Rows.Clear(); dataTable14.Rows.Clear(); dataTable15.Rows.Clear(); } else { dataTable17.Rows.Clear(); } return; } GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } #region 未分批 private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { dataTable3.Rows.Clear(); portMilShowBase1.ShowBaseInfo(ultraGrid1.ActiveRow); ArrayList aryList = new ArrayList(); string strORD_LN_DLY_PK = this.ultraGrid1.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim(); aryList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3)); DataTable ds = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_DesginMaxBathNum", new object[] { aryList }, ob); if (ds.Rows.Count > 0) { portMilShowBase1.StrBATCH_MAX = GetMaxBatchNum(ds).ToString(); } else { portMilShowBase1.StrBATCH_MAX = "1000"; } QueryGetSampleReq_Desgin_Process(portMilShowBase1, ultraGrid1); QueryGetSampleReq(portMilShowBase1, ultraGrid1, dataTable4, ultraGrid4); QueryPipeNoRack();//获取管号队列 textChanged(); GetStartBatch();//获取起始批次号 InitColumnsSampleReq();//赋值 } catch (Exception ex) { MessageUtil.ShowWarning(ex.Message); } } private int GetMaxBatchNum(DataTable ds) { int maxBacthNum = ds.Rows.Cast().Min(a => int.Parse(a["BATCH_CNT"].ToString())); return maxBacthNum; } void TxtBATCH_MAX_TextChanged(object sender, EventArgs e) { dataTable3.Rows.Clear(); textChanged(); } private void textChanged() { if (dataTable2 != null && dataTable2.Rows.Count > 0) { ultraSTART_PIPE_NO.Text = ""; if (portMilShowBase1.StrBATCH_MAX == "") { txtBATCH_MIN.Text = "1"; } else if (portMilShowBase1.StrBATCH_MAX.TryParseInt()) { int maxNum = Convert.ToInt16(portMilShowBase1.StrBATCH_MAX);//分批上限 if (maxNum <= 0) { return; } int resNum = dataTable2.Rows.Count % maxNum;//余数 int batch = dataTable2.Rows.Count / maxNum;//批数 txtBATCH_MIN.Text = (resNum == 0 ? batch : batch + 1).ToString();//批数参考 } ultraSTART_PIPE_NO.Text = dataTable2.Rows[0]["SEQ"].ToString().Trim(); } } //起始管号变化事件 private void ultraSTART_PIPE_NO_TextChanged(object sender, EventArgs e) { ultraEND_PIPE_NO.Text = ""; if (dataTable2 != null && dataTable2.Rows.Count > 0 && ultraSTART_PIPE_NO.Text.Trim() != "") { if (portMilShowBase1.StrBATCH_MAX == "") { ultraEND_PIPE_NO.Text = dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString().Trim(); } else if (portMilShowBase1.StrBATCH_MAX.TryParseInt() == true) { //结束管号自动变为起始管号+分批上限区间 DataRow[] start = dataTable2.Select("SEQ = '" + ultraSTART_PIPE_NO.Text.Trim() + "'");//起始管号位置 if (start == null || start.Length == 0) { return; } int startNum = dataTable2.Rows.IndexOf(start[0]);//起始管号位置 DataTable dt = dataTable2.Clone(); for (int i = startNum; i < startNum + Convert.ToInt16(portMilShowBase1.StrBATCH_MAX) && i < dataTable2.Rows.Count; i++) { dt.ImportRow(dataTable2.Rows[i]); } ultraEND_PIPE_NO.DataSource = dt; ultraEND_PIPE_NO.DisplayMember = "SEQ"; ultraEND_PIPE_NO.ValueMember = "SEQ"; ultraEND_PIPE_NO.Text = dt.Rows[dt.Rows.Count - 1]["SEQ"].ToString().Trim(); } } } //取样点变化事件 private void ultraSIMPLE_PROCESS_TextChanged(object sender, EventArgs e) { QueryPipeNoRack(); } //人工分批 private void btnConfirm_Click(object sender, EventArgs e) { if (txtStartBatch.Text.Trim() == "") { MessageUtil.ShowWarning("起始批号不能为空!"); return; } if (dataTable2 == null || dataTable2.Rows.Count == 0) { MessageUtil.ShowWarning("没有有效的管号队列不能分批!"); return; } if (portMilShowBase1.StrBATCH_MAX != "" && portMilShowBase1.StrBATCH_MAX.TryParseInt() == false) { MessageUtil.ShowWarning("分批上限不为整数不能人工分批!"); return; } if (ultraSTART_PIPE_NO.Text.Trim() == "") { MessageUtil.ShowWarning("起始管号不能为空!"); return; } if (ultraEND_PIPE_NO.Text.Trim() == "") { MessageUtil.ShowWarning("结束管号不能为空!"); return; } if (dataTable3.Rows.Count > 0 && dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString().Trim() == dataTable3.Rows[dataTable3.Rows.Count - 1]["END_SEQ"].ToString().Trim()) { MessageUtil.ShowWarning("分批已经完成不能再分批!"); return; } //判断起始和结束管号在不在有效管号区间内 DataRow[] start = dataTable2.Select("SEQ = '" + ultraSTART_PIPE_NO.Text.Trim() + "'");//起始管号位置 if (start == null || start.Length == 0) { MessageUtil.ShowWarning("请选择有效的起始管号!"); return; } DataRow[] end = dataTable2.Select("SEQ = '" + ultraEND_PIPE_NO.Text.Trim() + "'");//结束管号位置 if (end == null || end.Length == 0) { MessageUtil.ShowWarning("请选择有效的结束管号!"); return; } int startNum = dataTable2.Rows.IndexOf(start[0]);//起始管号位置 int endNum = dataTable2.Rows.IndexOf(end[0]);//结束管号位置 if (endNum < startNum) { MessageUtil.ShowWarning("结束管号不能小于起始管号!"); return; } if (portMilShowBase1.StrBATCH_MAX != "") { if (endNum - startNum >= Convert.ToInt16(portMilShowBase1.StrBATCH_MAX)) { MessageUtil.ShowWarning("此批管号数已大于分批上限分批失败!"); return; } } //判断起始管号有木有等于上一批次的结束管号+1 Convert.ToInt16(txtStartBatch.Text.Trim()) string strBATCH_NO = (Convert.ToInt16(txtStartBatch.Text.Trim()) + dataTable3.Rows.Count).ToString();//(dataTable3.Rows.Count + 1).ToString().PadLeft(3, '0'); DataRow dr = dataTable3.NewRow(); dr["BATCH_NO"] = strBATCH_NO;//规则加批次为批号 dr["START_PIPE_NO"] = ultraSTART_PIPE_NO.Value.ToString();//开始管号 dr["START_SEQ"] = ultraSTART_PIPE_NO.Text.Trim();//开始序号 20151030 dr["END_PIPE_NO"] = ultraEND_PIPE_NO.Value.ToString();//结束管号 dr["END_SEQ"] = ultraEND_PIPE_NO.Text.Trim();//结束序号 dr["PIPE_NUM"] = (endNum - startNum + 1).ToString();//有效管数 dataTable3.Rows.Add(dr); GridHelper.RefreshAndAutoSize(ultraGrid3); //为批号赋值 int count = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim()); for (int i = Convert.ToInt16(ultraSTART_PIPE_NO.Text.Trim()) - 1; i < Convert.ToInt16(ultraEND_PIPE_NO.Text.Trim()); i++) { ultraGrid2.Rows[i].Cells["BATCH_NO"].Value = strBATCH_NO; ultraGrid2.Rows[i].Cells["CHK"].Value = "False"; ultraGrid2.Rows[i].Cells["SAMPLE_PIPE_LEN"].Value = ""; if (count > 0) { ultraGrid2.Rows[i].Cells["CHK"].Value = "True"; count--; } } //分批完成后起始管号自动等于上一批次结束管号+1 if (endNum < dataTable2.Rows.Count - 1) { ultraSTART_PIPE_NO.Text = dataTable2.Rows[endNum + 1]["SEQ"].ToString();//序号 20151030 } ultraGrid2.UpdateData(); foreach (DataRow dataRow in dataTable3.Rows) { dataRow["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + dataRow["BATCH_NO"].ToString() + "'").Length; } } private void btnAuto_Click(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) { return; } if (txtStartBatch.Text.Trim() == "") { MessageUtil.ShowWarning("起始批号不能为空!"); return; } if (dataTable2 == null || dataTable2.Rows.Count == 0) { MessageUtil.ShowWarning("不存在有效的管号队列不能分批!"); return; } dataTable3.Rows.Clear(); int maxNum = portMilShowBase1.StrBATCH_MAX == "" ? dataTable2.Rows.Count : Convert.ToInt16(portMilShowBase1.StrBATCH_MAX);//分批上限 int resNum = dataTable2.Rows.Count % maxNum;//余数 int batch = dataTable2.Rows.Count / maxNum;//批数 int minBatchNo = resNum == 0 ? batch : batch + 1;//最小批数 int start = Convert.ToInt16(txtStartBatch.Text.Trim()); int startNum = 1; //为批号赋值 int count = 0, sum = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim()); for (int i = 0; i < dataTable2.Rows.Count; i += maxNum) { if (startNum <= minBatchNo) { //批次号生成规则(start + startNum - 1).ToString().PadLeft(3, '0'),startNum.ToString().PadLeft(3, '0') count = sum; DataRow dr = dataTable3.NewRow(); dr["BATCH_NO"] = (start + startNum - 1).ToString();//规则加批次为批号 .PadLeft(3, '0') dr["START_PIPE_NO"] = dataTable2.Rows[i]["PIPE_NO"].ToString();//开始管号 dr["START_SEQ"] = dataTable2.Rows[i]["SEQ"].ToString(); if (maxNum * startNum > dataTable2.Rows.Count) { dr["END_PIPE_NO"] = dataTable2.Rows[dataTable2.Rows.Count - 1]["PIPE_NO"].ToString();//结束管号 dr["END_SEQ"] = dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString();//结束序号 dr["PIPE_NUM"] = (dataTable2.Rows.Count - i).ToString();//有效管数 //为批号赋值 for (int j = i; j < dataTable2.Rows.Count; j++) { ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = (start + startNum - 1).ToString();//.PadLeft(3, '0') ultraGrid2.Rows[j].Cells["CHK"].Value = "False"; ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = ""; if (count > 0) { ultraGrid2.Rows[j].Cells["CHK"].Value = "True"; count--; } } } else { dr["END_PIPE_NO"] = dataTable2.Rows[maxNum * startNum - 1]["PIPE_NO"].ToString();//结束管号 dr["END_SEQ"] = dataTable2.Rows[maxNum * startNum - 1]["SEQ"].ToString(); dr["PIPE_NUM"] = maxNum.ToString();//有效管数 for (int j = i; j < i + maxNum; j++) { ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = (start + startNum - 1).ToString();//.PadLeft(3, '0') ultraGrid2.Rows[j].Cells["CHK"].Value = "False"; ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = ""; if (count > 0) { ultraGrid2.Rows[j].Cells["CHK"].Value = "True"; count--; } } } dataTable3.Rows.Add(dr); startNum++; } } ultraGrid2.UpdateData(); foreach (DataRow dataRow in dataTable3.Rows) { dataRow["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + dataRow["BATCH_NO"].ToString() + "'").Length; } GridHelper.RefreshAndAutoSize(ultraGrid3); } private void btnCancel_Click(object sender, EventArgs e) { if (dataTable2 == null || dataTable2.Rows.Count == 0) { //MessageUtil.ShowWarning("没有有效的管号队列不能分批!"); return; } if (dataTable3 == null || dataTable3.Rows.Count == 0 || ultraGrid3.ActiveRow == null || ultraGrid3.ActiveRow.Activated == false) { MessageUtil.ShowWarning("请选择一条需要删除的性能批号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("您确定删除此条性能批号信息吗?") == DialogResult.Yes) { //为批号赋值 for (int i = Convert.ToInt16(ultraGrid3.ActiveRow.Cells["START_SEQ"].Text.Trim()) - 1; i < ultraGrid2.Rows.Count; i++) { //ultraGrid2.Rows[i].Cells["CHK"].Value = "False"; //ultraGrid2.Rows[i].Cells["BATCH_NO"].Value = ""; dataTable2.Rows[i]["CHK"] = "False"; dataTable2.Rows[i]["BATCH_NO"] = ""; } int startNum = ultraGrid3.ActiveRow.Index; int length = dataTable3.Rows.Count; //dataTable5的相应信息也需要删除 if (startNum == 0) { dataTable3.Rows.Clear(); } else { for (int i = startNum; i < length; i++) { dataTable3.Rows.RemoveAt(startNum); } } //取消批数起始管号和结束管号重新赋值 if (dataTable3.Rows.Count == 0) { ultraSTART_PIPE_NO.Text = dataTable2.Rows[0]["SEQ"].ToString(); } else { DataRow[] end = dataTable2.Select("SEQ = '" + dataTable3.Rows[dataTable3.Rows.Count - 1]["END_SEQ"].ToString() + "'");//结束管号位置 if (end == null || end.Length == 0) { return; } int endNum = dataTable2.Rows.IndexOf(end[0]);//结束管号位置 ultraSTART_PIPE_NO.Text = dataTable2.Rows[endNum + 1]["SEQ"].ToString();//序号 20151030 } } } //保存分批试样信息 private void AddBatchSampleInfo() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowWarning("只有在未分批页才能进行完成分批操作!"); return; } if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { MessageUtil.ShowWarning("请选择炉号信息!"); return; } if (dataTable3 == null || dataTable3.Rows.Count == 0) { MessageUtil.ShowWarning("分批没有完成不能进行此操作!"); return; } if (dataTable3.Rows.Count < Convert.ToInt16(txtBATCH_MIN.Text.Trim())) { MessageUtil.ShowWarning("批数太少不符合标准要求!"); return; } ultraGrid2.UpdateData(); //if (ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() != "C017")//产线为460可以不取样 //{ //} DataRow[] arrBase = dataTable2.Select("CHK = 'True'"); if (arrBase == null || arrBase.Length == 0) { //MessageUtil.ShowTips("请勾选样管!"); if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批不取样?") == DialogResult.Yes) { } else { return; } } else { foreach (DataRow dr in arrBase) { if (dr["SAMPLE_PIPE_LEN"].ToString() == "") { MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "样管长度不能为空!"); return; } else if (dr["SAMPLE_PIPE_LEN"].ToString() == "0") { MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "样管长度不能为0,如此炉不取样则不勾选!"); return; } else if (dr["BATCH_NO"].ToString() == "") { MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "批次号不能为空!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批取样?") == DialogResult.Yes) { } else { return; } } //if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批?") == DialogResult.Yes) //{ //往分批表和取样表里面插数据 ultraGrid3.UpdateData(); string strID = ultraGrid1.ActiveRow.Cells["ID"].Text.Trim();//id string strLOT_NO = ultraGrid1.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号 string strSTOVE_NO = ultraGrid1.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号 string strPLINE_CODE = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim();//产线代码 string strTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); ArrayList alAll = new ArrayList(); ArrayList alPlan = new ArrayList(); ArrayList alPlanParams = new ArrayList();//更改状态位 alPlanParams.Add(""); alPlanParams.Add(ultraSIMPLE_PROCESS.Value.ToString()); alPlanParams.Add(portMilShowBase1.StrBATCH_MAX);//最大批数 alPlanParams.Add("2"); alPlanParams.Add("0"); alPlanParams.Add(strLOT_NO); alPlanParams.Add(strSTOVE_NO);//判定炉号 alPlanParams.Add(strID); alPlan.Add(alPlanParams); ArrayList alSampleBatch = new ArrayList();//先修改批次号 ArrayList alSampleBatchParams;//批次号参数PROCESS_CDOE foreach (DataRow dr in dataTable2.Rows) { alSampleBatchParams = new ArrayList(); alSampleBatchParams.Add(dr["BATCH_NO"].ToString());//性能批号 alSampleBatchParams.Add(strPLINE_CODE);//产线代码 alSampleBatchParams.Add(dr["PIPE_NO"].ToString());//材料号 //alSampleBatchParams.Add(strLOT_NO); //alSampleBatchParams.Add(strSTOVE_NO);//判定炉号 //alSampleBatchParams.Add(strID); alSampleBatch.Add(alSampleBatchParams); } //20160830 屏蔽减去取样重量代码 //double count = 1; //string[] arrSize = ultraGrid1.ActiveRow.Cells["PIPE_SIZE"].Text.Trim().Split('*'); //double wj = arrSize.Length > 0 && Double.TryParse(arrSize[0], out count) ? Convert.ToDouble(arrSize[0]) : 0;//外径 //double bh = arrSize.Length > 1 && Double.TryParse(arrSize[1], out count) ? Convert.ToDouble(arrSize[1]) : 0;//壁厚 ArrayList alSample = new ArrayList();//修改样管信息 ArrayList alSampleParams;//批次号参数PROCESS_CDOE foreach (DataRow dr in dataTable2.Rows) { alSampleParams = new ArrayList(); if (dr["CHK"].ToString().ToUpper() == "TRUE") { alSampleParams.Add("1");//是否样管 alSampleParams.Add(dr["SAMPLE_PIPE_LEN"].ToString());//样管长度 alSampleParams.Add(UserInfo.GetUserName());//取样人 alSampleParams.Add(strTime);//取样时间 alSampleParams.Add(UserInfo.GetUserOrder());//班次 alSampleParams.Add(UserInfo.GetUserGroupText());//班组 //长度、重量 //alSampleParams.Add("");//长度 //if (dr["ACT_THEORY_WEIGHT"].ToString() != "" && Double.TryParse(dr["ACT_THEORY_WEIGHT"].ToString(), out count) && Double.TryParse(dr["SAMPLE_PIPE_LEN"].ToString(), out count)) //{ // //double b = (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000); // double a = 0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000) / 1000; // alSampleParams.Add((Convert.ToDouble(dr["ACT_THEORY_WEIGHT"].ToString()) - (0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000)) / 1000).ToString("f3"));//重量 //} //else //{ // alSampleParams.Add(""); //} alSampleParams.Add(strPLINE_CODE);//产线代码 alSampleParams.Add(dr["PIPE_NO"].ToString());//材料号 alSampleParams.Add(strLOT_NO); alSampleParams.Add(strSTOVE_NO);//判定炉号 alSampleParams.Add(strID); alSample.Add(alSampleParams); } } //加入取样明细 ArrayList alSampleNo = new ArrayList(); ArrayList alSampleNoParams; foreach (DataRow dr in dataTable5.Rows) { foreach (DataRow dRow in dataTable4.Rows) { if (dr[dRow["SAMPLE_KEY"].ToString()].ToString().IndexOf("√") == 0 && dr[dRow["SAMPLE_KEY"].ToString()].ToString().Remove(0, 1).Trim().Split(' ').Contains(dRow["ROW_INDEX"].ToString())) { alSampleNoParams = new ArrayList(); alSampleNoParams.Add(strID); alSampleNoParams.Add(strLOT_NO); alSampleNoParams.Add(strSTOVE_NO);//判定炉号 alSampleNoParams.Add(dr["BATCH_NO"].ToString());//性能批号 alSampleNoParams.Add(dr["PIPE_NO"].ToString());//管号 alSampleNoParams.Add(dr["SEQ"].ToString());//序号 alSampleNoParams.Add(dr["DESC_POSITION"].ToString());//取样位置 alSampleNoParams.Add(dr["XH"].ToString());//序号 alSampleNoParams.Add(dr["SAMPLE_BARCODE"]);//样品条形码 alSampleNoParams.Add(dr["SAMPLE_LEN"]);//试样长度20151112 alSampleNoParams.Add(dRow["PHY_CODE_MAX"].ToString());// alSampleNoParams.Add(dRow["PHY_NAME_MAX"].ToString());// alSampleNoParams.Add(dRow["PHY_CODE_MIN"].ToString());// alSampleNoParams.Add(dRow["PHY_NAME_MIN"].ToString());// alSampleNoParams.Add(dRow["SAMPLE_KEY"].ToString());// alSampleNoParams.Add(dRow["SAMPLE_KEY_DESC"].ToString()); alSampleNoParams.Add(dRow["SAMPLE_COUNT"].ToString());//试样数SAMPLE_KEY alSampleNoParams.Add(UserInfo.GetUserName());//取样人 //alSampleNoParams.Add(strTime);//取样时间 alSampleNoParams.Add(UserInfo.GetUserOrder());//班次 alSampleNoParams.Add(UserInfo.GetUserGroupText());//班组 alSampleNoParams.Add("");//备注 //alSampleNoParams.Add(dRow["ADD_TYPE"].ToString());//数据类型 //alSampleNoParams.Add(dRow["DATA_TYPE"].ToString());//样品类型 alSampleNoParams.Add(dr["SAMPLE_NO"].ToString());//序号 alSampleNo.Add(alSampleNoParams); } } } alAll.Add(alPlan); //alAll.Add(alBatchNo); alAll.Add(alSampleBatch); alAll.Add(alSample); alAll.Add(alSampleNo); string strSampleCode = ultraGrid1.ActiveRow.Cells["SPLINE_DESC"].Text.Trim();//试样号首字母 PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.AddBatchSampleInfo", new Object[] { alAll, ultraSIMPLE_PROCESS.Value.ToString(), strSampleCode }, this.ob); txtPIPE_SIZE.Text = "2"; dataTable2.Rows.Clear(); dataTable3.Rows.Clear(); QueryLotNoAndStoveNo(dataTable1, ultraGrid1, "0");//刷新GRID1 //PublicPort.ActiveOperateRow(ultraGrid6, new string[] { "LOT_NO", "JUDGE_STOVE_NO" }, new string[] { strLOT_NO, strSTOVE_NO });//定位 MessageUtil.ShowTips("分批完成!"); } //} catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } //查询管号队列 private void QueryPipeNoRack() { try { if (ultraGrid1.ActiveRow != null && ultraGrid1.ActiveRow.Activated) { dataTable2.Rows.Clear(); txtPIPE_NUM.Text = ""; ArrayList al = new ArrayList(); //产线、批次号、炉号 //al.Add(PlineCode); al.Add(ultraGrid1.ActiveRow.Cells["LOT_NO"].Text.Trim()); al.Add(ultraGrid1.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim()); al.Add(ultraGrid1.ActiveRow.Cells["ID"].Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryPipeNoRack", new object[] { al, ultraSIMPLE_PROCESS.Value.ToString() }, this.ob); if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable2 dataTable2.Rows[0]["CHK"] = "True"; if (dataTable2.Rows.Count > 1) { dataTable2.Rows[1]["CHK"] = "True"; } GridHelper.RefreshAndAutoSize(ultraGrid2);//刷新Grid txtPIPE_NUM.Text = dt.Rows.Count.ToString();//有效管数 } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } #endregion //查询合同轧制制程是否经过成分和理化 private void QueryGetSampleReq_Desgin_Process(PortMilShowBase portMilShowBase, UltraGrid ultraGrid) { try { portMilShowBase.StrIsChem = "";//初始化数据 portMilShowBase.StrIsPhy = ""; ArrayList arrayList = new ArrayList(); string strORD_LN_DLY_PK = ultraGrid.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim(); //arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1)); arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3)); DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_Desgin_Process", new Object[] { arrayList }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (dr["STATION_CODE"].ToString() == "40230" || dr["STATION_DESC"].ToString() == "成品成分") { portMilShowBase.StrIsChem = "是"; } else { portMilShowBase.StrIsPhy = "是"; } } } if (portMilShowBase.StrIsChem != "是") { MessageUtil.ShowWarning("轧制工序不经过成品成分工序点请注意是否维护有误!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } //查询取样要求 //根据冶金规范查找MSC下的取样要求 COM_MSC_STD_PIC - BATCH_LOCA 分批位置 COM_BASE_SAMPLE - BATCH_CNT 每批支数 //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK //2.通过ORD_LN_DLY_PK 找到 SLM_ORDER_LINE 里的MSC //3.通过MSC找到COM_MSC_STD_PIC 和 COM_MSC_PHY_SAMPLE 里的PIC //4.通过PIC找到COM_BASE_SAMPLE 找到 SIC 取样要求 //根据质量设计查找DESGIN_KEY下的取样要求 //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK , CRAFT_ORD_DESIGN //2.通过交货行号ORD_LN_DLY_PK 找到 SLM_ORDER_LINE_DELIVERY里的ORD_LN_PK 通过 ORD_LN_PK 找到CRAFT_ORD_DESIGN里的DESGIN_KEY //3.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC 里的检验项目 //4.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC_SMP 里的取样要求 //通过轧管合同号找取样要求 private void QueryGetSampleReq(PortMilShowBase portMilShowBase, UltraGrid ultraGridSource, DataTable dataTable, UltraGrid ultraGrid) { try { dataTable.Rows.Clear(); ArrayList arrayList = new ArrayList(); //string strORD_LN_DLY_PK = ultraGridSource.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim(); ////arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1)); //arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3)); arrayList.Add(ultraGridSource.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim()); arrayList.Add(ultraGridSource.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim()); //以SAMPLE_KEY显示 DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_Desgin", new Object[] { arrayList }, ob); if (dt == null)//|| dt.Rows.Count == 0 无化学取样要求时去掉此条件 C0001_I0001_I0003 { return; } m_dtSelectPhySampleCode = dt.DefaultView.ToTable(true, "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN"); m_dtSelectPhyR = dt.Copy(); m_dtSelectSampleKey = dt.Copy(); AddColumns(4, m_dtSelectSampleKey, dataTable12);//把选中的大项增加到publicUltraGridDetail1.DataTable GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid if (portMilShowBase == portMilShowBase1) { GetMaxBatchNum(portMilShowBase1, dataTable4, ultraGrid1); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } //分批方法 private void GetMaxBatchNum(PortMilShowBase portMilShowBase, DataTable dt, UltraGrid ug) { if (dt != null && dt.Rows.Count > 0 && dt.Columns.Contains("RATE") && dt.Columns.Contains("DESC_RATE")) { int num = 0; foreach (DataRow dr in dt.Rows) { if (dr["RATE"].ToString() == "408602" || dr["DESC_RATE"].ToString() == "检验批") { int BATCH_CNT = dr["BATCH_CNT"].ToString().TryParseInt() ? Convert.ToInt16(dr["BATCH_CNT"].ToString()) : 0;//分批数量 //分批单位是米或者吨根据每支的重量和长度换算成支 if (dr["BATCH_UNIT"].ToString() == "米") { //TARGET_LENGTH 目标长度 double length = Convert.ToDouble(ug.ActiveRow.Cells["TARGET_LENGTH"].Text.Trim()); //BATCH_CNT = Convert.ToInt16(BATCH_CNT / length); } else if (dr["BATCH_UNIT"].ToString() == "吨") { //num = num <= BATCH_CNT ? num : BATCH_CNT; } else if (dr["BATCH_UNIT"].ToString() == "支") { //num = num <= BATCH_CNT ? num : BATCH_CNT; } num = num == 0 ? BATCH_CNT : num; num = num <= BATCH_CNT ? num : BATCH_CNT; } } portMilShowBase.StrBATCH_MAX = num == 0 ? "1000" : num.ToString(); if (num == 0) { //MessageUtil.ShowWarning("没有取样频率为检验批的项目默认一炉为一批!"); } } } //获取起始批号 private void GetStartBatch() { string strBatch = ultraGrid1.ActiveRow.Cells["BATCH_INTERVAL"].Text.Trim(); if (strBatch == "") { //MessageUtil.ShowWarning("请维护对应产线的性能批号区间!"); //txtStartBatch.Text = "";//如果批次区间为空则不清除 return; } string[] arrBatch = strBatch.Split(';'); txtStartBatch.Text = arrBatch[0].Split('-')[0]; } //一个检验项目对应一种取样码,一个取样码下面对应多个试样码 试样码分为方向、尺寸不同长和宽不同 //根据试样码去计算取样的长、宽则根据试样周长、不足的也取一个圆环、少了的加长 //先计算出取样码 取样个数 private void InitColumnsSampleReq() { if (dataTable3.Rows.Count == 0) { return; } InitColumnsSampleReqDt(dataTable5, ultraGrid5, dataTable4); //先计算出每批A断和B断的最大值 //然后再增加行 int numA = 0; int numB = 0; int numAB = 0;//记录检验批A或B最大有几个 int numA_ = 0; int numB_ = 0; int numAB_ = 0;//记录炉A或B最大有几个 foreach (DataRow dr in dataTable4.Rows) { if (StringUtil.IsInt(dr["DESC_COUNT"].ToString()))//判断取样数量 { int temp = Convert.ToInt16(dr["DESC_COUNT"].ToString()); if (dr["DESC_RATE"].ToString() == "检验批") { if (dr["DESC_POSITION"].ToString() == "A端和B端") { numA = numA >= temp ? numA : temp; numB = numB >= temp ? numB : temp; } else if (dr["DESC_POSITION"].ToString() == "A端或B端") { numAB = numAB >= temp ? numAB : temp; } else if (dr["DESC_POSITION"].ToString() == "A端") { numA = numA >= temp ? numA : temp; } else if (dr["DESC_POSITION"].ToString() == "B端") { numB = numB >= temp ? numB : temp; } } else if (dr["DESC_RATE"].ToString() == "炉") { if (dr["DESC_POSITION"].ToString() == "A端和B端") { numA_ = numA_ >= temp ? numA_ : temp; numB_ = numB_ >= temp ? numB_ : temp; } else if (dr["DESC_POSITION"].ToString() == "A端或B端") { numAB_ = numAB_ >= temp ? numAB_ : temp; } else if (dr["DESC_POSITION"].ToString() == "A端") { numA_ = numA_ >= temp ? numA_ : temp; } else if (dr["DESC_POSITION"].ToString() == "B端") { numB_ = numB_ >= temp ? numB_ : temp; } } } } //A和B相加小于A或B情况下 差的数默认为A端 if (numA + numB - numAB < 0) { numA += (numAB - (numA + numB)); } if (numA_ + numB_ - numAB_ < 0) { numA_ += (numAB_ - (numA_ + numB_)); } //int sum = numA + numB; //int sum_ = numA_ + numB_; //根据分批实绩自动生成参考取样要求队列区分A、B端 //1.numA_大于numA*批数则在第一批增加少的样管数numA_ - numA*批数 //2.numB_大于numB*批数则在第一批增加少的样管数numB_ - numB*批数 //string row = "";//存放所有样管号判断是否有重复批号+样管号 //增加所有样管数 DataRow newDr = dataTable5.NewRow(); foreach (DataRow dr in dataTable3.Rows) { //先判断此批 int pipe_num = 1; //第一批赋值A端 if (dr["BATCH_NO"].ToString() == dataTable3.Rows[0]["BATCH_NO"].ToString()) { if (numA_ > numA * dataTable3.Rows.Count)//判断炉A和检验批A比较 { for (int i = 1; i <= numA + numA_ - numA * dataTable3.Rows.Count; i++) { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "A"; dataTable5.Rows.Add(newDr); pipe_num++; } } else { for (int i = 1; i <= numA; i++)//判断炉A和检验批A比较 { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "A"; dataTable5.Rows.Add(newDr); pipe_num++; } } //B端 if (numB_ > numB * dataTable3.Rows.Count)//判断炉B和检验批B比较 { for (int i = 1; i <= numB + numB_ - numB * dataTable3.Rows.Count; i++) { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "B"; dataTable5.Rows.Add(newDr); pipe_num++; } } else { for (int i = 1; i <= numB; i++) { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "B"; dataTable5.Rows.Add(newDr); pipe_num++; } } } else { for (int i = 1; i <= numA; i++) { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "A"; dataTable5.Rows.Add(newDr); pipe_num++; } for (int i = 1; i <= numB; i++) { newDr = dataTable5.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num; newDr["DESC_POSITION"] = "B"; dataTable5.Rows.Add(newDr); pipe_num++; } } } //1计算出每个检验项A,B要多少 //按炉 如果是A则沿着A端赋值、B则沿着B端赋值、A或B则沿着行随意赋值取样数量 //按检验批 A则每批沿着A赋值取样数量行、B则每批沿着B赋值取样数量行、A或B则每批沿着行随意赋值取样数量 string batch = "";//存放批号判断是否从0开始 int sumA = 0; int sumB = 0; int sumAB = 0; int tempA = 0; int tempAB = 0; int tempB = 0; foreach (DataRow dataRow in dataTable4.Rows) { batch = ""; sumA = 0; sumB = 0; sumAB = 0; tempA = 0; tempAB = 0; tempB = 0; if (StringUtil.IsInt(dataRow["DESC_COUNT"].ToString()))//判断取样数量 { int temp = Convert.ToInt16(dataRow["DESC_COUNT"].ToString()); if (dataRow["DESC_POSITION"].ToString() == "A端") { sumA += temp; } else if (dataRow["DESC_POSITION"].ToString() == "B端") { sumB += temp; } else if (dataRow["DESC_POSITION"].ToString() == "A端和B端") { sumA += temp; sumB += temp; } else { sumAB += temp;//A或B } if (dataRow["RATE"].ToString() == "408603" || dataRow["DESC_RATE"].ToString() == "炉") { if (sumAB == 0)//如果取样位置不是A或B { foreach (DataRow dr in dataTable5.Rows) { if (sumA <= tempA && sumB <= tempB) { break; } //炉取样原来是先优先从每批第一个样管开始 , 现有的从第一根样管开始 直到结束 if (dr["DESC_POSITION"].ToString() == "A" && sumA > tempA) { //√加上行序号 if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempA++; } if (dr["DESC_POSITION"].ToString() == "B" && sumB > tempB) { if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempB++; } } } else { foreach (DataRow dr in dataTable5.Rows) { if (sumAB <= tempAB) { break; } if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempAB++; } } } else if (dataRow["RATE"].ToString() == "408602" || dataRow["DESC_RATE"].ToString() == "检验批") { if (sumAB == 0) { foreach (DataRow dr in dataTable5.Rows) { if (batch.IndexOf(dr["BATCH_NO"].ToString()) < 0) { batch += dr["BATCH_NO"].ToString() + " ";//新批次全部置0 tempA = 0; tempB = 0; //tempAB = 0; } if (sumA <= tempA && sumB <= tempB) { continue; } if (dr["DESC_POSITION"].ToString() == "A" && sumA > tempA) { if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempA++; } if (dr["DESC_POSITION"].ToString() == "B" && sumB > tempB) { if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempB++; } } } else { foreach (DataRow dr in dataTable5.Rows) { if (batch.IndexOf(dr["BATCH_NO"].ToString()) < 0) { batch += dr["BATCH_NO"].ToString() + " ";//新批次全部置0 tempAB = 0; } if (sumAB <= tempAB) { continue; } if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "") { dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " "; } else { dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " "; } tempAB++; } } } } } //为取样长度赋值 ,计算周长是否超过管的周长 //一个检验项可能有多个取样码,一个取样码下可能有多个试样码,如果一根样管下的检验项目有多个取样码,则要计算此取样码下所有试样码的长宽 foreach (DataRow dataRow in dataTable5.Rows) { int Samplelen = 0; int maxPian = 0;//片状试样最大长度 double SampleWidth = 0;//宽度 foreach (DataRow dr in dataTable4.Rows) { if (dataRow[dr["SAMPLE_KEY"].ToString()].ToString().IndexOf("√") == 0) { string[] arr = dataRow[dr["SAMPLE_KEY"].ToString()].ToString().Remove(0, 1).Trim().Split(' '); if (!dr["LENGTH"].ToString().Replace("mm", "").Trim().TryParseInt()) { //dataRow["SAMPLE_LEN"] = dr["DESC_LENGTH"].ToString().Replace("mm", "").Trim(); break; } int len = Convert.ToInt32(dr["LENGTH"].ToString().Replace("mm", "").Trim()) * Convert.ToInt32(dr["SAMPLE_COUNT"].ToString()); if (!arr.Contains(dr["ROW_INDEX"].ToString())) { continue; } if (dr["SAMPLE_STYLE"].ToString() == "408101" || dr["DESC_SAMPLE_STYLE"].ToString() == "片状") { if (len > maxPian) { maxPian = len;//片长度*样条数len * DESC_COUNT } SampleWidth += Convert.ToDouble(dr["WIDTH"].ToString() == "" ? "0" : dr["WIDTH"].ToString()); } else { Samplelen += len;//片加环的长度得出样管长度 } } } //if(SampleWidth > 2*3.14*)//如果大于管子的周长则需加长样管 Samplelen += maxPian; dataRow["SAMPLE_LEN"] = Samplelen;// +"mm"; } //长度计算新方法,环相加,片长或者宽*样条数,然后计算周长,周长超过外径*壁厚则长度适当增加 //如何确切知道某一生产批的首炉 炉的和按检验批的依照原来方法进行 } #region 已取样分批 private void InitColumnsSampleReqDt(DataTable dtSource, UltraGrid ug, DataTable dtData) { if (dtSource == null || dtData == null || dtData.Rows.Count == 0) { return; } dtSource.Rows.Clear(); dtSource.Columns.Clear(); //参考取样要求队列 ArrayList alColumnsSampleReq = new ArrayList(); alColumnsSampleReq.Add("BATCH_NO"); alColumnsSampleReq.Add("XH"); alColumnsSampleReq.Add("PIPE_NO"); alColumnsSampleReq.Add("SEQ"); alColumnsSampleReq.Add("DESC_POSITION"); alColumnsSampleReq.Add("SAMPLE_NO"); alColumnsSampleReq.Add("SAMPLE_NO_MIN"); ArrayList alCaptionSampleReq = new ArrayList(); alCaptionSampleReq.Add("性能批号"); alCaptionSampleReq.Add("试样序号"); alCaptionSampleReq.Add("管号"); alCaptionSampleReq.Add("序号"); alCaptionSampleReq.Add("取样位置"); alCaptionSampleReq.Add("样管号"); alCaptionSampleReq.Add("钢印号"); foreach (DataRow dr in dtData.Rows) { if (dr["SAMPLE_KEY"].ToString() != "" && dr["SAMPLE_KEY_DESC"].ToString() != "") { alColumnsSampleReq.Add(dr["SAMPLE_KEY"].ToString()); alCaptionSampleReq.Add(dr["SAMPLE_KEY_DESC"].ToString()); } } alColumnsSampleReq.Add("SAMPLE_LEN"); alCaptionSampleReq.Add("取样长度"); alColumnsSampleReq.Add("SAMPLE_BARCODE");//产线+2年+管号+方向A或B alCaptionSampleReq.Add("样管条形码"); PublicPort.InitColumns(alColumnsSampleReq.ToArray(), alCaptionSampleReq.ToArray(), dtSource); PublicPort.setColumnShowOrHidden(ug, new string[] { "XH", "PIPE_NO", "SAMPLE_NO", "SAMPLE_NO_MIN" }, false); PublicPort.InitCellPositionRight(ug, new string[] { "SAMPLE_LEN" }); ug.DisplayLayout.Bands[0].Columns["SEQ"].Width = 60; } private void InitColumnsSampleStdReq() { ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim()); arrayList.Add(ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());//条件 DataTable dtDis = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfoPhy_Distinct", new Object[] { arrayList }, ob); if (dtDis == null || dtDis.Rows.Count == 0) { return; } InitColumnsSampleReqDt(dataTable10, ultraGrid10, PublicPort.GetSelectDt(dtDis, "SAMPLE_KEY IS NOT NULL", "PHY_CODE_MIN").DefaultView.ToTable(true, "SAMPLE_KEY", "SAMPLE_KEY_DESC")); string row = "";//存放所有样管号判断是否有重复样管号 DataRow newDr = dataTable10.NewRow(); foreach (DataRow dr in dtDis.Rows) { if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列 { row += dr["SAMPLE_NO"].ToString() + " "; newDr = dataTable10.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["XH"].ToString(); newDr["PIPE_NO"] = dr["PIPE_NO"].ToString(); newDr["SEQ"] = dr["SEQ"].ToString(); newDr["DESC_POSITION"] = dr["DESC_POSITION"].ToString();//取样位置 newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); newDr["SAMPLE_NO_MIN"] = dr["SAMPLE_NO_MIN"].ToString(); newDr["SAMPLE_BARCODE"] = dr["SAMPLE_BARCODE"].ToString(); newDr["SAMPLE_LEN"] = dr["SAMPLE_LEN"].ToString(); newDr[dr["SAMPLE_KEY"].ToString()] = "√"; dataTable10.Rows.Add(newDr); } else { newDr[dr["SAMPLE_KEY"].ToString()] = "√"; } } PublicPort.setOtherColumnReadOnly(ultraGrid10, null); GridHelper.RefreshAndAutoSize(ultraGrid10); } private void ultraGrid6_AfterRowActivate(object sender, EventArgs e) { portMilShowBase2.ShowBaseInfo(ultraGrid6.ActiveRow); //QueryGetSampleReq_Desgin_Process(portMilShowBase2, ultraGrid6); //QueryGetSampleReq(portMilShowBase2, ultraGrid6, dataTable9, ultraGrid9);//获取每批最小支数 QueryPipeNoRackSample();//查询已取样队列 QueryBatchSampleInfo(); //InitColumnsSampleStdReq();//20160829 //QueryGetSampleReqDetail();//查询检验项目明细 } //查询管号队列 private void QueryPipeNoRackSample() { try { dataTable7.Rows.Clear(); ArrayList al = new ArrayList(); //产线、批次号、炉号 al.Add(ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim()); al.Add(ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim()); al.Add(ultraGrid6.ActiveRow.Cells["ID"].Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryPipeNoRack", new object[] { al, ultraGrid6.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim() }, this.ob); if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable7, true);//把dt复制给dataTable2 GridHelper.RefreshAndAutoSize(ultraGrid7);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } private void QueryBatchSampleInfo() { dataTable8.Rows.Clear(); //查询已录入性能批号+样管号 string strLOT_NO = ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号 string strSTOVE_NO = ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号 string strID = ultraGrid6.ActiveRow.Cells["ID"].Text.Trim();//炉号 ArrayList arrayList = new ArrayList(); arrayList.Add(strLOT_NO); arrayList.Add(strSTOVE_NO); arrayList.Add(strID);//条件 DataTable dtBATCH_NO = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryBatchInfo", new Object[] { arrayList }, ob); if (dtBATCH_NO == null || dtBATCH_NO.Rows.Count == 0) { return; } //portMilShowBase1.UpdateBatchValue(dtBATCH_NO.Rows[0]["BATCH_NAME"].ToString().Trim(), dtBATCH_NO.Rows[0]["BATCH_TIME"].ToString().Trim(), dtBATCH_NO.Rows[0]["BATCH_CLASS"].ToString().Trim()); GridHelper.CopyDataToDatatable(dtBATCH_NO, dataTable8, true); GridHelper.RefreshAndAutoSize(ultraGrid8); } //删除分批信息 private void DeleteBatchInfo() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowWarning("只有在已分批取样数据页才能进行删除操作!"); return; } if (ultraGrid6.ActiveRow == null || dataTable6.Rows.Count == 0) { MessageUtil.ShowWarning("请选择需要删除的炉号信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除分批取样实绩?") == DialogResult.Yes) { string strID = ultraGrid6.ActiveRow.Cells["ID"].Text.Trim();//id string strLOT_NO = ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号 string strSTOVE_NO = ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号 string strPLINE_CODE = ultraGrid6.ActiveRow.Cells["PLINE_CODE"].Text.Trim();//产线代码 ArrayList alAll = new ArrayList(); ArrayList alPlan = new ArrayList(); ArrayList alPlanParams = new ArrayList();//更改状态位 alPlanParams.Add("");//检验编号 alPlanParams.Add(""); alPlanParams.Add("");//最大批数 alPlanParams.Add("0"); alPlanParams.Add("2"); alPlanParams.Add(strLOT_NO); alPlanParams.Add(strSTOVE_NO);//判定炉号 alPlanParams.Add(strID); alPlan.Add(alPlanParams); ArrayList alSampleBatch = new ArrayList();//先修改批次号 ArrayList alSampleBatchParams;//批次号参数PROCESS_CDOE foreach (DataRow dr in dataTable7.Rows) { alSampleBatchParams = new ArrayList(); alSampleBatchParams.Add("");//性能批号 alSampleBatchParams.Add(strPLINE_CODE);//产线代码 alSampleBatchParams.Add(dr["PIPE_NO"].ToString());//材料号 alSampleBatch.Add(alSampleBatchParams); } //20160830 取样不减去重量 //double count = 1; //string[] arrSize = ultraGrid6.ActiveRow.Cells["PIPE_SIZE"].Text.Trim().Split('*'); //double wj = arrSize.Length > 0 && Double.TryParse(arrSize[0], out count) ? Convert.ToDouble(arrSize[0]) : 0;//外径 //double bh = arrSize.Length > 1 && Double.TryParse(arrSize[1], out count) ? Convert.ToDouble(arrSize[1]) : 0;//壁厚 ArrayList alSample = new ArrayList();//修改样管信息 ArrayList alSampleParams;//批次号参数PROCESS_CDOE foreach (DataRow dr in dataTable7.Rows) { alSampleParams = new ArrayList(); if (dr["CHK"].ToString().ToUpper() == "TRUE") { alSampleParams.Add("0");//是否样管 alSampleParams.Add("");//样管长度 alSampleParams.Add("");//取样人 alSampleParams.Add("");//取样时间 alSampleParams.Add("");//班次 alSampleParams.Add("");//班组 //长度、重量 //alSampleParams.Add("");//长度 //if (Double.TryParse(dr["ORDER_LENGTH"].ToString(), out count)) //{ // alSampleParams.Add((0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["ORDER_LENGTH"].ToString()) / 1000)).ToString("f3"));//重量 //} //else //{ // alSampleParams.Add(""); //} alSampleParams.Add(strPLINE_CODE);//产线代码 alSampleParams.Add(dr["PIPE_NO"].ToString());//材料号 alSampleParams.Add(strLOT_NO); alSampleParams.Add(strSTOVE_NO);//判定炉号 alSampleParams.Add(strID); alSample.Add(alSampleParams); } } alAll.Add(alPlan); //alAll.Add(alBatchNo); alAll.Add(alSampleBatch); alAll.Add(alSample); PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.DeleteBatchInfo", new Object[] { alAll, ultraGrid6.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim(), strSTOVE_NO, strID }, ob); QueryLotNoAndStoveNo(dataTable6, ultraGrid6, "12");//刷新GRID1 PublicPort.ActiveOperateRow(ultraGrid1, new string[] { "LOT_NO", "JUDGE_STOVE_NO" }, new string[] { strLOT_NO, strSTOVE_NO });//定位 MessageUtil.ShowTips("分批取样实绩删除成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } #endregion private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); if (e.Cell.Column.Key == "CHK")// && e.Cell.Text == "True" && e.Cell.Row.Cells["ISVALID"].Text == "否" { if (e.Cell.Row.Cells["ISVALID"].Text == "否") { e.Cell.Value = "False"; } else { foreach (DataRow dr in dataTable3.Rows) { if (e.Cell.Row.Cells["BATCH_NO"].Text == dr["BATCH_NO"].ToString()) { dr["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + e.Cell.Row.Cells["BATCH_NO"].Text + "'").Length; return; } } } } else if (e.Cell.Column.Key == "SAMPLE_PIPE_LEN" && e.Cell.Text.Trim() != "" && !StringUtil.IsInt(e.Cell.Text.Trim())) { MessageUtil.ShowTips("样管长度必须为整数!"); e.Cell.Value = ""; } } private void txtPIPE_SIZE_TextChanged(object sender, EventArgs e) { if (txtPIPE_SIZE.Text.Trim() != "" && !StringUtil.IsNumber(txtPIPE_SIZE.Text.Trim())) { MessageUtil.ShowTips("每批样管数只能为整数!"); txtPIPE_SIZE.Text = "2"; return; } } private void btnAddSampleAll_Click(object sender, EventArgs e) { if (dataTable2 != null && dataTable2.Rows.Count > 0 && dataTable3.Rows.Count > 0 && dataTable5 != null)// && dataTable5.Rows.Count > 0 { ultraGrid2.UpdateData(); InitColumnsSampleReq(); ValueList vlMin = PublicPort.GeneralValuelist(ref dataTable2, "PIPE_NO", "SEQ"); ultraGrid5.DisplayLayout.Bands[0].Columns["PIPE_NO"].ValueList = vlMin; //先获取每一批次要取多少样 A\B端分别要取多少个样 int i = 0; int j = 0; foreach (DataRow dr in dataTable3.Rows) { i = 0; DataRow[] arrDataRowA = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND DESC_POSITION = 'A'"); DataRow[] arrDataRowB = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND DESC_POSITION = 'B'"); int num = Convert.ToInt16(dr["PIPE_NUM"].ToString()); DataRow[] arrDr = dataTable2.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "'", "SEQ"); if (arrDr == null || arrDr.Length == 0) { continue; } int index = dataTable2.Rows.IndexOf(arrDr[0]); if (arrDataRowA.Length + arrDataRowB.Length <= num)//如果AB端之和小于等于此批支数 { foreach (DataRow drs in dataTable5.Rows) { if (dr["BATCH_NO"].ToString() != drs["BATCH_NO"].ToString()) { continue; } j++; drs["PIPE_NO"] = dataTable2.Rows[index + i]["PIPE_NO"].ToString();//管号 //drs["PIPE_NO"] = dataTable2.Rows[index + i]["SEQ"].ToString();//管号 drs["SEQ"] = dataTable2.Rows[index + i]["SEQ"].ToString();//序号 drs["SAMPLE_NO"] = j;//样管号 drs["SAMPLE_BARCODE"] = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() + DateTime.Now.Year.ToString().Substring(2) + dataTable2.Rows[index + i]["PIPE_NO"].ToString() + drs["DESC_POSITION"]; i++; } } else { foreach (DataRow drs in dataTable5.Rows) { if (dr["BATCH_NO"].ToString() != drs["BATCH_NO"].ToString()) { continue; } j++; drs["PIPE_NO"] = dataTable2.Rows[index + i]["PIPE_NO"].ToString();//管号 //drs["PIPE_NO"] = dataTable2.Rows[index + i]["SEQ"].ToString();//管号 drs["SEQ"] = dataTable2.Rows[index + i]["SEQ"].ToString();//序号 drs["SAMPLE_NO"] = j;//样管号 drs["SAMPLE_BARCODE"] = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() + DateTime.Now.Year.ToString().Substring(2) + dataTable2.Rows[index + i]["PIPE_NO"].ToString() + drs["DESC_POSITION"]; i++; if (i >= num) { i = 0; } } } } PublicPort.RefreshAndAutoSizeColumns(ultraGrid5, new string[] { "SEQ" }, false);//刷新Grid } } private void btnFindSampleReq_Click(object sender, EventArgs e) { if (splitContainer2.Panel1Collapsed) { splitContainer2.Panel1Collapsed = false; } else { splitContainer2.Panel1Collapsed = true; ; } } private void ultraGrid5_AfterRowActivate(object sender, EventArgs e) { if (dataTable2 == null || dataTable2.Rows.Count == 0) { return; } UltraGridRow ugr = ultraGrid5.ActiveRow; DataTable dt = PublicPort.GetSelectDt(dataTable2, "BATCH_NO = '" + ugr.Cells["BATCH_NO"].Text + "' AND ISVALID = '是'"); DataRow drs = dt.NewRow(); drs["SEQ"] = ""; drs["PIPE_NO"] = ""; dt.Rows.Add(drs); ValueList vlMin = PublicPort.GeneralValuelist(ref dt, "PIPE_NO", "SEQ"); ugr.Cells["SEQ"].ValueList = vlMin; } private void ultraGrid5_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "SEQ" && e.Cell.Text != "") { ultraGrid5.Update(); ultraGrid5.UpdateData(); e.Cell.Row.Cells["PIPE_NO"].Value = e.Cell.Value.ToString(); e.Cell.Value = e.Cell.Text.Trim(); foreach (DataRow dr in dataTable5.Rows) { if (dr["XH"].ToString() != e.Cell.Row.Cells["XH"].Text) { //如果存在相同的管号和AB端 if (dr["SEQ"].ToString() == e.Cell.Row.Cells["SEQ"].Value.ToString() && dr["DESC_POSITION"].ToString() == e.Cell.Row.Cells["DESC_POSITION"].Text) { e.Cell.Value = ""; e.Cell.Row.Cells["PIPE_NO"].Value = ""; MessageUtil.ShowWarning("已存在相同的管号和取样位置请重新选择!"); return; } } } ultraGrid5.DataBind(); } } private void txtStartBatch_TextChanged(object sender, EventArgs e) { if (txtStartBatch.Text.Trim() != "" && !StringUtil.IsNumber(txtStartBatch.Text.Trim())) { MessageUtil.ShowTips("起始批号只能为整数!"); txtStartBatch.Text = ""; return; } } private void btnRefresh_Click(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) { return; } if (txtStartBatch.Text.Trim() == "") { MessageUtil.ShowWarning("起始批号不能为空!"); return; } if (dataTable2 == null || dataTable2.Rows.Count == 0) { MessageUtil.ShowWarning("不存在有效的管号队列不能分批!"); return; } ultraGrid3.UpdateData(); if (dataTable3 == null || dataTable3.Rows.Count == 0) { //MessageUtil.ShowWarning("不存在有效的管号队列不能分批!"); return; } int count = 0, sum = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim()); foreach (DataRow dr in dataTable3.Rows) { count = sum; int start = Convert.ToInt16(dr["START_SEQ"].ToString()); int end = Convert.ToInt16(dr["END_SEQ"].ToString()); for (int j = start - 1; j < end; j++) { ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = dr["BATCH_NO"].ToString(); ultraGrid2.Rows[j].Cells["CHK"].Value = "False"; ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = ""; if (count > 0) { ultraGrid2.Rows[j].Cells["CHK"].Value = "True"; count--; } } } } private void btnSampleLength_Click(object sender, EventArgs e) { if (dataTable3.Rows.Count > 0) { ultraGrid5.UpdateData(); if (dataTable5.Rows.Count > 0) { DataRow[] arrDr; foreach (DataRow dr in dataTable2.Rows) { arrDr = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND SEQ = '" + dr["SEQ"].ToString() + "'"); if (arrDr != null && arrDr.Length > 0) { dr["CHK"] = "True";//SAMPLE_PIPE_LEN dr["SAMPLE_PIPE_LEN"] = arrDr[0]["SAMPLE_LEN"].ToString(); } else { dr["CHK"] = "False"; dr["SAMPLE_PIPE_LEN"] = ""; } } } else { foreach (DataRow dr in dataTable2.Rows) { dr["CHK"] = "False"; dr["SAMPLE_PIPE_LEN"] = ""; } } } else { dataTable5.Rows.Clear(); foreach (DataRow dr in dataTable2.Rows) { dr["CHK"] = "False"; dr["SAMPLE_PIPE_LEN"] = ""; dr["BATCH_NO"] = ""; } } } private void btnFindSampleStdReq_Click(object sender, EventArgs e) { if (splitContainer4.Panel1Collapsed) { splitContainer4.Panel1Collapsed = false; } else { splitContainer4.Panel1Collapsed = true; ; } } private void btnFindBatch_Click(object sender, EventArgs e) { if (splitContainer3.Panel1Collapsed) { splitContainer3.Panel1Collapsed = false; } else { splitContainer3.Panel1Collapsed = true; ; } } private void InitColumnsSampleConsign() { ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim()); arrayList.Add(ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());//条件 DataTable dtDis = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfoPhy_Distinct", new Object[] { arrayList }, ob); if (dtDis == null || dtDis.Rows.Count == 0) { return; } InitColumnsSampleReqDt(dataTable12, ultraGrid12, PublicPort.GetSelectDt(dtDis, "SAMPLE_KEY IS NOT NULL", "PHY_CODE_MIN").DefaultView.ToTable(true, "SAMPLE_KEY", "SAMPLE_KEY_DESC")); string row = "";//存放所有样管号判断是否有重复样管号 DataRow newDr = dataTable12.NewRow(); foreach (DataRow dr in dtDis.Rows) { if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列 { row += dr["SAMPLE_NO"].ToString() + " "; newDr = dataTable12.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["XH"] = dr["XH"].ToString(); newDr["PIPE_NO"] = dr["PIPE_NO"].ToString(); newDr["SEQ"] = dr["SEQ"].ToString(); newDr["DESC_POSITION"] = dr["DESC_POSITION"].ToString();//取样位置 newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); newDr["SAMPLE_NO_MIN"] = dr["SAMPLE_NO_MIN"].ToString(); newDr["SAMPLE_BARCODE"] = dr["SAMPLE_BARCODE"].ToString(); newDr["SAMPLE_LEN"] = dr["SAMPLE_LEN"].ToString(); newDr[dr["SAMPLE_KEY"].ToString()] = "√"; dataTable12.Rows.Add(newDr); } else { newDr[dr["SAMPLE_KEY"].ToString()] = "√"; } } PublicPort.setOtherColumnReadOnly(ultraGrid12, null); GridHelper.RefreshAndAutoSize(ultraGrid12); } //取样单 private void RepLimsPortGetSample(UltraGrid ultraGrid) { try { this.Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要打印的炉号!"); return; } string strID = ugr.Cells["ID"].Text.Trim(); string strLOT_NO = ugr.Cells["LOT_NO"].Text.Trim(); string strJUDGE_STOVE_NO = ugr.Cells["JUDGE_STOVE_NO"].Text.Trim(); string strurl = ""; //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ // strurl = "http://localhost:8075/WebReport/ReportServer?reportlet=RepLimsPortGetSample.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_NO; //} //else //{ strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortGetSample.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_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 RepLimsPortCheckConsignOrder(UltraGrid ultraGrid) { try { this.Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要打印的炉号!"); return; } string strID = ugr.Cells["ID"].Text.Trim(); string strLOT_NO = ugr.Cells["LOT_NO"].Text.Trim(); string strJUDGE_STOVE_NO = ugr.Cells["JUDGE_STOVE_NO"].Text.Trim(); string checkNo = ugr.Cells["CHECK_NO"].Text.Trim(); string strurl = ""; //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ // strurl = "http://localhost:8075/WebReport/ReportServer?reportlet=RepLimsPortCheckConsignOrder.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_NO; //} //else //{ strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortCheckConsignOrder.cpt&&format=pdf&__embed__=true" + "&CHECK_NO=" + checkNo; //} 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; } } #region 未委托数据页 private void ultraGrid11_AfterRowActivate(object sender, EventArgs e) { string blType = ""; portMilShowBase3.ShowBaseInfo(ultraGrid11.ActiveRow); QuerySampleInfo(); if (ultraGrid11.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim() == "") { dataTable13.Rows.Clear(); dataTable14.Rows.Clear(); dataTable15.Rows.Clear(); return; } //QueryGetSampleReq_Desgin_Process(portMilShowBase3, ultraGrid11);//查询工序点是否经过成分和理化 blType = doQueryBltype(ultraGrid11.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim(), ultraGrid11.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim()); QueryGetSampleReqDetail();//查询理化项目明细和成分项目明细 QueryGetSampleReq(portMilShowBase3, ultraGrid11, dataTable14, ultraGrid14);//通过轧管合同号找取样要求 } /// /// 查询备料类型 /// /// private string doQueryBltype(string proPlanId,string gxPlanNo) { string bltype = ""; DataTable ds = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.doQueryBltype", new object[] { proPlanId, gxPlanNo }, ob); if (ds.Rows.Count > 0) { bltype = ds.Rows[0]["BLTYPE"].ToString(); } return bltype; } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.ToString()) { case "AddPhy": AddPhyItems(); break; } } //增加理化检验项目 private void AddPhyItems() { FrmBaseSelectItems _selectItems = new FrmBaseSelectItems(this.ob);//0810 _selectItems.DtSelectPhySampleCode = m_dtSelectPhySampleCode; _selectItems.DtSelectPhyMin = m_dtSelectPhyMin; _selectItems.DtSelectPhyR = m_dtSelectPhyR; _selectItems.DtSelectSampleKey = m_dtSelectSampleKey; _selectItems.ShowDialog(); //!!!PHY_CODE_MIN 检验大项 PHY_CODE_MAX 试样组 PHY_CODE检验报出项 m_dtSelectPhySampleCode = _selectItems.DtSelectPhySampleCode;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 m_dtSelectPhyMin = _selectItems.DtSelectPhyMin;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 PHY_CODE P0001 m_dtSelectPhyR = _selectItems.DtSelectPhyR;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 ITEM_CODE_F ITEM_CODE_W ITEM_CODE_C m_dtSelectSampleKey = _selectItems.DtSelectSampleKey;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 SAMPLE_KEY ITEM_CODE_F ITEM_CODE_W ITEM_CODE_C AddColumns(4, m_dtSelectSampleKey, dataTable12);//把选中的大项增加到publicUltraGridDetail1.DataTable } /// /// 增加列 /// /// 源DataTable /// 需要增加的DataTable public void AddColumns(int startNum, DataTable dt, DataTable dataTable) { if (dt != null && dt.Rows.Count > 0) { ultraGrid12.UpdateData(); int dcNum = dataTable.Columns.Count;//清除列 if (dcNum > startNum)//判断此列是否为空,如果不为空则不清除 { bool isClear; string strClear = "";//需要清除列拼接 foreach (DataColumn dCol in dataTable.Columns) { if (dataTable.Columns.IndexOf(dCol) < startNum) { continue; } isClear = true; foreach (DataRow drR in dt.Rows) { //20151118 PHY_CODE_MAX 换成SAMPLE_KEY if (drR["SAMPLE_KEY"].ToString() == dCol.ColumnName) { isClear = false; break; } } if (isClear == true) { strClear += dCol.ColumnName + " "; //break; } } if (strClear != "") { string[] arr = strClear.Split(' '); for (int i = 0; i < arr.Length - 1; i++) { if (dataTable.Columns.Contains(arr[i])) { dataTable.Columns.Remove(arr[i]); } } } } DataColumn dc; foreach (DataRow dr in dt.Rows)//增加列 { try { //dc = new DataColumn(dr["PHY_CODE_MAX"].ToString()); //dc.Caption = dr["PHY_NAME_MAX"].ToString(); dc = new DataColumn(dr["SAMPLE_KEY"].ToString()); dc.Caption = dr["SAMPLE_KEY_DESC"].ToString(); dataTable.Columns.Add(dc); } catch { continue; } } } else { for (int i = startNum; i < dataTable12.Columns.Count; i++) { dataTable12.Columns.RemoveAt(i); } } ultraGrid12.DataBind();//dataTable发生变化提交给ultraGrid GridHelper.RefreshAndAutoSize(ultraGrid12); } //自适应 private void RefreshAutoSize(int num) { if (num < 0) { return; } //ultraGrid12.DisplayLayout.Bands[0].Columns[0].Width = 80; for (int i = num; i < ultraGrid12.DisplayLayout.Bands[0].Columns.Count; i++) { ultraGrid12.DisplayLayout.Bands[0].Columns[i].Width = 60;//设置列宽 } } private void QuerySampleInfo() { try { dataTable12.Rows.Clear(); //查询已录入性能批号+样管号 string strLOT_NO = ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号 string strSTOVE_NO = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号 string strID = ultraGrid11.ActiveRow.Cells["ID"].Text.Trim();//炉号 ArrayList arrayList = new ArrayList(); arrayList.Add(strLOT_NO); arrayList.Add(strSTOVE_NO); arrayList.Add(strID);//条件 DataTable dtBATCH_NO = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfo", new Object[] { arrayList }, ob); if (dtBATCH_NO == null || dtBATCH_NO.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dtBATCH_NO, dataTable12, true); GridHelper.RefreshAndAutoSize(ultraGrid12); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid12_ClickCell(object sender, ClickCellEventArgs e) { if (e.Cell.Column.Key != "BATCH_NO" && e.Cell.Column.Key != "PIPE_NO" && e.Cell.Column.Key != "SAMPLE_PIPE_LEN") { if (e.Cell.Text.Trim() == "") { e.Cell.Value = "√"; } else { e.Cell.Value = ""; } } } //查询成分和理化是否监制 private string[] QueryGetPrdceReq() { string[] arr = new string[2]; try { ArrayList arrayList = new ArrayList(); string strCONTRACT_NO = ultraGrid11.ActiveRow.Cells["CONTRACT_NO"].Text.Trim(); arrayList.Add(strCONTRACT_NO.Substring(strCONTRACT_NO.IndexOf('/') + 1).PadLeft(3, '0')); arrayList.Add(strCONTRACT_NO.Substring(0, strCONTRACT_NO.IndexOf('/'))); DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetPrdceReq", new Object[] { arrayList }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (dr["STATION_CODE"].ToString() == "40230" || dr["STATION_DESC"].ToString() == "成品成分") { arr[0] = "监制"; } else { arr[1] = "监制"; } } } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } return arr; } //查询理化项目明细和成分项目明细 private void QueryGetSampleReqDetail() { try { ArrayList arrayList = new ArrayList(); ArrayList aryList = new ArrayList(); //string strORD_LN_DLY_PK = ultraGrid11.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim(); ////arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1)); //arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3)); //string gradeName = ultraGrid11.ActiveRow.Cells["GRADENAME"].Text.Trim(); //aryList.Add(gradeName); //aryList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-') - 3)); string proPlanId = ultraGrid11.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim(); string gxPlanNo = ultraGrid11.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim(); aryList.Add(proPlanId); aryList.Add(gxPlanNo); arrayList.Add(proPlanId); arrayList.Add(gxPlanNo); DataTable dtChem = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReqDetail_Chem", new Object[] { aryList }, ob); DataColumn dc; if (dtChem == null || dtChem.Rows.Count == 0) { dataTable13.Rows.Clear(); this.ultraGrid12.DisplayLayout.Bands[0].Columns["HX"].Hidden = true; } else { this.ultraGrid12.DisplayLayout.Bands[0].Columns["HX"].Hidden = false; } GridHelper.CopyDataToDatatable(dtChem, dataTable13, true); GridHelper.RefreshAndAutoSize(ultraGrid13); DataTable dtPhy = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReqDetail_Phy", new Object[] { arrayList }, ob); if (dtPhy == null || dtPhy.Rows.Count == 0) { dataTable15.Rows.Clear(); if (m_dtSelectPhySampleCode != null) { m_dtSelectPhySampleCode.Rows.Clear(); } if (m_dtSelectPhyMin != null) { m_dtSelectPhyMin.Rows.Clear(); } if (m_dtSelectPhyR != null) { m_dtSelectPhyR.Rows.Clear(); } if (m_dtSelectSampleKey != null) { m_dtSelectSampleKey.Rows.Clear(); } for (int i = 4; i < dataTable12.Columns.Count; i++) { dataTable12.Columns.RemoveAt(i);//删除多余的列 } return; } GridHelper.CopyDataToDatatable(dtPhy, dataTable15, true); GridHelper.RefreshAndAutoSize(ultraGrid15); m_dtSelectPhyMin = dtPhy.Copy();//查询出的检验项只赋值已选择检验项 } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } //获取检验委托基本信息 public ArrayList GetCheckConsignBase(UltraGrid ultraGrid, string strJZ) { ArrayList al = new ArrayList(); al.Add(ultraGrid.ActiveRow.Cells["LOT_NO"].Text.Trim());//LOT_NO al.Add(ultraGrid.ActiveRow.Cells["STOVE_NO"].Text.Trim());//STOVE_NO al.Add(ultraGrid.ActiveRow.Cells["PLINE_CODE"].Text.Trim());//HEAT_NO al.Add(ultraGrid.ActiveRow.Cells["JUDGE_STOVE_NO_DESC"].Text.Trim());//HEAT_NO al.Add(ultraGrid.ActiveRow.Cells["STEELNAME"].Text.Trim());//钢级 STEEL_GRADE al.Add(ultraGrid.ActiveRow.Cells["GRADENAME"].Text.Trim());//钢号 STEEL_NO al.Add(ultraGrid.ActiveRow.Cells["VARIETIES"].Text.Trim());//品名 PRODUCT_NAME al.Add(ultraGrid.ActiveRow.Cells["IMP_PROCESS"].Text.Trim());//执行工艺 CRAFT_FILE_NO al.Add(ultraGrid.ActiveRow.Cells["CRAFT_PATH"].Text.Trim());//工艺文件路径 al.Add(ultraGrid.ActiveRow.Cells["PRODUCE_STANDRAD"].Text.Trim());//产品标准 PRODUCT_STD al.Add(ultraGrid.ActiveRow.Cells["CONTRACT_NO"].Text.Trim());// CONTRACT_NO string strPIPE_SIZE = ultraGrid.ActiveRow.Cells["PIPE_SIZE"].Text.Trim(); if (strPIPE_SIZE.IndexOf("*") >= 0) { al.Add(strPIPE_SIZE.Substring(0, strPIPE_SIZE.IndexOf("*")));//规格 外径*壁厚 al.Add(strPIPE_SIZE.Substring(strPIPE_SIZE.IndexOf("*") + 1)); } else { al.Add(""); al.Add(""); } al.Add(ultraGrid.ActiveRow.Cells["BUCKLE_TYPE"].Text.Trim()); //扣型 al.Add(ultraGrid.ActiveRow.Cells["PROCESS_STATUS"].Text.Trim()); //工艺状态 al.Add(UserInfo.GetUserName());//委托单位取样人 al.Add(DateTime.Now.ToString());//委托人取样时间 al.Add(UserInfo.GetDepartment());//委托单位 CONSIGN_DEPT al.Add(UserInfo.GetUserName());//委托人 al.Add(UserInfo.GetUserName());//委托单位送样人 al.Add("0"); //是否监制--监制信息如何读取 "0"不监制 al.Add("");//特殊要求 al.Add("1");//默认委托单位已送样 al.Add(txtREMARK.Text);//备注 return al; } //获取勾选的元素 public ArrayList GetCheckChem() { ArrayList al = new ArrayList(); string chemONH = ""; string chemItems = ""; ArrayList alchem = new ArrayList(); if (dataTable13.Rows.Count > 0) { foreach (DataRow dr in dataTable13.Rows) { if ("ONH".IndexOf(dr["CHEM_NAME"].ToString()) >= 0) { chemONH += dr["CHEM_NAME"].ToString() + " "; } else { chemItems += dr["CHEM_NAME"].ToString() + " "; } } } alchem.Add(chemItems); alchem.Add(chemONH); al.Add(alchem); return al; } //增加检验委托 private void AddCheckConsign() { try { if (ultraGrid11.ActiveRow == null || ultraGrid11.ActiveRow.Activated == false) { return; } if (dataTable12 == null || dataTable12.Rows.Count == 0) { MessageUtil.ShowWarning("没有取样要求明细不能生成委托!"); return; } string strAddChem = isValid(); if (strAddChem != "") { MessageUtil.ShowWarning(strAddChem); return; } //if (portMilShowBase3.StrIsPhy == "是" && (m_dtSampleReqDetail == null || m_dtSampleReqDetail.Rows.Count == 0)) //{ // MessageUtil.ShowWarning("没有对应的检验项不能生成委托!"); // return; //} if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes) { string[] arr = QueryGetPrdceReq();//查询是否监制 ultraGrid12.UpdateData(); string strSIMPLE_PROCESS = ultraGrid11.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim(); string strID = ultraGrid11.ActiveRow.Cells["ID"].Text.Trim();//id SIMPLE_PROCESS string strLOT_NO = ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim();//批号 string strJUDGE_STOVE_NO_DESC = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO_DESC"].Text.Trim();//判定炉号 string strJUDGE_STOVE_NO = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim(); string strSTOVE_NO = ultraGrid11.ActiveRow.Cells["STOVE_NO"].Text.Trim(); string strPline = ultraGrid11.ActiveRow.Cells["PLINE_CODE"].Text.Trim(); string strCHECK_NO = strPline + strJUDGE_STOVE_NO_DESC;//产线+炉号+流水 ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List ArrayList alBase = new ArrayList();//基础表list ArrayList alDetail = new ArrayList();//检验信息详细表list ArrayList alPhyDetail = new ArrayList();//理化信息list ArrayList alChemDetail = new ArrayList();//化学信息list ArrayList alBaseParams = new ArrayList();//基础表参数list ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list ArrayList alPhyDetailParams = new ArrayList();//理化信息参数list ArrayList alChemDetailParams = new ArrayList();//化学信息参数list alBase.Add(GetCheckConsignBase(ultraGrid11, (arr[0] != "" || arr[1] != "" ? "1" : "0")));//增加基础表参数 string strPHY_CODE_MAX = ""; string strPHY_NAME_MAX = ""; DataRow[] arrAddMax = null;//存放试样信息 DataRow[] arrAddMin = null; ArrayList al = GetCheckChem(); int sampleSeq = 0;//加入序号标示第几个试样 int k = 0;//材质序号 foreach (DataRow dr in dataTable12.Rows) { sampleSeq++; foreach (DataColumn dc in dataTable12.Columns) { if (dc.ColumnName != "BATCH_NO" && dc.ColumnName != "PIPE_NO" && dc.ColumnName != "SAMPLE_PIPE_LEN" && dr[dc.ColumnName].ToString().Trim() != "") { strPHY_CODE_MAX = dc.ColumnName;//strSAMPLE_KEY strPHY_NAME_MAX = dc.Caption.Trim(); if (strPHY_CODE_MAX == "HX") { if (((ArrayList)al[0])[0].ToString() != "") { alDetailParams = new ArrayList();//增加明细表参数 //alDetailParams.Add(strCHECK_NO);//检验编号 //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成 //alDetailParams.Add(strSAMPLE_NO_MIN);//钢印号服务端生成 alDetailParams.Add(sampleSeq.ToString()); alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号 alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度 alDetailParams.Add("HX");//大项 alDetailParams.Add(((ArrayList)al[0])[0].ToString()); alDetailParams.Add("002001007010");//部门DEPT_ID alDetailParams.Add("1");//样条数 alDetailParams.Add("");//试验标准STD_NAME_TEST alDetailParams.Add("");//LENGTH alDetailParams.Add("");//WIDTH alDetailParams.Add("");//试样编码SPLINE_NO alDetailParams.Add("");//试验方向 alDetailParams.Add("");//名义规格 alDetailParams.Add("0");//是否热处理 alDetailParams.Add((arr[0] != null && arr[0] != "") ? "1" : "0");//是否监制 alDetail.Add(alDetailParams);//增加明细表参数List } if (((ArrayList)al[0])[1].ToString() != "") { alDetailParams = new ArrayList(); //alDetailParams.Add(strCHECK_NO);//检验编号 //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成 //alDetailParams.Add(strSAMPLE_NO_MIN);//试样号服务端生成 alDetailParams.Add(sampleSeq.ToString()); alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号 alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度 alDetailParams.Add("ONH"); alDetailParams.Add(((ArrayList)al[0])[1].ToString()); alDetailParams.Add("002001007010");//部门DEPT_ID 一快分 二快分002001020001,002001020002 alDetailParams.Add("1");//样条数 alDetailParams.Add("");//试验标准STD_NAME_TEST alDetailParams.Add("");//LENGTH alDetailParams.Add("");//WIDTH alDetailParams.Add("");//试样编码SPLINE_NO alDetailParams.Add("");//试验方向 alDetailParams.Add("");//名义规格 alDetailParams.Add("0");// alDetailParams.Add((arr[0] != null && arr[0] != "") ? "1" : "0"); alDetail.Add(alDetailParams);//增加明细表参数List } if (dataTable13 != null && dataTable13.Rows.Count > 0) { if (dataTable13.Rows.Count > 0) { foreach (DataRow drs in dataTable13.Rows) { alChemDetailParams = new ArrayList();//增加化学明细表参数 //alChemDetailParams.Add(strCHECK_NO); //alChemDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim()); alChemDetailParams.Add(sampleSeq.ToString()); alChemDetailParams.Add(drs["CHEM_CODE"].ToString().Trim()); alChemDetailParams.Add(drs["CHEM_NAME"].ToString().Trim()); alChemDetailParams.Add(drs["ISCHECK"].ToString().Trim()); alChemDetailParams.Add(drs["ISJUDGE"].ToString().Trim()); alChemDetailParams.Add(drs["ISQUOTE"].ToString().Trim()); alChemDetailParams.Add(drs["STDMIN_SIGN"].ToString().Trim()); alChemDetailParams.Add(drs["STDMIN"].ToString().Trim()); alChemDetailParams.Add(drs["STDMAX_SIGN"].ToString().Trim()); alChemDetailParams.Add(drs["STDMAX"].ToString().Trim()); alChemDetailParams.Add(drs["STDTARGET"].ToString().Trim()); alChemDetail.Add(alChemDetailParams); } } } } else { if (m_dtSelectSampleKey != null && m_dtSelectSampleKey.Rows.Count > 0) { if (m_dtSelectPhyMin != null && m_dtSelectPhyMin.Rows.Count > 0) { arrAddMin = m_dtSelectPhyMin.Select("PHY_CODE_MAX = '" + strPHY_CODE_MAX.Substring(0, 5) + "'");//筛选符合条件的小项 } alDetailParams = new ArrayList(); //alDetailParams.Add(strCHECK_NO);//检验编号 //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成 //alDetailParams.Add(strSAMPLE_NO_MIN);//试样号服务端生成 alDetailParams.Add(sampleSeq.ToString()); alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号 alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度 alDetailParams.Add(strPHY_CODE_MAX); alDetailParams.Add(strPHY_NAME_MAX); arrAddMax = m_dtSelectSampleKey.Select("SAMPLE_KEY = '" + strPHY_CODE_MAX + "'");//从查出来的取样码中筛选符合条件的试样信息 if (arrAddMax != null && arrAddMax.Length > 0) { alDetailParams.Add(arrAddMax[0]["DEPT_ID"].ToString()); alDetailParams.Add(arrAddMax[0]["SAMPLE_COUNT"].ToString());//样条数 alDetailParams.Add(arrAddMax[0]["STD_NAME_TEST"].ToString());//试验标准STD_NAME_TEST alDetailParams.Add(arrAddMax[0]["LENGTH"].ToString());//LENGTH alDetailParams.Add(arrAddMax[0]["WIDTH"].ToString());//WIDTH alDetailParams.Add(arrAddMax[0]["SPLINE_NO"].ToString());//试样编码SPLINE_NO alDetailParams.Add(arrAddMax[0]["PHY_DIR"].ToString());//试验方向 alDetailParams.Add(arrAddMax[0]["SIZE_DESC"].ToString());//名义规格 alDetailParams.Add((arrAddMin != null && arrAddMin.Length > 0) ? arrAddMin[0]["BILLET_SAMPLE"].ToString().Trim() : "0");//坯样热处理和是否监制 alDetailParams.Add((arr[1] != null && arr[1] != "") ? "1" : "0"); //alDetailParams.Add(arrAddMax[0]["DESC_COUNT"].ToString());//取样数量(毛样) //alDetailParams.Add(arrAddMax[0]["DESC_POSITION"].ToString());//取样位置 //alDetailParams.Add(arrAddMax[0]["SAMPLE_COUNT"].ToString());//样条个数 } else { alDetailParams.Add("");//部门 DEPT_ID alDetailParams.Add("");//样条数 alDetailParams.Add("");//试验标准STD_NAME_TEST alDetailParams.Add("");//LENGTH alDetailParams.Add("");//WIDTH alDetailParams.Add("");//试样编码SPLINE_NO alDetailParams.Add("");//试验方向 alDetailParams.Add("");//名义规格 alDetailParams.Add("0");//坯样热处理和是否监制 alDetailParams.Add((arr[1] != null && arr[1] != "") ? "1" : "0"); //alDetailParams.Add("");//取样数量(毛样) //alDetailParams.Add("");//取样位置 //alDetailParams.Add("");//样条个数 } alDetail.Add(alDetailParams);//增加明细表参数List if (arrAddMin != null && arrAddMin.Length > 0) { foreach (DataRow drR in arrAddMin) { k++; alPhyDetailParams = new ArrayList(); //alPhyDetailParams.Add(strCHECK_NO); //alPhyDetailParams.Add(strSAMPLE_NO); alPhyDetailParams.Add(sampleSeq.ToString()); alPhyDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号 alPhyDetailParams.Add(k.ToString());//材质序号 alPhyDetailParams.Add(drR["DEPT_ID"].ToString().Trim()); alPhyDetailParams.Add(strPHY_CODE_MAX);//SAMPLE_KEY alPhyDetailParams.Add(strPHY_NAME_MAX);//SAMPLE_KEY_DESC alPhyDetailParams.Add(drR["PHY_CODE_MIN"].ToString());//大项代码 alPhyDetailParams.Add(drR["PHY_NAME_MIN"].ToString());//大项描述 alPhyDetailParams.Add(drR["PHY_CODE"].ToString());//检验项代码 alPhyDetailParams.Add(drR["PHY_NAME"].ToString());//检验项描述 alPhyDetailParams.Add(drR["PHY_UNIT"].ToString());//值单位 alPhyDetailParams.Add(drR["ITEM_CODE_F"].ToString());//方向代码 alPhyDetailParams.Add(drR["ITEM_NAME_F"].ToString());//方向描述 alPhyDetailParams.Add(drR["ITEM_CODE_W"].ToString());//温度代码 alPhyDetailParams.Add(drR["ITEM_NAME_W"].ToString());//温度描述 alPhyDetailParams.Add(drR["ITEM_CODE_C"].ToString());//尺寸代码 alPhyDetailParams.Add(drR["ITEM_NAME_C"].ToString());//尺寸描述 alPhyDetailParams.Add(drR["ISCHECK"].ToString().Trim()); alPhyDetailParams.Add(drR["ISJUDGE"].ToString().Trim()); alPhyDetailParams.Add(drR["ISQUOTE"].ToString().Trim()); alPhyDetailParams.Add(drR["RESULT_COUNT"].ToString().Trim()); alPhyDetailParams.Add(drR["STDMIN_SIGN"].ToString().Trim()); alPhyDetailParams.Add(drR["STDMIN"].ToString().Trim()); alPhyDetailParams.Add(drR["STDMAX_SIGN"].ToString().Trim()); alPhyDetailParams.Add(drR["STDMAX"].ToString().Trim()); alPhyDetailParams.Add(drR["JUDGE_BASIS"].ToString().Trim()); alPhyDetailParams.Add(drR["STDMEMO"].ToString().Trim()); alPhyDetailParams.Add(drR["BILLET_SAMPLE"].ToString().Trim());//小样热处理 alPhyDetail.Add(alPhyDetailParams); } } } } } } } alAll.Add(alBase); //alAll.Add(alJg); alAll.Add(alDetail); alAll.Add(alPhyDetail); alAll.Add(alChemDetail); ArrayList alPlan = new ArrayList(); ArrayList alPlanParams = new ArrayList();//更改状态位 alPlanParams.Add(strSIMPLE_PROCESS); alPlanParams.Add(portMilShowBase2.StrBATCH_MAX);//最大批数 alPlanParams.Add("3"); alPlanParams.Add("2"); alPlanParams.Add(strLOT_NO); alPlanParams.Add(strJUDGE_STOVE_NO);//判定炉号 alPlanParams.Add(strID); alPlan.Add(alPlanParams); alAll.Add(alPlan); string strSampleCode = ultraGrid11.ActiveRow.Cells["SPLINE_DESC"].Text.Trim();//试样号首字母 PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.AddCheckConsign1", new Object[] { alAll, strPline + strJUDGE_STOVE_NO_DESC, strSampleCode }, this.ob); QueryLotNoAndStoveNo(dataTable11, ultraGrid11, "2"); MessageUtil.ShowTips("新增委托成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //委托是否有效 private string isValid() { ultraGrid12.UpdateData(); bool isHaveItems = false; foreach (UltraGridRow ur in ultraGrid12.Rows) { isHaveItems = false; foreach (UltraGridColumn uc in ultraGrid12.DisplayLayout.Bands[0].Columns) { if (uc.Key != "BATCH_NO" && uc.Key != "PIPE_NO" && uc.Key != "SAMPLE_PIPE_LEN") { if (ur.Cells[uc.Key].Text.Trim() != "") { isHaveItems = true; } } } if (isHaveItems == false) { return "批号:" + ur.Cells["BATCH_NO"].Text.Trim() + ",样管号:" + ur.Cells["PIPE_NO"].Text.Trim() + "没有选择检验项目!"; } } return ""; } #endregion #region 已委托数据页 private void DeleteCheckConsign() { try { if (ultraTabControl1.SelectedTab.Index != 3) { MessageUtil.ShowWarning("只有在已委托数据页才能进行取消委托操作!"); return; } if (ultraGrid16.ActiveRow == null || ultraGrid16.ActiveRow.Activated == false) { MessageUtil.ShowWarning("请点击选择一条需要取消委托的信息!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认取消?") == DialogResult.Yes) { string strSIMPLE_PROCESS = ultraGrid16.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim(); string strID = ultraGrid16.ActiveRow.Cells["ID"].Text.Trim();//id SIMPLE_PROCESS string strLOT_NO = ultraGrid16.ActiveRow.Cells["LOT_NO"].Text.Trim();//批号 string strJUDGE_STOVE_NO = ultraGrid16.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim(); string strCHECK_NO = ultraGrid16.ActiveRow.Cells["CHECK_NO"].Text.Trim(); ArrayList all = new ArrayList(); ArrayList alPlanParams = new ArrayList();//更改状态位 alPlanParams.Add(""); alPlanParams.Add(strSIMPLE_PROCESS); alPlanParams.Add(portMilShowBase3.StrBATCH_MAX);//最大批数 alPlanParams.Add("2"); alPlanParams.Add("3"); alPlanParams.Add(strLOT_NO); alPlanParams.Add(strJUDGE_STOVE_NO);//判定炉号 alPlanParams.Add(strID); ArrayList alConsign = new ArrayList(); alConsign.Add("0"); alConsign.Add(strCHECK_NO); all.Add(alPlanParams); all.Add(alConsign); PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.DeleteCheckConsign", new Object[] { strCHECK_NO, all }, this.ob); QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3"); MessageUtil.ShowTips("取消委托成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3"); return; } } #endregion private void ultraGrid16_AfterRowActivate(object sender, EventArgs e) { portMilShowBase4.ShowBaseInfo(ultraGrid16.ActiveRow); ArrayList al = new ArrayList(); al.Add(""); al.Add(ultraGrid16.ActiveRow.Cells["CHECK_NO"].Text.Trim()); QueryCheckConsignDetail(al, 5); string strHide = "HX,ONH"; PublicPort.HideNullColumn(strHide, ultraGrid17); GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid } //查询检验委托明细信息 public void QueryCheckConsignDetail(ArrayList arrayList, int startNum) { DataTable dt = PublicServer.GetData("com.steering.lims.data.pipe.PublicPipeBase.QueryCheckConsignDetail", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable17.Rows.Clear(); int dcNum = dataTable17.Columns.Count;//清除列 if (dcNum > startNum) { for (int i = 0; i < dcNum - startNum; i++) { dataTable17.Columns.RemoveAt(startNum); } } return; } if (startNum == -1) { GridHelper.CopyDataToDatatable(dt, dataTable17, true);//把dt复制给dataTable4 //GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid return; } ShowColumns(startNum, dt, dataTable17); string row = "";//存放所有样管号判断是否有重复样管号 dataTable17.Rows.Clear();//清除行 DataRow newDr = dataTable17.NewRow(); foreach (DataRow dr in dt.Rows) { if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列 { row += dr["SAMPLE_NO"].ToString() + " "; newDr = dataTable17.NewRow(); newDr["BATCH_NO"] = dr["BATCH_NO"].ToString(); newDr["SAMPLE_PIPE_LEN"] = dr["SAMPLE_LEN"].ToString(); newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); newDr[dr["PHY_CODE_MAX"].ToString()] = dr["SAMPLE_COUNT"].ToString(); dataTable17.Rows.Add(newDr); } else { newDr[dr["PHY_CODE_MAX"].ToString()] = dr["SAMPLE_COUNT"].ToString(); } } ultraGrid17.DataBind();//dataTable发生变化提交给ultraGrid //GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid } public void ShowColumns(int startNum, DataTable dt, DataTable dataTable) { if (dt != null && dataTable != null) { int dcNum = dataTable.Columns.Count;//清除列 if (dcNum > startNum) { for (int i = 0; i < dcNum - startNum; i++) { dataTable.Columns.RemoveAt(startNum); } } foreach (DataRow dr in dt.Rows)//增加列 { try { DataColumn dc = new DataColumn(dr["PHY_CODE_MAX"].ToString()); if (dr["PHY_CODE_MAX"].ToString() == "HX") { dc.Caption = "化学"; } else if (dr["PHY_CODE_MAX"].ToString() == "ONH") { dc.Caption = "ONH"; } else { dc.Caption = dr["PHY_NAME_MAX"].ToString(); } dataTable.Columns.Add(dc); } catch { continue; } } } } } }