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 Infragistics.Win.UltraWinTree; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using System.Collections; using Core.Mes.Client.Comm.Format; using Infragistics.Win.UltraWinEditors; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinToolbars; using Infragistics.Win; using Core.StlMes.Client.Qcm; using Infragistics.Win.UltraWinToolTip; //using Core.StlMes.Client.SaleOrder.Object; namespace Core.StlMes.Client.SaleOrder { /// /// 委托 /// /// /// public delegate void FrmOrderSpecialInfoHand(object sender, FrmOrderSpecialInfoEventArgs e); /// /// 产品技术特殊要求 /// 0 public partial class FrmOrderSpecialInfo : FrmBase { /// /// 传入行(合同从数据信息) /// private DataRow dr; public DataRow Dr { get { return dr; } set { dr = value; } } private DataTable _dtMsc; public DataTable DtMsc { get { return _dtMsc; } set { _dtMsc = value; } } /// /// OB对象 /// private OpeBase _ob = null; public OpeBase Ob { get { return _ob; } set { _ob = value; } } ///// ///// 冶金规范码 ///// //private string _msc = "MSC0000001001"; /// /// PSC /// private string _psc = ""; /// /// 扣型代码 /// private string _model = ""; private string _specCode = ""; public string SpecCode { get { return _specCode; } set { _specCode = value; } } private string _specName = ""; public string SpecName { get { return _specName; } set { _specName = value; } } private string _specStyle = ""; public string SpecStyle { get { return _specStyle; } set { _specStyle = value; } } /// /// 最终客户 /// private string _finalUserCode = "0101010102"; /// /// 最终客户描述 /// private string _finalUserName = ""; /// /// 客户Alpha编码(传入编码,用于过滤) /// private string _drCustAlphaNo = ""; /// /// 过滤用的MSC /// private string _fiterMsc = ""; public string FiterMsc { get { return _fiterMsc; } set { _fiterMsc = value; } } //客户Alpha编码 private string _custAlphaNo = ""; public string CustAlphaNo { get { return _custAlphaNo; } set { _custAlphaNo = value; } } //合同行主键 private string _ordLnPk = ""; //树形数据源。 private DataTable _dtTreeCustAlpha; /// /// 下拉框 /// private UltraComboEditor[] ultras = new UltraComboEditor[14]; private UltraTextEditor ultraTextEditor2; /// /// 提示信息 /// private string errMessage = ""; /// /// Alpha代码 /// private string _stdCode = ""; /// /// 用于验证数据的重复 /// private DataTable _mscDt = null; private DataTable _custDt = null; private int ultraTextEditor1Height = 0; private bool isPopup = false; public bool IsPopup { get { return isPopup; } set { isPopup = value; } } public FrmOrderSpecialInfo() { InitializeComponent(); ExceptionHelper.RegistException(); ultraTextEditor1Height = ultraTextEditor1.Height; } /// /// 事件 /// public event FrmOrderSpecialInfoHand FrmOrderSpecialInfoComfirm; //触发load事件 public void PopupLoad(OpeBase ob) { _ob = ob; OnLoad(EventArgs.Empty); } /// /// Top事件。 /// /// /// public void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { try { this.Cursor = Cursors.WaitCursor; switch (e.Tool.Key) { case "查询": DoQuery(""); break; case "新增": DoSave(); break; case "确认": DoComfirm(); break; case "作废": DoDelete(); break; case "关闭": ((Form)ultraToolbarsManager1.DockWithinContainer.TopLevelControl).Close(); break; default: break; } } finally { this.Cursor = Cursors.Default; } } public string strH = ""; //壁厚 public string strD = ""; //外径 double douH = 0; double douD = 0; string DHProportion = ""; //径壁比 string HDProportion = ""; //壁径比 /// /// 判断 如“外径”小于 "值" 的表达式是否准确 /// /// 名字 /// 符号 /// 值 /// private bool CheckStr(String strA, String sign, String strB) { if (strA.Length == 0 || strB.Length == 0) { return true; } if (strA.TryParseDouble() == false || strB.TryParseDouble() == false) { return true; } double a = Convert.ToDouble(strA); double b = Convert.ToDouble(strB); if (sign.Equals("=")) { if (a == b) { return true; } else { return false; } } if (sign.Equals(">")) { if (a > b) { return true; } else { return false; } } if (sign.Equals(">=")) { if (a >= b) { return true; } else { return false; } } if (sign.Equals("<")) { if (a < b) { return true; } else { return false; } } if (sign.Equals("<=")) { if (a <= b) { return true; } else { return false; } } return false; } /// /// 过滤成分和理化 /// /// 查询出来的结果表 private void FiltChem(DataTable dtChem) { // dataTable1 if (dtChem != null && dtChem.Rows.Count > 0) { for (int i = 0; i < dtChem.Rows.Count; i++) { DataRow dr = dtChem.Rows[i]; if (dr["SIZE_CODE"].ToString() == "" && dr["SIZE_CODE2"].ToString() == "") continue; if (dr["SIZE_NAME2"].ToString().Equals("外径")) { if (!CheckStr(strD, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString()) || !CheckStr(strD, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME2"].ToString().Equals("壁厚")) { if (!CheckStr(strH, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString()) || !CheckStr(strH, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME2"].ToString().Equals("径壁比")) { if (!CheckStr(DHProportion, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString()) || !CheckStr(DHProportion, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME2"].ToString().Equals("壁径比")) { if (!CheckStr(HDProportion, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString()) || !CheckStr(HDProportion, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME2"].ToString().Equals("内径")) { if (!CheckStr((douD - douH).ToString(), dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString()) || !CheckStr((douD - douH).ToString(), dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } //if (chem.getSizeName2().equals("长度")) { // if ((!QualityDesignTool.checkStr(lengthMax, // chem.getSizeMinSign2(), chem.getSizeMin2())) // || (!QualityDesignTool.checkStr(lengthMax, // chem.getSizeMaxSign2(), chem.getSizeMax2()))) { // chems.remove(i); // --i; // continue; // } //} //if (chem.getSizeName2().equals("长度")) { // if ((!QualityDesignTool.checkStr(lengthMin, // chem.getSizeMinSign2(), chem.getSizeMin2())) // || (!QualityDesignTool.checkStr(lengthMin, // chem.getSizeMaxSign2(), chem.getSizeMax2()))) { // chems.remove(i); // --i; // continue; // } //} if (dr["SIZE_NAME"].ToString().Equals("外径")) { if (!CheckStr(strD, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString()) || !CheckStr(strD, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME"].ToString().Equals("壁厚")) { if (!CheckStr(strH, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString()) || !CheckStr(strH, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME"].ToString().Equals("径壁比")) { if (!CheckStr(DHProportion, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString()) || !CheckStr(DHProportion, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME"].ToString().Equals("壁径比")) { if (!CheckStr(HDProportion, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString()) || !CheckStr(HDProportion, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } if (dr["SIZE_NAME"].ToString().Equals("内径")) { if (!CheckStr((douD - douH).ToString(), dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString()) || !CheckStr((douD - douH).ToString(), dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString())) { dtChem.Rows.Remove(dr); --i; continue; } } } } } /// /// 进一步过滤公差相同的项目 /// /// 查询出来的结果表,先条件过滤再进行 private void FiterSpec(DataTable dtSpec) { if (dtSpec != null && dtSpec.Rows.Count > 0) { for (int i = 0; i < dtSpec.Rows.Count; i++) { DataRow dr = dtSpec.Rows[i]; if (dr["BIAS_CODE_Z"].ToString().Equals("") && dr["BIAS_CODE_C"].ToString().Equals("") && dr["BIAS_CODE_S"].ToString().Equals("")) { continue; } if (dr["BIAS_NAME_Z"].ToString().Equals("外径")) { if (!CheckStr(strD, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString()) || !CheckStr(strD, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_Z"].ToString().Equals("壁厚")) { if (!CheckStr(strH, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString()) || !CheckStr(strH, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_Z"].ToString().Equals("径壁比")) { if (!CheckStr(DHProportion, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString()) || !CheckStr(DHProportion, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_Z"].ToString().Equals("壁径比")) { if (!CheckStr(HDProportion, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString()) || !CheckStr(HDProportion, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_Z"].ToString().Equals("内径")) { if (!CheckStr((douD - douH).ToString(), dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString()) || !CheckStr((douD - douH).ToString(), dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_C"].ToString().Equals("外径")) { if (!CheckStr(strD, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString()) || !CheckStr(strD, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_C"].ToString().Equals("壁厚")) { if (!CheckStr(strH, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString()) || !CheckStr(strH, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_C"].ToString().Equals("径壁比")) { if (!CheckStr(DHProportion, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString()) || !CheckStr(DHProportion, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_C"].ToString().Equals("壁径比")) { if (!CheckStr(HDProportion, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString()) || !CheckStr(HDProportion, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_C"].ToString().Equals("内径")) { if (!CheckStr((douD - douH).ToString(), dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString()) || !CheckStr((douD - douH).ToString(), dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } //if (spec.getBiasNameC().equals("长度")) //{ // if (!(QualityDesignTool.checkStr(lengthMax, spec.getCminSign(), // spec.getCmin())) // || (!QualityDesignTool.checkStr(lengthMax, // spec.getCmaxSign(), spec.getCmax()))) // { // specs.remove(i); // --i; // continue; // } //} //if (spec.getBiasNameC().equals("长度")) //{ // if (!(QualityDesignTool.checkStr(lengthMin, spec.getCminSign(), // spec.getCmin())) // || (!QualityDesignTool.checkStr(lengthMin, // spec.getCmaxSign(), spec.getCmax()))) // { // specs.remove(i); // --i; // continue; // } //} if (dr["BIAS_NAME_S"].ToString().Equals("外径")) { if (!CheckStr(strD, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString()) || !CheckStr(strD, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_S"].ToString().Equals("壁厚")) { if (!CheckStr(strH, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString()) || !CheckStr(strH, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_S"].ToString().Equals("径壁比")) { if (!CheckStr(DHProportion, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString()) || !CheckStr(DHProportion, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_S"].ToString().Equals("壁径比")) { if (!CheckStr(HDProportion, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString()) || !CheckStr(HDProportion, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } if (dr["BIAS_NAME_S"].ToString().Equals("内径")) { if (!CheckStr((douD - douH).ToString(), dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString()) || !CheckStr((douD - douH).ToString(), dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString())) { dtSpec.Rows.Remove(dr); --i; continue; } } // if (spec.getBiasNameS().equals("长度")) // { // if (!(QualityDesignTool.checkStr(lengthMax, spec.getSminSign(), // spec.getSmin())) // || (!QualityDesignTool.checkStr(lengthMax, // spec.getSmaxSign(), spec.getSmax()))) // { // specs.remove(i); // --i; // continue; // } // } // if (spec.getBiasNameS().equals("长度")) // { // if (!(QualityDesignTool.checkStr(lengthMin, spec.getSminSign(), // spec.getSmin())) // || (!QualityDesignTool.checkStr(lengthMin, // spec.getSmaxSign(), spec.getSmax()))) // { // specs.remove(i); // --i; // continue; // } // } //} } } } private void FiterDetection(DataTable dt) { if (dt == null) return; if (strD == "" || strH == "") return; if (strD.TryParseDecimal() == false || strH.TryParseDecimal() == false) return; decimal dcmD = decimal.Parse(strD); decimal dcmH = decimal.Parse(strH); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; if (dr["MIN_D"].ToString() != "" && dr["MIN_D"].ToString().TryParseDecimal() == true) { decimal dcmMinD = decimal.Parse(dr["MIN_D"].ToString()); if (dcmD < dcmMinD) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MAX_D"].ToString() != "" && dr["MAX_D"].ToString().TryParseDecimal() == true) { decimal dcmMaxD = decimal.Parse(dr["MAX_D"].ToString()); if (dcmD > dcmMaxD) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MIN_H"].ToString() != "" && dr["MIN_H"].ToString().TryParseDecimal() == true) { decimal dcmMinH = decimal.Parse(dr["MIN_H"].ToString()); if (dcmH < dcmMinH) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MAX_H"].ToString() != "" && dr["MAX_H"].ToString().TryParseDecimal() == true) { decimal dcmMaxH = decimal.Parse(dr["MAX_H"].ToString()); if (dcmH > dcmMaxH) { dt.Rows.Remove(dr); i--; continue; } } } } private void FiterWater(DataTable dt) { if (dt == null) return; if (strD == "" || strH == "") return; if (strD.TryParseDecimal() == false || strH.TryParseDecimal() == false) return; decimal dcmD = decimal.Parse(strD); decimal dcmH = decimal.Parse(strH); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; if (dr["MIN_D"].ToString() != "" && dr["MIN_D"].ToString().TryParseDecimal() == true) { decimal dcmMinD = decimal.Parse(dr["MIN_D"].ToString()); if (dcmD < dcmMinD) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MAX_D"].ToString() != "" && dr["MAX_D"].ToString().TryParseDecimal() == true) { decimal dcmMaxD = decimal.Parse(dr["MAX_D"].ToString()); if (dcmD > dcmMaxD) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MIN_H"].ToString() != "" && dr["MIN_H"].ToString().TryParseDecimal() == true) { decimal dcmMinH = decimal.Parse(dr["MIN_H"].ToString()); if (dcmH < dcmMinH) { dt.Rows.Remove(dr); i--; continue; } } if (dr["MAX_H"].ToString() != "" && dr["MAX_H"].ToString().TryParseDecimal() == true) { decimal dcmMaxH = decimal.Parse(dr["MAX_H"].ToString()); if (dcmH > dcmMaxH) { dt.Rows.Remove(dr); i--; continue; } } } } /// /// 行复制行 /// /// 原始行 /// 复制的行 private void CopyRowToRow(DataRow srcRow, DataRow desRow) { for (int i = 0; i < srcRow.Table.Columns.Count; i++) { string columnName = srcRow.Table.Columns[i].ColumnName; desRow[columnName] = srcRow[columnName]; } } /// /// 过滤成分相同项的数据 /// /// private void FiterChemCommon(DataTable dtChem) { DataTable tempDt = dtChem.Copy(); tempDt.Clear(); Dictionary map = new Dictionary(); foreach (DataRow dr in dtChem.Rows) { DataRow tempDr = tempDt.NewRow(); if (dr["CHEM_TYPE"].ToString().Equals("A")) { // 如果不包含这个化学元素代码,则直接放进map if (!map.ContainsKey(dr["CHEM_CODE"].ToString())) { map.Add(dr["CHEM_CODE"].ToString(), dr); } else { // 如果包含这个化学元素代码,则判断这条记录的限制规格是否存在,如果存在限制规格,则取代map里存在的化学元素代码 if (!dr["SIZE_CODE"].ToString().Equals("") || !dr["SIZE_CODE2"].ToString().Equals("")) { map.Remove(dr["CHEM_CODE"].ToString()); map.Add(dr["CHEM_CODE"].ToString(), dr); } else { continue; } } } else { CopyRowToRow(dr, tempDr); tempDt.Rows.Add(tempDr); } } foreach (KeyValuePair kvp in map) { DataRow tempDr = tempDt.NewRow(); CopyRowToRow(kvp.Value, tempDr); tempDt.Rows.Add(tempDr); } dtChem = tempDt; } /// /// 过滤理化项目相同的数据 /// /// private void FiterPhyCommon(DataTable dtPhy) { DataTable tempDt = dtPhy.Copy(); tempDt.Clear(); Dictionary map = new Dictionary(); foreach (DataRow dr in dtPhy.Rows) { // 理化标准材质检验项代码(大类)、取样码、材质检验项代码、试验方向代码、温度、尺寸代码组成一个主键 String major = dr["PHY_CODE_MAX"].ToString() + dr["PHY_CODE_MIN"].ToString() + dr["PHY_CODE"].ToString() + dr["ITEM_CODE_F"].ToString() + dr["ITEM_CODE_W"].ToString() + dr["ITEM_CODE_S"].ToString(); if (!map.ContainsKey(major)) { map.Add(major, dr); } else { if (!dr["SIZE_CODE2"].ToString().Equals("") || !dr["SIZE_CODE"].ToString().Equals("")) { map.Remove(major); map.Add(major, dr); } else { continue; } } } foreach (KeyValuePair kvp in map) { DataRow dr = tempDt.NewRow(); CopyRowToRow(kvp.Value, dr); tempDt.Rows.Add(dr); } dtPhy = tempDt; } private void FiterSpecCommon(DataTable dtSpec) { DataTable tempDt = new DataTable(); tempDt = dtSpec.Copy(); Dictionary map = new Dictionary(); foreach (DataRow dr in dtSpec.Rows) { if (!map.ContainsKey(dr["BIAS_CODE"].ToString())) { map.Add(dr["BIAS_CODE"].ToString(), dr); } else { if (!dr["BIAS_CODE_Z"].ToString().Equals("") || !dr["BIAS_CODE_C"].ToString().Equals("") || !dr["BIAS_CODE_S"].ToString().Equals("")) { map.Remove(dr["BIAS_CODE"].ToString()); map.Add(dr["BIAS_CODE"].ToString(), dr); } else { continue; } } } foreach (KeyValuePair kvp in map) { DataRow tempDr = tempDt.NewRow(); CopyRowToRow(kvp.Value, tempDr); tempDt.Rows.Add(tempDr); } dtSpec = tempDt; } private void FrmOrderSpecialInfo_Load(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; CheckDr(); //this._ob = ob; InitDrop(); InitData(); DoQuery(_custAlphaNo); if (isPopup) { ultraGrid1.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False; ultraGrid1.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False; ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; } } finally { this.Cursor = Cursors.Default; } } private void InitData() { CheckCustomer.Enabled = false; CheckPscDesc.Enabled = false; CheckProduct.Enabled = false; CheckMode.Enabled = false; //TextPscDesc.Enabled = false; //TextCuster.Enabled = false; //TextProduct.Enabled = false; //TextMode.Enabled = false; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getSpecBySpecCode", new object[] { _specCode }, Ob); strD = dt.Rows[0]["DIMATER"].ToString(); strH = dt.Rows[0]["HEIGHT"].ToString(); _specStyle = dt.Rows[0]["MSC_STYLE"].ToString(); _specName = dt.Rows[0]["SPEC_NAME"].ToString(); //if (_specStyle == "C") //{ // string specName = dt.Rows[0]["SPEC_NAME"].ToString(); // string[] specs = specName.Split('/', '-'); // if (specs.Length == 2) // { // if (specs[0].Contains("x") || specs[0].Contains("X") || specs[0].Contains("×")) // { // string[] specs2 = specs[0].Split('x', 'X', '×'); // if (specs2.Length == 2) // { // strD = specs2[0]; // strH = specs2[1]; // } // } // } //} douD = strD.TryParseDouble() ? double.Parse(strD) : 0; douH = strH.TryParseDouble() ? double.Parse(strH) : 0; if (douH != 0) DHProportion = (douD / douH).ToString(); if (douD != 0) HDProportion = (douH / douD).ToString(); } /// /// 判断传入的行数据是否符合要要求 /// private void CheckDr() { if (dr == null) { return; } if (dr["FINAL_USER"].ToString().Equals("")) { return; } //if (dr["SPEC_CODE"].ToString().Equals("")) //{ return; } //_msc = dr["MSC"].ToString(); _psc = dr["PSC"].ToString(); _model = dr["MODEL_CODE"].ToString(); _finalUserCode = dr["FINAL_USER"].ToString(); _finalUserName = dr["FINAL_USER_DESC"].ToString(); if (dr.Table.Columns.Contains("CUST_ALPHA_NO")) { _drCustAlphaNo = dr["CUST_ALPHA_NO"].ToString(); } TextCuster.Text = _finalUserName; TextPscDesc.Text = dr["PSC_DESC"].ToString(); TextProduct.Text = dr["SPEC_NAME"].ToString(); TextMode.Text = dr["MODEL_DESC"].ToString(); _specCode = dr["SPEC_CODE"].ToString(); if (dr.Table.Columns.Contains("ORD_LN_PK")) { _ordLnPk = dr["ORD_LN_PK"].ToString(); } } /// /// 通过MSC、最终客户查询 /// public void DoQuery(string custAlphaNo) { if (_ob == null) { return; } ultraTree.Nodes["STANDRADKEY"].Nodes.Clear(); DataTable dtCust = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryAlpha", new Object[] { _finalUserCode, _drCustAlphaNo, "" }, this._ob); _dtMsc = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMsc", new Object[] { _psc }, this._ob); _dtTreeCustAlpha = dtCust; CreateTreeAlp(dtCust, _dtMsc, "STANDRADKEY", "CUST_ALPHA_NO", "CUST_ALPHA_NO", "b"); CreateTreeMsc(_dtMsc, "STANDRADKEY", "MSC", "USE_DESC", "a"); ultraTree.ExpandAll(); dataTable1.Rows.Clear(); dataTable2.Rows.Clear(); dataTable3.Rows.Clear(); dataTable4.Rows.Clear(); dataTable5.Rows.Clear(); StdProcessc.Rows.Clear(); if (!custAlphaNo.Equals("")) { foreach (UltraTreeNode node in ultraTree.Nodes["STANDRADKEY"].Nodes) { if (node.Key.Contains(custAlphaNo)) { ultraTree.ActiveNode = node; break; } } } else { if (ultraTree.Nodes["STANDRADKEY"].Nodes.Count > 0) { ultraTree.ActiveNode = ultraTree.Nodes["STANDRADKEY"].Nodes[0]; } } _mscDt = _dtMsc; _custDt = dtCust; } /// /// 生成树 /// /// DataTable /// key /// 显示值 private void CreateTreeMsc(DataTable dt, string key, string hideValue, string showValue, string flag) { if (dt == null || dt.Rows.Count == 0) { return; } UltraTreeNode utn = null; for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["MSC_SEQ"].ToString() == "") { continue; } string keyStr = dt.Rows[i][hideValue].ToString(); string msc = keyStr.Split(',')[0]; if (_drCustAlphaNo == "") { if (_fiterMsc != "") { if (_fiterMsc != msc) continue; //过滤msc } } else { continue; } bool isAdd = false; foreach (UltraTreeNode node in ultraTree.Nodes[key].Nodes) { utn = new UltraTreeNode(keyStr + "," + node.Key, msc + "-" + dt.Rows[i][showValue].ToString()); utn.Tag = flag; if (dt.Rows[i]["CUST_ALPHA_NO"].ToString().Contains(node.Key)) { node.Nodes.Add(utn); isAdd = true; } } if (!isAdd) { string memo = ""; if(dt.Rows[i]["MEMO"].ToString() != "") { memo = "-" + dt.Rows[i]["MEMO"].ToString(); } utn = new UltraTreeNode(keyStr, msc + "-" + dt.Rows[i][showValue].ToString() + memo); utn.Tag = flag; ultraTree.Nodes[key].Nodes.Add(utn); } } } /// /// 生成树 /// /// DataTable /// key /// 显示值 private void CreateTreeAlp(DataTable dt, DataTable dtMsc, string key, string hideValue, string showValue, string flag) { if (dt == null) { return; } UltraTreeNode utn = null; DataRow[] drs = dtMsc.Select("MSC_SEQ IS NULL"); if (drs.Length > 0) { string msc = drs[0]["MSC"].ToString().Split(',')[0]; if ((_drCustAlphaNo == "" && _fiterMsc == "") || (_drCustAlphaNo == "" && _fiterMsc == msc)) { utn = new UltraTreeNode(drs[0]["MSC"].ToString(), msc); utn.Tag = "a"; ultraTree.Nodes[key].Nodes.Add(utn); } } for (int i = 0; i < dt.Rows.Count; i++) { string keyStr = dt.Rows[i][hideValue].ToString(); string custAlphaNo = keyStr.Split(',')[0]; if (_drCustAlphaNo == "") { if (_fiterMsc != "") { continue; //过滤msc } } else { if (_drCustAlphaNo != custAlphaNo) continue; } utn = new UltraTreeNode(keyStr, dt.Rows[i][showValue].ToString()); //utn.Override.NodeStyle = NodeStyle.OptionButton; utn.Tag = flag; ultraTree.Nodes[key].Nodes.Add(utn); } } /// /// 保存 /// private void DoSave() { if (_finalUserCode.Equals("")) { return; } //if (isAdd == false) //{ // string custAlphaState = GetCustAlphaState(_custAlphaNo).Rows[0]["CUST_ALPHA_STS"].ToString(); // int custAlphaUseCount = GetCustAlphaUseCount(_custAlphaNo, _ordLnPk); // if (custAlphaState == "S") // { // MessageUtil.ShowWarning("该技术要求已评审通过,不能进修改!"); // return; // } // else if ((custAlphaState == "W" || custAlphaState == "F") && custAlphaUseCount >= 1) // { // MessageUtil.ShowWarning("该技术要求已被其他合同行使用,不能修改!"); // return; // } //} ArrayList allData = new ArrayList(); ArrayList allChemData = new ArrayList(); ArrayList allPhyData = new ArrayList(); ArrayList allSpecData = new ArrayList(); ArrayList allDetectionData = new ArrayList(); ArrayList allWaterData = new ArrayList(); ArrayList allProcessData = new ArrayList(); ArrayList chemData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid1.Rows) { SlmCustChemObject com = GetObjectData.GetStdChemObject(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscChem(ugr) == GetAlphaChem(ugr)) { MessageUtil.ShowWarning("成分要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allChemData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckChem(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } chemData.Add(JSONFormat.Format(com)); } } ArrayList phyData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid2.Rows) { SlmCustPhyObject com = GetObjectData.GetSlmCustPhyData(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscPhy(ugr) == GetAlphaPhy(ugr)) { MessageUtil.ShowWarning("理化要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allPhyData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckPhy(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } phyData.Add(JSONFormat.Format(com)); } } ArrayList specData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid3.Rows) { SlmCustSpecObject com = GetObjectData.GetSlmCustSpecData(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscSpec(ugr) == GetAlphaSpec(ugr)) { MessageUtil.ShowWarning("公差要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allSpecData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckSpec(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } specData.Add(JSONFormat.Format(com)); } } ArrayList deteData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid4.Rows) { SlmCustDetectionObject com = GetObjectData.GetSlmCustDetectionData(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscDetection(ugr) == GetAlphaDetection(ugr)) { MessageUtil.ShowWarning("探伤要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allDetectionData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckDete(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } deteData.Add(JSONFormat.Format(com)); } } ArrayList waterData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid5.Rows) { SlmCustWaterObject com = GetObjectData.GetSlmCustWaterData(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscWater(ugr) == GetAlphaWater(ugr)) { MessageUtil.ShowWarning("水压要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allWaterData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckWater(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } waterData.Add(JSONFormat.Format(com)); } } ArrayList proCessData = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid6.Rows) { SlmCustAlphaProObject com = GetObjectData.GetSlmCustAlphaProData(ugr); //com.CustAlphaNo = _custAlphaNo; if (ugr.GetValue("CHC") == "True" && IsMsc0()) { if (GetMscProcess(ugr) == GetAlphaProcess(ugr)) { MessageUtil.ShowWarning("加工要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!"); ugr.Activate(); return; } } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { allProcessData.Add(JSONFormat.Format(com)); } if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (!CheckAlphaPro(com, ugr)) { MessageUtil.ShowWarning(errMessage); return; } proCessData.Add(JSONFormat.Format(com)); } } DataTable dtModelStyle = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getModelStyle", new object[] { dr["MODEL_CODE"].ToString() }, _ob); if (dtModelStyle != null && dtModelStyle.Rows[0]["MODEL_STYLE"].ToString() == "405107") { bool existPdm = false; //是否存在平端面 if (StdProcessc.Rows.Count == 0) { MessageUtil.ShowWarning("合同行扣型类型为平端面,请维护加工要求,工序点选择平端面!"); ultraTabProcess.Tabs["6"].Active = true; ultraTabProcess.Tabs["6"].Selected = true; return; } foreach (DataRow drPro in StdProcessc.Rows) { if (drPro["STATION_CODE"].ToString() == "70220") { existPdm = true; } } if (!existPdm) { MessageUtil.ShowWarning("合同行扣型类型为平端面,加工要求中的工序点必须选择平端面!"); ultraTabProcess.Tabs["6"].Active = true; ultraTabProcess.Tabs["6"].Selected = true; return; } } ArrayList standData = new ArrayList(); standData.Add(chemData); standData.Add(phyData); standData.Add(specData); standData.Add(deteData); standData.Add(waterData); standData.Add(proCessData); allData.Add(allChemData); allData.Add(allPhyData); allData.Add(allSpecData); allData.Add(allDetectionData); allData.Add(allWaterData); allData.Add(allProcessData); object[] results = IsExistSameData(allData, _finalUserCode, _psc); string cic = results[2].ToString(); string pic = results[3].ToString(); string sic = results[4].ToString(); string dic = results[5].ToString(); string wic = results[6].ToString(); string gic = results[7].ToString(); ArrayList insrtChemData = (ArrayList)results[8]; ArrayList insrtPhyData = (ArrayList)results[9]; ArrayList insrtSpecData = (ArrayList)results[10]; ArrayList insrtDetectionData = (ArrayList)results[11]; ArrayList insrtWaterData = (ArrayList)results[12]; ArrayList insrtProcessData = (ArrayList)results[13]; int flag = int.Parse(results[14].ToString()); int insrtCnt = insrtChemData.Count + insrtPhyData.Count + insrtSpecData.Count + insrtDetectionData.Count + insrtWaterData.Count + insrtProcessData.Count; if (results[0].ToString() == "True" && insrtCnt == 0 && flag == 3) { MessageUtil.ShowWarning("[" + results[1].ToString() + "]下已存在相同的一套技术要求!"); foreach (UltraTreeNode node in ultraTree.Nodes["STANDRADKEY"].Nodes) { if (node.Key.Split(',')[0] == results[1].ToString()) { dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); dataTable3.AcceptChanges(); dataTable4.AcceptChanges(); dataTable5.AcceptChanges(); StdProcessc.AcceptChanges(); ultraTree.ActiveNode = node; break; } } return; } if (chemData.Count > 0 || phyData.Count > 0 || specData.Count > 0 || deteData.Count > 0 || waterData.Count > 0 || proCessData.Count > 0) { if (MessageBox.Show("是否保存记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } ArrayList strList = new ArrayList(); strList.Add(_finalUserCode); strList.Add(_finalUserName); strList.Add(UserInfo.GetUserName()); strList.Add(_custAlphaNo); string custAlphaNo = ServerHelper.SetDataReturnObj("com.steering.pss.sale.order.CoreOrderSpecialInfo.saveSpecialInfo", new Object[] { strList, standData}, this._ob).ToString(); MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(custAlphaNo); } else { MessageUtil.ShowWarning("请选择一条要求,然后再进行操作!"); } } private bool IsMsc0() { return ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a" && ultraTree.ActiveNode.Key.Split(',')[0].Substring(10, 3) == "000"; } private string GetMscChem(UltraGridRow row) { string str = row.GetValue("CHEM_CODE") + row.GetValue("CHEM_FORMULA") + row.GetValue("STDMIN_SIGN") + row.GetValue("STDMIN") + row.GetValue("STDMAX_SIGN") + row.GetValue("STDMAX"); return str; } private string GetAlphaChem(UltraGridRow row) { string str = row.GetValue("CHEM_CODE") + row.GetValue("CHEM_FORMULA") + row.GetValue("STDMIN_SIGN1") + row.GetValue("STDMIN1") + row.GetValue("STDMAX_SIGN1") + row.GetValue("STDMAX1"); return str; } private string GetMscPhy(UltraGridRow row) { string str = row.GetValue("PHY_CODE_MAX") + row.GetValue("PHY_CODE_MIN") + row.GetValue("PHY_CODE") + row.GetValue("ITEM_CODE_F") + row.GetValue("ITEM_CODE_W") + row.GetValue("ITEM_CODE_S") + row.GetValue("STDMIN_SIGN") + row.GetValue("STDMIN") + row.GetValue("STDMAX_SIGN") + row.GetValue("STDMAX"); return str; } private string GetAlphaPhy(UltraGridRow row) { string str = row.GetValue("PHY_CODE_MAX") + row.GetValue("PHY_CODE_MIN") + row.GetValue("PHY_CODE") + row.GetValue("ITEM_CODE_F") + row.GetValue("ITEM_CODE_W") + row.GetValue("ITEM_CODE_S") + row.GetValue("STDMIN_SIGN1") + row.GetValue("STDMIN1") + row.GetValue("STDMAX_SIGN1") + row.GetValue("STDMAX1"); return str; } private string GetMscSpec(UltraGridRow row) { string str = row.GetValue("BIAS_CODE") + row.GetValue("STD_MIN_VAL") + row.GetValue("STD_MAX_VAL") + row.GetValue("STD_MIN_PERCENT") + row.GetValue("STD_MAX_PERCENT") + row.GetValue("STD_MIN_FORMULA_V") + row.GetValue("STD_MAX_FORMULA_V"); return str; } private string GetAlphaSpec(UltraGridRow row) { string str = row.GetValue("BIAS_CODE") + row.GetValue("STD_MIN_VAL1") + row.GetValue("STD_MAX_VAL1") + row.GetValue("STD_MIN_PERCENT1") + row.GetValue("STD_MAX_PERCENT1") + row.GetValue("STD_MIN_FORMULA_V1") + row.GetValue("STD_MAX_FORMULA_V1"); return str; } private string GetMscDetection(UltraGridRow row) { string str = row.GetValue("PHY_CODE") + row.GetValue("POSITION_DESC") + row.GetValue("STD_DESC") + row.GetValue("LV_DESC") + row.GetValue("COVERAGE"); return str; } private string GetAlphaDetection(UltraGridRow row) { string str = row.GetValue("PHY_CODE") + row.GetValue("POSITION_DESC1") + row.GetValue("STD_DESC1") + row.GetValue("LV_DESC1") + row.GetValue("COVERAGE1"); return str; } private string GetMscWater(UltraGridRow row) { string str = row.GetValue("PRESSURE_Y") + row.GetValue("PRESSURE") + row.GetValue("FORMULA") + row.GetValue("SAVE_TIME"); return str; } private string GetAlphaWater(UltraGridRow row) { string str = row.GetValue("PRESSURE_Y1") + row.GetValue("PRESSURE1") + row.GetValue("FORMULA1") + row.GetValue("SAVE_TIME1"); return str; } private string GetMscProcess(UltraGridRow row) { string str = row.GetValue("STATION_DESC") + row.GetValue("PROCESS_DESC") + row.GetValue("VALUE_TEXT") + row.GetValue("VALUE_NUM") + row.GetValue("VALUE_MEMO"); return str; } private string GetAlphaProcess(UltraGridRow row) { string str = row.GetValue("STATION_DESC") + row.GetValue("PROCESS_DESC") + row.GetValue("ALPHA_VALUE_TEXT") + row.GetValue("ALPHA_VALUE_NUM") + row.GetValue("ALPHA_VALUE_MEMO"); return str; } private object[] IsExistSameData(ArrayList list, string custNo, string psc) { ArrayList list2 = new ArrayList(); list2.AddRange(custNo, psc, "", "True", strD, strH, _model, _specStyle, _specCode, _specName); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; ccp.MethodName = "isExistSameData"; ccp.ServerParams = new object[] { list, list2 }; ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); return (object[])ccp.ReturnObject; } //private object[] IsExistSameChem(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSameChem"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo}; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} //private object[] IsExistSamePhy(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSamePhy"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo }; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} //private object[] IsExistSameSpec(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSameSpec"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo }; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} //private object[] IsExistSameDetection(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSameDetection"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo }; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} //private object[] IsExistSameWater(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSameWater"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo }; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} //private object[] IsExistSameProcess(ArrayList list, string custNo, string psc) //{ // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo"; // ccp.MethodName = "isExistSameProcess"; // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo }; // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal); // return (object[])ccp.ReturnObject; //} /// /// TableName依次:"成分""理化""公差""探伤""水压""附加"; /// private void DoComfirm() { ultraGrid1.UpdateData(); ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); ultraGrid5.UpdateData(); ultraGrid6.UpdateData(); if (_custAlphaNo.Equals("") && _stdCode.Equals("")) { return; } if (ultraTree.ActiveNode.Key == "STANDRADKEY") return; string[] mscs = ultraTree.ActiveNode.Key.Split(','); string mscOrAlphaNo = mscs[0]; string type = ""; if (IsExitEdite(out type) == false) { if (type == "Cic") { MessageUtil.ShowWarning("成分要求有数据修改,请先保存然后再进行确认!"); return; } else if (type == "Pic") { MessageUtil.ShowWarning("理化要求有数据修改,请先保存然后再进行确认!"); return; } else if (type == "Sic") { MessageUtil.ShowWarning("公差要求有数据修改,请先保存然后再进行确认!"); return; } else if (type == "Dic") { MessageUtil.ShowWarning("探伤要求有数据修改,请先保存然后再进行确认!"); return; } else if (type == "Wic") { MessageUtil.ShowWarning("水压要求有数据修改,请先保存然后再进行确认!"); return; } else if (type == "Gic") { MessageUtil.ShowWarning("加工要求有数据修改,请先保存然后再进行确认!"); return; } } //if (ultraTree.ActiveNode.Tag.ToString() == "a") //{ // if (mscOrAlphaNo.Substring(10, 3) != "000" && CheckStdPayItem(mscOrAlphaNo) == false) // { // MessageUtil.ShowWarning("该规格、扣型下的MSCn不完整,不能选择!"); // return; // } //} DataTable dtModelStyle = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getModelStyle", new object[] { dr["MODEL_CODE"].ToString() }, _ob); if (dtModelStyle != null && dtModelStyle.Rows[0]["MODEL_STYLE"].ToString() == "405107") { bool existPdm = false; //是否存在平端面 if(StdProcessc.Rows.Count == 0) { MessageUtil.ShowWarning("合同行扣型类型为平端面,请维护加工要求,工序点选择平端面!"); ultraTabProcess.Tabs["6"].Active = true; return; } foreach (DataRow drPro in StdProcessc.Rows) { if (drPro["STATION_CODE"].ToString() == "70220") { existPdm = true; } } if (!existPdm) { MessageUtil.ShowWarning("合同行扣型类型为平端面,加工要求中的工序点必须选择平端面!"); ultraTabProcess.Tabs["6"].Active = true; return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No) { return; } FrmOrderSpecialInfoEventArgs e = new FrmOrderSpecialInfoEventArgs(); DataSet ds = new DataSet(); ds.Tables.Add(dataTable1.Copy()); ds.Tables.Add(dataTable2.Copy()); ds.Tables.Add(dataTable3.Copy()); ds.Tables.Add(dataTable4.Copy()); ds.Tables.Add(dataTable5.Copy()); ds.Tables.Add(StdProcessc.Copy()); //在这进行冶金规范与客户冶金规范匹配是否完全相同,如果相同取冶金规范数据。 e.DataSet = ds; e.Description = GetUltraData(); if (ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a" && mscOrAlphaNo.Substring(10, 3) == "000") { e.Description = ""; } if (ultraTree.ActiveNode.Tag.ToString() == "a") { e.Msc = mscOrAlphaNo; e.CustAlphaNo = ""; } else { e.Msc = ultraTree.ActiveNode.Parent.Nodes[0].Key.Split(',')[0];//MSC0 e.CustAlphaNo = mscOrAlphaNo; } FrmOrderSpecialInfoComfirm.Invoke(this, e); this.DialogResult = DialogResult.OK; } private void DoDelete() { string[] mscs = ultraTree.ActiveNode.Key.Split(','); string mscOrAlphaNo = mscs[0]; if (ultraTree.ActiveNode.Key == "STANDRADKEY") { MessageUtil.ShowWarning("请选择需要作废的技术特殊要求码!"); return; } else { if (ultraTree.ActiveNode.Tag.ToString() == "a") { MessageUtil.ShowWarning("请选择需要作废的技术特殊要求码!"); return; } else { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getSlmOrdLineCntByAlphaNo", new object[] { mscOrAlphaNo }, _ob); if (dt.Rows.Count > 0) { MessageUtil.ShowWarning(string.Format("该技术特殊要求已被合同[{0}]-合同行[{1}]引用,不能作废!", dt.Rows[0]["ORDER_NO"].ToString2(), dt.Rows[0]["ORDER_SEQ"].ToString2())); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认作废选中的技术特殊要求码?") == DialogResult.No) { return; } ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.deleteSlmCustAlpha", new object[] { mscOrAlphaNo, UserInfo.GetUserName() }, _ob); MessageUtil.ShowWarning("作废成功!"); DoQuery(""); } } } private bool CheckStdPayItem(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getStdPayItemCnt", new object[] { msc }, Ob); int cicCnt = dt.Select("ITEM = 'CIC'").Length; int picCnt = dt.Select("ITEM = 'PIC'").Length; int dicCnt = dt.Select("ITEM = 'DIC'").Length; int sicCnt = dt.Select("ITEM = 'SIC'").Length; int wicCnt = dt.Select("ITEM = 'WIC'").Length; int gicCnt = dt.Select("ITEM = 'GIC'").Length; if (cicCnt > 0) { int grid1Cnt = ultraGrid1.Rows.AsQueryable().Count(); if(grid1Cnt == 0) { return false; } } if (picCnt > 0) { int grid2Cnt = ultraGrid2.Rows.AsQueryable().Count(); if (grid2Cnt == 0) { return false; } } if (sicCnt > 0) { int grid3Cnt = ultraGrid3.Rows.AsQueryable().Count(); if (grid3Cnt == 0) { return false; } } if (dicCnt > 0) { int grid4Cnt = ultraGrid4.Rows.AsQueryable().Count(); if (grid4Cnt == 0) { return false; } } if (wicCnt > 0) { int grid5Cnt = ultraGrid5.Rows.AsQueryable().Count(); if (grid5Cnt == 0) { return false; } } if (gicCnt > 0) { int grid6Cnt = ultraGrid6.Rows.AsQueryable().Count(); if (grid6Cnt == 0) { return false; } } return true; } /// /// 查询成分标准数据 /// /// 冶金规范码 /// 标准代码 /// private void QueryChem(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscCic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag, strD, strH, _specCode, _specStyle}, this._ob); if (dt != null && dt.Rows.Count > 0) { if (flag == "a") { FiltChem(dt); FiterChemCommon(dt); } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid1); } else { dataTable1.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["1"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["1"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } dataTable1.AcceptChanges(); } /// /// 查询理化标准数据 /// /// /// private void QueryMaterial(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag, strD, strH, _specCode, _specStyle}, this._ob); if (dt != null && dt.Rows.Count > 0) { if (flag == "a") { FiltChem(dt); FiterPhyCommon(dt); } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid2); } else { dataTable2.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["2"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["2"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } dataTable2.AcceptChanges(); } /// /// 查询公差标准数据 /// /// /// private void QueryTolerances(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscSic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag, strD, strH}, this._ob); if (dt != null && dt.Rows.Count > 0) { if (flag == "a") { FiterSpec(dt); FiterSpecCommon(dt); } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable3, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid3); } else { dataTable3.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["3"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["3"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } dataTable3.AcceptChanges(); } /// /// 查询探伤标准数据 /// /// /// private void QueryDetection(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscDic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag, strD, strH}, this._ob); if (dt != null && dt.Rows.Count > 0) { if (flag == "a") { FiterDetection(dt); } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable4, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid4); } else { dataTable4.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["4"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["4"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } dataTable4.AcceptChanges(); } /// /// 查询水压标准数据 /// /// /// private void QueryWater(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscWic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag, strD, strH, _specCode, _specStyle}, this._ob); if (dt != null && dt.Rows.Count > 0) { if (flag == "a") { FiterWater(dt); } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable5, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid5); } else { dataTable5.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["5"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["5"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } dataTable5.AcceptChanges(); } /// /// 查询加工要求 /// /// /// private void QueryProcess(string mscOrAlphaNo, string flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscGic", new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag }, this._ob); if (dt != null && dt.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dt, ref StdProcessc, true); OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid6); } else { StdProcessc.Rows.Clear(); } if (dt.Rows.Count > 0) { ultraTabProcess.Tabs["6"].Appearance.BackColor = Color.FromArgb(255, 255, 128); } else { ultraTabProcess.Tabs["6"].Appearance.BackColor = Color.FromArgb(202, 222, 247); } StdProcessc.AcceptChanges(); } ///// ///// 查询加工标准数据 ///// ///// ///// //private void QueryProcess(string msc, string psc,string apleNo) //{ // string modelcode = ""; // int trueInt = 0; // DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryPSCMSCModel", new Object[] { msc, psc }, this._ob); // for (int i = 0; i < dt.Rows.Count; i++) // { // if (dt.Rows[i][0].ToString().Equals(_model)) // { // trueInt = 1; // modelcode = _model; // break; // } // } // if (trueInt == 0) // { // for (int i = 0; i < dt.Rows.Count; i++) // { // if (dt.Rows[i][0].ToString().Contains(_model)) // { // modelcode = _model; // break; // } // } // modelcode = "/"; // } // dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPscPro", new Object[] { apleNo, msc, psc, modelcode }, this._ob); // if (dt != null && dt.Rows.Count > 0) // { // GridHelper.CopyDataToDatatable(ref dt, ref this.StdProcessc, true); // OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid6); // } // else // { // StdProcessc.Rows.Clear(); // } //} /// /// 选择树节点事件 /// /// /// private void ultraTree_AfterCheck(object sender, NodeEventArgs e) { ultraTree_AfterActivate(sender, e); } private void ultraTree_MouseDoubleClick(object sender, MouseEventArgs e) { //if (!_custAlphaNo.Equals("")) //{ // ultraTree.Nodes["STANDRADKEY"].Nodes[_custAlphaNo].CheckedState = CheckState.Unchecked; // _custAlphaNo = ""; //} //if (!_stdCode.Equals("")) //{ // ultraTree.Nodes["STANDRADKEY"].Nodes[_stdCode].CheckedState = CheckState.Unchecked; // _stdCode = ""; //} // dataTable1.Rows.Clear(); // dataTable2.Rows.Clear(); // dataTable3.Rows.Clear(); // dataTable4.Rows.Clear(); // dataTable5.Rows.Clear(); } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1.UpdateData(); //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} OrderSpecialInfoTool.setCanEdit(e); if (e.Cell.Column.Key.Equals("CHEM_CODE")) { string chemCode = e.Cell.Value.ToString(); DataRow[] dr = ((DataTable)ultras[2].DataSource).Select("CHEM_CODE ='" + chemCode + "'"); if (dr.Length > 0) { if (dr[0][2].Equals("单一元素")) { e.Cell.Row.Cells["CHEM_TYPE"].Value = "A"; } else { e.Cell.Row.Cells["CHEM_TYPE"].Value = "B"; } e.Cell.Row.Cells["CHEM_FORMULA"].Value = dr[0][3]; } } } private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid2.UpdateData(); //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} if (e.Cell.Column.Key.Equals("PHY_CODE_MAX")) //检验项目 { e.Cell.Row.Cells["PHY_CODE_MIN"].Activation = Activation.AllowEdit; string phyNameMax = e.Cell.Text; e.Cell.Row.Cells["PHY_NAME_MAX"].Value = phyNameMax; e.Cell.Row.Cells["PHY_NAME_MIN"].Value = ""; e.Cell.Row.Cells["PHY_CODE_MIN"].Value = ""; e.Cell.Row.Cells["PHY_NAME"].Value = ""; e.Cell.Row.Cells["PHY_CODE"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_F"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_F"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_W"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_W"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_S"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_S"].Value = ""; } if (e.Cell.Column.Key.Equals("PHY_CODE_MIN")) //取样码 { e.Cell.Row.Cells["PHY_CODE"].Activation = Activation.AllowEdit; e.Cell.Row.Cells["PHY_NAME_MIN"].Value = e.Cell.Text; e.Cell.Row.Cells["PHY_NAME"].Value = ""; e.Cell.Row.Cells["PHY_CODE"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_F"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_F"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_W"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_W"].Value = ""; e.Cell.Row.Cells["ITEM_NAME_S"].Value = ""; e.Cell.Row.Cells["ITEM_CODE_S"].Value = ""; } //检验项 if (e.Cell.Column.Key.Equals("PHY_CODE")) { e.Cell.Row.Cells["PHY_NAME"].Value = e.Cell.Text; //e.Cell.Row.Cells["ITEM_NAME_F"].Value = ""; //e.Cell.Row.Cells["ITEM_CODE_F"].Value = ""; //e.Cell.Row.Cells["ITEM_NAME_W"].Value = ""; //e.Cell.Row.Cells["ITEM_CODE_W"].Value = ""; //e.Cell.Row.Cells["ITEM_NAME_S"].Value = ""; //e.Cell.Row.Cells["ITEM_CODE_S"].Value = ""; } UltraGridRow ugr = ultraGrid2.ActiveRow; if (e.Cell.Column.Key.Equals("ITEM_CODE_F")) { UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow; if (row != null) { ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F"); ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W"); ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C"); ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY"); } } else if (e.Cell.Column.Key.Equals("ITEM_CODE_W")) { UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow; if (row != null) { ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F"); ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W"); ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C"); ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY"); } } else if (e.Cell.Column.Key.Equals("ITEM_CODE_S")) { UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow; if (row != null) { ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F"); ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W"); ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY"); ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C"); ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY"); } } else if (e.Cell.Column.Key.Equals("STDMIN_SIGN1") || e.Cell.Column.Key.Equals("CHC")) { if (e.Cell.Row.Cells["STDMIN_SIGN1"].Value.ToString() == "=") { e.Cell.Row.Cells["STDMIN1"].EditorComponent = ultraTextEditor2; } else { e.Cell.Row.Cells["STDMIN1"].EditorComponent = null; } } if (e.Cell.Column.Key.Equals("CHC")) { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; } CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { e.Cell.Row.Cells[i].Activation = activation; } if (cells[i].Column.Key.Equals("PHY_CODE_MIN") && cells[i].Value.ToString().Equals("")) { e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } if (cells[i].Column.Key.Equals("PHY_CODE") && cells[i].Value.ToString().Equals("")) { e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } if (cells[i].Column.Key.Equals("ITEM_NAME_F") && cells[i].Value.ToString().Equals("")) { e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } if (cells[i].Column.Key.Equals("ITEM_NAME_W") && cells[i].Value.ToString().Equals("")) { e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } if (cells[i].Column.Key.Equals("ITEM_NAME_S") && cells[i].Value.ToString().Equals("")) { e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } } } } private void ultraGrid3_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid3.UpdateData(); //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} if (e.Cell.Column.Key.Equals("BIAS_CODE")) //公差主项 { e.Cell.Row.Cells["BIAS_NAME"].Value = e.Cell.Text; } if (e.Cell.Column.Key == "STD_MIN_FORMULA_V1") { if (e.Cell.Row.Cells["STD_MAX_FORMULA_V1"].Value.ToString() == "True") { e.Cell.Row.Cells["STD_MAX_FORMULA_V1"].Value = false; } } else if (e.Cell.Column.Key == "STD_MAX_FORMULA_V1") { if (e.Cell.Row.Cells["STD_MIN_FORMULA_V1"].Value.ToString() == "True") { e.Cell.Row.Cells["STD_MIN_FORMULA_V1"].Value = false; } } OrderSpecialInfoTool.setCanEdit(e); } private void ultraGrid4_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid4.UpdateData(); //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} //检验项 if (e.Cell.Column.Key.Equals("PHY_CODE")) { e.Cell.Row.Cells["PHY_NAME"].Value = e.Cell.Text; e.Cell.Row.Cells["STD_CODE1"].Value = ""; e.Cell.Row.Cells["STD_DESC1"].Value = ""; e.Cell.Row.Cells["LV_CODE1"].Value = ""; e.Cell.Row.Cells["LV_DESC1"].Value = ""; } //探伤位置 if (e.Cell.Column.Key.Equals("POSITION_CODE")) { e.Cell.Row.Cells["POSITION_DESC"].Value = e.Cell.Text; } OrderSpecialInfoTool.setCanEdit(e); } private void ultraGrid5_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid5.UpdateData(); DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} OrderSpecialInfoTool.setCanEdit(e); if (e.Cell.Column.Key == "PRESSURE_Y1") { if (e.Cell.Value.ToString() != "") { //英制压力转公制压力系数为0.00689476 e.Cell.Row.Cells["PRESSURE1"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) * 0.00689476, 2); } else { e.Cell.Row.Cells["PRESSURE1"].Value = ""; } } else if (e.Cell.Column.Key == "PRESSURE1") { if (e.Cell.Value.ToString() != "") { if (double.Parse(e.Cell.Value.ToString()) > 6894.76) { MessageUtil.ShowWarning("公制压力上限为68900"); e.Cell.Row.Cells["PRESSURE1"].Value = 6894.76; } //公制压力转英制压力系数为14.5 e.Cell.Row.Cells["PRESSURE_Y1"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) / 0.00689476, 2); } else { e.Cell.Row.Cells["PRESSURE_Y1"].Value = ""; } } } /// /// 初始化下拉框 /// private void InitDrop() { ultraTextEditor2 = new UltraTextEditor(); ultraTextEditor2.Visible = false; EditorButton btn = new EditorButton(); btn.Text = "?"; ultraTextEditor2.ButtonsRight.Add(btn); ultraTextEditor2.EditorButtonClick += new EditorButtonEventHandler(ultraTextEditor2_EditorButtonClick); for (int i = 0; i < ultras.Length; i++) { ultras[i] = new UltraComboEditor(); ultras[i].DropDownListWidth = -1; Controls.Add(ultras[i]); ultras[i].Visible = false; } //下限 OrderSpecialInfoTool.NitializeSignMin(ultras[0]); //化学下限符号 OrderSpecialInfoTool.BindColumn(ultras[0], "STDMIN_SIGN1", ultraGrid1.DisplayLayout.Bands[0]); OrderSpecialInfoTool.BindColumn(ultras[0], "STDMIN_SIGN1", ultraGrid2.DisplayLayout.Bands[0]); //上限 OrderSpecialInfoTool.NitializeSignMax(ultras[1]); //标准范围上限符号 OrderSpecialInfoTool.BindColumn(ultras[1], "STDMAX_SIGN1", ultraGrid1.DisplayLayout.Bands[0]); OrderSpecialInfoTool.BindColumn(ultras[1], "STDMAX_SIGN1", ultraGrid2.DisplayLayout.Bands[0]); //化学元素描述 OrderSpecialInfoTool.NitializeChemicalElement(ultras[2], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[2], "CHEM_CODE", ultraGrid1.DisplayLayout.Bands[0]); //公差项 OrderSpecialInfoTool.NitializeTolerance(ultras[3], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[3], "BIAS_CODE", ultraGrid3.DisplayLayout.Bands[0]); //检验项 OrderSpecialInfoTool.NitializeDetectionPhy(ultras[4], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[4], "PHY_CODE", ultraGrid4.DisplayLayout.Bands[0]); //探伤位置 OrderSpecialInfoTool.NitializeDetectionPosition(ultras[5], true, this._ob); OrderSpecialInfoTool.BindColumn(ultras[5], "POSITION_CODE1", ultraGrid4.DisplayLayout.Bands[0]); ////探伤标准 //OrderSpecialInfoTool.NitializeDetectionStandard(ultras[6], true, this._ob); //OrderSpecialInfoTool.BindColumn(ultras[6], "STD_DESC1", ultraGrid4.DisplayLayout.Bands[0]); ////探伤级别 //OrderSpecialInfoTool.NitializeDetectionLV(ultras[7], true, this._ob); //OrderSpecialInfoTool.BindColumn(ultras[7], "LV_CODE1", ultraGrid4.DisplayLayout.Bands[0]); //理化项目 OrderSpecialInfoTool.NitializePhyMax(ultras[9], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[9], "PHY_CODE_MAX", ultraGrid2.DisplayLayout.Bands[0]); //加工标准工序点 OrderSpecialInfoTool.NitializeStationCode(ultras[10], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[10], "STATION_DESC", ultraGrid6.DisplayLayout.Bands[0]); ultras[11].DataSource = ClsBaseInfo.GetComBaseInfo("4023", Ob); ultras[11].ValueMember = "BASECODE"; ultras[11].DisplayMember = "BASENAME"; ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_POS1"].EditorComponent = ultras[11]; ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_POS1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultras[12].DataSource = ClsBaseInfo.GetComBaseInfo("4024", Ob); ultras[12].ValueMember = "BASECODE"; ultras[12].DisplayMember = "BASENAME"; ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_DIR1"].EditorComponent = ultras[12]; ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_DIR1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultras[13].DataSource = ClsBaseInfo.GetComBaseInfo("4011", Ob); ultras[13].ValueMember = "BASECODE"; ultras[13].DisplayMember = "BASENAME"; ultraGrid4.DisplayLayout.Bands[0].Columns["RATE1"].EditorComponent = ultras[13]; ultraGrid4.DisplayLayout.Bands[0].Columns["RATE1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; UltraComboEditor cmbWtr = new UltraComboEditor(); this.Controls.Add(cmbWtr); cmbWtr.Visible = false; cmbWtr.DropDownListWidth = -1; ClsBaseInfo.FillWtrExpress(cmbWtr, Ob, true); ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA1"].EditorComponent = cmbWtr; ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA"].EditorComponent = cmbWtr; ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } private void ultraTextEditor2_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow ugr = ultraGrid2.ActiveRow; if (ugr == null) return; if (ugr.Cells["PHY_CODE"].Text == "") { MessageUtil.ShowWarning("请先选择检验项!"); return; } FrmComMscPhyStdNote fpn = new FrmComMscPhyStdNote(); fpn.Pic = ugr.Cells["PIC"].Value.ToString(); fpn.Index = ugr.Cells["INDEX_SEQ"].Value.ToString(); fpn.NewOb = this.Ob; fpn.PhyCode = ugr.Cells["PHY_CODE"].Value.ToString(); fpn.PhyName = ugr.Cells["PHY_CODE"].Text; fpn.StdMin = ugr.Cells["STDMIN1"].Value.ToString(); fpn.StdGuid = ugr.Cells["GUID"].Value.ToString(); fpn.IsCustAlphaPopup = true; fpn.ShowDialog(); if (fpn.NoteIndex != null) ugr.Cells["STDMIN1"].Value = fpn.NoteIndex; ugr.Cells["GUID"].Value = fpn.StdGuid; } /// /// 界面字段合成字符串 /// /// private string GetDescription() { string description = ""; foreach (UltraGridRow ugr in ultraGrid1.Rows) { } return description; } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid1, e); e.Row.Cells["ISCHECK"].Value = true; e.Row.Cells["ISJUDGE"].Value = true; e.Row.Cells["ISQUOTE"].Value = true; } private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid2, e); e.Row.Cells["ISCHECK"].Value = true; e.Row.Cells["ISJUDGE"].Value = true; e.Row.Cells["ISQUOTE"].Value = true; } private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid3, e); e.Row.Cells["ISCHECK"].Value = true; e.Row.Cells["STD_MIN_FORMULA_V1"].Value = true; } private void ultraGrid4_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid4, e); } private void ultraGrid5_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid5, e); } private void ultraGrid6_AfterRowInsert(object sender, RowEventArgs e) { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid6, e); } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { } private bool CheckChem(SlmCustChemObject com, UltraGridRow chemRow) { if (com.ChemCode.Equals("")) { errMessage = "化学元素不能为空"; chemRow.Cells["CHEM_CODE"].Activate(); return false; } int sameCnt = 0; sameCnt = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True" && a.GetValue("CHEM_CODE") == com.ChemCode).Count(); if (sameCnt >= 2) { errMessage = "成分标准:化学元素" + com.ChemName + "重复!"; chemRow.Cells["CHEM_CODE"].Activate(); return false; } if (com.StdmaxSign.Equals("") && com.StdminSign.Equals("")) { errMessage = "成分要求:请选择客户要求:上限符号或者下限符号"; chemRow.Cells["STDMIN_SIGN1"].Activate(); return false; } if (!com.StdminSign.Equals("")) { if (com.Stdmin.Equals("")) { errMessage = "成分要求:请输入客户要求下限值"; chemRow.Cells["STDMIN1"].Activate(); return false; } if (!StringUtil.IsNumber(com.Stdmin)) { errMessage = "成分要求:客户要求下限值请输入数字"; chemRow.Cells["STDMIN1"].Activate(); return false; } } else { if (!com.Stdmin.Equals("")) { errMessage = "成分要求:请选择客户要求下限符号"; chemRow.Cells["STDMIN_SIGN1"].Activate(); return false; } } if (!com.StdmaxSign.Equals("")) { if (com.Stdmax.Equals("")) { errMessage = "成分要求:请输入客户要求上限值"; chemRow.Cells["STDMAX1"].Activate(); return false; } if (!StringUtil.IsNumber(com.Stdmax)) { errMessage = "成分要求:客户要求上限值请输入数字"; chemRow.Cells["STDMAX1"].Activate(); return false; } } else { if (!com.Stdmax.Equals("")) { errMessage = "成分要求:请选择客户要求上限符号"; chemRow.Cells["STDMAX_SIGN1"].Activate(); return false; } } if (!com.Stdmax.Equals("") && !com.Stdmin.Equals("") && Convert.ToDouble(com.Stdmax) < Convert.ToDouble(com.Stdmin)) { errMessage = "成分要求:客户要求下限值必须小于上限值"; chemRow.Cells["STDMIN1"].Activate(); return false; } return true; } private bool CheckPhy(SlmCustPhyObject com, UltraGridRow urg) { if (com.PhyCodeMax == "") { errMessage = "理化要求:请选择项目"; urg.SetCellActive("PHY_CODE_MAX"); return false; } if (com.PhyCodeMin == "") { errMessage = "理化要求:请选择试样组"; urg.SetCellActive("PHY_CODE_MIN"); return false; } if (com.PhyCode == "") { errMessage = "理化要求:请选择检验项"; urg.SetCellActive("PHY_CODE"); return false; } int sameCnt = 0; sameCnt = ultraGrid2.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True" && a.GetValue("PHY_CODE_MAX") == com.PhyCodeMax && a.GetValue("PHY_CODE_MIN") == com.PhyCodeMin && a.GetValue("PHY_CODE") == com.PhyCode && (a.GetValue("ITEM_CODE_F") == com.ItemCodeF) && (a.GetValue("ITEM_CODE_W") == com.ItemCodeW) && (a.GetValue("ITEM_CODE_S") == com.ItemCodeS)).Count(); if (sameCnt >= 2) { errMessage = "理化要求:检验项目重复"; urg.Activate(); return false; } if (com.StdmaxSign.Equals("") && com.StdminSign.Equals("")) { errMessage = "理化要求:请选择客户要求上限符号或者下限符号"; urg.Cells["STDMIN_SIGN1"].Activate(); return false; } if (!com.StdminSign.Equals("")) { if (com.Stdmin.Equals("")) { errMessage = "理化要求:请输入客户要求下限值"; urg.Cells["STDMIN1"].Activate(); return false; } if (com.StdminSign != "=") { if (!StringUtil.IsNumber(com.Stdmin)) { errMessage = "理化要求:客户要求下限值请输入数字"; urg.Cells["STDMIN1"].Activate(); return false; } } } else { if (!com.Stdmin.Equals("")) { errMessage = "理化要求:请选择客户要求下限符号"; urg.Cells["STDMIN_SIGN1"].Activate(); return false; } } if (!com.StdmaxSign.Equals("")) { if (com.Stdmax.Equals("")) { errMessage = "理化要求:请输入客户要求上限值"; urg.Cells["STDMAX1"].Activate(); return false; } if (!StringUtil.IsNumber(com.Stdmax)) { errMessage = "理化要求:客户要求上限值请输入数字"; urg.Cells["STDMAX1"].Activate(); return false; } } else { if (!com.Stdmax.Equals("")) { errMessage = "理化要求:请选择客户要求上限符号"; urg.Cells["STDMAX_SIGN1"].Activate(); return false; } } if (!com.Stdmax.Equals("") && !com.Stdmin.Equals("") && Convert.ToDouble(com.Stdmax) < Convert.ToDouble(com.Stdmin)) { errMessage = "理化要求:客户要求下限值必须小于上限值"; urg.Cells["STDMIN1"].Activate(); return false; } return true; } private bool CheckWater(SlmCustWaterObject com, UltraGridRow waterRow) { int cnt = 0; cnt = ultraGrid5.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True").Count(); if (cnt >= 2) { errMessage = "水压要求:只能维护一条记录"; waterRow.Activate(); return false; } if (com.Formula == "" && com.PressureY.Equals("")) { errMessage = "水压要求:请输入试验压力英制(公制)或者试验压力公式!"; waterRow.Cells["PRESSURE"].Activate(); return false; } if (com.SaveTime.Equals("")) { errMessage = "水压要求:客户要求请输入保压时间"; waterRow.Cells["SAVE_TIME1"].Activate(); return false; } else if (com.SaveTime.TryParseDecimal() == false) { errMessage = "水压要求:客户要求保压时间,只能为数字类型!"; waterRow.Cells["SAVE_TIME1"].Activate(); return false; } return true; } private bool CheckAlphaPro(SlmCustAlphaProObject com, UltraGridRow proRow) { int cnt = 0; cnt = ultraGrid6.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True" && a.GetValue("STATION_CODE") == com.StationCode).Count(); if (cnt >= 2) { errMessage = "加工要求:工序点重复"; proRow.Cells["STATION_DESC"].Activate(); return false; } if (com.StationCode.Equals("")) { errMessage = "加工要求:客户要求请选择工序"; proRow.Cells["STATION_DESC"].Activate(); return false; } if (com.ValueText == "" && com.ValueNum == "") { errMessage = "加工要求:客户要求客户文本和客户数值必须输入一个!"; proRow.Cells["ALPHA_VALUE_TEXT"].Activate(); return false; } if (!StringUtil.IsNumber(com.ValueNum)) { errMessage = "加工要求:客户要求值(数值型)请输入数字!"; proRow.Cells["ALPHA_VALUE_NUM"].Activate(); return false; } return true; } private bool CheckDete(SlmCustDetectionObject com, UltraGridRow detRow) { if (com.PhyCode.Equals("")) { errMessage = "探伤要求:请选择材质检验项!"; detRow.Cells["PHY_CODE"].Activate(); return false; } int sameCnt = 0; sameCnt = ultraGrid4.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True" && a.GetValue("PHY_CODE") == com.PhyCode && a.GetValue("POSITION_CODE1") == com.PositionCode && a.GetValue("STD_DESC1") == com.StdDesc && a.GetValue("LV_CODE1") == com.LvCode && a.GetValue("COVERAGE1") == com.Coverage && a.GetText("GROOVE_DIR1") == com.GrooveDir && a.GetText("GROOVE_POS1") == com.GroovePos && a.GetValue("RATE1") == com.Rate && a.GetValue("DESC_VAL1") == com.DescVal).Count(); if (sameCnt >= 2) { errMessage = "探伤要求:探伤要求重复!"; detRow.Cells["PHY_CODE"].Activate(); return false; } if (com.PositionCode.Equals("")) { errMessage = "探伤要求:客户要求请选择探伤位置!"; detRow.Cells["POSITION_CODE1"].Activate(); return false; } if (com.StdDesc == "") { errMessage = "探伤要求:请选择参考标准"; detRow.Cells["STD_DESC1"].Activate(); return false; } if (com.LvCode == "") { errMessage = "探伤要求:请选择探伤级别!"; detRow.Cells["LV_CODE1"].Activate(); return false; } if (com.Coverage == "") { errMessage = "探伤要求:请选择探伤覆盖率!"; detRow.Cells["COVERAGE1"].Activate(); return false; } return true; } private bool CheckSpec(SlmCustSpecObject com, UltraGridRow specRow) { if (com.BiasCode.Equals("")) { errMessage = "公差要求:请选择公差项"; specRow.Cells["BIAS_CODE"].Activate(); return false; } int sameCnt = 0; sameCnt = ultraGrid3.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True" && a.GetValue("BIAS_CODE") == com.BiasCode).Count(); if (sameCnt >= 2) { errMessage = "公差要求:公差项重复"; specRow.Cells["BIAS_CODE"].Activate(); return false; } if (com.StdMinVal.Equals("") && com.StdMaxVal.Equals("") && com.StdMaxPercent.Equals("") && com.StdMinPercent.Equals("")) { errMessage = "公差标准:客户要求请输入一组标准值"; specRow.Cells["STD_MIN_VAL1"].Activate(); return false; } if (com.StdMaxPercent.Equals("")) { if (!com.StdMinPercent.Equals("")) { errMessage = "公差要求:客户要求请输入上偏差值(%)"; specRow.Cells["STD_MAX_PERCENT1"].Activate(); return false; } } else { if (com.StdMinPercent.Equals("")) { errMessage = "公差要求:客户要求请输入下偏差值(%)"; specRow.Cells["STD_MIN_PERCENT1"].Activate(); return false; } else if((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinPercent) > 0) { errMessage = "(管体/管端壁厚)下偏差值(%)不能为正数"; specRow.Cells["STD_MIN_PERCENT1"].Activate(); return false; } } if (com.StdMaxVal.Equals("")) { if (!com.StdMinVal.Equals("")) { errMessage = "公差要求:客户要求请输入上偏差值(mm)"; specRow.Cells["STD_MAX_VAL1"].Activate(); return false; } } else { if (com.StdMinVal.Equals("")) { errMessage = "公差要求:客户要求请输入下偏差值(mm)"; specRow.Cells["STD_MIN_VAL1"].Activate(); return false; } else if ((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinVal) > 0) { errMessage = "(管体/管端壁厚)下偏差值(mm)不能为正数"; specRow.Cells["STD_MIN_VAL1"].Activate(); return false; } } if (!com.StdMaxPercent.Equals("") && !StringUtil.IsNumber(com.StdMaxPercent)) { errMessage = "上偏差值(%)只能输入数字!"; specRow.Cells["STD_MAX_PERCENT1"].Activate(); return false; } else if (!com.StdMinPercent.Equals("") && !StringUtil.IsNumber(com.StdMinPercent)) { errMessage = "下偏差值(%)只能输入数字!"; specRow.Cells["STD_MIN_PERCENT1"].Activate(); return false; } else if (!com.StdMaxVal.Equals("") && !com.StdMaxVal.TryParseDecimal()) { errMessage = "上偏差值(mm)只能输入数字!"; specRow.Cells["STD_MAX_VAL1"].Activate(); return false; } else if (!com.StdMinVal.Equals("") && !com.StdMinVal.TryParseDecimal()) { errMessage = "下偏差值(mm)只能输入数字!"; specRow.Cells["STD_MIN_VAL1"].Activate(); return false; } if (com.StdMinPercent != "" && com.StdMinVal != "") { if (com.StdMinFormulaV == "0" && com.StdMaxFormulaV == "0") { errMessage = "公差要求:请选择取最小值或取最大值"; specRow.Cells["STD_MIN_FORMULA_V1"].Activate(); return false; } } return true; } /// /// ultragrid所有字段组成字符串 /// /// private string GetUltraData() { bool isMsc = false; if (ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a") { isMsc = true; } string[] strArrayChem; string[] strArrayPhy; string[] strArraySpec; string[] strArrayDete; string[] strArrayWater; string[] strArrayPro; if (isMsc) { strArrayChem = new string[] { "CHEM_CODE", "CHEM_FORMULA", "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX" }; strArrayPhy = new string[] { "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_S", "ITEM_NAME_P", "ITEM_NAME_W", "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX", "JUDGE_BASIS_DESC", "STD_CHOOSE_DESC", "STDMIN_SIGN2", "STDMIN2", "STDMAX_SIGN2", "STDMAX2", "ADDCONDITION_DESC", "ADDSTDCON_DESC", "ADDPERCENT", "ADDSTD_MIN_SIGN", "ADDSTD_MIN", "ADDSTD_MAX_SIGN", "ADDSTD_MAX","STDMEMO"}; strArraySpec = new string[] { "BIAS_NAME", "STD_MIN_VAL", "STD_MAX_VAL", "STD_MIN_PERCENT", "STD_MAX_PERCENT", "STD_MIN_FORMULA", "STD_MAX_FORMULA", "STD_MIN_FORMULA_V" }; strArrayDete = new string[] { "PHY_NAME", "POSITION_DESC", "STD_DESC", "LV_DESC", "COVERAGE", "GROOVE_POS", "GROOVE_DIR", "DESC_RATE", "DESC_VAL", "MEMO" }; strArrayWater = new string[] { "PRESSURE_Y", "PRESSURE", "SAVE_TIME" }; strArrayPro = new string[] { "STATION_DESC", "VALUE_TEXT", "VALUE_NUM", "VALUE_MEMO" }; } else { strArrayChem = new string[] { "CHEM_CODE", "CHEM_FORMULA", "STDMIN_SIGN1", "STDMIN1", "STDMAX_SIGN1", "STDMAX1", "STDMEMO1" }; strArrayPhy = new string[] { "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_S", "ITEM_NAME_P", "ITEM_NAME_W", "STDMIN_SIGN1", "STDMIN1", "STDMAX_SIGN1", "STDMAX1", "JUDGE_BASIS_DESC", "STD_CHOOSE_DESC", "STDMIN_SIGN2", "STDMIN2", "STDMAX_SIGN2", "STDMAX2", "ADDCONDITION_DESC", "ADDSTDCON_DESC", "ADDPERCENT", "ADDSTD_MIN_SIGN", "ADDSTD_MIN", "ADDSTD_MAX_SIGN", "ADDSTD_MAX", "STDMEMO1","STDMEMO"}; strArraySpec = new string[] { "BIAS_NAME", "STD_MIN_VAL1", "STD_MAX_VAL1", "STD_MIN_PERCENT1", "STD_MAX_PERCENT1", "STD_MIN_FORMULA_V1", "MEMO1"}; strArrayDete = new string[] { "PHY_NAME", "POSITION_DESC1", "STD_DESC1", "LV_DESC1", "COVERAGE1", "GROOVE_POS1", "GROOVE_DIR1", "RATE1", "DESC_VAL1", "MEMO1" }; strArrayWater = new string[] { "PRESSURE_Y1", "PRESSURE1", "SAVE_TIME1" }; strArrayPro = new string[] { "STATION_DESC", "ALPHA_VALUE_TEXT", "ALPHA_VALUE_NUM", "ALPHA_VALUE_MEMO", "MEMO1" }; } string cicStr = GetChemUltraGridData(ultraGrid1, strArrayChem, isMsc); string picStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid2, strArrayPhy); string sicStr = GetSpecUltraGridData(ultraGrid3, strArraySpec); string dicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid4, strArrayDete); string wicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid5, strArrayWater); string gicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid6, strArrayPro); string str = ""; if (cicStr.Trim() != "") { str += "成分标准:" + cicStr; } if (picStr.Trim() != "") { str += (str == "" ? "" : "\r\n") + "理化标准:" + picStr; } if (sicStr.Trim() != "") { str += (str == "" ? "" : "\r\n") + "公差标准:" + sicStr; } if (dicStr.Trim() != "") { str += (str == "" ? "" : "\r\n") + "探伤标准:" + dicStr; } if (wicStr.Trim() != "") { str += (str == "" ? "" : "\r\n") + "水压标准:" + wicStr; } if (gicStr.Trim() != "") { str += (str == "" ? "" : "\r\n") + "加工标准:" + gicStr; } return str; } public string GetChemUltraGridData(UltraGrid ug, string[] strArray, bool isMsc) { string content = ""; if (ug.Rows.Count == 0) { return content; } var rows = ug.Rows.OrderBy(a => a.GetValue("CHEM_TYPE")).ToList(); for (int i = 0; i < rows.Count; i++) { if (rows[i].GetValue("CHC") == "False" && rows[i].GetValue("VALIDFLAG") == "") continue; if (content != "" && rows[i].GetValue("CHEM_TYPE") == "B") { content += "\r\n "; } for (int k = 0; k < strArray.Length; k++) { string columnKey = strArray[k]; for (int j = 0; j < rows[i].Cells.Count; j++) { if (rows[i].Cells[j].Column.Key.Equals(columnKey)) { if (isMsc) { if (rows[i].Cells[j].Text.Trim() == "") { if (columnKey == "STDMAX") { content += "; "; } break; } if (columnKey == "STDMAX") { content += rows[i].Cells[j].Text + "; "; } else { if (columnKey.Contains("SIGN") || columnKey == "CHEM_FORMULA") { content += " " + rows[i].Cells[j].Text; } else { content += rows[i].Cells[j].Text; } } } else { if (rows[i].Cells[j].Text.Trim() == "") { if (columnKey == "STDMEMO1") { content += "; "; } break; } if (columnKey == "STDMEMO1") { content += " " + rows[i].Cells[j].Text + "; "; } else { if (columnKey.Contains("SIGN") || columnKey == "CHEM_FORMULA") { content += " " + rows[i].Cells[j].Text; } else { content += rows[i].Cells[j].Text; } } } break; } } } } return content; } /// /// 获取UltraGrid所有字段组成的字符串 /// /// /// public static string GetSpecUltraGridData(UltraGrid ug, string[] strArray) { string content = ""; if (ug.Rows.Count == 0) { return content; } for (int i = 0; i < ug.Rows.Count; i++) { if (ug.Rows[i].GetValue("CHC") == "False" && ug.Rows[i].GetValue("VALIDFLAG") == "") continue; if (content != "") { content += "\r\n "; } for (int k = 0; k < strArray.Length; k++) { string columnKey = strArray[k]; for (int j = 0; j < ug.Rows[i].Cells.Count; j++) { if (ug.Rows[i].Cells[j].Column.Key.Equals(columnKey)) { if (ug.Rows[i].Cells[j].Text.Trim() == "") break; string value = ug.Rows[i].Cells[j].Text; if (columnKey == "STD_MIN_VAL1" || columnKey == "STD_MAX_VAL1" || columnKey == "STD_MIN_VAL" || columnKey == "STD_MAX_VAL") { value = value + "mm"; } else if (columnKey == "STD_MIN_PERCENT1" || columnKey == "STD_MAX_PERCENT1" || columnKey == "STD_MIN_PERCENT" || columnKey == "STD_MAX_PERCENT") { value = value + "%"; } else if (columnKey == "STD_MIN_FORMULA_V") { int valueCnt = 0; if (ug.Rows[i].GetValue("STD_MIN_PERCENT") != "") { valueCnt++; } if(ug.Rows[i].GetValue("STD_MIN_VAL") != "") { valueCnt++; } if(ug.Rows[i].GetValue("STD_MIN_FORMULA") != "") { valueCnt++; } if (valueCnt > 1) { if (ug.Rows[i].GetValue(columnKey) == "True") { value = "取最小值"; } else if (ug.Rows[i].GetValue("STD_MAX_FORMULA_V") == "True") { value = "取最大值"; } else { break; } } else { break; } } else if (columnKey == "STD_MIN_FORMULA_V1") { int valueCnt = 0; if (ug.Rows[i].GetValue("STD_MIN_PERCENT1") != "") { valueCnt++; } if (ug.Rows[i].GetValue("STD_MIN_VAL1") != "") { valueCnt++; } if (valueCnt > 1) { if (ug.Rows[i].GetValue(columnKey) == "True") { value = "取最小值"; } else if (ug.Rows[i].GetValue("STD_MAX_FORMULA_V1") == "True") { value = "取最大值"; } else { break; } } else { break; } } content += value + "; "; break; } } } } return content; } private void ultraGrid6_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid6.UpdateData(); //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'"); //if (drsTreeCustAlpha.Length > 0) //{ // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S") // { // e.Cell.Row.Cells["CHC"].Value = false; // MessageUtil.ShowWarning("评审通过不允许修改!"); // return; // } //} OrderSpecialInfoTool.setCanEdit(e); if (e.Cell.Column.Key.Equals("STATION_DESC")) { string stadesc = e.Cell.Text; DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryStationCodeId", new Object[] { stadesc }, _ob); if (dt != null && dt.Rows.Count > 0) { ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_DESC_C"].Value = dt.Rows[0]["PROCESS_DESC_C"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_CDOE_C"].Value = dt.Rows[0]["PROCESS_CODE_C"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_CODE"].Value = dt.Rows[0]["STATION_CODE"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_CDOE"].Value = dt.Rows[0]["PROCESS_CODE"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_DESC"].Value = dt.Rows[0]["PROCESS_DESC"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_CODE"].Value = dt.Rows[0]["STATION_CODE"].ToString(); ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_DESC"].Value = dt.Rows[0]["STATION_DESC"].ToString(); } } else { ultraGrid6.UpdateData(); OrderSpecialInfoTool.setCanEdit(e); } } private void ultraGrid6_AfterCellActivate(object sender, EventArgs e) { //ultraGrid6.UpdateData(); //if (e.Cell.Column.Key.Equals("STATION_DESC")) //{ // DataTable specInfo = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryStationCode", new Object[] { }, ob); // for (int i = 0; i < specInfo.Rows.Count; i++) // { // if (e.Cell.Value.ToString().Equals(specInfo.Rows[i]["STATION_CODE"].ToString())) // { // //未写完,需要自动给二级工序赋值。 // } // } //} } private void ultraTree_AfterActivate(object sender, NodeEventArgs e) { if (e.TreeNode.Parent == null) return; ((Form)ultraTree.TopLevelControl).Cursor = Cursors.WaitCursor; //e.TreeNode.CheckedState = CheckState.Checked; string stdCode = e.TreeNode.Key.ToString(); string[] mscs = stdCode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string mscOrAlphaNo = mscs[0]; QueryChem(mscOrAlphaNo, e.TreeNode.Tag.ToString()); QueryMaterial(mscOrAlphaNo, e.TreeNode.Tag.ToString()); QueryTolerances(mscOrAlphaNo, e.TreeNode.Tag.ToString()); QueryDetection(mscOrAlphaNo, e.TreeNode.Tag.ToString()); QueryWater(mscOrAlphaNo, e.TreeNode.Tag.ToString()); QueryProcess(mscOrAlphaNo, e.TreeNode.Tag.ToString()); if (e.TreeNode.Tag.Equals("a")) { if (isPopup == false) { ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True; } _custAlphaNo = ""; _stdCode = stdCode; } else { if (isPopup == false) { DataTable dt = GetCustAlphaState(stdCode); string custAlphaState = dt.Rows[0]["CUST_ALPHA_STS"].ToString(); string reviewRs = dt.Rows[0]["REVIEW_F_RS"].ToString(); toolTip1.SetToolTip(ultraGrid1, reviewRs); toolTip1.SetToolTip(ultraGrid2, reviewRs); toolTip1.SetToolTip(ultraGrid3, reviewRs); toolTip1.SetToolTip(ultraGrid4, reviewRs); toolTip1.SetToolTip(ultraGrid5, reviewRs); toolTip1.SetToolTip(ultraGrid6, reviewRs); toolTip1.ToolTipTitle = "[" + stdCode + "]产品技术特殊要求失败原因:"; //toolTip1.Show(reviewRs, ultraTree, 9999999); toolTip1.ShowAlways = true; int custAlphaUseCount = GetCustAlphaUseCount(stdCode, _ordLnPk); if (custAlphaState == "S" || ((custAlphaState == "W" || custAlphaState == "F") && custAlphaUseCount >= 1)) { ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True; } else { ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True; } } _custAlphaNo = stdCode; _stdCode = ""; } ultraTextEditor1.Text = GetUltraData(); ((Form)ultraTree.TopLevelControl).Cursor = Cursors.Default; } private DataTable GetCustAlphaState(string custAlphaNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getCustAlphaState", new object[] { custAlphaNo }, Ob); return dt; } private int GetCustAlphaUseCount(string custAlphaNo, string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getCustAlphaUseCount", new object[] { custAlphaNo, ordLnPk }, _ob); return int.Parse(dt.Rows[0][0].ToString()); } private void ultraTree_BeforeActivate(object sender, CancelableNodeEventArgs e) { string type = ""; if (IsExitEdite(out type) == false) { if (type == "Cic") { if (MessageUtil.ShowYesNoAndQuestion("成分要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } else if (type == "Pic") { if (MessageUtil.ShowYesNoAndQuestion("理化要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } else if (type == "Sic") { if (MessageUtil.ShowYesNoAndQuestion("公差要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } else if (type == "Dic") { if (MessageUtil.ShowYesNoAndQuestion("探伤要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } else if (type == "Wic") { if (MessageUtil.ShowYesNoAndQuestion("水压要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } else if (type == "Gic") { if (MessageUtil.ShowYesNoAndQuestion("加工要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; } } } } private void ultraTree_BeforeCheck(object sender, BeforeCheckEventArgs e) { //if (IsExitEdite() == false) //{ // e.Cancel = true; //} } private bool IsExitEdite(out string type) { ultraGrid1.UpdateData(); ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); ultraGrid5.UpdateData(); ultraGrid6.UpdateData(); type = ""; int dtChg1 = dataTable1.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg1 > 0) { type = "Cic"; return false; } int dtChg2 = dataTable2.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg2 > 0) { type = "Pic"; return false; } int dtChg3 = dataTable3.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg3 > 0) { type = "Sic"; return false; } int dtChg4 = dataTable4.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg4 > 0) { type = "Dic"; return false; } int dtChg5 = dataTable5.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg5 > 0) { type = "Wic"; return false; } int dtChg6 = StdProcessc.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg6 > 0) { type = "Gic"; return false; } return true; } private void FrmOrderSpecialInfo_FormClosing(object sender, FormClosingEventArgs e) { //if (IsExitEdite() == false) //{ // e.Cancel = true; //} } private void ultraTree_DoubleClick(object sender, EventArgs e) { //if (ultraTextEditor1.Height == ultraTextEditor1Height) //{ // ultraTextEditor1.Height = 1; //} //else //{ // ultraTextEditor1.Height = ultraTextEditor1Height; //} panel1.Visible = !panel1.Visible; } //全选 private void ultraTextEditor1_KeyDown(object sender, KeyEventArgs e) { if (e.Control) { if (e.KeyCode == Keys.A) { ultraTextEditor1.SelectAll(); } } } private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME_MAX") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", null, _ob); dt.Columns["PHY_TYPE"].Caption = "检验大项"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE"); baseInfoPopup.Text = "检验大项"; baseInfoPopup.LabelTextBox1.Caption = "检验大项"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("PHY_NAME_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE")); ultraGrid2.ActiveRow.SetValue("PHY_CODE_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid2.ActiveRow.SetValue("PHY_NAME_MIN", ""); ultraGrid2.ActiveRow.SetValue("PHY_CODE_MIN", ""); ultraGrid2.ActiveRow.SetValue("PHY_NAME", ""); ultraGrid2.ActiveRow.SetValue("PHY_CODE", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", ""); } } else if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME_MIN") { string phyCodeMax = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX"); if (phyCodeMax == "") { MessageUtil.ShowWarning("请选检验大项!"); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new object[] { phyCodeMax }, _ob); dt.Columns["PHY_TYPE"].Caption = "试样组"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE"); baseInfoPopup.Text = "试样组"; baseInfoPopup.LabelTextBox1.Caption = "试样组"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("PHY_NAME_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE")); ultraGrid2.ActiveRow.SetValue("PHY_CODE_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid2.ActiveRow.SetValue("PHY_NAME", ""); ultraGrid2.ActiveRow.SetValue("PHY_CODE", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", ""); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", ""); } } else if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME") { string phyCodeMax = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX"); string phyCodeMin = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN"); if (phyCodeMax == "") { MessageUtil.ShowWarning("请选择检验大项"); ultraGrid2.ActiveRow.Cells["PHY_NAME_MAX"].Activate(); return; } else if (phyCodeMin == "") { MessageUtil.ShowWarning("请选择试样组"); ultraGrid2.ActiveRow.Cells["PHY_NAME_MIN"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy", new object[] { phyCodeMax, phyCodeMin }, _ob); dt.Columns["PHY_NAME"].Caption = "检验项"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_NAME", "PHY_CODE"); baseInfoPopup.Text = "检验项"; baseInfoPopup.LabelTextBox1.Caption = "检验项"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("PHY_NAME", baseInfoPopup.ChoicedRow.GetValue("PHY_NAME")); ultraGrid2.ActiveRow.SetValue("PHY_CODE", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", ""); } } else if (ultraGrid2.ActiveCell.Column.Key == "ITEM_NAME_F") { string phyTypeC = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN"); if (phyTypeC == "") { MessageUtil.ShowWarning("请选择试样组"); ultraGrid2.ActiveRow.Cells["PHY_NAME_MIN"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem", new object[] { phyTypeC }, _ob); dt.Columns["ITEM_NAME_F"].Caption = "试验方向"; dt.Columns["ITEM_NAME_C"].Caption = "试验尺寸"; if (ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001") { dt.DefaultView.RowFilter = "ITEM_CODE_C IS NULL AND ITEM_CODE_F IS NOT NULL"; } if (ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX") == "R0002") { dt.DefaultView.RowFilter = "ITEM_CODE_C IS NOT NULL AND ITEM_CODE_F IS NOT NULL"; } BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_F", "ITEM_CODE_F", "ITEM_CODE_C"); baseInfoPopup.Text = "试验选择"; baseInfoPopup.LabelTextBox1.Caption = "试验方向"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("ITEM_CODE_F") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_F") && a.GetValue("ITEM_CODE_C") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_S")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_F")); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_F")); ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_C")); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_C")); } } else if (ultraGrid2.ActiveCell.Column.Key == "ITEM_NAME_W") { string phyCode = ultraGrid2.ActiveRow.GetValue("PHY_CODE"); if (phyCode == "") { MessageUtil.ShowWarning("请选择检验项"); ultraGrid2.ActiveRow.Cells["PHY_NAME"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRPos", new object[] { phyCode }, _ob); dt.Columns["ITEM_NAME_W"].Caption = "试验温度"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_W", "ITEM_CODE_W"); baseInfoPopup.Text = "试验选择"; baseInfoPopup.LabelTextBox1.Caption = "试验温度"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("ITEM_CODE_W") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_W")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_W")); ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_W")); } } } private void ultraTextEditor4_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (ultraGrid4.ActiveCell.Column.Key == "STD_DESC1") { var row = ultraGrid4.ActiveRow; if (row.GetValue("PHY_CODE") == "") { MessageUtil.ShowWarning("请选择探伤项!"); row.Cells["PHY_CODE"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.DAL.ComBaseDetectionRltDAL.QueryStdBaseInfo", new object[] { row.GetValue("PHY_CODE") }, _ob); dt.Columns["STD_DESC"].Caption = "参考标准"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "STD_DESC", "PHY_CODE", "PHY_NAME", "STD_CODE", "LV_CODE", "LV_DESC", "ID"); baseInfoPopup.Text = "参考标准"; baseInfoPopup.LabelTextBox1.Caption = "参考标准"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("STD_CODE") == ultraGrid4.ActiveRow.GetValue("STD_CODE1")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid4.ActiveRow.SetValue("STD_DESC1", baseInfoPopup.ChoicedRow.GetValue("STD_DESC")); ultraGrid4.ActiveRow.SetValue("STD_CODE1", baseInfoPopup.ChoicedRow.GetValue("STD_CODE")); ultraGrid4.ActiveRow.Cells["LV_DESC1"].Value = ""; ultraGrid4.ActiveRow.Cells["LV_CODE1"].Value = ""; } } else if (ultraGrid4.ActiveCell.Column.Key == "LV_DESC1") { var row = ultraGrid4.ActiveRow; if (row.GetValue("STD_CODE1") == "") { MessageUtil.ShowWarning("请选择参考标准!"); row.Cells["STD_CODE1"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.DAL.ComBaseDetectionRltDAL.QueryLvBaseInfo", new object[] { row.GetValue("STD_CODE1") }, _ob); dt.Columns["LV_DESC"].Caption = "探伤级别"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "LV_DESC", "PHY_CODE", "PHY_NAME", "STD_DESC", "STD_CODE", "LV_CODE", "ID"); baseInfoPopup.Text = "探伤级别"; baseInfoPopup.LabelTextBox1.Caption = "探伤级别"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("LV_CODE") == ultraGrid4.ActiveRow.GetValue("LV_CODE1")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid4.ActiveRow.SetValue("LV_DESC1", baseInfoPopup.ChoicedRow.GetValue("LV_DESC")); ultraGrid4.ActiveRow.SetValue("LV_CODE1", baseInfoPopup.ChoicedRow.GetValue("LV_CODE")); } } ultraGrid4.UpdateData(); } } public class FrmOrderSpecialInfoEventArgs : EventArgs { /// /// 特殊要求dataTable /// private DataSet _dataSet; public DataSet DataSet { get { return _dataSet; } set { _dataSet = value; } } /// /// 所有界面数据组成的字符串 /// private string description; /// /// 客户Alpha编码 /// private string custAlphaNo; public string CustAlphaNo { get { return custAlphaNo; } set { custAlphaNo = value; } } public string Description { get { return description; } set { description = value; } } private string msc; /// /// MSC /// public string Msc { get { return msc; } set { msc = value; } } } }