using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Tool;
using System.Collections;
using Core.Mes.Client.Comm.Control;
namespace Core.StlMes.Client.Lims.Data.Mat
{
public partial class FrmMatCheckConsignAdd : FrmBase
{
private DataTable m_dtSelectItems;
public FrmMatCheckConsignAdd()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
publicUltraGridBase1.Ug.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
publicUltraGridDetail1.Ug.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
}
private void FrmMatCheckConsignAdd_Load(object sender, EventArgs e)
{
InitColumns();
ultITEM_NAME.QueryMatItemsName(this.ob);
ultPRODUCT_STD.QueryStd_Code(this.ob);
}
private void InitColumns()
{
publicUltraGridBase1.PublicUltraGridBaseActive += new EventHandler(publicUltraGridBase1_PublicUltraGridBaseActive);//调用委托事件
publicUltraGridBase1.InitColumnsBase(new string[] { "CHECK_NO" }, true, null);
string[] arrColumns = new string[] { "SAMPLE_NO" };//"FLAG","CHK",
string[] arrCaption = new string[] { "试样号" };//"试样状态","选择",
publicUltraGridDetail1.InitColumns(arrColumns, arrCaption);
publicUltraGridDetail1.Ug.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.TemplateOnBottom;
}
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
//新增、修改修约值、审核、删除、退出
switch (ToolbarKey)
{
case "Query":
QueryCheckConsignBase();
break;
case "Add":
AddCheckConsign();
break;
case "Update":
UpdateCheckConsign();
break;
case "Delete":
DeleteCheckConsign();
break;
case "Clear":
if (MessageUtil.ShowYesNoAndQuestion("是否确认清空?") == DialogResult.Yes)
{
ClearCheckConsign();
MessageUtil.ShowTips("清空成功!");
}
break;
case "Close":
if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes)
{
this.Close();
}
break;
}
}
//查询检验委托基本信息
private void QueryCheckConsignBase()
{
try
{
publicUltraGridBase1.QueryCheckConsignBase("mat.PublicMatBase", matQueryBase1.GetQueryInfo("1"), this.ob);
if (publicUltraGridBase1.Ug.Rows.Count == 0)
{
ClearCheckConsign();
}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
return;
}
}
//清空检验委托
private void ClearCheckConsign()
{
ClearCheckConsignBase();
publicUltraGridDetail1.DataTable.Rows.Clear();
PublicMat.ReMoveColumns(publicUltraGridDetail1.DataTable, 1);//清除列
m_dtSelectItems = null;
//清理内存表
}
private void ClearCheckConsignBase()
{
txtCHECK_NO.Text = "";
ultITEM_NAME.UltSample_Name = "";
txtSAMPLE_NO.Text = "";
ultPRODUCT_STD.UltStd__Code = "";
ultraGRADE.Text = "";//钢号
txtWEIGHT.Text = "";
ultraCHECK_COUNT_DESC.Text = "初检";
txtCONSIGN_DEPT.Text = "";
txtCONSIGN_NAME.Text = "";
txtCONSIGN_TIME.Text = "";//委托单位
txtREMARK.Text = "";//备注
}
void publicUltraGridBase1_PublicUltraGridBaseActive(object sender, EventArgs e)
{
PublicMat.ShowBaseInfo(publicUltraGridBase1.Ur, panel4);
ultITEM_NAME.UltSample_Name = publicUltraGridBase1.Ur.Cells["ITEM_NAME"].Text.Trim();
ultPRODUCT_STD.UltStd__Code = publicUltraGridBase1.Ur.Cells["PRODUCT_STD"].Text.Trim();
if (publicUltraGridDetail1.DataTable.Rows.Count > 0)
{
txtSAMPLE_NO.Text = (publicUltraGridDetail1.DataTable.Rows.Count - 1).ToString();
}
QueryCheckConsignDetail();
QueryCheckConsignDetail_Distinct();
}
//查询检验委托明细信息
private void QueryCheckConsignDetail_Distinct()
{
try
{
ArrayList arrayList = new ArrayList();
arrayList.Add("");
arrayList.Add("");
arrayList.Add("");
arrayList.Add(publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim());
DataTable dt = PublicServer.GetData("com.steering.lims.data.mat.PublicMatBase.QueryCheckConsignDetail_Distinct",
new Object[] { arrayList }, ob);
if (dt == null || dt.Rows.Count == 0)
{
return;
}
m_dtSelectItems = dt.Copy();
}
catch (Exception ex)
{
MessageUtil.ShowWarning(ex.Message);
return;
}
}
//查询检验委托明细信息
private void QueryCheckConsignDetail()
{
try
{
ArrayList arrayList = new ArrayList();
arrayList.Add("");
arrayList.Add("");
arrayList.Add("");
arrayList.Add(publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim());
publicUltraGridDetail1.QueryCheckConsignDetail(arrayList, this.ob, 1);
publicUltraGridDetail1.setOtherColumnReadOnly(new string[] { "SAMPLE_NO" });//可编辑列
}
catch (Exception ex)
{
MessageUtil.ShowWarning(ex.Message);
return;
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key.ToString())
{
case "AddMat":
AddMatItems();
break;
}
}
private void AddMatItems()
{
publicUltraGridDetail1.DataTable.Rows.Clear();
WinMatItemsSelect pc = new WinMatItemsSelect();
pc.Ob = this.ob;
pc.DtSelectItems = m_dtSelectItems;
pc.ShowDialog();
if (pc.DialogResult != DialogResult.OK)
{
return;
}
m_dtSelectItems = pc.DtSelectItems;
publicUltraGridDetail1.ShowColumns(1, m_dtSelectItems, publicUltraGridDetail1.DataTable);
DataRow newDrUnit = publicUltraGridDetail1.DataTable.NewRow();//增加单位行
foreach (DataRow dr in m_dtSelectItems.Rows)
{
newDrUnit[dr["MAT_CODE"].ToString()] = dr["MAT_UNIT"].ToString();
}
publicUltraGridDetail1.DataTable.Rows.InsertAt(newDrUnit, 0);
publicUltraGridDetail1.setOtherColumnReadOnly(new string[] { "SAMPLE_NO" });//可编辑列
}
//增加检验委托
private void AddCheckConsign()
{
try
{
if (txtCHECK_NO.Text.Trim() == "")
{
MessageUtil.ShowWarning("检验编号不能为空!");
return;
}
string strAddChem = isRule();
if (strAddChem != "")
{
MessageUtil.ShowWarning(strAddChem);
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes)
{
string strCHECK_NO = txtCHECK_NO.Text.Trim();//检验委托编号
ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List
ArrayList alBase = new ArrayList();//基础表list
alBase.Add(GetCheckConsignBase(""));//增加基础表参数
ArrayList alDetail = new ArrayList();//检验信息详细表list
ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list
publicUltraGridDetail1.Ug.UpdateData();
if (publicUltraGridDetail1.DataTable.Rows.Count > 1 && m_dtSelectItems != null && m_dtSelectItems.Rows.Count > 0)
{
foreach (DataRow dr in publicUltraGridDetail1.DataTable.Rows)
{
if (dr["SAMPLE_NO"].ToString().Trim() != "")
{
foreach (DataRow drSel in m_dtSelectItems.Rows)
{
alDetailParams = new ArrayList();
alDetailParams.Add(strCHECK_NO);
alDetailParams.Add("");//批次号
alDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim());
alDetailParams.Add(drSel["MAT_CODE"].ToString().Trim());
alDetailParams.Add(drSel["MAT_NAME"].ToString().Trim());
alDetailParams.Add(drSel["MAT_TYPE"].ToString().Trim());
alDetailParams.Add(drSel["MAT_UNIT"].ToString().Trim());
alDetailParams.Add(drSel["VALUE_TYPE"].ToString().Trim());
alDetailParams.Add(drSel["DEPT_ID"].ToString().Trim());
alDetail.Add(alDetailParams);
}
}
}
}
alAll.Add(alBase);
alAll.Add(alDetail);
PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.AddCheckConsign",
new Object[] { strCHECK_NO, alAll }, this.ob);
QueryCheckConsignBase();
PublicMat.ActiveOperateRow(publicUltraGridBase1.Ug, "CHECK_NO", strCHECK_NO);
MessageUtil.ShowTips("新增成功!");
}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
return;
}
}
//判断录入是否符合规则
private string isRule()
{
publicUltraGridDetail1.Ug.UpdateData();
if (publicUltraGridDetail1.DataTable.Rows.Count < 2)
{
return "请输入试样号!";
}
if (publicUltraGridDetail1.Ug.DisplayLayout.Bands[0].Columns.Exists("SAMPLE_NO"))
{
string strTemp = "";
foreach (UltraGridRow ur in publicUltraGridDetail1.Ug.Rows)
{
if (publicUltraGridDetail1.Ug.Rows.IndexOf(ur) != 0)
{
if (ur.Cells["SAMPLE_NO"].Text.Trim() == "")
{
return "试样号不能为空!";
}
else
{
if (strTemp == ur.Cells["SAMPLE_NO"].Text.Trim())
{
return "存在相同的试样号请重新输入!";
}
else
{
strTemp = ur.Cells["SAMPLE_NO"].Text.Trim();
}
}
}
}
}
return "";
}
//获取检验委托基本信息
private ArrayList GetCheckConsignBase(string strSAMPLE_REMARK)
{
ArrayList al = new ArrayList();
al.Add(txtCHECK_NO.Text.Trim());
al.Add(ultITEM_NAME.UltSample_Name);
al.Add(ultPRODUCT_STD.UltStd__Code);
al.Add(ultraGRADE.Text.Trim());
al.Add(txtWEIGHT.Text.Trim());//钢号
al.Add(ultraCHECK_COUNT_DESC.Value == null ? "0" : ultraCHECK_COUNT_DESC.Value.ToString());
al.Add(txtCONSIGN_DEPT.Text.Trim() == "" ? UserInfo.GetDepartment() : txtCONSIGN_DEPT.Text.Trim());
al.Add(UserInfo.GetUserName());//委托人
al.Add("1");//数据类型1人工录入 0接口委托
//al.Add(strSAMPLE_REMARK);
al.Add(strSAMPLE_REMARK);
al.Add(txtREMARK.Text.Trim());
return al;
}
//修改检验委托
private void UpdateCheckConsign()
{
try
{
if (publicUltraGridBase1.Ur == null)
{
MessageUtil.ShowWarning("请选择需要修改的数据!");
return;
}
//if (txtCHECK_NO.Text.Trim() == "")
//{
// MessageUtil.ShowWarning("检验编号不能为空!");
// return;
//}
string strAddChem = isRule();
if (strAddChem != "")
{
MessageUtil.ShowWarning(strAddChem);
return;
}
//if (MessageUtil.ShowYesNoAndQuestion("是否确认修改?") == DialogResult.Yes)
//{
WinCancelReason pc = new WinCancelReason();
pc.ShowDialog();
if (pc.DialogResult != DialogResult.OK)
{
return;
}
string strSample_Remark = pc.StrRemark;
strSample_Remark = this.Text + "修改由于" + strSample_Remark + "(" + UserInfo.GetUserName() + " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ")";
string strCHECK_NO = publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim();
ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List
ArrayList alBase = new ArrayList();//基础表list
alBase.Add(GetCheckConsignBase(strSample_Remark));//增加基础表参数
ArrayList alDetail = new ArrayList();//检验信息详细表list
ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list
publicUltraGridDetail1.Ug.UpdateData();
if (publicUltraGridDetail1.DataTable.Rows.Count > 1 && m_dtSelectItems != null && m_dtSelectItems.Rows.Count > 0)
{
foreach (DataRow dr in publicUltraGridDetail1.DataTable.Rows)
{
if (dr["SAMPLE_NO"].ToString().Trim() != "")
{
foreach (DataRow drSel in m_dtSelectItems.Rows)
{
alDetailParams = new ArrayList();
alDetailParams.Add(strCHECK_NO);
alDetailParams.Add("");//批次号
alDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim());
alDetailParams.Add(drSel["MAT_CODE"].ToString().Trim());
alDetailParams.Add(drSel["MAT_NAME"].ToString().Trim());
alDetailParams.Add(drSel["MAT_TYPE"].ToString().Trim());
alDetailParams.Add(drSel["MAT_UNIT"].ToString().Trim());
alDetailParams.Add(drSel["VALUE_TYPE"].ToString().Trim());
alDetailParams.Add(drSel["DEPT_ID"].ToString().Trim());
alDetail.Add(alDetailParams);
}
}
}
}
alAll.Add(alBase);
alAll.Add(alDetail);
PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.UpdateCheckConsign",
new Object[] { strCHECK_NO, alAll }, this.ob);
QueryCheckConsignBase();
PublicMat.ActiveOperateRow(publicUltraGridBase1.Ug, "CHECK_NO", strCHECK_NO);
MessageUtil.ShowTips("修改成功!");
//}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
return;
}
}
//删除检验委托
private void DeleteCheckConsign()
{
try
{
if (publicUltraGridBase1.Ur == null)
{
MessageUtil.ShowWarning("请选择需要删除的数据!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes)
{
string strCHECK_NO = publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim();
ArrayList al = new ArrayList();
al.Add(strCHECK_NO);
PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.DeleteCheckConsign",
new Object[] { strCHECK_NO, al }, this.ob);
QueryCheckConsignBase();
MessageUtil.ShowTips("删除成功!");
}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
return;
}
}
private void btnAuto_Click(object sender, EventArgs e)
{
try
{
DataTable dt = PublicServer.GetData("com.steering.lims.data.mat.FrmMatCheckConsign.QueryMaxCheckNo",
new Object[] { }, ob);
if (dt == null || dt.Rows.Count == 0)
{
return;
}
txtCHECK_NO.Text = dt.Rows[0]["CHECK_NO"].ToString();
}
catch (Exception ex)
{
MessageUtil.ShowWarning(ex.Message);
return;
}
}
}
}