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