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.CA03; using CoreFS.CA04; using CoreFS.CA06; using System.Collections; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; namespace Core.StlMes.Client.Lims.Data.PipeAndOutdec { public partial class FrmBaseCheckMethod : FrmBase { private DataTable m_dtPhyMin;//已选择的大项 private string[] arr; public FrmBaseCheckMethod() { InitializeComponent(); } private void FrmBaseCheckMethod_Load(object sender, EventArgs e) { arr = this.ValidDataPurviewIds; ultraQueryDEPT_ID.QueryDept_Id(ob, arr); QueryPhyMaxItems(); QueryPhyMinItems(); } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": QueryCheckMethodPhyConfig(); break; case "Add": AddCheckMethodPhyConfig(); break; case "Update": UpdateCheckMethodPhyConfig(); break; case "Delete": DeleteCheckMethodPhyConfig(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } //查询检验委托基本信息 private void QueryCheckMethodPhyConfig() { ArrayList al = new ArrayList(); al.Add(ultraQueryDEPT_ID.UltDept_ID); al.Add(txtQueryCHECK_METHOD_NAME.Text.Trim()); DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyConfig", new Object[] { al, arr }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable1.Rows.Clear(); dataTable2.Rows.Clear(); dataTable3.Rows.Clear(); ultraDeptId.Text = ""; txtCHECK_METHOD_NO.Text = ""; txtCHECK_METHOD_NAME.Text = ""; ultraPHY_NAME_MAX.Text = ""; txtREMARK.Text = ""; txtCHECK_METHOD_ITEMNAME.Text = ""; //ultraSHOW_SEQ.Text = ""; chkISDOWN.Checked = false; txtREMARKS.Text = ""; //MessageUtil.ShowTips("查询条件不符合找不到数据!"); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid1);//刷新Grid } //查询理化项目大类信息 private void QueryPhyMaxItems() { try { DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QueryPhyMaxItems", new Object[] { ""}, this.ob); if (dt == null || dt.Rows.Count == 0) { return; } DataRow dr = dt.NewRow(); dr[0] = ""; dr[1] = ""; dt.Rows.InsertAt(dr, 0); ultraPHY_NAME_MIN.DataSource = dt; ultraPHY_NAME_MIN.ValueMember = "PHY_CODE_MIN"; ultraPHY_NAME_MIN.DisplayMember = "PHY_NAME_MIN"; } catch { //MessageUtil.ShowError(ex.Message); } } //查询理化项目小类信息 private void QueryPhyMinItems() { try { DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QueryPhySampleCode", new Object[] { }, this.ob); if (dt == null || dt.Rows.Count == 0) { return; } DataRow dr = dt.NewRow(); dr[0] = ""; dr[1] = ""; dr[2] = ""; dt.Rows.InsertAt(dr, 0); m_dtPhyMin = dt.Copy(); ultraPHY_NAME_MAX.DataSource = dt; ultraPHY_NAME_MAX.ValueMember = "PHY_CODE_MAX"; ultraPHY_NAME_MAX.DisplayMember = "PHY_NAME_MAX"; } //catch (Exception ex) catch { //MessageUtil.ShowError(ex.Message); } } //增加试验方法基本信息 private void AddCheckMethodPhyConfig() { if (txtCHECK_METHOD_NAME.Text.Trim() == "") { MessageUtil.ShowWarning("方法名称不能为空!"); return; } if (ultraPHY_NAME_MIN.Text == "") { MessageUtil.ShowWarning("关联检测项目大类不能为空!"); return; } if (ultraPHY_NAME_MAX.Text == "") { MessageUtil.ShowWarning("试样组不能为空!"); return; } ArrayList alSelect = new ArrayList(); alSelect.Add(ultraPHY_NAME_MAX.Value.ToString());//检验基础项 //alSelect.Add(ultraPHY_NAME_MAX.Text.Trim());//检验项目 // DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyConfigIsHave", //new Object[] { alSelect }, ob);//查询是否有相同大类和小类的 // if (dt.Rows.Count > 0) // { // MessageUtil.ShowWarning("此试验方法已存在不能新增!"); // return; // } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes) { ArrayList al = new ArrayList(); //al.Add(txtCHECK_METHOD_NO.Text.Trim());//方法编号 al.Add(txtCHECK_METHOD_NAME.Text.Trim());//方法名称 al.Add(ultraDeptId.Value.ToString2());//所属试验室 al.Add(ultraPHY_NAME_MAX.Value); al.Add(ultraPHY_NAME_MAX.Text.Trim()); al.Add(ultraPHY_NAME_MIN.Value); al.Add(ultraPHY_NAME_MIN.Text.Trim()); al.Add(UserInfo.GetUserName()); al.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); al.Add(txtREMARK.Text.Trim()); al.Add(txtCHECK_METHOD_NAME.Value.ToString2());//方法ID ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.AddCheckMethodPhyConfig", new Object[] { al }, this.ob); QueryCheckMethodPhyConfig(); ultraGrid1.Rows[ultraGrid1.Rows.Count - 1].Activated = true; MessageUtil.ShowTips("新增成功!"); } } //修改试验方法基本信息 private void UpdateCheckMethodPhyConfig() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要修改的数据!"); return; } if (ultraPHY_NAME_MAX.Text.Trim() != ultraGrid1.ActiveRow.Cells["PHY_NAME_MAX"].Text.Trim()) { ArrayList alSelect = new ArrayList(); alSelect.Add(ultraPHY_NAME_MAX.Value.ToString());//检验基础项 //alSelect.Add(ultraPHY_NAME_MAX.Text.Trim());//检验项目 DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyConfigIsHave", new Object[] { alSelect }, ob);//查询是否有相同大类和小类的 if (dt.Rows.Count > 0) { MessageUtil.ShowWarning("此试验方法已存在不能修改!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改?") == DialogResult.Yes) { string strCHECK_METHOD_NO = ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim(); ArrayList al = new ArrayList(); al.Add(txtCHECK_METHOD_NAME.Text.Trim());//方法名称 al.Add(ultraDeptId.Value.ToString2());//所属试验室 al.Add(ultraPHY_NAME_MAX.Value.ToString()); al.Add(ultraPHY_NAME_MAX.Text.Trim()); al.Add(ultraPHY_NAME_MIN.Value.ToString()); al.Add(ultraPHY_NAME_MIN.Text.Trim()); al.Add(UserInfo.GetUserName()); al.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); al.Add(txtREMARK.Text.Trim()); al.Add(strCHECK_METHOD_NO);//方法编号 ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.UpdateCheckMethodPhyConfig", new Object[] { al }, this.ob); QueryCheckMethodPhyConfig(); PublicPipeAndOutdec.ActiveOperateRow(ultraGrid1, "CHECK_METHOD_NO", strCHECK_METHOD_NO); MessageUtil.ShowTips("修改成功!"); } } //删除试验方法基本信息 private void DeleteCheckMethodPhyConfig() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要删除的数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes) { ArrayList al = new ArrayList(); al.Add(ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim());//方法编号 ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.DeleteCheckMethodPhyConfig", new Object[] { al }, this.ob); QueryCheckMethodPhyConfig(); MessageUtil.ShowTips("删除成功!"); } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { ultraDeptId.Value = ultraGrid1.ActiveRow.Cells["DEPT_ID"].Text.Trim(); txtCHECK_METHOD_NO.Text = ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim(); txtCHECK_METHOD_NAME.Text = ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NAME"].Text.Trim(); ultraPHY_NAME_MIN.Text = ultraGrid1.ActiveRow.Cells["PHY_NAME_MIN"].Text.Trim(); ultraPHY_NAME_MAX.Text = ultraGrid1.ActiveRow.Cells["PHY_NAME_MAX"].Text.Trim(); txtREMARK.Text = ultraGrid1.ActiveRow.Cells["REMARK"].Text.Trim(); QueryCheckMethodPhyItems(); } //查询试验方法项目信息 private void QueryCheckMethodPhyItems() { ArrayList al = new ArrayList(); al.Add(ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim()); DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyItems", new Object[] { al }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2.Rows.Clear(); dataTable3.Rows.Clear(); txtCHECK_METHOD_ITEMNAME.Text = ""; //ultraSHOW_SEQ.Text = ""; chkISDOWN.Checked = false; txtREMARKS.Text = ""; //MessageUtil.ShowTips("查询条件不符合找不到数据!"); return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable2 GridHelper.RefreshAndAutoSize(ultraGrid2);//刷新Grid } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { txtCHECK_METHOD_ITEMNAME.Text = ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim(); ultraSHOW_SEQ.Text = ultraGrid2.ActiveRow.Cells["SHOW_SEQ"].Text.Trim(); chkISDOWN.Checked = ultraGrid2.ActiveRow.Cells["ISDOWN"].Text.Trim() == "是" ? true : false; dataTable3.Rows.Clear();//新增默认值 foreach (string strVALUE in ultraGrid2.ActiveRow.Cells["DEFAULT_VALUES"].Text.Trim().Split(',')) { DataRow dr = dataTable3.NewRow(); dr["DEFAULT_VALUES"] = strVALUE; dataTable3.Rows.Add(dr); } txtREMARKS.Text = ultraGrid2.ActiveRow.Cells["REMARK"].Text.Trim(); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "AddItem": AddCheckMethodPhyItems(); break; case "UpdateItem": UpdateCheckMethodPhyItems(); break; case "DeleteItem": DeleteCheckMethodPhyItems(); break; } } //增加试验方法项目信息 private void AddCheckMethodPhyItems() { if (ultraGrid1.ActiveRow == null || ultraGrid1.ActiveRow.Activated == false) { MessageUtil.ShowWarning("请选择一条检验方法信息!"); return; } if (txtCHECK_METHOD_ITEMNAME.Text.Trim() == "") { MessageUtil.ShowWarning("项目名称不能为空!"); return; } if (ultraSHOW_SEQ.Text.Trim() == "") { MessageUtil.ShowWarning("显示序号不能为空!"); return; } if (StringUtil.IsInt32(ultraSHOW_SEQ.Text.Trim()) == false)//HC 2015-07-30 { MessageUtil.ShowWarning("显示序号必须为整数值!"); return; } ultraGrid3.UpdateData(); if (chkISDOWN.Checked == true && (dataTable3.Rows.Count == 0 || dataTable3.Rows[0]["DEFAULT_VALUES"].ToString().Trim() == "")) { MessageUtil.ShowWarning("是否下拉框已勾选默认值不能为空!"); return; } string strCHECK_METHOD_ITEMNAME = txtCHECK_METHOD_ITEMNAME.Text.Trim(); ArrayList alSelect = new ArrayList(); alSelect.Add(strCHECK_METHOD_ITEMNAME);//项目名称 alSelect.Add(ultraSHOW_SEQ.Text.Trim());//显示序号 alSelect.Add(ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim()); DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyItemsIsHave", new Object[] { alSelect }, ob);//查询是否有相同名称或者序号的项目 if (dt.Rows.Count > 0) { if (strCHECK_METHOD_ITEMNAME == dt.Rows[0]["CHECK_METHOD_ITEMNAME"].ToString()) { MessageUtil.ShowWarning("此试验方法项目名称已存在不能新增!"); return; } else { MessageUtil.ShowWarning("此试验方法项目显示序号已存在不能新增!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes) { ArrayList al = new ArrayList(); al.Add(txtCHECK_METHOD_NO.Text.Trim());//方法编号 al.Add(strCHECK_METHOD_ITEMNAME);//项目名称 al.Add(ultraSHOW_SEQ.Text.Trim());//显示序号 al.Add(chkISDOWN.Checked == false ? "0" : "1");//是否下拉 string strDEFAULT_VALUES = "";//默认值 foreach (DataRow dr in dataTable3.Rows) { if (dr["DEFAULT_VALUES"].ToString().Trim() != "") { strDEFAULT_VALUES += "," + dr["DEFAULT_VALUES"]; } } al.Add(strDEFAULT_VALUES == "" ? "" : strDEFAULT_VALUES.Substring(1));//备注 al.Add(txtREMARKS.Text.Trim());//备注 ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.AddCheckMethodPhyItems", new Object[] { al }, this.ob); QueryCheckMethodPhyItems(); PublicPipeAndOutdec.ActiveOperateRow(ultraGrid2, "CHECK_METHOD_ITEMNAME", strCHECK_METHOD_ITEMNAME); MessageUtil.ShowTips("新增成功!"); } } //修改试验方法项目信息 private void UpdateCheckMethodPhyItems() { if (ultraGrid2.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要修改的数据!"); return; } if (txtCHECK_METHOD_ITEMNAME.Text.Trim() == "") { MessageUtil.ShowWarning("项目名称不能为空!"); return; } if (ultraSHOW_SEQ.Text.Trim() == "") { MessageUtil.ShowWarning("显示序号不能为空!"); return; } if (StringUtil.IsInt32(ultraSHOW_SEQ.Text.Trim()) == false)//HC 2015-07-30 { MessageUtil.ShowWarning("显示序号必须为整数值!"); return; } ultraGrid3.UpdateData(); if (chkISDOWN.Checked == true && (dataTable3.Rows.Count == 0 || dataTable3.Rows[0]["DEFAULT_VALUES"].ToString().Trim() == "")) { MessageUtil.ShowWarning("是否下拉框已勾选默认值不能为空!"); return; } string strCHECK_METHOD_ITEMNAME = txtCHECK_METHOD_ITEMNAME.Text.Trim(); ArrayList alSelect = new ArrayList(); alSelect.Add(strCHECK_METHOD_ITEMNAME);//项目名称 alSelect.Add(ultraSHOW_SEQ.Text.Trim());//显示序号 alSelect.Add(ultraGrid1.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim()); DataTable dt = ServerHelper.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.QueryCheckMethodPhyItemsIsHave", new Object[] { alSelect }, ob);//查询是否有相同名称或者序号的项目 if (dt.Rows.Count > 0) { if (strCHECK_METHOD_ITEMNAME != ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim() && ultraSHOW_SEQ.Text.Trim() == ultraGrid2.ActiveRow.Cells["SHOW_SEQ"].Text.Trim() && dt.Rows.Count > 1)//如果修改了项目名称没修改序号 { MessageUtil.ShowWarning("此试验方法项目名称已存在不能修改!"); return; } else if (strCHECK_METHOD_ITEMNAME == ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim() && ultraSHOW_SEQ.Text.Trim() != ultraGrid2.ActiveRow.Cells["SHOW_SEQ"].Text.Trim() && dt.Rows.Count > 1)//如果修改了项目名称没修改序号 { MessageUtil.ShowWarning("此试验方法项目显示序号已存在不能修改!"); return; } else if (strCHECK_METHOD_ITEMNAME != ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim() && ultraSHOW_SEQ.Text.Trim() != ultraGrid2.ActiveRow.Cells["SHOW_SEQ"].Text.Trim()) { if (strCHECK_METHOD_ITEMNAME == dt.Rows[0]["CHECK_METHOD_ITEMNAME"].ToString()) { MessageUtil.ShowWarning("此试验方法项目名称已存在不能修改!"); return; } else { MessageUtil.ShowWarning("此试验方法项目显示序号已存在不能修改!"); return; } } } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改?") == DialogResult.Yes) { ArrayList all = new ArrayList(); ArrayList alDelete = new ArrayList(); alDelete.Add(ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim());//方法项目名称 alDelete.Add(ultraGrid2.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim());//方法编号 ArrayList alAdd = new ArrayList(); alAdd.Add(txtCHECK_METHOD_NO.Text.Trim());//方法编号 alAdd.Add(strCHECK_METHOD_ITEMNAME);//项目名称 alAdd.Add(ultraSHOW_SEQ.Text.Trim());//显示序号 alAdd.Add(chkISDOWN.Checked == false ? "0" : "1");//是否下拉 string strDEFAULT_VALUES = "";//默认值 foreach (DataRow dr in dataTable3.Rows) { if (dr["DEFAULT_VALUES"].ToString().Trim() != "") { strDEFAULT_VALUES += "," + dr["DEFAULT_VALUES"]; } } alAdd.Add(strDEFAULT_VALUES == "" ? "" : strDEFAULT_VALUES.Substring(1));//备注 alAdd.Add(txtREMARKS.Text.Trim());//备注 all.Add(alDelete); all.Add(alAdd); ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.UpdateCheckMethodPhyItems", new Object[] { all }, this.ob); QueryCheckMethodPhyItems(); PublicPipeAndOutdec.ActiveOperateRow(ultraGrid2, "CHECK_METHOD_ITEMNAME", strCHECK_METHOD_ITEMNAME); MessageUtil.ShowTips("修改成功!"); } } //删除试验方法项目信息 private void DeleteCheckMethodPhyItems() { if (ultraGrid2.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要删除的数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes) { ArrayList al = new ArrayList(); al.Add(ultraGrid2.ActiveRow.Cells["CHECK_METHOD_ITEMNAME"].Text.Trim());//方法编号 al.Add(ultraGrid2.ActiveRow.Cells["CHECK_METHOD_NO"].Text.Trim());//方法编号 ServerHelper.SetData("com.steering.lims.data.base.FrmBaseCheckMethod.DeleteCheckMethodPhyItems", new Object[] { al }, this.ob); QueryCheckMethodPhyItems(); MessageUtil.ShowTips("删除成功!"); } } private void ultraPHY_NAME_MAX_TextChanged(object sender, EventArgs e) { //txtCHECK_METHOD_NAME.Text = ultraPHY_NAME_MAX.Text == "" ? "" : ultraPHY_NAME_MAX.Text + "_试验方法"; } private void ultraSHOW_SEQ_TextChanged(object sender, EventArgs e) { if (StringUtil.IsInt32(ultraSHOW_SEQ.Text.Trim()) == false)//HC 2015-07-30 { MessageUtil.ShowWarning("显示序号此处必须要输入整数值!"); ultraSHOW_SEQ.Text = "1"; return; } } private void ultraPHY_NAME_MIN_TextChanged(object sender, EventArgs e) { if (ultraPHY_NAME_MIN.Text != "") { //筛选 DataRow[] MatchedRows = m_dtPhyMin.Select("PHY_CODE_MIN = '" + ultraPHY_NAME_MIN.Value.ToString() + "'");// OR PHY_CODE_MIN = '' DataTable dt = m_dtPhyMin.Clone(); if (MatchedRows != null && MatchedRows.Length > 0) { foreach (DataRow row in MatchedRows) { dt.Rows.Add(row.ItemArray); } } ultraPHY_NAME_MAX.DataSource = dt; ultraPHY_NAME_MAX.ValueMember = "PHY_CODE_MAX"; ultraPHY_NAME_MAX.DisplayMember = "PHY_NAME_MAX"; ultraPHY_NAME_MAX.SelectedIndex = 0; } } private void ultraDeptId_ValueChanged(object sender, EventArgs e) { DataTable ds = PublicServer.GetData("com.steering.lims.data.base.FrmBaseCheckMethod.doQueryCheckStd", new object[] { this.ultraDeptId.Value.ToString2() }, ob);//获取试验室对应的检验标准 if (ds.Rows.Count > 0) { txtCHECK_METHOD_NAME.DataSource = ds; txtCHECK_METHOD_NAME.ValueMember = "BASECODE"; txtCHECK_METHOD_NAME.DisplayMember = "BASENAME"; } DataTable dd = PublicServer.GetData("com.steering.lims.data.base.FrmBaseSelectItems.QueryPhyMaxItems", new object[] { this.ultraDeptId.Value.ToString2() }, ob); if (dd != null && dd.Rows.Count > 0) { ultraPHY_NAME_MIN.DataSource = dd; ultraPHY_NAME_MIN.ValueMember = "PHY_CODE_MIN"; ultraPHY_NAME_MIN.DisplayMember = "PHY_NAME_MIN"; } } private void chkDEPT_ID_CheckedChanged(object sender, EventArgs e) { ultraQueryDEPT_ID.Enabled = chkDEPT_ID.Checked; txtQueryCHECK_METHOD_NAME.Enabled = chkCHECK_METHOD_NAME.Checked; } } }