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;
}
}
}
}
}
}