using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Data; using System.Data.Common; using GThinking.N_CONTROL; using GThinking.N_WORKFLOW; using GThinking.N_PUBLIC; using GThinking.N_MODEL.Dialog; using GThinking.N_MISPRO.Utility; using System.Web.Script; using System.Text; using GThinking.N_PUBLIC2; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; using System.Text.RegularExpressions; using GThinking.N_MISPRO.TableCache; using System.Globalization; namespace GThinking.N_XLXSBJ { public partial class XLBJD_WBBJDMXList : OperationBase { XLBJD_WBBJDMXEntity entity = new XLBJD_WBBJDMXEntity(); string sWBBJDID = ""; string sSELBJDID = ""; // 为了保持与列表形式一致 string sXLBJDID = ""; List lstXLXHID = new List(); List lstXLGGID = new List(); List lstDYDJID = new List(); List lstBJXHList = new List(); Dictionary dicXLWBBJDXHDZB = new Dictionary(); public static List lstCPXXHZ = new List(); public static List lstXLXHHZ = new List(); public static Dictionary dicXLXHKZHZ = new Dictionary(); int flag = 0; private string sXLJGU007 = ""; private string sBJSJLY = ""; #region Page类事件继承 protected void Page_Load(object sender, EventArgs e) { base.UMID = 100860043; base.UMName = "外部线缆产品导入"; base.Tabs = Tab; base.CurMaster = Master; this.PageWidth = 1000; this.PageHeight = 600; AddListSetMap(new ListSet(XQXX.ID, null, QueryGrid, entity, UPXQXX)); base.CustomPageSize = CMISproConvert.StrToInt(GetOption(100860043, "BJU069")); //A|× B|* sXLJGU007 = GetOption(102579000, "XLJGU007"); //接收参数导入或者复制内容 if (PageParam.ContainsExtKey("First_Open")) { if (PageParam.GetExtRawString("First_Open").Equals("First_Open")) { if (!IsPostBack) { try { sWBBJDID = PageParam.GetRTrimString("WBBJDID"); txtWBBJDID.Text = sWBBJDID; PretreatmentData(); btnBZDY_Click(null, null); } catch { } } } } else if (!IsPostBack) { sWBBJDID = PageParam.GetRTrimString("WBBJDID"); txtWBBJDID.Text = sWBBJDID; } XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (pzxx.XLXSBJPZ_QYBJCPFZJS == "Y") { QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLXHID").EditType = TEditType.etDropList; QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLGGID").EditType = TEditType.etDropList; Dictionary dicBJFLXX = GetBJFLXX(PageParam.GetRTrimString("BJFLID")); string sXHGGYMHJS = dicBJFLXX["XHGGYMHJS"]; if (sXHGGYMHJS.Equals("Y")) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLXHID").SearchModle = TSearchModle.R; QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLGGID").SearchModle = TSearchModle.R; } else { QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLXHID").SearchModle = TSearchModle.A; QueryGrid.FindColumnByFieldName("XLWBBJDMX_XLGGID").SearchModle = TSearchModle.A; } } QueryGrid.FindColumnByFieldName("XLWBBJDMX_ZHCPMLMC").Visible = false; QueryGrid.FindColumnByFieldName("XLWBBJDMX_CPMLMC").Visible = false; if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSCPML == "Z") { QueryGrid.FindColumnByFieldName("XLWBBJDMX_ZHCPMLMC").Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_CPMLMC").Visible = true; } QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDID").Visible = false; QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDWLMC").Visible = false; QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDMS").Visible = false; if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSPWQD == "Y") { QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDID").Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDWLMC").Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_PWQDMS").Visible = true; } QueryGrid.FindColumnByFieldName("XLWBBJDMX_GWWLBM").Visible = false; if (XLBJDUtils.ExistXLXSBJGWWL()) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_GWWLBM").Visible = true; } int iBJU030 = CMISproConvert.StrToInt(GetOption(100860000, "BJU030")); if (iBJU030 >= 0) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_BJSL").NumberIsQuantity = false; QueryGrid.FindColumnByFieldName("XLWBBJDMX_BJSL").NumberDecimalPlace = iBJU030; } base.InitPage(); if (!PageParam.GetRTrimString("DRGZ").Equals("")) { btnBJCPJX.Visible = false; btnBJCPJX2.Visible = true; } else { btnBJCPJX.Visible = true; btnBJCPJX2.Visible = false; } if (PageParam.GetRTrimString("YXLRBJCP").Equals("N")) { btnDRBJDMX.Enabled = false; } else { btnDRBJDMX.Enabled = true; } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSCPML == "Z") { lblZHCPML.Visible = true; txtZHCPML.Visible = true; } else { lblZHCPML.Visible = false; txtZHCPML.Visible = false; } if (XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_JLTZHCP == "Y") { QueryGrid.FindColumnByFieldName("XLWBBJDMX_XDBZ").Visible = true; linkXD.Visible = true; cbxXD.Visible = true; } else { QueryGrid.FindColumnByFieldName("XLWBBJDMX_XDBZ").Visible = false; linkXD.Visible = false; cbxXD.Visible = false; } if (GetOption(100860043, "BJU028") == "Y") linkXLBZID.Enabled = false; if (!string.IsNullOrEmpty(GetOption(100860000, "BJU046"))) { if (GetOption(100860000, "BJU046").Contains(CurSession.UserId)) { btnXHTZ.Visible = true; } else { btnXHTZ.Visible = false; } } //this.Master.BtnReportVisible = false; Master.BtnOK.Visible = false; Master.BtnCancel.Visible = false; QueryGrid.EnabledToolBar = false; QueryGrid.ReadOnly = false; sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sXLBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); sSELBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); //处理表格列 InitGrid(sWBBJDID, sSELBJDID); if (!IsPostBack) { Master_OnQuery(); GridDataBind(); } if (UseDxthEquivalentRules) { btnXHTZ.Visible = false; btnGGTZ.Visible = false; btnXHGG.Visible = false; btnXLBJDXDXYTH.Visible = true; } else { btnGGTZ.Visible = true; btnXHGG.Visible = true; btnXLBJDXDXYTH.Visible = false; } } /// /// 外部报价单预处理 /// 预处理原则1:只预处理处理报价产品有值,型号或者规格其一有值的, /// 预处理原则2:原则1中,处理结束,还原型号或者规格其一有值的。 /// 预处理原则3:报价产品无值,型号规格有值,需要补全报价产品 /// private void PretreatmentData() { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); TSQL tSQL = new TSQL(dberp); SQL.Clear(); tSQL.Clear(); tSQL.Clear(); tSQL.Add("SELECT XLWBBJDML_YCL FROM XLWBBJDML where 1=1 "); tSQL.Add(" and XLWBBJDML_WBBJDID=:pWBBJDID and XLWBBJDML_BJDID=:pBJDID "); tSQL.ParamByName("pWBBJDID").Value = sWBBJDID; tSQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet dsXLWBBJDML = dberp.OpenDataSet(tSQL); if (dsXLWBBJDML.Tables[0].Rows.Count > 0) { if (dsXLWBBJDML.Tables[0].Rows[0][0].ToString().Trim().Equals("Y")) { return; } } else { return; } //先对报价产品进行处理 tSQL.Clear(); tSQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); tSQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); tSQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ,' ' as BZ_DYDJID, ");//标准电压等级ID tSQL.Add(" 'N' AS XLWBBJDMX_XDBZ,' ' AS OLD_XLXHID,' ' AS OLD_XLGGID,' ' AS OLD_DYDJID, "); tSQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); tSQL.Add(" from XLWBBJDMX "); tSQL.Add(" where 1=1 "); tSQL.Add(" and (isnull(XLWBBJDMX_BJCP, ' ') <>' ' and (isnull(XLWBBJDMX_XLXHID, ' ') = ' ' or isnull(XLWBBJDMX_XLGGID, ' ') = ' ')) "); tSQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); tSQL.ParamByName("pWBBJDID").Value = sWBBJDID; tSQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(tSQL); bool bBJCP = false; if (ds.Tables[0].Rows.Count == 0) { bBJCP = true; } List lstXLXHTZ = new List(); lstXLXHTZ.Clear(); dicXLWBBJDXHDZB.Clear(); if (!bBJCP) { List lstXLGGTZ = new List(); lstXLGGTZ.Clear(); GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); GetXLGGIDList(dberp, SQL, ref lstXLGGID); GetDYDJIDList(dberp, SQL, ref lstDYDJID); if (pzxx.XLXSBJPZ_THSFTGKBXH == "Y") GetBJXHList(dberp, SQL, PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), ref lstBJXHList); else lstBJXHList.Clear(); GetXLWBBJDXHDZB(dberp, SQL, ref dicXLWBBJDXHDZB); DataSet dsXLWBBJDANXX = new DataSet(); dsXLWBBJDANXX = GetXLWBBJDANXX("01"); for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { lstXLXHTZ.Add(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim()); } dsXLWBBJDANXX = GetXLWBBJDANXX("02"); for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { lstXLGGTZ.Add(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim()); } string sDRGZ = PageParam.GetRTrimString("DRGZ"); if (sDRGZ.Equals("")) JXDYDJ(ref ds); //获取颜色 if (pzxx.XLXSBJPZ_WBBJDJXYS.Equals("Y")) TZBJCP_5(ref ds); if (lstXLGGTZ.Count == 0) { TZBJCP_1(ref ds); } else if (lstXLGGTZ.Contains("7")) { TZBJCP_1(ref ds); } if (lstXLGGTZ.Contains("B")) { TZBJCP_4(ref ds); } if (lstXLXHTZ.Count == 0) { TZBJCP_2(ref ds); } else if (lstXLXHTZ.Contains("6")) { TZBJCP_2(ref ds); } TZBJCP_3(ref ds); TZBJCP_0(ref ds); if (sDRGZ.Equals("")) Analysis_Common(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); else if (sDRGZ.Equals("BYDGZ")) Analysis_BYDCP(ref ds, sDRGZ,lstXLXHID, lstXLGGID, lstDYDJID); else if (sDRGZ.Contains("GWGZ")) Analysis_GWCP(ref ds, sDRGZ, lstXLXHID, lstXLGGID, lstDYDJID); if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) JLYXHGGDY(ref ds); //该处为型号新规范化调整---后续如果能够收集一个集合最佳 /* dic.Add("0", "NH-替换为N-"); dic.Add("1", "ZR-替换为ZC-"); dic.Add("2", "ZN-替换为ZCN-"); dic.Add("3", "WDZ-替换为WDZC-"); dic.Add("4", "WDZN-替换为WDZCN-"); dic.Add("5", "去除空格"); dic.Add("6", "去除中文"); dic.Add("7", "型号替换"); */ if (ShouldRunPageTzxhTzggPreDxth()) { if (lstXLXHTZ.Count == 0) { Dictionary dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS(); foreach (KeyValuePair kvp in dicMRZX) { if (kvp.Key.Equals("0")) { TZXH_0(lstBJXHList, ref ds); } if (kvp.Key.Equals("1")) { TZXH_1(lstBJXHList, ref ds); } if (kvp.Key.Equals("2")) { TZXH_2(lstBJXHList, ref ds); } if (kvp.Key.Equals("3")) { TZXH_3(lstBJXHList, ref ds); } if (kvp.Key.Equals("4")) { TZXH_4(lstBJXHList, ref ds); } if (kvp.Key.Equals("8")) { TZXH_8(lstBJXHList, ref ds); } if (kvp.Key.Equals("9")) { TZXH_9(lstBJXHList, ref ds); } if (kvp.Key.Equals("A")) { TZXH_A(lstBJXHList, ref ds); } if (kvp.Key.Equals("B")) { TZXH_B(lstBJXHList, ref ds); } if (kvp.Key.Equals("C")) { TZXH_C(lstBJXHList, ref ds); } if (kvp.Key.Equals("D")) { TZXH_D(lstBJXHList, ref ds); } if (kvp.Key.Equals("7")) { TZXH_7(ref ds, dicXLWBBJDXHDZB); } } } else { //依照配置顺序执行 for (int i = 0; i < lstXLXHTZ.Count; i++) { if (lstXLXHTZ[i].Equals("0")) { TZXH_0(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("1")) { TZXH_1(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("2")) { TZXH_2(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("3")) { TZXH_3(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("4")) { TZXH_4(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("8")) { TZXH_8(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("9")) { TZXH_9(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("A")) { TZXH_A(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("B")) { TZXH_B(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("C")) { TZXH_C(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("D")) { TZXH_D(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("E")) { TZXH_E(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("F")) { TZXH_F(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("G")) { TZXH_G(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("H")) { TZXH_H(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("I")) { TZXH_I(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("J")) { TZXH_J(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("K")) { TZXH_K(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("L")) { TZXH_L(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("M")) { TZXH_M(lstBJXHList, ref ds); } //自定义替换规则 if (lstXLXHTZ[i].Contains("N") && lstXLXHTZ[i].Length > 1) { TZXH_ZDY(lstBJXHList, lstXLXHTZ[i], ref ds); } if (lstXLXHTZ[i].Equals("7")) { TZXH_7(ref ds, dicXLWBBJDXHDZB); } } } //该处为规格去除不规范调整,涉及情况较为复杂 /* --btnGGTZ.Nodes.Add(new gtTreeNode("0", "×替换为*")); --btnGGTZ.Nodes.Add(new gtTreeNode("1", "去除非数值字符")); --btnGGTZ.Nodes.Add(new gtTreeNode("2", "1*截面")); --btnGGTZ.Nodes.Add(new gtTreeNode("3", "x/X替换为*")); --btnGGTZ.Nodes.Add(new gtTreeNode("4", "去除.0")); --btnGGTZ.Nodes.Add(new gtTreeNode("5", "*替换为×")); --btnGGTZ.Nodes.Add(new gtTreeNode("6", "x/X替换为×")); --btnGGTZ.Nodes.Add(new gtTreeNode("7", "去除mm2、mm")); --btnGGTZ.Nodes.Add(new gtTreeNode("8", "E或者PE替换为1*")); --btnGGTZ.Nodes.Add(new gtTreeNode("9", "去除空格")); */ if (lstXLGGTZ.Count == 0) { //目前支持0-9 TZGG_7(ref ds); TZGG_9(ref ds); TZGG_8(ref ds); //3和6执行一个即可。 TZGG_3(ref ds); TZGG_1(ref ds); TZGG_2(ref ds); TZGG_4(ref ds); } else { //依照配置顺序执行 for (int i = 0; i < lstXLGGTZ.Count; i++) { if (lstXLGGTZ[i].Equals("7")) { TZGG_7(ref ds); } if (lstXLGGTZ[i].Equals("9")) { TZGG_9(ref ds); } if (lstXLGGTZ[i].Equals("8")) { TZGG_8(ref ds); } if (sXLJGU007.Equals("B")) { if (lstXLGGTZ[i].Equals("3")) { TZGG_3(ref ds); } } else { if (lstXLGGTZ[i].Equals("6")) { TZGG_6(ref ds); } } if (lstXLGGTZ[i].Equals("1")) { TZGG_1(ref ds); } if (lstXLGGTZ[i].Equals("2")) { TZGG_2(ref ds); } if (lstXLGGTZ[i].Equals("4")) { TZGG_4(ref ds); } if (lstXLGGTZ[i].Equals("A")) { TZGG_A(ref ds); } if (lstXLGGTZ[i].Equals("B")) { TZGG_B(ref ds); } } } //A|× B|* if (sXLJGU007.Equals("B")) { TZGG_0(ref ds); } else { TZGG_5(ref ds); } } //使用标准电压等级替换外部报价单明细电压等级 DYDJTH(ref ds); // 规格/型号:useDxthEquivalent 为 true 时走迁入等效,否则 GGZZTH + XHZZTH ApplyGgXhOrDxth(ref ds, UseDxthEquivalentRules); //处理特殊电压替换(AC10kV) TSDYTH(ref ds); //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); //使用ds更新外部报价单明细数据 UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); //预处理原则2 RecoverData(dberp, SQL, sWBBJDID, sSELBJDID); } tSQL.Clear(); tSQL.Add("select XLWBBJDMX_XLXHID,XLWBBJDMX_DYDJID,XLWBBJDMX_DRHH, "); tSQL.Add(" XLWBBJDMX_XDBZ,' ' AS OLD_XLXHID,' ' AS XLWBBJDMX_XLGGID,' ' AS OLD_XLGGID,' ' AS OLD_DYDJID "); tSQL.Add(" from XLWBBJDMX "); tSQL.Add(" where 1=1 "); tSQL.Add(" and isnull(XLWBBJDMX_BJCP, ' ') =' ' and isnull(XLWBBJDMX_XLXHID, ' ') <> ' ' "); tSQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); tSQL.ParamByName("pWBBJDID").Value = sWBBJDID; tSQL.ParamByName("pBJDID").Value = sSELBJDID; ds = dberp.OpenDataSet(tSQL); if (ds.Tables[0].Rows.Count > 0) { if (bBJCP) { GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); GetDYDJIDList(dberp, SQL, ref lstDYDJID); if (pzxx.XLXSBJPZ_THSFTGKBXH == "Y") GetBJXHList(dberp, SQL, PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), ref lstBJXHList); else lstBJXHList.Clear(); GetXLWBBJDXHDZB(dberp, SQL, ref dicXLWBBJDXHDZB); DataSet dsXLWBBJDANXX = new DataSet(); dsXLWBBJDANXX = GetXLWBBJDANXX("01"); for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { lstXLXHTZ.Add(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim()); } } bBJCP = false; //解析型号 Dictionary dicDYDJTH = new Dictionary(StringComparer.OrdinalIgnoreCase); dicDYDJTH = XLWBBJDUtils.GetDYDJTH(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstXLXHID.Contains(sXLXHID.ToUpper()) && sXLXHID.LastIndexOf('-') > 0) { string sDYDJID = sXLXHID.Substring(sXLXHID.LastIndexOf('-') + 1).Trim(); if (dicDYDJTH.ContainsKey(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID.Substring(0, sXLXHID.LastIndexOf('-')).Trim(); if (ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim().Equals("")) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = dicDYDJTH[sDYDJID.ToUpper()]; } else if (lstDYDJID.Contains(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID.Substring(0,sXLXHID.LastIndexOf('-')).Trim(); if (ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim().Equals("")) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID.Replace("KV","kV"); } } } if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) JLYXHGGDY(ref ds); #region 型号替换 if (ShouldRunPageTzxhTzggPreDxth()) { if (lstXLXHTZ.Count == 0) { Dictionary dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS(); foreach (KeyValuePair kvp in dicMRZX) { if (kvp.Key.Equals("0")) { TZXH_0(lstBJXHList, ref ds); } if (kvp.Key.Equals("1")) { TZXH_1(lstBJXHList, ref ds); } if (kvp.Key.Equals("2")) { TZXH_2(lstBJXHList, ref ds); } if (kvp.Key.Equals("3")) { TZXH_3(lstBJXHList, ref ds); } if (kvp.Key.Equals("4")) { TZXH_4(lstBJXHList, ref ds); } if (kvp.Key.Equals("8")) { TZXH_8(lstBJXHList, ref ds); } if (kvp.Key.Equals("9")) { TZXH_9(lstBJXHList, ref ds); } if (kvp.Key.Equals("A")) { TZXH_A(lstBJXHList, ref ds); } if (kvp.Key.Equals("B")) { TZXH_B(lstBJXHList, ref ds); } if (kvp.Key.Equals("C")) { TZXH_C(lstBJXHList, ref ds); } if (kvp.Key.Equals("D")) { TZXH_D(lstBJXHList, ref ds); } if (kvp.Key.Equals("7")) { TZXH_7(ref ds, dicXLWBBJDXHDZB); } } } else { //依照配置顺序执行 for (int i = 0; i < lstXLXHTZ.Count; i++) { if (lstXLXHTZ[i].Equals("0")) { TZXH_0(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("1")) { TZXH_1(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("2")) { TZXH_2(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("3")) { TZXH_3(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("4")) { TZXH_4(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("8")) { TZXH_8(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("9")) { TZXH_9(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("A")) { TZXH_A(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("B")) { TZXH_B(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("C")) { TZXH_C(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("D")) { TZXH_D(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("E")) { TZXH_E(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("F")) { TZXH_F(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("G")) { TZXH_G(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("H")) { TZXH_H(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("I")) { TZXH_I(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("J")) { TZXH_J(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("K")) { TZXH_K(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("L")) { TZXH_L(lstBJXHList, ref ds); } if (lstXLXHTZ[i].Equals("7")) { TZXH_7(ref ds, dicXLWBBJDXHDZB); } } } } #endregion // 型号:等效侧且模块开时已跳过上方 TZXH;此处再按 UseDxthEquivalentRules 走 XHZZTH 或迁入 TryApply ApplyXhOrDxth(ref ds, UseDxthEquivalentRules); //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); //使用ds更新外部报价单明细型号和电压 UpdateWBBJDXHDY(dberp, SQL, sWBBJDID, sSELBJDID, ds); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLWBBJDMX_Batch(dberp, CurSession, sWBBJDID); } if (!bBJCP) { //型号规格增加替换 SelectMatchForXLXHIDAndXLGGID(); //更新预处理字段为"Y" UpdateMLYCL(dberp, SQL, sWBBJDID, sSELBJDID, "Y"); // } //若启用国网物料编码则依据国网物料编码刷新要素 if (XLBJDUtils.ExistXLXSBJGWWL()) { GetGWWLBMYS(dberp, SQL, sWBBJDID, sSELBJDID, ref ds); UpdateCPYS(dberp, SQL, sWBBJDID, sSELBJDID, ds); } } #endregion #region 模板事件继承 protected override void Master_OnQuery() { //QueryGrid.CheckedRows = ""; IntiControl(); QueryAreaUpdate(); entity.sWBBJDID = sWBBJDID; entity.sBJDID = sSELBJDID; entity.sTargetBJDID = PageParam.GetRTrimString("BJDID").Trim(); entity.sJGBID = PageParam.GetRTrimString("JGBID").Trim(); entity.sJGCIDS = GetJGCIDS(PageParam.GetRTrimString("JGBID").Trim(), "JGB"); entity.sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (1 == flag) { entity.sXLXHID = ""; entity.sXLBZID = ""; entity.sDYDJID = ""; entity.sXLYSID = ""; entity.sJLDW = ""; entity.sXD = ""; entity.sWG = ""; entity.sBHFCX = ""; entity.sBJCP = ""; } else { //查询相关 entity.sXLXHID = cbxXLXHID.SelectedValue.Trim(); entity.sXLBZID = cbxXLBZID.SelectedValue.Trim(); entity.sDYDJID = cbxDYDJID.SelectedValue.Trim(); entity.sXLYSID = cbxXLYSID.SelectedValue.Trim(); entity.sJLDW = cbxJLDW.SelectedValue.Trim(); entity.sXD = cbxXD.SelectedValue.Trim(); entity.sWG = cbxWG.SelectedValue.Trim(); entity.sBHFCX = cbxBHFCX.SelectedValue.Trim(); entity.sBJCP = txtBJCP.Text.Trim(); entity.sZHCPML = txtZHCPML.Text.Trim(); } base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool DataLogicValid() { bool bResult = base.DataLogicValid(); return true; } protected override bool Master_OnOK() { bool bResult = base.Master_OnOK(); if (!bResult) return false; return bResult; } #endregion #region 自定义函数 private const int DxthModuleUmid = 102373006; private bool UseDxthEquivalentRules { get { return XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_QYBJDXTH.Trim().Equals("Y"); } } private sealed class DxthLineInfo { public string XLWBBJDMX_WBBJDID; public double XLWBBJDMX_DRHH; public string XLWBBJDMX_BJDID; public string XLWBBJDMX_BJCP; public string XLWBBJDMX_XLXHID; public string XLWBBJDMX_XLGGID; public string XLWBBJDMX_XLBZID; public string XLWBBJDMX_DYDJID; public string XLWBBJDMX_XLYSID; public string XLWBBJDMX_JLDW; public double XLWBBJDMX_BJSL; public double XLWBBJDMX_CPBJ; public string XLWBBJDMX_BZ; } private static bool DxthTableHasColumn(DataTable dt, string columnName) { return dt != null && dt.Columns.Contains(columnName); } private static string DxthCellTrim(DataRow row, string columnName) { if (row == null || row.Table == null || !DxthTableHasColumn(row.Table, columnName)) return string.Empty; if (row[columnName] == null || row[columnName] == DBNull.Value) return string.Empty; return row[columnName].ToString().Trim(); } private static DxthLineInfo RowToDxthLineInfo(DataRow row) { DxthLineInfo info = new DxthLineInfo(); if (row == null || row.Table == null) return info; info.XLWBBJDMX_WBBJDID = DxthCellTrim(row, "XLWBBJDMX_WBBJDID"); info.XLWBBJDMX_DRHH = CMISproConvert.StrToFloat(DxthCellTrim(row, "XLWBBJDMX_DRHH")); info.XLWBBJDMX_BJDID = DxthCellTrim(row, "XLWBBJDMX_BJDID"); info.XLWBBJDMX_BJCP = DxthCellTrim(row, "XLWBBJDMX_BJCP"); info.XLWBBJDMX_XLXHID = DxthCellTrim(row, "XLWBBJDMX_XLXHID"); info.XLWBBJDMX_XLGGID = DxthCellTrim(row, "XLWBBJDMX_XLGGID"); info.XLWBBJDMX_XLBZID = DxthCellTrim(row, "XLWBBJDMX_XLBZID"); info.XLWBBJDMX_DYDJID = DxthCellTrim(row, "XLWBBJDMX_DYDJID"); info.XLWBBJDMX_XLYSID = DxthCellTrim(row, "XLWBBJDMX_XLYSID"); info.XLWBBJDMX_JLDW = DxthCellTrim(row, "XLWBBJDMX_JLDW"); info.XLWBBJDMX_BJSL = CMISproConvert.StrToFloat(DxthCellTrim(row, "XLWBBJDMX_BJSL")); info.XLWBBJDMX_CPBJ = CMISproConvert.StrToFloat(DxthCellTrim(row, "XLWBBJDMX_CPBJ")); info.XLWBBJDMX_BZ = DxthCellTrim(row, "XLWBBJDMX_BZ"); return info; } private static void DxthLineInfoToRow(DxthLineInfo info, DataRow row) { if (info == null || row == null || row.Table == null) return; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_WBBJDID")) row["XLWBBJDMX_WBBJDID"] = info.XLWBBJDMX_WBBJDID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_DRHH")) row["XLWBBJDMX_DRHH"] = info.XLWBBJDMX_DRHH; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_BJDID")) row["XLWBBJDMX_BJDID"] = info.XLWBBJDMX_BJDID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_BJCP")) row["XLWBBJDMX_BJCP"] = info.XLWBBJDMX_BJCP ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_XLXHID")) row["XLWBBJDMX_XLXHID"] = info.XLWBBJDMX_XLXHID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_XLGGID")) row["XLWBBJDMX_XLGGID"] = info.XLWBBJDMX_XLGGID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_XLBZID")) row["XLWBBJDMX_XLBZID"] = info.XLWBBJDMX_XLBZID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_DYDJID")) row["XLWBBJDMX_DYDJID"] = info.XLWBBJDMX_DYDJID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_XLYSID")) row["XLWBBJDMX_XLYSID"] = info.XLWBBJDMX_XLYSID ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_JLDW")) row["XLWBBJDMX_JLDW"] = info.XLWBBJDMX_JLDW ?? string.Empty; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_BJSL")) row["XLWBBJDMX_BJSL"] = info.XLWBBJDMX_BJSL; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_CPBJ")) row["XLWBBJDMX_CPBJ"] = info.XLWBBJDMX_CPBJ; if (DxthTableHasColumn(row.Table, "XLWBBJDMX_BZ")) row["XLWBBJDMX_BZ"] = info.XLWBBJDMX_BZ ?? string.Empty; } private static string DxthRemoveChinese(string input) { if (input == null) input = string.Empty; StringBuilder sb = new StringBuilder(); foreach (char c in input) { if ((c < '\u4E00' || c > '\u9FFF')) sb.Append(c); } return sb.ToString(); } private static bool DxthIsNumeric(string value) { if (value == null) return false; return Regex.IsMatch(value, @"^[+-]?\d*[.]?\d*$"); } private static void ApplyDxth(DxthLineInfo info, DataTable ycl, DataTable dzqd) { #region 预处理 if (ycl != null && ycl.Rows.Count > 0) { for (int i = 0; i < ycl.Rows.Count; i++) { string sYCLLX = ycl.Rows[i]["XLXSBJDXYCLGZ_YCLLX"].ToString().Trim(); string sYCLGZ = ycl.Rows[i]["XLXSBJDXYCLGZ_YCLGZ"].ToString().Trim(); if (sYCLLX.Equals("XHYCL")) { if (sYCLGZ.Equals("去除空格")) { info.XLWBBJDMX_XLXHID = info.XLWBBJDMX_XLXHID.Replace(" ", ""); } else if (sYCLGZ.Equals("去除中文")) { info.XLWBBJDMX_XLXHID = DxthRemoveChinese(info.XLWBBJDMX_XLXHID); } else if (sYCLGZ.Equals("小写字母全部转换为大写字母")) { info.XLWBBJDMX_XLXHID = info.XLWBBJDMX_XLXHID.ToUpper(); } } else if (sYCLLX.Equals("GGYCL")) { if (sYCLGZ.Equals("去除空格")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace(" ", ""); } else if (sYCLGZ.Equals("去除非数值字符")) { string sXLGGID = info.XLWBBJDMX_XLGGID; if (sXLGGID.Contains("-")) { sXLGGID = sXLGGID.Substring(0, sXLGGID.IndexOf('-')); } sXLGGID = sXLGGID.Replace('+', '+').Replace('×', '*').Replace('m', 'M').Replace("MM2", "").Replace("MM", ""); char[] chr = sXLGGID.ToCharArray(); string sTmpXLGGID = ""; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9') || chr[j] == '/' || chr[j] == '*' || chr[j] == '+' || chr[j] == '.') { sTmpXLGGID += chr[j]; } } if (sXLGGID.Replace("(", "(").Replace(")", ")").EndsWith("(B)")) { info.XLWBBJDMX_XLGGID = sTmpXLGGID.Replace('×', '*') + "(B)"; } else if (sXLGGID.Replace("(", "(").Replace(")", ")").EndsWith("(F)")) { info.XLWBBJDMX_XLGGID = sTmpXLGGID.Replace('×', '*') + "(F)"; } else info.XLWBBJDMX_XLGGID = sTmpXLGGID.Replace('×', '*'); } else if (sYCLGZ.Equals("去除mm2,mm、E或者PE替换为或*")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace("mm2", ""); info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace("mm", ""); info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace("MM2", ""); info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace("MM", ""); if (info.XLWBBJDMX_XLGGID.Contains("E")) { string stmpXLGGID = info.XLWBBJDMX_XLGGID.Replace("PE*", "1*").Replace("PE×", "1×").Replace("E*", "1*").Replace("E×", "1×").Replace("PE", "1*").Replace("E", "1*"); string[] GGList = stmpXLGGID.Split('+'); if (GGList.Length > 1) { bool bHB1 = true; bool bHB2 = true; for (int j = 0; j < GGList.Length; j++) { if (GGList[j].Split('*').Length != 2) bHB1 = false; if (GGList[j].Split('×').Length != 2) bHB2 = false; } if (bHB1 || bHB2) { string tmpGG = ""; for (int j = 1; j < GGList.Length; j++) { if (bHB1) { if (GGList[j].Split('*')[1].Trim().Equals(GGList[j - 1].Split('*')[1].Trim())) { GGList[j] = (CMISproConvert.StrToFloat(GGList[j].Split('*')[0].Trim()) + CMISproConvert.StrToFloat(GGList[j - 1].Split('*')[0].Trim())).ToString() + "*" + GGList[j].Split('*')[1].Trim(); GGList[j - 1] = ""; } } else if (bHB2) { if (GGList[j].Split('×')[1].Trim().Equals(GGList[j - 1].Split('×')[1].Trim())) { GGList[j] = (CMISproConvert.StrToFloat(GGList[j].Split('×')[0].Trim()) + CMISproConvert.StrToFloat(GGList[j - 1].Split('×')[0].Trim())).ToString() + "×" + GGList[j].Split('×')[1].Trim(); GGList[j - 1] = ""; } } } for (int j = 0; j < GGList.Length; j++) { if (!GGList[j].Trim().Equals("")) tmpGG = tmpGG + GGList[j].Trim() + "+"; } tmpGG = tmpGG.TrimEnd('+'); info.XLWBBJDMX_XLGGID = tmpGG; } else { info.XLWBBJDMX_XLGGID = stmpXLGGID; } } else { info.XLWBBJDMX_XLGGID = stmpXLGGID; } } } else if (sYCLGZ.Equals("去除.0")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace(".0", ""); } else if (sYCLGZ.Equals("x/X替换为×")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace('x', '×').Replace('X', '×'); } else if (sYCLGZ.Equals("x/X替换为*")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace('x', '*').Replace('X', '*'); } else if (sYCLGZ.Equals("1*截面")) { string sXLGGID = info.XLWBBJDMX_XLGGID.ToString().Trim(); if (sXLGGID.Contains("*") || sXLGGID.Contains("+") || sXLGGID.Contains("×")) { if (sXLGGID.Contains("+")) { string[] sTemp = sXLGGID.ToString().Trim().Split(new char[] { '+' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTemp.Length; m++) { if (!sTemp[m].ToString().Trim().Contains("*") && !sTemp[m].ToString().Trim().Contains("×") && !sTemp[m].ToString().Trim().Equals("")) { sTemp[m] = "1*" + sTemp[m]; } } sXLGGID = ""; for (int m = 0; m < sTemp.Length; m++) { sXLGGID = sXLGGID + "+" + sTemp[m]; } info.XLWBBJDMX_XLGGID = sXLGGID.TrimStart('+').TrimEnd('+'); } } else { if (!sXLGGID.Equals("")) { if (DxthIsNumeric(sXLGGID.Replace("(", "(").Replace(")", ")").Replace("(B)", "").Replace("(F)", ""))) { info.XLWBBJDMX_XLGGID = "1*" + sXLGGID; } } } } else if (sYCLGZ.Equals("()替换为()")) { info.XLWBBJDMX_XLGGID = info.XLWBBJDMX_XLGGID.Replace("(", "(").Replace(")", ")"); } } } } #endregion #region 替换规则 if (dzqd != null) { for (int i = 0; i < dzqd.Rows.Count; i++) { string sTHLX = dzqd.Rows[i]["XLXSBJDXTHDZQD_THLX"].ToString().Trim(); string sTHQXHZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THQXHZF"].ToString().Trim(); string sTHHXHZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THHXHZF"].ToString().Trim(); string sTHQGGZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THQGGZF"].ToString().Trim(); string sTHHGGZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THHGGZF"].ToString().Trim(); string sTHQDYDJZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THQDYDJZF"].ToString().Trim(); string sTHHDYDJZF = dzqd.Rows[i]["XLXSBJDXTHDZQD_THHDYDJZF"].ToString().Trim(); if (sTHLX.Equals("XHJQTH")) { if (info.XLWBBJDMX_XLXHID.Equals(sTHQXHZF)) { info.XLWBBJDMX_XLXHID = sTHHXHZF; } } else if (sTHLX.Equals("XHZZTH")) { info.XLWBBJDMX_XLXHID = Regex.Replace(info.XLWBBJDMX_XLXHID, sTHQXHZF, sTHHXHZF); } else if (sTHLX.Equals("GGZZTH")) { info.XLWBBJDMX_XLGGID = Regex.Replace(info.XLWBBJDMX_XLGGID, sTHQGGZF, sTHHGGZF); } else if (sTHLX.Equals("DYDJJQTH")) { if (info.XLWBBJDMX_DYDJID.Equals(sTHQDYDJZF)) { info.XLWBBJDMX_DYDJID = sTHHDYDJZF; } } else if (sTHLX.Equals("XHZZDYDJJQTHDYDJ")) { if (Regex.IsMatch(info.XLWBBJDMX_XLXHID, sTHQXHZF) && info.XLWBBJDMX_DYDJID == sTHQDYDJZF) { info.XLWBBJDMX_DYDJID = sTHHDYDJZF; } } else if (sTHLX.Equals("XHGGJQTH")) { if (info.XLWBBJDMX_XLXHID == sTHQXHZF && info.XLWBBJDMX_XLGGID == sTHQGGZF) { info.XLWBBJDMX_XLXHID = sTHHXHZF; info.XLWBBJDMX_XLGGID = sTHHGGZF; } } else if (sTHLX.Equals("XHGGDYDJJQTH")) { if (info.XLWBBJDMX_XLXHID == sTHQXHZF && info.XLWBBJDMX_XLGGID == sTHQGGZF && info.XLWBBJDMX_DYDJID == sTHQDYDJZF) { info.XLWBBJDMX_XLXHID = sTHHXHZF; info.XLWBBJDMX_XLGGID = sTHHGGZF; info.XLWBBJDMX_DYDJID = sTHHDYDJZF; } } else if (sTHLX.Equals("XHDYDJJQTH")) { if (info.XLWBBJDMX_XLXHID == sTHQXHZF && info.XLWBBJDMX_DYDJID == sTHQDYDJZF) { info.XLWBBJDMX_XLXHID = sTHHXHZF; info.XLWBBJDMX_DYDJID = sTHHDYDJZF; } } } } #endregion } private bool ShouldRunPageTzxhTzggPreDxth() { return !(UseDxthEquivalentRules && DSActiveModule.IsActiveModule(DxthModuleUmid)); } private bool TryApplyDxthEquivalent(DataSet ds) { if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return false; if (!DSActiveModule.IsActiveModule(DxthModuleUmid)) return false; try { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select XLXSBJDXYCLGZ_YCLLX,XLXSBJDXYCLGZ_YCLGZ from XLXSBJDXYCLGZ where isnull(XLXSBJDXYCLGZ_TYBZ,'N')<>'Y' order by XLXSBJDXYCLGZ_YCLLX "); DataSet dsYcl = dberp.OpenDataSet(sql); sql.Clear(); sql.Add("select XLXSBJDXTHDZQD_THLX,XLXSBJDXTHDZQD_THQXHZF,XLXSBJDXTHDZQD_THHXHZF,XLXSBJDXTHDZQD_THQGGZF,XLXSBJDXTHDZQD_THHGGZF,"); sql.Add(" XLXSBJDXTHDZQD_THQDYDJZF,XLXSBJDXTHDZQD_THHDYDJZF,XLXSBJDXTHDZQD_BZ from XLXSBJDXTHDZQD order by XLXSBJDXTHDZQD_THYXJ desc,XLXSBJDXTHDZQD_XH "); DataSet dsDzq = dberp.OpenDataSet(sql); DataTable ycl = (dsYcl != null && dsYcl.Tables.Count > 0) ? dsYcl.Tables[0] : null; DataTable dzqd = (dsDzq != null && dsDzq.Tables.Count > 0) ? dsDzq.Tables[0] : null; DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DxthLineInfo info = RowToDxthLineInfo(dt.Rows[i]); ApplyDxth(info, ycl, dzqd); DxthLineInfoToRow(info, dt.Rows[i]); } return true; } catch { return false; } } private void ApplyGgXhOrDxth(ref DataSet ds, bool useDxthEquivalent) { if (useDxthEquivalent && TryApplyDxthEquivalent(ds)) return; GGZZTH(ref ds); XHZZTH(ref ds); } private void ApplyXhOrDxth(ref DataSet ds, bool useDxthEquivalent) { if (useDxthEquivalent && TryApplyDxthEquivalent(ds)) return; XHZZTH(ref ds); } #endregion private void IntiControl() { //this.Master.PnlQuery.GroupingText = "查询条件"; //this.Master.PnlBill.GroupingText = "单据信息"; string sXLXHID = cbxXLXHID.SelectedValue.Trim(); //string sXLGGID = cbxXLXHID.SelectedValue.Trim(); string sXLBZID = cbxXLBZID.SelectedValue.Trim(); string sDYDJID = cbxDYDJID.SelectedValue.Trim(); string sXLYSID = cbxXLYSID.SelectedValue.Trim(); int Existflag = 0; List lstValue = new List(); lstValue.Clear(); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" SELECT distinct XLWBBJDMX_XLXHID as ID,XLWBBJDMX_XLXHID as CODE FROM XLWBBJDMX "); sql.Add(" WHERE 1 = 1 and XLWBBJDMX_WBBJDID = :pWBBJDID and XLWBBJDMX_BJDID = :pBJDID "); sql.Add(" and isnull(XLWBBJDMX_XLXHID, ' ') <>' ' "); sql.Add(" order by ID "); sql.ParamByName("pWBBJDID").Value = sWBBJDID; sql.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(sql); cbxXLXHID.ClearItems(); cbxXLXHID.Items.Add(new ListItem("", "")); cbxXLXHID.Items.Add(new ListItem("空", "空")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxXLXHID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["CODE"].ToString().Trim(), ds.Tables[0].Rows[i]["ID"].ToString().Trim())); if (ds.Tables[0].Rows[i]["ID"].ToString().Trim().Equals(sXLXHID) || sXLXHID.Equals("空")) { Existflag = 1; } } if (0 == Existflag) { cbxXLXHID.SelectedValue = ""; } } Existflag = 0; sql.Clear(); sql.Add(" SELECT distinct XLWBBJDMX_XLBZID as ID,XLBZ_XLBZLXMC as CODE,XLBZ_PX FROM XLWBBJDMX "); sql.Add(" left join XLBZ on XLBZ_XLBZID = XLWBBJDMX_XLBZID "); sql.Add(" WHERE 1 = 1 and XLWBBJDMX_WBBJDID = :pWBBJDID and XLWBBJDMX_BJDID = :pBJDID "); sql.Add(" and isnull(XLWBBJDMX_XLBZID, ' ') <>' ' "); sql.Add(" order by XLBZ_PX,ID "); sql.ParamByName("pWBBJDID").Value = sWBBJDID; sql.ParamByName("pBJDID").Value = sSELBJDID; ds = dberp.OpenDataSet(sql); cbxXLBZID.ClearItems(); cbxXLBZID.Items.Add(new ListItem("", "")); cbxXLBZID.Items.Add(new ListItem("空", "空")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxXLBZID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["CODE"].ToString().Trim(), ds.Tables[0].Rows[i]["ID"].ToString().Trim())); if (ds.Tables[0].Rows[i]["ID"].ToString().Trim().Equals(sXLBZID) || sXLBZID.Equals("空")) { Existflag = 1; } } if (0 == Existflag) { cbxXLBZID.SelectedValue = ""; } } Existflag = 0; sql.Clear(); sql.Add("SELECT distinct XLWBBJDMX_DYDJID as ID,XLWBBJDMX_DYDJID as CODE FROM XLWBBJDMX "); sql.Add(" WHERE 1 = 1 and XLWBBJDMX_WBBJDID = :pWBBJDID and XLWBBJDMX_BJDID = :pBJDID "); sql.Add(" and isnull(XLWBBJDMX_DYDJID, ' ') <>' ' "); sql.Add(" order by ID "); sql.ParamByName("pWBBJDID").Value = sWBBJDID; sql.ParamByName("pBJDID").Value = sSELBJDID; ds = dberp.OpenDataSet(sql); cbxDYDJID.ClearItems(); cbxDYDJID.Items.Add(new ListItem("", "")); cbxDYDJID.Items.Add(new ListItem("空", "空")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxDYDJID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["CODE"].ToString().Trim(), ds.Tables[0].Rows[i]["ID"].ToString().Trim())); if (ds.Tables[0].Rows[i]["ID"].ToString().Trim().Equals(sDYDJID) || sDYDJID.Equals("空")) { Existflag = 1; } } if (0 == Existflag) { cbxDYDJID.SelectedValue = ""; } } Existflag = 0; sql.Clear(); sql.Add(" SELECT distinct XLWBBJDMX_XLYSID as ID,XLYSB_XLYSMC as CODE,XLYSB_XSXH FROM XLWBBJDMX "); sql.Add(" left join XLYSB on XLYSB_XLYSID = XLWBBJDMX_XLYSID "); sql.Add(" WHERE 1 = 1 and XLWBBJDMX_WBBJDID = :pWBBJDID and XLWBBJDMX_BJDID = :pBJDID "); sql.Add(" and isnull(XLWBBJDMX_XLYSID, ' ') <>' ' "); sql.Add(" order by XLYSB_XSXH,ID "); sql.ParamByName("pWBBJDID").Value = sWBBJDID; sql.ParamByName("pBJDID").Value = sSELBJDID; ds = dberp.OpenDataSet(sql); cbxXLYSID.ClearItems(); cbxXLYSID.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxXLYSID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["CODE"].ToString().Trim(), ds.Tables[0].Rows[i]["ID"].ToString().Trim())); if (ds.Tables[0].Rows[i]["ID"].ToString().Trim().Equals(sXLYSID)) { Existflag = 1; } } if (0 == Existflag) { cbxXLYSID.SelectedValue = ""; } } cbxXD.ClearItems(); cbxXD.Items.Add(new ListItem("", "")); cbxXD.Items.Add(new ListItem("已修订","Y")); cbxXD.Items.Add(new ListItem("未修订","N")); cbxXD.ShowValue = false; cbxWG.ClearItems(); cbxWG.Items.Add(new ListItem("", "")); cbxWG.Items.Add(new ListItem("外购", "Y")); cbxWG.Items.Add(new ListItem("非外购", "N")); cbxWG.ShowValue = false; cbxJLDW.ClearItems(); cbxJLDW.Items.Add(new ListItem("", "")); string sJLDWList = XLBJDUtils.GetJLDWS(); string[] sTempJCJLDW = sJLDWList.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTempJCJLDW.Length; m++) { lstValue.Add(sTempJCJLDW[m]); } foreach (string sJLDW in lstValue) { cbxJLDW.Items.Add(new ListItem(sJLDW)); } sql.Clear(); sql.Add(" select distinct XLXSJGBMX_JLDW from XLXSJGBMX "); sql.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID"); sql.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID"); ds.Clear(); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJLDW = ds.Tables[0].Rows[i]["XLXSJGBMX_JLDW"].ToString().Trim(); if (lstValue.Contains(sJLDW)) { continue; } else cbxJLDW.Items.Add(new ListItem(sJLDW)); } } cbxBHFCX.ClearItems(); cbxBHFCX.Items.Add(new ListItem("", "")); cbxBHFCX.Items.Add(new ListItem("型号不合规", "1")); cbxBHFCX.Items.Add(new ListItem("规格不合规", "2")); cbxBHFCX.Items.Add(new ListItem("电压等级不合规", "3")); cbxBHFCX.Items.Add(new ListItem("型号&规格&电压等级不合规", "4")); if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) cbxBHFCX.Items.Add(new ListItem("材料清单未生成", "5")); else { string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sJGBBJBM = XLBJDUtils.GetJGBBJBM(sBJFLID); if (sJGBBJBM.Equals("")) { sJGBBJBM = "表价"; } cbxBHFCX.Items.Add(new ListItem("无" + sJGBBJBM, "5")); } cbxReplaceLM.ClearItems(); cbxReplaceLM.Items.Add(new ListItem("报价产品", "XLWBBJDMX_BJCP")); cbxReplaceLM.Items.Add(new ListItem("型号", "XLWBBJDMX_XLXHID")); cbxReplaceLM.Items.Add(new ListItem("规格", "XLWBBJDMX_XLGGID")); if (GetOption(100860043, "BJU028") != "Y") cbxReplaceLM.Items.Add(new ListItem("标准", "XLWBBJDMX_XLBZID")); cbxReplaceLM.Items.Add(new ListItem("电压等级", "XLWBBJDMX_DYDJID")); } public static void JLYXHGGDY(ref DataSet ds) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ds.Tables[0].Rows[i]["OLD_XLXHID"] = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString(); ds.Tables[0].Rows[i]["OLD_XLGGID"] = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString(); ds.Tables[0].Rows[i]["OLD_DYDJID"] = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString(); } } public static void UpdateXDBZ(ref DataSet ds) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!(ds.Tables[0].Rows[i]["OLD_XLXHID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim()) && ds.Tables[0].Rows[i]["OLD_XLGGID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim()) && ds.Tables[0].Rows[i]["OLD_DYDJID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim()))) { ds.Tables[0].Rows[i]["XLWBBJDMX_XDBZ"] = "Y"; } } } public static void UpdateBZ(ref DataSet ds) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!(ds.Tables[0].Rows[i]["OLD_XLXHID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim()) && ds.Tables[0].Rows[i]["OLD_XLGGID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim()) && ds.Tables[0].Rows[i]["OLD_DYDJID"].ToString().Trim().Equals(ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim()))) { string sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim() + "-" + ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim() + " " + ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (ds.Tables[0].Rows[i]["XLWBBJDMX_BZ"].ToString().Trim().Equals("")) ds.Tables[0].Rows[i]["XLWBBJDMX_BZ"] = sBJCP; else ds.Tables[0].Rows[i]["XLWBBJDMX_BZ"] = ds.Tables[0].Rows[i]["XLWBBJDMX_BZ"].ToString().Trim()+" "+sBJCP; } } } #region 外部报价单明细列展示初始化 //外部报价单明细列展示初始化 private void InitGrid(string sWBBJDID, string sXLBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDML_SJLY,XLWBBJDML_FS,XLWBBJDML_FSXH from XLWBBJDML "); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDML_WBBJDID=:pWBBJDID "); SQL.Add(" and XLWBBJDML_BJDID=:pBJDID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sBJSJLY = ds.Tables[0].Rows[0][0].ToString().Trim(); if (sBJSJLY.Equals("BJCP")) { btnDRXSHTBD.Visible = false; btnDRBJDMX.Visible = true; } else if (sBJSJLY.Equals("BJTP")) { btnDRXSHTBD.Visible = false; btnDRBJDMX.Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDNR_LMNR").Visible = true; SQL.Clear(); SQL.Add("SELECT XLWBBJDLM_LMBH FROM XLWBBJDLM WHERE XLWBBJDLM_ZDLMLX = '1' "); SQL.Add(" and XLWBBJDLM_WBBJDID=:pWBBJDID and XLWBBJDLM_BJDID=:pBJDID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet dsLM = dberp.OpenDataSet(SQL); if (dsLM.Tables[0].Rows.Count > 0) { entity.sLMNR = dsLM.Tables[0].Rows[0][0].ToString().Trim(); } else { QueryGrid.FindColumnByFieldName("XLWBBJDNR_LMNR").Visible = false; } } else if (sBJSJLY.Equals("BJWL") || sBJSJLY.Equals("KHWL")) { btnBJCPJX.Visible = false; btnXHTZ.Visible = false; btnGGTZ.Visible = false; btnBZDY.Visible = false; btnDRXSHTBD.Visible = false; btnDRBJDMX.Visible = true; btnPPXLWL.Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_WLID").Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_BJCP").Visible = false; } else if (sBJSJLY.Equals("XSHT")) { btnDRXSHTBD.Visible = true; btnDRBJDMX.Visible = false; } } if (XLBJDUtils.ExistXLXSBJGWWL()) { btnGWWLBMPP.Visible = true; } else { btnGWWLBMPP.Visible = false; } string sBJFLID = PageParam.GetRTrimString("BJFLID"); if (!XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) { string sJGBBJBM = XLBJDUtils.GetJGBBJBM(sBJFLID); if (sJGBBJBM.Equals("")) { sJGBBJBM = "表价"; } QueryGrid.FindColumnByFieldName("CLQWSC").HeaderText = "无" + sJGBBJBM; } if(PageParam.GetRTrimString("XSYXJ")=="Y") QueryGrid.FindColumnByFieldName("XLWBBJDMX_YXJG").Visible = true; else QueryGrid.FindColumnByFieldName("XLWBBJDMX_YXJG").Visible = false; if (PageParam.GetRTrimString("XSYZ") == "Y") QueryGrid.FindColumnByFieldName("XLWBBJDMX_YZ").Visible = true; else QueryGrid.FindColumnByFieldName("XLWBBJDMX_YZ").Visible = false; if (PageParam.GetRTrimString("XSYSCP") == "Y") QueryGrid.FindColumnByFieldName("XLWBBJDMX_YSCP").Visible = true; else QueryGrid.FindColumnByFieldName("XLWBBJDMX_YSCP").Visible = false; if (PageParam.GetRTrimString("XSKHWLID") == "Y") QueryGrid.FindColumnByFieldName("XLWBBJDMX_KHWLID").Visible = true; else QueryGrid.FindColumnByFieldName("XLWBBJDMX_KHWLID").Visible = false; if (PageParam.GetRTrimString("XSBH") == "Y") QueryGrid.FindColumnByFieldName("XLWBBJDMX_FBH").Visible = true; else QueryGrid.FindColumnByFieldName("XLWBBJDMX_FBH").Visible = false; if (PageParam.GetRTrimString("XSCPBJXJ") == "Y") { QueryGrid.FindColumnByFieldName("XLWBBJDMX_CPBJXJ").Visible = true; QueryGrid.FindColumnByFieldName("XLWBBJDMX_BJJEXJ").Visible = true; } else { QueryGrid.FindColumnByFieldName("XLWBBJDMX_CPBJXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLWBBJDMX_BJJEXJ").Visible = false; } BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(PageParam.GetRTrimString("BJFLID")); if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_JMBGS").Visible = true; } else { QueryGrid.FindColumnByFieldName("XLWBBJDMX_JMBGS").Visible = false; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_JMBGS").HeaderText = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } if (bjflxx.XLXSBJFL_XSLSBJ.Equals("Y")) { QueryGrid.FindColumnByFieldName("XLWBBJDMX_LSJGBBJ").Visible = true; } else { QueryGrid.FindColumnByFieldName("XLWBBJDMX_LSJGBBJ").Visible = false; } for (int i = 1; i <= 20; i++) { string sYZZField = string.Format("XLWBBJDMXYZZ_YZZ{0}", i.ToString().PadLeft(2, '0')); QueryGrid.FindColumnByFieldName(sYZZField).Visible = false; } Dictionary dicWBBJDYZZGDLM = XLWBBJDUtils.GetWBBJDYZZGDLM(PageParam.GetRTrimString("BJDID")); foreach (KeyValuePair kvp in dicWBBJDYZZGDLM) { int iYZZIdx = XLWBBJDUtils.GetWBBJDYZZIndexByLMKey(kvp.Key); if (iYZZIdx >= 0 && iYZZIdx < 20) { string sYZZField = string.Format("XLWBBJDMXYZZ_YZZ{0}", (iYZZIdx + 1).ToString().PadLeft(2, '0')); QueryGrid.FindColumnByFieldName(sYZZField).Visible = true; QueryGrid.FindColumnByFieldName(sYZZField).HeaderText = kvp.Value; } } if (PageParam.GetRTrimString("MLFZH") == "0") { lblFSXH.Visible = false; } else if (ds.Tables[0].Rows.Count > 0) { string sFS = ds.Tables[0].Rows[0][1].ToString().Trim(); string sFSXH = ds.Tables[0].Rows[0][2].ToString().Trim(); lblFSXH.Text = string.Format("【{0}-{1}】", sFS, sFSXH); lblFSXH.Visible = true; } int iXSWS = string.IsNullOrEmpty(GetOption(100860000,"BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000,"BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; QueryGrid.FindColumnByFieldName("XLWBBJDMX_CPBJ").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 } #endregion #region 获取份数序号 private int GetFSXH(string sWBBJDID, string sMLFZH, string sBJDID) { int iFSXH=1; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDML_FSXH from XLWBBJDML "); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDML_WBBJDID=:pWBBJDID "); SQL.Add(" and XLWBBJDML_MLFZH=:pMLFZH "); SQL.Add(" and XLWBBJDML_BJDID=:pBJDID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pMLFZH").Value = CMISproConvert.StrToFloat(sMLFZH); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) iFSXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0][0].ToString().Trim(),1); return iFSXH; } #endregion #region 报价产品的预处理 public static void TZBJCP_0(ref DataSet ds) { string sBJCP = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = sBJCP.Replace(" ", " ").Replace(" ", " ").Replace(" ", " "); } } //去除报价产品中的mm 和mm2 public static void TZBJCP_1(ref DataSet ds) { string sBJCP = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = sBJCP.Replace("mm2", "").Replace("mm", "").Replace("MM2", "").Replace("MM", ""); } } //去除报价产品中中文 public static void TZBJCP_2(ref DataSet ds) { Regex reg = new Regex(@"[\u4e00-\u9fa5]"); Regex reg1 = new Regex(@"[\u4e00-\u9fa5][\w][\u4e00-\u9fa5]"); string sBJCP = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); if (sBJCP.Length > 0) { //判断是否为中文 if (!IsChineseCharacter(sBJCP[0])) sBJCP = "中" + sBJCP; } bool bExists = true; while (bExists) { if (Regex.IsMatch(sBJCP, @"[\u4e00-\u9fa5][\w][\u4e00-\u9fa5]")) { sBJCP = reg1.Replace(sBJCP, "中"); } else { bExists = false; } } ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = reg.Replace(sBJCP, ""); } } //去除报价产品中冒号、-- public static void TZBJCP_3(ref DataSet ds) { string sBJCP = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); while (sBJCP.Contains("--")) { sBJCP = sBJCP.Replace("--", "-"); } ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = sBJCP.Replace(":", "").Replace(":", ""); } } //芯替换*1 public static void TZBJCP_4(ref DataSet ds) { string sBJCP = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = sBJCP.Replace("芯", "*1"); } } //获取颜色 public static void TZBJCP_5(ref DataSet ds) { string sBJCP = ""; string sXLYSID = ""; Dictionary dicXLYS = GetdicXLYS(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { bool bExists = false; sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); sXLYSID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"].ToString().Trim(); if (sXLYSID.Equals("")) { foreach(string key in dicXLYS.Keys) { if(sBJCP.Contains(key)) { sXLYSID = dicXLYS[key]; bExists = true; break; } } } if (bExists) ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"] = sXLYSID; } } #endregion #region 报价产品解析 //通用解析形式 private void Analysis_Common(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { bool bExist_XLXHID = false; //未匹配到型号 bool bExist_DYDJID = false; //解析 string sCPXX = ""; string sTmpCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; string tmp = ""; string sBJU042 = "Y"; if (!GetOption(100860043, "BJU042").Equals("")) { sBJU042 = GetOption(100860043, "BJU042"); } int iFGF_index = 0;//“-”分割符的位置,为了解决型号中有“-”的情况 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { bExist_XLXHID = false; sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-'); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if (sCPXX.Trim().Equals("")) { continue; } if (sCPXX.Contains(",") || sCPXX.Contains(",")) { sCPXX = sCPXX.Replace(",", ","); if ((sCPXX.Substring(0, sCPXX.IndexOf(','))).IndexOf("-") > 0 && sCPXX.IndexOf(',') > 0) { //7、解析:型号-电压,规格 sDYDJID = sCPXX.Substring(0, sCPXX.IndexOf(',')); sXLXHID = sDYDJID.Substring(0, sDYDJID.LastIndexOf('-')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().TrimStart('-').TrimEnd('-').Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.IndexOf(',') + 1, sCPXX.Length - sCPXX.IndexOf(',') - 1); if (!sXLXHID.Equals("") && !bExist_XLXHID && lstXLXHID.Contains(sXLXHID.ToUpper()) && lstDYDJID.Contains(sDYDJID)) { bExist_XLXHID = true; } if (!bExist_XLXHID) { if (sCPXX.Contains(" ")) { if ((sCPXX.IndexOf(" ") == sCPXX.LastIndexOf(' ') || lstXLXHID.Contains(sCPXX.Substring(0,sCPXX.LastIndexOf(' ')))) && (sCPXX.IndexOf(" ") > 0 || sCPXX.LastIndexOf(' ') > 0)) { //**1、解析:型号 规格 sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { if (!sXLGGID.ToUpper().Contains("V") && !sXLGGID.ToUpper().Contains("KV")) { bExist_XLXHID = true; } } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { bExist_XLXHID = true; break; } } } } } } else { //*1、解析:型号-规格 if (sCPXX.Contains("-")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1); } if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { bExist_XLXHID = true; } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { bExist_XLXHID = true; break; } } } } } } } } else if (sCPXX.Contains(" ")) { if ((sCPXX.IndexOf(" ") == sCPXX.LastIndexOf(' ') || lstXLXHID.Contains(sCPXX.Substring(0, sCPXX.LastIndexOf(' ')))) && (sCPXX.IndexOf(" ") > 0 || sCPXX.LastIndexOf(' ') > 0)) { //**1、解析:型号 规格 sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { if (!sXLGGID.ToUpper().Contains("V") && !sXLGGID.ToUpper().Contains("KV")) { bExist_XLXHID = true; } } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { if (!sXLGGID.ToUpper().Contains("V") && !sXLGGID.ToUpper().Contains("KV")) { bExist_XLXHID = true; break; } } } } } } if (!bExist_XLXHID) { //2、解析:型号-电压 规格 //VV22-0.6/1KV 1*10 if (sCPXX.Contains(" ") && sCPXX.Contains("-")) { sTmpCPXX = sCPXX; sTmpCPXX = sTmpCPXX.Replace('v', 'V'); iFGF_index = 0; while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') >= 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); if (sTmpCPXX.Contains(" ")) { sDYDJID = sTmpCPXX.Substring(0, sTmpCPXX.IndexOf(' ')).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sTmpCPXX.Substring(sTmpCPXX.IndexOf(' ') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf(' ') - 1); if (sBJU042.Equals("N")&&!sDYDJID.Contains("V")) { sXLGGID = sDYDJID + sXLGGID; sDYDJID = ""; } } } //3、解析:型号 电压 规格 //VV22 0.6/1KV 1*10 else { if ((sCPXX.IndexOf(" ") != sCPXX.LastIndexOf(' ')) && sCPXX.IndexOf(" ") > 0 && sCPXX.LastIndexOf(' ') > 0) { //vv 300v 1*5 sDYDJID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLXHID = sDYDJID.Substring(0, sDYDJID.IndexOf(' ')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.IndexOf(' ') + 1, sCPXX.Length - sCPXX.IndexOf(' ') - 1); } } } if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { bExist_XLXHID = true; } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { bExist_XLXHID = true; break; } } } } } else { //*1、解析:型号-规格 if (sCPXX.Contains("-")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1); } if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { bExist_XLXHID = true; } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { bExist_XLXHID = true; break; } } } } //*2、解析:型号-电压-规格 //VV22-0.6/1KV-1*10 //NH-VV-5*6 if (!bExist_XLXHID) { if (sCPXX.IndexOf('-') != sCPXX.LastIndexOf('-')) { sTmpCPXX = sCPXX; sTmpCPXX = sTmpCPXX.Replace('v', 'V'); iFGF_index = 0; while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') >= 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); if (sTmpCPXX.Contains("-")) { sDYDJID = sTmpCPXX.Substring(0, sTmpCPXX.LastIndexOf('-')).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sTmpCPXX.Substring(sTmpCPXX.LastIndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.LastIndexOf('-') - 1); } else { } } } if (!bExist_XLXHID) { if (lstXLXHID.Contains(sXLXHID.ToUpper()) && sBJU042.Equals("Y")) { if (!sXLXHID.Equals("")) { bExist_XLXHID = true; } } else { foreach (string sXLXHHZ in lstXLXHHZ) { if (sXLXHID.EndsWith(sXLXHHZ)) { bExist_XLXHID = true; break; } } } } } //上述未正确解析出型号 if (!bExist_XLXHID) { if (sCPXX.IndexOf(' ') >= 0) { sTmpCPXX = sCPXX; //假设不存在电压等级 bExist_DYDJID = false; //含有V,即有可能是电压等级 if (sTmpCPXX.IndexOf('V') >= 0) { sTmpCPXX = sTmpCPXX.Replace(' ', '-'); iFGF_index = 0; //假设存在电压等级的,存在“-” while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') > 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { //存在电压等级 bExist_DYDJID = true; break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } } //1-1、存在电压等级:型号-电压 规格 if (bExist_DYDJID) { iFGF_index = 0; sTmpCPXX = sCPXX; //字符串中含有“V”,且“V”在“-”之前,则退出。 while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') > 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } if ((sCPXX.IndexOf(" ") != sCPXX.LastIndexOf(' ')) && sCPXX.IndexOf(" ") > 0 && sCPXX.LastIndexOf(' ') > 0) { //vv 300v 1*5 sDYDJID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLXHID = sDYDJID.Substring(0, sDYDJID.IndexOf(' ')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); } else { sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); if (sTmpCPXX.Contains(" ")) { sDYDJID = sTmpCPXX.Substring(0, sTmpCPXX.LastIndexOf(' ')).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sTmpCPXX.Substring(sTmpCPXX.LastIndexOf(' ') + 1, sTmpCPXX.Length - sTmpCPXX.LastIndexOf(' ') - 1); } } } else { //1-2、不存在电压等级:型号 规格 或者 型号 规格 电压等级 if ((sCPXX.IndexOf(" ") != sCPXX.LastIndexOf(' ')) && sCPXX.IndexOf(" ") > 0 && sCPXX.LastIndexOf(' ') > 0) { //处理型号中存在空格的情况 if (lstXLXHID.Contains(sCPXX.Substring(0, sCPXX.LastIndexOf(' ')))) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); } sXLGGID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLXHID = sXLGGID.Substring(0, sXLGGID.IndexOf(' ')); sXLGGID = sXLGGID.Replace(sXLXHID, "").Trim(); sDYDJID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1).Replace('K', 'k').Replace('v', 'V'); ; } else { sXLXHID = sCPXX.Substring(0, sCPXX.IndexOf(' ')); sXLGGID = sCPXX.Substring(sCPXX.IndexOf(' ') + 1, sCPXX.Length - sCPXX.IndexOf(' ') - 1); } } } //2、不含空格,即:型号-规格、型号-电压-规格 else { //假设不存在电压等级 bExist_DYDJID = false; sTmpCPXX = sCPXX; if (sTmpCPXX.IndexOf('V') >= 0) { iFGF_index = 0; //假设存在电压等级的,存在“-” while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') >= 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { //存在电压等级 bExist_DYDJID = true; break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } } //2-1、存在电压等级:型号-电压-规格 if (bExist_DYDJID) { sTmpCPXX = sCPXX; iFGF_index = 0; //字符串中含有“V”,且“V”在“-”之前,则退出。 while (sTmpCPXX.IndexOf('-') >= 0) { if ((iFGF_index != 0) && (sTmpCPXX.IndexOf('V') >= 0) && (sTmpCPXX.IndexOf('V') < sTmpCPXX.IndexOf('-'))) { if (sTmpCPXX.IndexOf('V') >= 1) { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 1, 1); if (tmp.Equals("K") || tmp.Equals("k")) { if (sTmpCPXX.IndexOf('V') - 2 < 0) { tmp = ""; } else { tmp = sTmpCPXX.Substring(sTmpCPXX.IndexOf('V') - 2, 1); } } char[] chr = tmp.ToCharArray(); int aflag = 0; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9')) { aflag = 1; break; } } if (1 == aflag) { break; } } } iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); //sTmpCPXX = sCPXX.Substring(iFGF_index + 1, sCPXX.Length - iFGF_index - 1); if (sTmpCPXX.Contains("-")) { sDYDJID = sTmpCPXX.Substring(0, sTmpCPXX.IndexOf('-')).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } } //2-2、不存在电压等级:型号-规格 else { //bool bJXBS = false; //foreach (string sTmpGG in lstXLGGID) //{ // if (sCPXX.Replace("*", "×").EndsWith(sTmpGG.Replace("*", "×"))) // { // sXLXHID = sCPXX.Replace("*", "×").Replace(sTmpGG.Replace("*", "×"), "").TrimEnd('-'); // sXLGGID = sTmpGG; // bJXBS = true; // } //} //if (!bJXBS) //{ sTmpCPXX = sCPXX; iFGF_index = 0; while (sTmpCPXX.IndexOf('-') >= 0) { iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); sXLGGID = sTmpCPXX; //} } } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //国网产品解析 private void Analysis_GWCP(ref DataSet ds, string sDRGZ, List lstXLXHID, List lstXLGGID, List lstDYDJID) { TZBJCP_2(ref ds); Dictionary dicGGJG = new Dictionary(); Dictionary dicDYDJTH = XLWBBJDUtils.GetDYDJTH(); if (sDRGZ.Equals("GWGZ1")) { GetGGJG(ref dicGGJG); //解析规则1(例:电力电缆,AC10kV,YJV,150,3,22,ZC,无阻水) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-').Replace(',', ','); string[] tmpBJCP = sCPXX.Split(','); if (tmpBJCP.Length >= 5) { string sDYDJID = tmpBJCP[1].Trim(); string sXLXHID = tmpBJCP[2].Trim().Equals("") ? " " : tmpBJCP[2].Trim(); string sDTJMZHID = tmpBJCP[3].Trim(); string sXXJGID = tmpBJCP[4].Trim(); if (XLWBBJDUtils.sTSDYDJIDList.Contains("," + sDYDJID.Trim().ToUpper() + ","))//特殊电压额外处理替换 { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID.ToUpper(); } else if (dicDYDJTH.ContainsKey(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = dicDYDJTH[sDYDJID.ToUpper()]; } else if (lstDYDJID.Contains(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } if (dicGGJG.ContainsKey(sDTJMZHID + "|" + sXXJGID)) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = dicGGJG[sDTJMZHID + "|" + sXXJGID]; } if (tmpBJCP.Length >= 6) { //判断基本型号是否以数字结尾 bool endsWithDigit = Regex.IsMatch(sXLXHID, @"\d$"); if (endsWithDigit) { if (!tmpBJCP[5].Trim().Equals("")) sXLXHID = sXLXHID + "-" + tmpBJCP[5].Trim(); } else { sXLXHID = sXLXHID + tmpBJCP[5].Trim(); } if (tmpBJCP.Length >= 7) { if (!tmpBJCP[6].Trim().Equals("")) sXLXHID = tmpBJCP[6].Trim() + "-" + sXLXHID; } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; } } } else if (sDRGZ.Equals("GWGZ2")) { GetGGJG(ref dicGGJG); //解析规则2(例:低压电力电缆,YJV,铜,16/10,3+1芯,ZC,22,普通) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-').Replace(',', ','); string[] tmpBJCP = sCPXX.Split(','); if (tmpBJCP.Length >= 5) { string sXLXHID = tmpBJCP[1].Trim().Equals("") ? " " : tmpBJCP[1].Trim(); string sDTJMZHID = tmpBJCP[3].Trim(); string sXXJGID = tmpBJCP[4].Trim(); if (dicGGJG.ContainsKey(sDTJMZHID + "|" + sXXJGID)) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = dicGGJG[sDTJMZHID + "|" + sXXJGID]; } if (tmpBJCP.Length >= 6) { if (!tmpBJCP[5].Trim().Equals("")) sXLXHID = tmpBJCP[5].Trim() + "-" + sXLXHID; if (tmpBJCP.Length >= 7) { //判断基本型号是否以数字结尾 bool endsWithDigit = Regex.IsMatch(sXLXHID, @"\d$"); if (endsWithDigit) { if (!tmpBJCP[6].Trim().Equals("")) sXLXHID = sXLXHID + "-" + tmpBJCP[6].Trim(); } else { sXLXHID = sXLXHID + tmpBJCP[6].Trim(); } } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; } } } else if (sDRGZ.Equals("GWGZ3")) { //解析规则3(例:控制电缆,KYJVP2,2.5,7,ZC,22) GetGGJG(ref dicGGJG); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-').Replace(',', ','); string[] tmpBJCP = sCPXX.Split(','); if (tmpBJCP.Length >= 4) { string sXLXHID = tmpBJCP[1].Trim().Equals("") ? " " : tmpBJCP[1].Trim(); string sDTJMZHID = tmpBJCP[2].Trim(); string sXXJGID = tmpBJCP[3].Trim(); if (dicGGJG.ContainsKey(sDTJMZHID + "|" + sXXJGID)) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = dicGGJG[sDTJMZHID + "|" + sXXJGID]; } if (tmpBJCP.Length >= 5) { if (!tmpBJCP[4].Trim().Equals("")) sXLXHID = tmpBJCP[4].Trim() + "-" + sXLXHID; if (tmpBJCP.Length >= 6) { //判断基本型号是否以数字结尾 bool endsWithDigit = Regex.IsMatch(sXLXHID, @"\d$"); if (endsWithDigit) { if (!tmpBJCP[5].Trim().Equals("")) sXLXHID = sXLXHID + "-" + tmpBJCP[5].Trim(); } else { sXLXHID = sXLXHID + tmpBJCP[5].Trim(); } } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; } } } else if (sDRGZ.Equals("GWGZ4")) { //解析规则4(例:架空绝缘导线,AC10kV,JKLGYJ,70/10) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-').Replace(',', ','); string[] tmpBJCP = sCPXX.Split(','); if (tmpBJCP.Length >= 4) { string sDYDJID = tmpBJCP[1].Trim(); string sXLXHID = tmpBJCP[2].Trim().Equals("") ? " " : tmpBJCP[2].Trim(); string sXLGGID = tmpBJCP[3].Trim().Equals("") ? " " : tmpBJCP[3].Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (XLWBBJDUtils.sTSDYDJIDList.Contains(","+sDYDJID.Trim().ToUpper()+","))//特殊电压额外处理替换 { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID.ToUpper(); } else if (dicDYDJTH.ContainsKey(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = dicDYDJTH[sDYDJID.ToUpper()]; } else if (lstDYDJID.Contains(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } } } } //国网或比亚迪产品解析 private void Analysis_BYDCP(ref DataSet ds, string sDRGZ, List lstXLXHID, List lstXLGGID, List lstDYDJID) { TZBJCP_2(ref ds); Dictionary dicDYDJTH = XLWBBJDUtils.GetDYDJTH(); if (sDRGZ.Equals("BYDGZ")) { //比亚迪规则(基本型号_规格_电压等级_耐温等级_特性前缀) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim().Replace('v', 'V').TrimStart('-').TrimEnd('-').Replace(',', ','); string[] tmpBJCP = sCPXX.Split('_'); if (tmpBJCP.Length >= 2) { string sXLXHID = tmpBJCP[0].Trim().Equals("") ? " " : tmpBJCP[0].Trim(); string sXLGGID = tmpBJCP[1].Trim().Equals("") ? " " : tmpBJCP[1].Trim(); if (tmpBJCP.Length >= 3) { string sDYDJID = tmpBJCP[2].Trim(); if (XLWBBJDUtils.sTSDYDJIDList.Contains("," + sDYDJID.Trim().ToUpper() + ","))//特殊电压额外处理替换 { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID.ToUpper(); } else if (dicDYDJTH.ContainsKey(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = dicDYDJTH[sDYDJID.ToUpper()]; } else if (lstDYDJID.Contains(sDYDJID.ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } if (tmpBJCP.Length >= 5) { if (!tmpBJCP[4].Trim().Equals("")) sXLXHID = tmpBJCP[4].Trim() + "-" + sXLXHID; } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; } } } } private void GetGGJG(ref Dictionary dicGGJG) { dicGGJG.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLGGB_DTJMZHID,XLGGB_XXJGID,XLGGB_XLGGID AS XLGGID from XLGGB where 1=1 ORDER BY LEN(XLGGB_XLGGID) "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sDTJMZHID = ds.Tables[0].Rows[i]["XLGGB_DTJMZHID"].ToString().Trim(); string sXXJGID = ds.Tables[0].Rows[i]["XLGGB_XXJGID"].ToString().Trim(); string sXLGGID = ds.Tables[0].Rows[i]["XLGGID"].ToString().Trim(); if (!dicGGJG.ContainsKey(sDTJMZHID + "|" + sXXJGID)) { dicGGJG.Add(sDTJMZHID + "|" + sXXJGID, sXLGGID); } } } } //特殊电压替换 private void TSDYTH(ref DataSet ds) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); GetDYDJIDList(dberp, SQL, ref lstDYDJID); Dictionary dicDYDJTH = XLWBBJDUtils.GetDYDJTH(); List lstJKXXLXHID = new List(); lstJKXXLXHID.Clear(); SQL.Clear(); SQL.Add(" select XLXHB_XLXHID from XLXHB where isnull(XLXHB_CPYT,' ')='P3JK' "); DataSet dsXLXH = dberp.OpenDataSet(SQL); if (dsXLXH.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLXH.Tables[0].Rows.Count; i++) { string sXLXHID = dsXLXH.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim(); if (!lstJKXXLXHID.Contains(sXLXHID)) { lstJKXXLXHID.Add(sXLXHID); } } } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); string sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if (sDYDJID.ToUpper().Equals("AC10KV")) { if (lstJKXXLXHID.Contains(sXLXHID))//包含则是架空线,电压替换为10kV,否则是 { ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = "10kV"; } else { if (dicDYDJTH.ContainsKey(sDYDJID)) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = dicDYDJTH[sDYDJID]; else if (!lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = " "; } } } } //**型号-规格 private void AnalysisByXH_GG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (sCPXX.Contains("-")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; } } //型号 规格 private void AnalysisByXHGG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (sCPXX.Contains(" ")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; } } //型号规格 private void AnalysisByXHANDGG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; int iFGF_index = 0; // 根据字符串长度降序排序 lstXLGGID.Sort(CompareStringLength); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { bool bJXBS = false; sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); foreach (string sTmpGG in lstXLGGID) { if (sCPXX.Replace("*", "×").EndsWith(sTmpGG.Replace("*", "×")) && !bJXBS) { sXLXHID = sCPXX.Replace("*", "×").Replace(sTmpGG.Replace("*", "×"), "").TrimEnd('-'); sXLGGID = sTmpGG; bJXBS = true; } } if (!bJXBS) { string sTmpCPXX = sCPXX; iFGF_index = 0; while (sTmpCPXX.IndexOf('-') >= 0) { iFGF_index = iFGF_index + sTmpCPXX.IndexOf('-'); sTmpCPXX = sTmpCPXX.Substring(sTmpCPXX.IndexOf('-') + 1, sTmpCPXX.Length - sTmpCPXX.IndexOf('-') - 1); } sXLXHID = sCPXX.Replace(sTmpCPXX, "").TrimEnd('-'); sXLGGID = sTmpCPXX; } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; } } //型号-电压等级-规格 private void AnalysisByXH_DY_GG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if ((sCPXX.IndexOf("-") != sCPXX.LastIndexOf('-')) && sCPXX.IndexOf("-") > 0 && sCPXX.LastIndexOf('-') > 0) { //VV-300V-1*5 sDYDJID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sXLXHID = sDYDJID.Substring(0, sDYDJID.LastIndexOf('-')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().TrimStart('-').TrimEnd('-').Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //**型号-电压等级 规格 private void AnalysisByXH_DYGG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if (sCPXX.Contains("-") && sCPXX.Contains(" ")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sDYDJID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.IndexOf(' ') - sCPXX.LastIndexOf('-') - 1).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.IndexOf(' ') + 1, sCPXX.Length - sCPXX.IndexOf(' ') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //型号 电压等级 规格 private void AnalysisByXHDYGG(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if ((sCPXX.IndexOf(" ") != sCPXX.LastIndexOf(' ')) && sCPXX.IndexOf(" ") > 0 && sCPXX.LastIndexOf(' ') > 0) { //vv 300v 1*5 sDYDJID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLXHID = sDYDJID.Substring(0, sDYDJID.IndexOf(' ')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //型号 规格 电压等级 private void AnalysisByXHGGDY(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if ((sCPXX.IndexOf(" ") != sCPXX.LastIndexOf(' ')) && sCPXX.IndexOf(" ") > 0 && sCPXX.LastIndexOf(' ') > 0) { //vv 1*5 300v sXLGGID = sCPXX.Substring(0, sCPXX.LastIndexOf(' ')); sXLXHID = sXLGGID.Substring(0, sXLGGID.IndexOf(' ')); sXLGGID = sXLGGID.Replace(sXLXHID, "").Trim(); sDYDJID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1).Replace('K', 'k').Replace('v', 'V'); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //型号-电压等级,规格 private void AnalysisByXH_DY_GG1(ref DataSet ds, List lstXLXHID, List lstXLGGID, List lstDYDJID) { string sCPXX = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); RecoverCPXX(ref sCPXX); sCPXX = sCPXX.Replace(",", ","); sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if (sCPXX.IndexOf("-") > 0 && sCPXX.IndexOf(',') > 0) { //VV-300V,1*5 sDYDJID = sCPXX.Substring(0, sCPXX.IndexOf(',')); sXLXHID = sDYDJID.Substring(0, sDYDJID.LastIndexOf('-')); sDYDJID = sDYDJID.Replace(sXLXHID, "").Trim().TrimStart('-').TrimEnd('-').Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.IndexOf(',') + 1, sCPXX.Length - sCPXX.IndexOf(',') - 1); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"] = sDYDJID; if (lstDYDJID.Contains(sDYDJID.ToUpper())) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = sDYDJID; } } //型号 kV被KV替换 private void Analysis_XH(ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID.Replace("kV", "KV"); } } /// /// 解析电压等级 /// /// public static void JXDYDJ(ref DataSet ds) { Dictionary dicDYDJTH = XLWBBJDUtils.GetDYDJTH(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string stDYDJID = ""; string sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); foreach (string sDYDJ in dicDYDJTH.Keys) { if (sBJCP.ToUpper().Contains(sDYDJ.ToUpper()))//考虑到电压单位,都统一成大小比较 { stDYDJID = sDYDJ;//8.7kV break; } } if (!stDYDJID.Equals("")) { //比如:YJV-8.7KV 3*400->[8.7kV] sBJCP = Regex.Replace(sBJCP, stDYDJID, stDYDJID, RegexOptions.IgnoreCase); //sBJCP = sBJCP.Replace("[" + stDYDJID + "]", stDYDJID); sBJCP = sBJCP.Replace(",", ","); int index = sBJCP.IndexOf(stDYDJID); int BJCPLength = sBJCP.Length; int DYDJLength = stDYDJID.Length; if (sBJCP.ToUpper().Contains(stDYDJID.ToUpper() + "V") && stDYDJID.ToUpper().EndsWith("K")) DYDJLength++; string Pres = sBJCP.Substring(0, index); string sAfter = ""; if (index + DYDJLength < BJCPLength) { sAfter = sBJCP.Substring(index + DYDJLength); } while (sAfter.Length > 0) { char c = sAfter[0]; if (c == '-' || c == ' ' || c == ',') { sAfter = sAfter.Substring(1); } else break; } while (Pres.Length > 0) { char c = Pres[Pres.Length - 1]; if (c == '-' || c == ' ' || c == ',') { Pres = Pres.Substring(0, Pres.Length - 1); } else break; } sBJCP = Pres + " " + sAfter; ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = sBJCP; ds.Tables[0].Rows[i]["BZ_DYDJID"] = dicDYDJTH[stDYDJID]; } } } /// /// 使用标准电压等级替换外部报价单明细电压等级 /// /// public static void DYDJTH(ref DataSet ds) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["BZ_DYDJID"].ToString().Trim().Equals("")) ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"] = ds.Tables[0].Rows[i]["BZ_DYDJID"].ToString().Trim(); } } /// /// 规格正则替换:按 XLXSBJDXTHDZQD(THLX=GGZZTH,序号升序)对 XLWBBJDMX_XLGGID 执行 Regex.Replace /// private void GGZZTH(ref DataSet ds) { if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJDXTHDZQD_THQGGZF, XLXSBJDXTHDZQD_THHGGZF from XLXSBJDXTHDZQD "); SQL.Add(" where XLXSBJDXTHDZQD_THLX='GGZZTH' and ISNULL(XLXSBJDXTHDZQD_TYBZ,'N')<>'Y' "); SQL.Add(" order by XLXSBJDXTHDZQD_XH "); DataSet dsGG = dberp.OpenDataSet(SQL); if (dsGG.Tables.Count == 0 || dsGG.Tables[0].Rows.Count == 0) return; List lstRx = new List(); List lstTHH = new List(); for (int k = 0; k < dsGG.Tables[0].Rows.Count; k++) { string sTHQ = dsGG.Tables[0].Rows[k]["XLXSBJDXTHDZQD_THQGGZF"].ToString().Trim(); string sTHH = dsGG.Tables[0].Rows[k]["XLXSBJDXTHDZQD_THHGGZF"].ToString().Trim(); if (sTHQ.Length == 0) continue; Regex rx = null; try { rx = new Regex(sTHQ, RegexOptions.Compiled | RegexOptions.CultureInvariant); } catch (ArgumentException) { continue; } lstRx.Add(rx); lstTHH.Add(sTHH); } if (lstRx.Count == 0) return; DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { string sXLGGID = dt.Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (sXLGGID.Length == 0) continue; for (int r = 0; r < lstRx.Count; r++) { sXLGGID = lstRx[r].Replace(sXLGGID, lstTHH[r]); } dt.Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID; } } /// /// 型号正则替换:按 XLXSBJDXTHDZQD(THLX=XHZZTH,序号升序)对 XLWBBJDMX_XLXHID 执行 Regex.Replace /// private void XHZZTH(ref DataSet ds) { if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJDXTHDZQD_THQGGZF, XLXSBJDXTHDZQD_THHGGZF from XLXSBJDXTHDZQD "); SQL.Add(" where XLXSBJDXTHDZQD_THLX='XHZZTH' and ISNULL(XLXSBJDXTHDZQD_TYBZ,'N')<>'Y' "); SQL.Add(" order by XLXSBJDXTHDZQD_XH "); DataSet dsXH = dberp.OpenDataSet(SQL); if (dsXH.Tables.Count == 0 || dsXH.Tables[0].Rows.Count == 0) return; List lstRx = new List(); List lstTHH = new List(); for (int k = 0; k < dsXH.Tables[0].Rows.Count; k++) { string sTHQ = dsXH.Tables[0].Rows[k]["XLXSBJDXTHDZQD_THQGGZF"].ToString().Trim(); string sTHH = dsXH.Tables[0].Rows[k]["XLXSBJDXTHDZQD_THHGGZF"].ToString().Trim(); if (sTHQ.Length == 0) continue; Regex rx = null; try { rx = new Regex(sTHQ, RegexOptions.Compiled | RegexOptions.CultureInvariant); } catch (ArgumentException) { continue; } lstRx.Add(rx); lstTHH.Add(sTHH); } if (lstRx.Count == 0) return; DataTable dt = ds.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { string sXLXHID = dt.Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (sXLXHID.Length == 0) continue; for (int r = 0; r < lstRx.Count; r++) { sXLXHID = lstRx[r].Replace(sXLXHID, lstTHH[r]); } dt.Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID; } } #endregion #region 规格调整 //**×替换为* public static void TZGG_0(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace('×', '*'); } } //*替换为× public static void TZGG_5(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace('*', '×'); } } //去除非数值字符 public static void TZGG_1(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); //去除规格中-号及其之后的内容 if (sXLGGID.Contains("-")) { sXLGGID = sXLGGID.Substring(0, sXLGGID.IndexOf('-')); } sXLGGID = sXLGGID.Replace('+', '+').Replace('×', '*').Replace('m', 'M').Replace("MM2", "").Replace("MM", ""); char[] chr = sXLGGID.ToCharArray(); string sTmpXLGGID = ""; for (int j = 0; j < chr.Length; j++) { if ((chr[j] >= '0' && chr[j] <= '9') || chr[j] == '/' || chr[j] == '*' || chr[j] == '+' || chr[j] == '.') { sTmpXLGGID += chr[j]; } } if (sXLGGID.Replace("(", "(").Replace(")", ")").EndsWith("(B)")) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sTmpXLGGID.Replace('×', '*') + "(B)"; } else if (sXLGGID.Replace("(", "(").Replace(")", ")").EndsWith("(F)")) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sTmpXLGGID.Replace('×', '*') + "(F)"; } else ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sTmpXLGGID.Replace('×', '*'); } } //1*截面 public static void TZGG_2(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (sXLGGID.Contains("*") || sXLGGID.Contains("+") || sXLGGID.Contains("×")) { if (sXLGGID.Contains("+")) { string[] sTemp = sXLGGID.ToString().Trim().Split(new char[] { '+' }, StringSplitOptions.RemoveEmptyEntries); //拆分 for (int m = 0; m < sTemp.Length; m++) { if (!sTemp[m].ToString().Trim().Contains("*") && !sTemp[m].ToString().Trim().Contains("×") && !sTemp[m].ToString().Trim().Equals("")) { sTemp[m] = "1*" + sTemp[m]; } } //拼接 sXLGGID = ""; for (int m = 0; m < sTemp.Length; m++) { sXLGGID = sXLGGID + "+" + sTemp[m]; } ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.TrimStart('+').TrimEnd('+'); } } else { if (!sXLGGID.Equals("")) { if (IsNumeric(sXLGGID.Replace("(", "(").Replace(")", ")").Replace("(B)", "").Replace("(F)", ""))) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = "1*" + sXLGGID; } } } } } //X/x替换规格列的额x为* public static void TZGG_3(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace('x', '*').Replace('X', '*'); } } //X/x替换规格列的额x为× public static void TZGG_6(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace('x', '×').Replace('X', '×'); } } //4*1.0 => 4*1---规格格式解析 public static void TZGG_4(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace(".0", ""); } } //3*4mm2 => 3*4 public static void TZGG_7(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace("mm2", "").Replace("mm", "").Replace("MM2", "").Replace("MM", ""); } } //E或者PE替换为1* public static void TZGG_8(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); if (sXLGGID.Contains("E")) { string stmpXLGGID = sXLGGID.Replace("PE*", "1*").Replace("PE×", "1×").Replace("E*", "1*").Replace("E×", "1×").Replace("PE", "1*").Replace("E", "1*"); string[] GGList = stmpXLGGID.Split('+'); if (GGList.Length > 1) { bool bHB1 = true; bool bHB2 = true; for (int j = 0; j < GGList.Length; j++) { if (GGList[j].Split('*').Length != 2) bHB1 = false; if (GGList[j].Split('×').Length != 2) bHB2 = false; } if (bHB1 || bHB2) { string tmpGG = ""; for (int j = 1; j < GGList.Length; j++) { if (bHB1) { if (GGList[j].Split('*')[1].Trim().Equals(GGList[j - 1].Split('*')[1].Trim())) { GGList[j] = (CMISproConvert.StrToFloat(GGList[j].Split('*')[0].Trim()) + CMISproConvert.StrToFloat(GGList[j - 1].Split('*')[0].Trim())).ToString() + "*" + GGList[j].Split('*')[1].Trim(); GGList[j - 1] = ""; } } else if (bHB2) { if (GGList[j].Split('×')[1].Trim().Equals(GGList[j - 1].Split('×')[1].Trim())) { GGList[j] = (CMISproConvert.StrToFloat(GGList[j].Split('×')[0].Trim()) + CMISproConvert.StrToFloat(GGList[j - 1].Split('×')[0].Trim())).ToString() + "×" + GGList[j].Split('×')[1].Trim(); GGList[j - 1] = ""; } } } for (int j = 0; j < GGList.Length; j++) { if (!GGList[j].Trim().Equals("")) tmpGG = tmpGG + GGList[j].Trim() + "+"; } tmpGG = tmpGG.TrimEnd('+'); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = tmpGG; } else { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = stmpXLGGID; } } else { ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = stmpXLGGID; } } } } //去除空格 public static void TZGG_9(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace(" ", "").Replace(" ", "").Replace(" ", ""); ; } } //替换中文括号为英文括号 public static void TZGG_A(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace("(", "(").Replace(")", ")"); } } //芯替换*1 public static void TZGG_B(ref DataSet ds) { string sXLGGID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"] = sXLGGID.Replace("芯", "*1"); } } #endregion #region 型号调整 //NH-替换为N- public static void TZXH_0(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if(!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(Replace_Left(Replace_Left(sXLXHID, "NH-", "N-"), "nh-", "N-"), "nH-", "N-"), "Nh-", "N-"); } } //ZR-替换为ZC- public static void TZXH_1(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(Replace_Left(Replace_Left(sXLXHID, "ZR-", "ZC-"), "zr-", "ZC-"), "zR-", "ZC-"), "Zr-", "ZC-"); } } //ZN-替换为ZCN- public static void TZXH_2(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(Replace_Left(Replace_Left(sXLXHID, "ZN-", "ZCN-"), "zn-", "ZCN-"), "zN-", "N-"), "Zn-", "N-"); } } //WDZ-替换为WDZC- public static void TZXH_3(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WDZ-", "WDZC-"), "wdz-", "WDZC-"); } } //WDZN-替换为WDZCN- public static void TZXH_4(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WDZN-", "WDZCN-"), "wdzn-", "WDZCN-"); } } //去除空格 public static void TZXH_5(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = sXLXHID.Replace(" ", "").Replace(" ", "").Replace(" ", ""); } } //去除中文 public static void TZXH_6(List lstBJXHList, ref DataSet ds) { //“\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值 Regex reg = new Regex(@"[\u4e00-\u9fa5]"); Regex reg1 = new Regex(@"[\u4e00-\u9fa5][\w][\u4e00-\u9fa5]"); string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) { if (sXLXHID.Length > 0) { //判断是否为中文 if (!IsChineseCharacter(sXLXHID[0])) sXLXHID = "中" + sXLXHID; } bool bExists = true; while (bExists) { if (Regex.IsMatch(sXLXHID, @"[\u4e00-\u9fa5][\w][\u4e00-\u9fa5]")) { sXLXHID = reg1.Replace(sXLXHID, "中"); } else { bExists = false; } } ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = reg.Replace(sXLXHID, ""); } } } //型号替换 public static void TZXH_7(ref DataSet ds, Dictionary dicXLWBBJDXHDZB) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (dicXLWBBJDXHDZB.ContainsKey(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim().ToUpper())) { ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = dicXLWBBJDXHDZB[ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim().ToUpper()]; } } } //NH-替换为ZCN- public static void TZXH_8(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(Replace_Left(Replace_Left(sXLXHID, "NH-", "ZCN-"), "nh-", "ZCN-"), "nH-", "ZCN-"), "Nh-", "ZCN-"); } } //ZRC-替换为ZC- public static void TZXH_9(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZRC-", "ZC-"), "zrc-", "ZC-"); } } //ZRB-替换为ZB- public static void TZXH_A(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZRB-", "ZB-"), "zrb-", "ZB-"); } } //ZRA-替换为ZA- public static void TZXH_B(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZRA-", "ZA-"), "zra-", "ZA-"); } } //ZRN-替换为ZCN- public static void TZXH_C(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZRN-", "ZCN-"), "zrn-", "ZCN-"); } } //ZRNH-替换为ZCN- public static void TZXH_D(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZRNH-", "ZCN-"), "zrnh-", "ZCN-"); } } //WDZ-替换为WDZB- public static void TZXH_E(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WDZ-", "WDZB-"), "wdz-", "WDZB-"); } } //WDZC-替换为WDZB- public static void TZXH_F(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WDZC-", "WDZB-"), "wdzc-", "WDZB-"); } } //N-替换为NH- public static void TZXH_G(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "N-", "NH-"), "n-", "NH-"); } } //ZR-A-替换为ZA- public static void TZXH_H(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZR-A-", "ZA-"), "zr-a-", "ZA-"); } } //ZR-B-替换为ZB- public static void TZXH_I(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZR-B-", "ZB-"), "zr-b-", "ZB-"); } } //ZR-C-替换为ZC- public static void TZXH_J(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "ZR-C-", "ZC-"), "zr-c-", "ZC-"); } } //WD-替换为WDZC- public static void TZXH_K(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WD-", "WDZC-"), "wd-", "WDZC-"); } } //NHA-替换为ZAN- public static void TZXH_L(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "NHA-", "ZAN-"), "nha-", "ZAN-"); } } //WDZB2-替换为WDZA- public static void TZXH_M(List lstBJXHList, ref DataSet ds) { string sXLXHID = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, "WDZB2-", "WDZA-"), "wdzb2-", "WDZA-"); } } //自定义替换规则 public static void TZXH_ZDY(List lstBJXHList,string sANXX, ref DataSet ds) { string sXLXHID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" SELECT XLXHTHGZ_THQ,XLXHTHGZ_THH FROM XLXHTHGZ WHERE XLXHTHGZ_XH=:pXH "); SQL.ParamByName("pXH").Value = CMISproConvert.StrToInt(sANXX.Replace("N", ""),0); DataSet dsXHGZ = dberp.OpenDataSet(SQL); if (dsXHGZ.Tables[0].Rows.Count > 0) { string sTHQ = dsXHGZ.Tables[0].Rows[0]["XLXHTHGZ_THQ"].ToString().Trim(); string sTHH = dsXHGZ.Tables[0].Rows[0]["XLXHTHGZ_THH"].ToString().Trim(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); if (!lstBJXHList.Contains(sXLXHID)) ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"] = Replace_Left(Replace_Left(sXLXHID, sTHQ, sTHH), sTHQ.ToLower(), sTHH); } } } //型号替换,会跳转页面 private void TZXH_7_Page(string sDRHHList) { sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_XHTHList.aspx"; pageParams.Title = "型号替换"; pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("btnCallBack", btnCallBack.ClientID); OpenDialog(pageParams); } //型号替换,页面执行SQL public static void TZXH_7_SQL(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, string sDRHHList) { SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" SELECT XLWBBJDXHDZB_XLXHID,XLWBBJDMX_DRHH,XLWBBJDMX_WBBJDID,XLWBBJDMX_BJDID FROM XLWBBJDMX "); SQL.Add(" LEFT JOIN XLWBBJDXHDZB ON UPPER(XLWBBJDXHDZB_WBXLXHID) =UPPER(ISNULL(XLWBBJDMX_XLXHID,' '))"); SQL.Add(" WHERE XLWBBJDMX_WBBJDID = :pWBBJDID AND isnull(XLWBBJDXHDZB_WBXLXHID,' ') <> ' ' and XLWBBJDMX_BJDID = :pBJDID "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.Add(" ) sor"); SQL.Add(" on("); SQL.Add(" tar.XLWBBJDMX_DRHH =sor.XLWBBJDMX_DRHH "); SQL.Add(" AND tar.XLWBBJDMX_WBBJDID =sor.XLWBBJDMX_WBBJDID "); SQL.Add(" AND tar.XLWBBJDMX_BJDID =sor.XLWBBJDMX_BJDID "); SQL.Add(" )"); SQL.Add(" when matched then update set tar.XLWBBJDMX_XLXHID = sor.XLWBBJDXHDZB_XLXHID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLWBBJDMX_Batch(dberp, CMISproSessionManager.GetCurrentSession(), sWBBJDID); } #endregion #region 列绑定事件 //获取标准名称 private string GetBZMC(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Clear(); SQL.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ "); SQL.Add(" where 1=1 and XLBZ_XLBZID=:pXLBZ_XLBZID order by XLBZ_XLBZID"); SQL.ParamByName("pXLBZ_XLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["XLBZ_XLBZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["XLBZ_XLBZLXMC"].ToString().Trim(); } else { return ""; } } //获取颜色名称 private string GetXLYS(string sXLYSID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Clear(); SQL.Add(" select XLYSB_XLYSID,XLYSB_XLYSMC from XLYSB "); SQL.Add(" where 1=1 and XLYSB_XLYSID=:pXLYSB_XLYSID order by XLYSB_XSXH,XLYSB_XLYSID "); SQL.ParamByName("pXLYSB_XLYSID").Value = sXLYSID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["XLYSB_XLYSID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["XLYSB_XLYSMC"].ToString().Trim(); } else { return ""; } } #endregion // 定义比较方法 static int CompareStringLength(string x, string y) { return y.Length.CompareTo(x.Length); // 降序排序 } //判断字符是否中文 public static bool IsChineseCharacter(char c) { UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(c); return uc == UnicodeCategory.OtherLetter || uc == UnicodeCategory.PrivateUse || uc == UnicodeCategory.Surrogate; } //判断value是否是数字 public static bool IsNumeric(string value) { return Regex.IsMatch(value, @"^[+-]?\d*[.]?\d*$"); } //获取选中行的行号 private void QueryGrid_Checked(ref string sDRHHList) { //使用NewRows,防止数据更改----此处用不到 foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { string sTmp = QueryGrid.GetValueByFieldName("XLWBBJDMX_DRHH", Row).Trim(); if (!sTmp.Equals("")) { sDRHHList += sTmp + ","; } } } sDRHHList = sDRHHList.TrimEnd(','); } ////获取选中行号的型号集合 //private void QueryGrid_CheckedXLXHIDList(ref List lstXLXHIDList) //{ // foreach (GridViewRow Row in QueryGrid.NewRows) // { // if (QueryGrid.RowIsChecked(Row)) // { // string sTmp = QueryGrid.GetValueByFieldName("XLWBBJDMX_XLXHID", Row).Trim(); // if (!sTmp.Equals("") && lstXLXHID.Contains(sTmp)) // { // lstXLXHIDList.Add(sTmp); // } // } // } //} //获取选中行号的规格合集 private void QueryGrid_CheckedXLGGIDList(ref List lstXLGGIDList) { foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { string sTmp = QueryGrid.GetValueByFieldName("XLWBBJDMX_XLGGID", Row).Trim().Replace("*", "×"); if (!sTmp.Equals("") && lstXLGGIDList.Contains(sTmp)) { lstXLGGIDList.Add(sTmp); } } } } //获取下拉内容 01-型号调整; 02-规格调整 public static DataSet GetXLWBBJDANXX(string sANXX) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDANXX_ANLX,XLWBBJDANXX_ANXX,XLWBBJDANXX_XSSX "); SQL.Add(" from XLWBBJDANXX "); SQL.Add(" where XLWBBJDANXX_ANLX=:pANLX "); SQL.Add(" order by XLWBBJDANXX_XSSX "); SQL.ParamByName("pANLX").Value = sANXX; DataSet ds = dberp.OpenDataSet(SQL); return ds; } //左模糊替换 public static string Replace_Left(string allValue, string oldValue, string newValue) { if (allValue.IndexOf(oldValue) == 0) { if (allValue.Equals(oldValue)) return newValue; else { int lenth = oldValue.Length; string sLast = allValue.Substring(lenth); return newValue + sLast; } } return allValue; } #region 型号&规格替换 private void SelectMatchForXLXHIDAndXLGGID() { sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sXLBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { //型号、规格、电压 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDXHGGDZB_WBXLXHID as WBXLXHID,XLWBBJDXHGGDZB_WBXLGGID as WBXLGGID,XLWBBJDXHGGDZB_WBDYDJID as WBDYDJID, "); SQL.Add(" XLWBBJDXHGGDZB_XLXHID as XLXHID, XLWBBJDXHGGDZB_XLGGID as XLGGID,XLWBBJDXHGGDZB_DYDJID as DYDJID, "); SQL.Add(" XLWBBJDMX_WBBJDID as WBBJDID, XLWBBJDMX_DRHH as DRHH"); SQL.Add(" from XLWBBJDXHGGDZB"); SQL.Add(" left join XLWBBJDMX on XLWBBJDMX_XLXHID = XLWBBJDXHGGDZB_WBXLXHID and XLWBBJDXHGGDZB_WBXLGGID=XLWBBJDMX_XLGGID and XLWBBJDXHGGDZB_WBDYDJID=XLWBBJDMX_DYDJID"); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDXHGGDZB_WBXLXHID<>' ' and XLWBBJDXHGGDZB_WBXLGGID<>' ' and XLWBBJDXHGGDZB_WBDYDJID<>' ' "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_WBBJDID = sor.WBBJDID "); SQL.Add(" and tar.XLWBBJDMX_DRHH = sor.DRHH "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLXHID =sor.XLXHID, tar.XLWBBJDMX_XLGGID=isnull(sor.XLGGID,' '), tar.XLWBBJDMX_DYDJID=isnull(sor.DYDJID,' '),tar.XLWBBJDMX_WHR='XHGGDY' "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //型号、规格 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDXHGGDZB_WBXLXHID as WBXLXHID,XLWBBJDXHGGDZB_WBXLGGID as WBXLGGID,XLWBBJDXHGGDZB_WBDYDJID as WBDYDJID, "); SQL.Add(" XLWBBJDXHGGDZB_XLXHID as XLXHID, CASE WHEN isnull(XLWBBJDXHGGDZB_XLGGID,' ')=' ' then XLWBBJDMX_XLGGID else XLWBBJDXHGGDZB_XLGGID end as XLGGID,"); SQL.Add(" CASE WHEN isnull(XLWBBJDXHGGDZB_DYDJID,' ')=' ' THEN XLWBBJDMX_DYDJID ELSE XLWBBJDXHGGDZB_DYDJID END as DYDJID, "); SQL.Add(" XLWBBJDMX_WBBJDID as WBBJDID, XLWBBJDMX_DRHH as DRHH"); SQL.Add(" from XLWBBJDXHGGDZB"); SQL.Add(" left join XLWBBJDMX on XLWBBJDMX_XLXHID = XLWBBJDXHGGDZB_WBXLXHID and XLWBBJDXHGGDZB_WBXLGGID=XLWBBJDMX_XLGGID"); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDXHGGDZB_WBXLXHID<>' ' and XLWBBJDXHGGDZB_WBXLGGID<>' ' and XLWBBJDXHGGDZB_WBDYDJID=' ' "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_WBBJDID = sor.WBBJDID "); SQL.Add(" and tar.XLWBBJDMX_DRHH = sor.DRHH "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" AND tar.XLWBBJDMX_WHR <> 'XHGGDY' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLXHID =sor.XLXHID, tar.XLWBBJDMX_XLGGID=isnull(sor.XLGGID,' '), tar.XLWBBJDMX_DYDJID=isnull(sor.DYDJID,' '),tar.XLWBBJDMX_WHRID='XHGGDY' "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //型号、电压 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDXHGGDZB_WBXLXHID as WBXLXHID,XLWBBJDXHGGDZB_WBXLGGID as WBXLGGID,XLWBBJDXHGGDZB_WBDYDJID as WBDYDJID, "); SQL.Add(" XLWBBJDXHGGDZB_XLXHID as XLXHID, CASE WHEN isnull(XLWBBJDXHGGDZB_XLGGID,' ')=' ' then XLWBBJDMX_XLGGID else XLWBBJDXHGGDZB_XLGGID end as XLGGID,"); SQL.Add(" CASE WHEN isnull(XLWBBJDXHGGDZB_DYDJID,' ')=' ' THEN XLWBBJDMX_DYDJID ELSE XLWBBJDXHGGDZB_DYDJID END as DYDJID, "); SQL.Add(" XLWBBJDMX_WBBJDID as WBBJDID, XLWBBJDMX_DRHH as DRHH"); SQL.Add(" from XLWBBJDXHGGDZB"); SQL.Add(" left join XLWBBJDMX on XLWBBJDMX_XLXHID = XLWBBJDXHGGDZB_WBXLXHID and XLWBBJDXHGGDZB_WBDYDJID=XLWBBJDMX_DYDJID"); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDXHGGDZB_WBXLXHID<>' ' and XLWBBJDXHGGDZB_WBXLGGID=' ' and XLWBBJDXHGGDZB_WBDYDJID<>' ' "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_WBBJDID = sor.WBBJDID "); SQL.Add(" and tar.XLWBBJDMX_DRHH = sor.DRHH "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" AND tar.XLWBBJDMX_WHR <> 'XHGGDY' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLXHID =sor.XLXHID, tar.XLWBBJDMX_XLGGID=isnull(sor.XLGGID,' '), tar.XLWBBJDMX_DYDJID=isnull(sor.DYDJID,' '),tar.XLWBBJDMX_WHRID='XHGGDY' "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //型号 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDXHGGDZB_WBXLXHID as WBXLXHID,XLWBBJDXHGGDZB_WBXLGGID as WBXLGGID,XLWBBJDXHGGDZB_WBDYDJID as WBDYDJID, "); SQL.Add(" XLWBBJDXHGGDZB_XLXHID as XLXHID, CASE WHEN isnull(XLWBBJDXHGGDZB_XLGGID,' ')=' ' then XLWBBJDMX_XLGGID else XLWBBJDXHGGDZB_XLGGID end as XLGGID,"); SQL.Add(" CASE WHEN isnull(XLWBBJDXHGGDZB_DYDJID,' ')=' ' THEN XLWBBJDMX_DYDJID ELSE XLWBBJDXHGGDZB_DYDJID END as DYDJID, "); SQL.Add(" XLWBBJDMX_WBBJDID as WBBJDID, XLWBBJDMX_DRHH as DRHH"); SQL.Add(" from XLWBBJDXHGGDZB"); SQL.Add(" left join XLWBBJDMX on XLWBBJDMX_XLXHID = XLWBBJDXHGGDZB_WBXLXHID"); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDXHGGDZB_WBXLXHID<>' ' and XLWBBJDXHGGDZB_WBXLGGID=' ' and XLWBBJDXHGGDZB_WBDYDJID=' ' "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_WBBJDID = sor.WBBJDID "); SQL.Add(" and tar.XLWBBJDMX_DRHH = sor.DRHH "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" AND tar.XLWBBJDMX_WHR <> 'XHGGDY' AND tar.XLWBBJDMX_WHRID <> 'XHGGDY' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLXHID =sor.XLXHID, tar.XLWBBJDMX_XLGGID=isnull(sor.XLGGID,' '), tar.XLWBBJDMX_DYDJID=isnull(sor.DYDJID,' ') "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("UPDATE XLWBBJDMX SET XLWBBJDMX_WHR=:pWHR,XLWBBJDMX_WHRID=:pWHRID WHERE XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID AND (XLWBBJDMX_WHR='XHGGDY' or XLWBBJDMX_WHRID='XHGGDY') "); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLWBBJDMX_Batch(dberp, CurSession, sWBBJDID); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("匹配出现错误,请联系系统管理员。错误信息:" + ex); } } #endregion #region 标准&电压匹配 //true -需要清空电压&标准 //fales -不需要清除电压&标准匹配 private void SelectMatchForXLBZIDAndDYDJID(bool bClearXLBZIDAndDYDJID, string sJGBID) { if (!XLBJDUtils.IsJGEJGB(sJGBID)) { sJGBID = GetJGCIDS(sJGBID, "JGB"); } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); DateTime TimeStamp = MISproUtils.GetServerTime(); int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_XLWBBJDMX", "V_XLWBBJDMX_ID", "") + 1; InsertV_XLWBBJDMX(sDRHHList, VnewID, TimeStamp); if(GetOption(100860043, "BJU028") != "Y") MatchForXLBZIDAndDYDJID(bClearXLBZIDAndDYDJID, sJGBID, sDRHHList,VnewID); #region 匹配产品目录 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sCPML = pzxx.XLXSBJPZ_XSCPML; if (sCPML == "Z") { XLWBBJDUtils.UpdateCPMLMC(dberp, SQL, sWBBJDID, sXLBJDID, sDRHHList, VnewID); } DelV_XLWBBJDMX( VnewID, TimeStamp); #endregion btnCallBack_Click(null, null); } private void InsertV_XLWBBJDMX(string sDRHHList, int VnewID, DateTime TimeStamp) { if (string.IsNullOrEmpty(sDRHHList)) return; string [] DRHHs = sDRHHList.Split(','); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" insert into V_XLWBBJDMX(V_XLWBBJDMX_ID,V_XLWBBJDMX_DRHH,V_XLWBBJDMX_TIMESTAMP,V_XLWBBJDMX_WHR,V_XLWBBJDMX_WHRID,V_XLWBBJDMX_WHSJ)"); SQL.Add(" values(:V_XLWBBJDMX_ID,:V_XLWBBJDMX_DRHH,:V_XLWBBJDMX_TIMESTAMP,:V_XLWBBJDMX_WHR,:V_XLWBBJDMX_WHRID,:V_XLWBBJDMX_WHSJ )"); for (int i = 0; i < DRHHs.Length; i++) { SQL.ParamByName("V_XLWBBJDMX_ID").Value = VnewID; SQL.ParamByName("V_XLWBBJDMX_DRHH").Value = DRHHs[i]; SQL.ParamByName("V_XLWBBJDMX_TIMESTAMP").Value = TimeStamp; SQL.ParamByName("V_XLWBBJDMX_WHR").Value = CurSession.UserName; SQL.ParamByName("V_XLWBBJDMX_WHRID").Value = CurSession.UserId; SQL.ParamByName("V_XLWBBJDMX_WHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } } private void DelV_XLWBBJDMX(int VnewID, DateTime TimeStamp) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" delete from V_XLWBBJDMX where V_XLWBBJDMX_ID=:V_XLWBBJDMX_ID "); SQL.ParamByName("V_XLWBBJDMX_ID").Value = VnewID; dberp.ExecSQL(SQL); } private void MatchForXLBZIDAndDYDJID(bool bClearXLBZIDAndDYDJID, string sJGBID, string sDRHHList, int VnewID) { bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y"); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); //清空电压&标准后匹配,会直接将所选记录型号,规格不为空的标准和电压等级全部置空 //型号规格 可以获取唯一值,点击匹配按钮会直接匹配上标准和电压等级。 //型号规格标准 可以获取唯一值,点击匹配按钮会直接匹配上电压等级。 //型号规格电压等级可以获取唯一值,点击匹配按钮会直接匹配上标准。 //----------------------------------------------------------------- //以上三种情况相互独立,不需要考虑顺序问题 if (bClearXLBZIDAndDYDJID) { //foreach (KeyValuePair kvp in dicMCTCH) SQL.Clear(); SQL.Add("update XLWBBJDMX "); SQL.Add(" set XLWBBJDMX_XLBZID =:pXLBZID "); if (!bBPPDY) SQL.Add(" , XLWBBJDMX_DYDJID=' ' "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; string sWBXLBZID = XLBJDUtils.GetBZXLZBZID("", XLBJDUtils.GetDefaultXLBZID(), null); SQL.ParamByName("pXLBZID").Value = sWBXLBZID.Equals("") ? " " : sWBXLBZID; dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_DYDJID = ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "DY"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //先匹配型号相同,规格为空的记录更新外部报价单明细 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using XLXSBJCPMRBZDY sor "); SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLWBBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=' ' "); SQL.Add(" and XLWBBJDMX_WHR='DY'"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ) "); SQL.Add(" when matched then update set "); SQL.Add(" XLWBBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') "); if (!bBPPDY) SQL.Add(" ,XLWBBJDMX_DYDJID=isnull(XLXSBJCPMRBZDY_DYDJID,' ') "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //后匹配型号、规格相等的记录更新外部报价单明细 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using XLXSBJCPMRBZDY sor "); SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLWBBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=XLWBBJDMX_XLGGID "); SQL.Add(" and XLWBBJDMX_WHR='DY'"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ) "); SQL.Add(" when matched then update set "); SQL.Add(" XLWBBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') "); if (!bBPPDY) SQL.Add(" ,XLWBBJDMX_DYDJID=isnull(XLXSBJCPMRBZDY_DYDJID,' ') "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pWHR"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_WHR='DY' "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and ISNULL(XLWBBJDMX_DYDJID,' ') <> ' ' "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "BZ"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); //再匹配型号、规格、电压相等的记录更新到外部报价单明细 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using XLXSBJCPMRBZDY sor "); SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLWBBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=XLWBBJDMX_XLGGID and XLXSBJCPMRBZDY_DYDJID=XLWBBJDMX_DYDJID "); SQL.Add(" and XLWBBJDMX_WHR='BZ'"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ) "); SQL.Add(" when matched then update set "); SQL.Add(" XLWBBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pWHR"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_WHR='BZ' "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); string sWBPPZXSX = "A"; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_WBPPZXSX)) sWBPPZXSX = pzxx.XLXSBJPZ_WBPPZXSX; string sDefXLBZID = ""; string sDefDYDJID = ""; pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRXLBZID)) sDefXLBZID = pzxx.XLXSBJPZ_MRXLBZID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRDYDJ)) sDefDYDJID = pzxx.XLXSBJPZ_MRDYDJ; /* A:线缆销售材料清单 B:线缆销售价格表 C:先材料清单再价格表 D:先价格表再材料清单 */ string ErrorNo = ""; try { if (sWBPPZXSX.Equals("B") || sWBPPZXSX.Equals("D")) { MatchForXLXSJGBMX(dberp, SQL, bClearXLBZIDAndDYDJID, sJGBID, sDefXLBZID, sDefDYDJID, sDRHHList, VnewID, ref ErrorNo); if (sWBPPZXSX.Equals("D")) { MatchForXLXSCLQD(dberp, SQL, bClearXLBZIDAndDYDJID, sJGBID, sDefXLBZID, sDefDYDJID, sDRHHList, VnewID, ref ErrorNo); } } else { MatchForXLXSCLQD(dberp, SQL, bClearXLBZIDAndDYDJID, sJGBID, sDefXLBZID, sDefDYDJID, sDRHHList, VnewID, ref ErrorNo); if (sWBPPZXSX.Equals("C")) { MatchForXLXSJGBMX(dberp, SQL, bClearXLBZIDAndDYDJID, sJGBID, sDefXLBZID, sDefDYDJID, sDRHHList, VnewID, ref ErrorNo); } } } catch (Exception ex) { ShowMessage("匹配出现错误,请联系系统管理员。错误编码:" + sWBPPZXSX + ErrorNo + ";" + ex); } } private void MatchForXLXSJGBMX(TDatabase dberp, TSQL SQL, bool bClearXLBZIDAndDYDJID, string sJGBID, string sDefXLBZID, string sDefDYDJID, string sDRHHList, int VnewID, ref string ErrorNo) { bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y"); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID = ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "BZ_DY"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } //使用价格表明细 /* merge into 目标表 tar using 源表 sor on(a.条件字段1=b.条件字段1 and tar.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……) */ if (sDefXLBZID.Equals("")) { ErrorNo = "1.1"; #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" )"); //根据型号、规格就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID)) = 2 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'BZ_DY' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID = ' ' and tar.XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLBZID =sor.XLBZID "); if (!bBPPDY) SQL.Add(", tar.XLWBBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else if (sDefXLBZID.Equals("FirstBZ")) { ErrorNo = "1.2"; #region 根据型号、规格,匹配第一个标准 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,isnull(XLBZ_XLBZID,' ') as XLBZID"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, min(isnull(XLBZPX,0)) as minXLBZPX "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSJGBMX_XLBZID"); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID"); SQL.Add(" ) jgbmx"); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX"); SQL.Add(" where 1=1"); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'BZ_DY' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID = ' ' and tar.XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLBZID =sor.XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID <> ' ' and XLWBBJDMX_DYDJID = ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "DY"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } if (!bBPPDY) { if (sDefDYDJID.Equals("minDY")) { ErrorNo = "2.1"; #region 根据型号、规格、标准,匹配第一个电压等级 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ("); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, isnull(XLDYDJB_DYDJID,' ') as DYDJID, PPSL "); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_XLBZID,min(isnull(DYDJPX,0)) as minDYDJPX,sum(1) as PPSL ");//匹配数量等于1则表示唯一匹配 SQL.Add(" from XLXSJGBMX b "); SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) tmpXLDY on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID"); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_XLBZID=b.XLXSJGBMX_XLBZID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID"); SQL.Add(" ) jgbmx"); SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) DYDJ on DYDJ.DYDJPX=minDYDJPX"); SQL.Add(" where 1=1"); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_XLBZID = sor.XLBZID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' and ((isnull(tar.XLWBBJDMX_BJCPDYDJID,' ') = ' ' and sor.PPSL > 1) or sor.PPSL = 1) ");//匹配数量等于1表示唯一匹配,无需考虑XLWBBJDMX_BJCPDYDJID if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'DY' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID <> ' ' and tar.XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else { ErrorNo = "2.2"; #region 根据型号、规格、标准,匹配唯一电压等级 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_XLBZID=b.XLXSJGBMX_XLBZID"); SQL.Add(" )"); //根据型号、规格、标准就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_XLBZID=XLXSJGBMX_XLBZID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_XLBZID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_XLBZID)) = 3 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.XLBZID = b.XLXSJGBMX_XLBZID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_XLBZID = sor.XLBZID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'DY' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID <> ' ' and tar.XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID <> ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "BZ"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } if (sDefXLBZID.Equals("")) { ErrorNo = "3.1"; #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_DYDJID=b.XLXSJGBMX_DYDJID"); SQL.Add(" )"); //根据型号、规格、标准就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_DYDJID=XLXSJGBMX_DYDJID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_DYDJID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_DYDJID)) = 3 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.DYDJID = b.XLXSJGBMX_DYDJID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_DYDJID=sor.DYDJID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'BZ' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID = ' ' and tar.XLWBBJDMX_DYDJID <> ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLBZID =sor.XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else if (sDefXLBZID.Equals("FirstBZ")) { ErrorNo = "3.2"; #region 根据型号、规格、电压等级,匹配第一个标准 SQL.Clear(); SQL.Add("merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_DYDJID as DYDJID,isnull(XLBZ_XLBZID,' ') as XLBZID"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID, min(isnull(XLBZPX,0)) as minXLBZPX "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSJGBMX_XLBZID"); SQL.Add(" where 1=1 and len(XLXSJGBMX_XLBZID) < 10 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLWBBJDMX tmp where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLWBBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLWBBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLWBBJDMX_DYDJID=b.XLXSJGBMX_DYDJID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID"); SQL.Add(" ) jgbmx"); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX"); SQL.Add(" where 1=1"); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLWBBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLWBBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLWBBJDMX_DYDJID=sor.DYDJID "); SQL.Add(" and tar.XLWBBJDMX_XLXHID <> ' ' and tar.XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and tar.XLWBBJDMX_WHR = 'BZ' "); else SQL.Add(" and tar.XLWBBJDMX_XLBZID = ' ' and tar.XLWBBJDMX_DYDJID <> ' ' "); SQL.Add(" and tar.XLWBBJDMX_WBBJDID=:pWBBJDID and tar.XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=tar.XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLWBBJDMX_XLBZID =sor.XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pWHR"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and (XLWBBJDMX_WHR='BZ_DY' or XLWBBJDMX_WHR='DY' or XLWBBJDMX_WHR='BZ')"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } } private void MatchForXLXSCLQD(TDatabase dberp, TSQL SQL, bool bClearXLBZIDAndDYDJID, string sJGBID, string sDefXLBZID, string sDefDYDJID, string sDRHHList, int VnewID, ref string ErrorNo) { bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y"); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID = ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "BZ_DY"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } //使用材料清单匹配 if (sDefXLBZID.Equals("")) { ErrorNo = "4.1"; #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag"); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID FROM XLXSCLQD b "); SQL.Add(" WHERE a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLWBBJDMX_XLXHID, XLWBBJDMX_XLGGID from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID)) = 2 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'BZ_DY' "); else SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXSCLQD_XLXHID =XLWBBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLWBBJDMX_XLGGID ) "); SQL.Add(" when matched then update set XLWBBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); if (!bBPPDY) SQL.Add(" , XLWBBJDMX_DYDJID=c.XLXSCLQD_DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else if (sDefXLBZID.Equals("FirstBZ")) { ErrorNo = "4.2"; #region 根据型号、规格,匹配第一个标准 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag"); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,isnull(XLBZ_XLBZID,' ') as XLBZID"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,min(isnull(XLBZPX,0)) as minXLBZPX FROM XLXSCLQD "); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID"); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists( "); SQL.Add(" select 1 from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID"); SQL.Add(" ) clqd"); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX"); SQL.Add(" where 1=1"); SQL.Add(" ) c "); SQL.Add(" on( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'BZ_DY' "); else SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXHID =XLWBBJDMX_XLXHID and c.XLGGID=XLWBBJDMX_XLGGID ) "); SQL.Add(" when matched then update set XLWBBJDMX_XLBZID =c.XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID <> ' ' and XLWBBJDMX_DYDJID = ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "DY"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } if (!bBPPDY) { if (sDefDYDJID.Equals("minDY")) { ErrorNo = "5.1"; #region 根据型号、规格、标准,匹配第一个电压等级 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID, isnull(XLDYDJB_DYDJID,' ') as XLDYDJB_DYDJID,PPSL"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,min(isnull(DYDJPX,0)) as minDYDJPX,sum(1) as PPSL FROM XLXSCLQD ");//匹配数量等于1则表示唯一匹配 SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) tmpDYDJ on tmpDYDJ.XLDYDJB_DYDJID=XLXSCLQD_DYDJID"); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists( "); SQL.Add(" select 1 from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLWBBJDMX_XLBZID= XLXSCLQD_XLBZID "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID"); SQL.Add(" ) clqd"); SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) DYDJ on DYDJ.DYDJPX=minDYDJPX"); SQL.Add(" where 1=1"); SQL.Add(" ) c "); SQL.Add(" on ( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'DY' "); else SQL.Add(" and XLWBBJDMX_XLBZID <> ' ' and XLWBBJDMX_DYDJID = ' ' and ((isnull(XLWBBJDMX_BJCPDYDJID,' ')=' ' and c.PPSL > 1) or c.PPSL = 1) ");//匹配数量等于1表示唯一匹配,无需考虑XLWBBJDMX_BJCPDYDJID SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXSCLQD_XLXHID =XLWBBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLWBBJDMX_XLGGID and c.XLXSCLQD_XLBZID=XLWBBJDMX_XLBZID ) "); SQL.Add(" when matched then update set XLWBBJDMX_DYDJID =c.XLDYDJB_DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else { ErrorNo = "5.2"; #region 根据型号、规格、标准,匹配唯一电压等级 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID FROM XLXSCLQD b "); SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and a.XLXSCLQD_XLBZID = b.XLXSCLQD_XLBZID"); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLWBBJDMX_XLXHID, XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLWBBJDMX_XLBZID=XLXSCLQD_XLBZID"); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_XLBZID)) = 3 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'DY' "); else SQL.Add(" and XLWBBJDMX_XLBZID <> ' ' and XLWBBJDMX_DYDJID = ' ' "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXSCLQD_XLXHID =XLWBBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLWBBJDMX_XLGGID and c.XLXSCLQD_XLBZID=XLWBBJDMX_XLBZID ) "); SQL.Add(" when matched then update set XLWBBJDMX_DYDJID =c.XLXSCLQD_DYDJID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pFlag"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID <> ' '"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.ParamByName("pFlag").Value = "BZ"; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } if (sDefXLBZID.Equals("")) { ErrorNo = "6.1"; #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID FROM XLXSCLQD b "); SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and a.XLXSCLQD_DYDJID = b.XLXSCLQD_DYDJID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLWBBJDMX_XLXHID, XLWBBJDMX_XLGGID,XLXSCLQD_DYDJID from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID"); SQL.Add(" and XLWBBJDMX_DYDJID=XLXSCLQD_DYDJID"); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_DYDJID)) = 3 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'BZ' "); else SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID <> ' ' "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXSCLQD_XLXHID =XLWBBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLWBBJDMX_XLGGID and c.XLXSCLQD_DYDJID=XLWBBJDMX_DYDJID ) "); SQL.Add(" when matched then update set XLWBBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } else if (sDefXLBZID.Equals("FirstBZ")) { ErrorNo = "6.2"; #region 根据型号、规格、电压等级,匹配第一个标准 SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_DYDJID as DYDJID,isnull(XLBZ_XLBZID,' ') as XLBZID"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID,min(isnull(XLBZPX,0)) as minXLBZPX FROM XLXSCLQD "); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID"); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' and len(XLXSCLQD_XLBZID) < 10 "); SQL.Add(" and exists( "); SQL.Add(" select 1 from XLWBBJDMX WHERE XLWBBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLWBBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID"); SQL.Add(" ) clqd"); SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX"); SQL.Add(" where 1=1"); SQL.Add(" ) c "); SQL.Add(" on( XLWBBJDMX_XLXHID <> ' ' and XLWBBJDMX_XLGGID <> ' ' "); if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 SQL.Add(" and XLWBBJDMX_WHR = 'BZ' "); else SQL.Add(" and XLWBBJDMX_XLBZID = ' ' and XLWBBJDMX_DYDJID <> ' ' "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and c.XLXHID =XLWBBJDMX_XLXHID and c.XLGGID=XLWBBJDMX_XLGGID and c.DYDJID=XLWBBJDMX_DYDJID ) "); SQL.Add(" when matched then update set XLWBBJDMX_XLBZID =c.XLBZID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } if (dberp.DriverName == "ORACLE" || dberp.DriverName == "DM")//Oracle下merge into语法被更新的字段不能作为关联条件使用,专门处理 { SQL.Clear(); SQL.Add("update XLWBBJDMX set XLWBBJDMX_WHR=:pWHR"); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID"); if (!sDRHHList.Equals("")) { //研发自测:王威 2025/11/02 21:35:46 SQL.Add(" and exists (select 1 from V_XLWBBJDMX where V_XLWBBJDMX_DRHH=XLWBBJDMX_DRHH and V_XLWBBJDMX_ID=:pNewID)"); SQL.ParamByName("pNewID").Value = VnewID; } SQL.Add(" and (XLWBBJDMX_WHR='BZ_DY' or XLWBBJDMX_WHR='DY' or XLWBBJDMX_WHR='BZ')"); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } } #endregion #region 线缆物料匹配 private void SelectMatchForXLWL() { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } Dictionary dicMCTCH = new Dictionary(); dicMCTCH.Clear(); Dictionary dicXGD = new Dictionary(); dicXGD.Clear(); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string[] sTempArr = sDRHHList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string sDicTmp = ""; int index = 0; //1000条记录以上 if (sTempArr.Length / 1000 > 0) { for (int m = 0; m < sTempArr.Length; m++) { if (m % 1000 == 0) { if (!sDicTmp.Equals("")) { index++; dicMCTCH.Add(index.ToString().Trim(), sDicTmp.TrimEnd(',')); sDicTmp = ""; } } sDicTmp = sDicTmp + sTempArr[m] + ","; } index++; dicMCTCH.Add(index.ToString().Trim(), sDicTmp.TrimEnd(',')); sDicTmp = ""; } else { //1000条以下记录直接放入字典 index++; dicMCTCH.Add(index.ToString().Trim(), sDRHHList.TrimEnd(',')); sDicTmp = ""; } string ErrorNo = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); MatchForXLWL(dberp, SQL, dicMCTCH, ref ErrorNo); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("匹配出现错误,请联系系统管理员。错误编码:" + ErrorNo + ";" + ex); } btnCallBack_Click(null, null); } private void MatchForXLWL(TDatabase dberp, TSQL SQL, Dictionary dicMCTCH, ref string ErrorNo) { //使用材料清单匹配 foreach (KeyValuePair kvp in dicMCTCH) { ErrorNo = "1"; #region 物料匹配五要素 /* merge into 目标表 tar using 源表 sor on(a.条件字段1=b.条件字段1 and tar.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……) */ SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDMX_WBBJDID as WBBJDID ,XLWBBJDMX_BJDID as BJDID,XLWBBJDMX_DRHH as DRHH, "); SQL.Add(" XLWBBJDMX_WLID as WLID, "); SQL.Add(" case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end as XLXHID, "); //A|× B|* if (sXLJGU007.Equals("B")) { SQL.Add(" replace( XLXLB_XLGGID,'×','*') as XLGGID, "); } else { SQL.Add(" replace( XLXLB_XLGGID,'*','×') as XLGGID, "); } SQL.Add(" XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID, "); SQL.Add(" XLXLB_XLYSID as XLYSID "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" left join XLXLB on XLWBBJDMX_WLID=XLXLB_WLID "); SQL.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID "); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pXLBJDID "); SQL.Add(" and isnull(XLWBBJDMX_WLID,' ') <> ' ' "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", kvp.Value)); SQL.Add(" ) sor "); SQL.Add(" on ( "); SQL.Add(" sor.BJDID = XLWBBJDMX_BJDID "); SQL.Add(" and sor.WBBJDID = XLWBBJDMX_WBBJDID "); SQL.Add(" and sor.DRHH = XLWBBJDMX_DRHH "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pXLBJDID "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" XLWBBJDMX_XLXHID = sor.XLXHID, XLWBBJDMX_XLGGID = sor.XLGGID, "); SQL.Add(" XLWBBJDMX_XLBZID = sor.XLBZID, XLWBBJDMX_DYDJID = sor.DYDJID, "); SQL.Add(" XLWBBJDMX_XLYSID = sor.XLYSID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pXLBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); #endregion } } #endregion //统一根据ds 以及 选中的行号更新型号,规格,电压。 private void UpdateData(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, DataSet ds) { SQL.Clear(); SQL.Add("update XLWBBJDMX "); SQL.Add(" set XLWBBJDMX_XLXHID=:pXLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID=:pXLWBBJDMX_XLGGID,XLWBBJDMX_DYDJID=:pXLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID=:pXLWBBJDMX_BJCPDYDJID,XLWBBJDMX_XDBZ=:pXLWBBJDMX_XDBZ "); if (ds.Tables[0].Columns.Contains("XLWBBJDMX_XLYSID")) { SQL.Add(" ,XLWBBJDMX_XLYSID=:pXLWBBJDMX_XLYSID "); } SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and XLWBBJDMX_DRHH = :pDRHH "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { // SQL.ParamByName("pDRHH").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim(); SQL.ParamByName("pXLWBBJDMX_XLXHID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(), 40).ToUpper();//型号控制大写 SQL.ParamByName("pXLWBBJDMX_XLGGID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(), 60); string sWBDYDJID = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(), 20); SQL.ParamByName("pXLWBBJDMX_DYDJID").Value = sWBDYDJID.Equals("") ? " " : sWBDYDJID; if (ds.Tables[0].Columns.Contains("XLWBBJDMX_XLYSID")) { SQL.ParamByName("pXLWBBJDMX_XLYSID").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"].ToString().Trim(); } SQL.ParamByName("pXLWBBJDMX_BJCPDYDJID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_BJCPDYDJID"].ToString().Trim(), 20); SQL.ParamByName("pXLWBBJDMX_XDBZ").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_XDBZ"].ToString().Trim(); dberp.ExecSQL(SQL); } } //统一根据ds 以及 选中的行号更新型号,电压。 private void UpdateWBBJDXHDY(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, DataSet ds) { SQL.Clear(); SQL.Add("update XLWBBJDMX "); SQL.Add(" set XLWBBJDMX_XLXHID=:pXLWBBJDMX_XLXHID,XLWBBJDMX_DYDJID=:pXLWBBJDMX_DYDJID,XLWBBJDMX_XDBZ=:pXLWBBJDMX_XDBZ "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and XLWBBJDMX_DRHH = :pDRHH "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { // SQL.ParamByName("pDRHH").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim(); SQL.ParamByName("pXLWBBJDMX_XLXHID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(), 40).ToUpper();//型号控制大写 string sWBDYDJID = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(), 20); SQL.ParamByName("pXLWBBJDMX_DYDJID").Value = sWBDYDJID.Equals("") ? " " : sWBDYDJID; SQL.ParamByName("pXLWBBJDMX_XDBZ").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_XDBZ"].ToString().Trim(); dberp.ExecSQL(SQL); } } //统一根据ds 以及 选中的行号更新型号,规格,标准 ,电压,颜色。 private void UpdateCPYS(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, DataSet ds) { SQL.Clear(); SQL.Add("update XLWBBJDMX "); SQL.Add(" set XLWBBJDMX_XLXHID=:pXLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID=:pXLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID= :pXLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID=:pXLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID=:pXLWBBJDMX_XLYSID "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and XLWBBJDMX_DRHH = :pDRHH "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { // SQL.ParamByName("pDRHH").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim(); SQL.ParamByName("pXLWBBJDMX_XLXHID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(), 40).ToUpper();//型号控制大写 SQL.ParamByName("pXLWBBJDMX_XLGGID").Value = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(), 60); SQL.ParamByName("pXLWBBJDMX_XLBZID").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_XLBZID"].ToString().Trim(); if (GetOption(100860043, "BJU028") == "Y") SQL.ParamByName("pXLWBBJDMX_XLBZID").Value = " "; string sWBDYDJID = XLBJDUtils.SubStringFunc(ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(), 20); SQL.ParamByName("pXLWBBJDMX_DYDJID").Value = sWBDYDJID.Equals("") ? " " : sWBDYDJID; SQL.ParamByName("pXLWBBJDMX_XLYSID").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"].ToString().Trim(); dberp.ExecSQL(SQL); } } //预处理原则2 private void RecoverData(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); string sCPML = pzxx.XLXSBJPZ_XSCPML; string sXSPWQD = pzxx.XLXSBJPZ_XSPWQD; string sXSYZ = PageParam.GetRTrimString("XSYZ"); string sXSYXJ = PageParam.GetRTrimString("XSYXJ"); string sXSYSCP = PageParam.GetRTrimString("XSYSCP"); string sXSBH = PageParam.GetRTrimString("XSBH"); string sXSCPBJXJ = PageParam.GetRTrimString("XSCPBJXJ"); bool bXsGWBM = XLBJDUtils.ExistXLXSBJGWWL(); int iBJCP = 1; int iXH = 2; int iGG = 3; string sHTBH = ""; if (!string.IsNullOrEmpty(PageParam.GetRTrimString("HTBH"))) { sHTBH = PageParam.GetRTrimString("HTBH"); } Dictionary dicDRLM = XLBJD_WBBJDDRList.GetDRLM(sXSYXJ, sXSYSCP, sXSYZ, sXSBH, sXSCPBJXJ, sCPML, sXSPWQD, bXsGWBM, sSELBJDID); int ColumnIndex = 1; foreach (string stDRLM in dicDRLM.Keys) { if (stDRLM.Equals("1")) iBJCP = ColumnIndex; if (stDRLM.Equals("8")) iXH = ColumnIndex; if (stDRLM.Equals("9")) iGG = ColumnIndex; ColumnIndex++; } string x,y,z; x = iBJCP.ToString().PadLeft(2, '0'); y = iXH.ToString().PadLeft(2, '0'); z = iGG.ToString().PadLeft(2, '0'); /* merge into 目标表 tar using 源表 sor on(a.条件字段1=b.条件字段1 and tar.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……) */ //赋值内容导入 SQL.Clear(); SQL.Add(" select 1 from XLWBBJDML "); SQL.Add(" where 1=1 "); SQL.Add(" and isnull(XLWBBJDML_EXCEL,' ' ) = ' ' and isnull(XLWBBJDML_SHEET,' ' ) = ' ' and isnull(XLWBBJDML_PICNAME, ' ') = ' ' "); SQL.Add(" and XLWBBJDML_WBBJDID=:pWBBJDID and XLWBBJDML_BJDID=:pBJDID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet dsLM = dberp.OpenDataSet(SQL); if (dsLM.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDNR_WBBJDID as WBBJDID ,XLWBBJDNR_BJDID as BJDID,XLWBBJDNR_DRHH as DRHH, "); SQL.Add(string.Format(" XLWBBJDNR_LMNR{0},XLWBBJDNR_LMNR{1},XLWBBJDNR_LMNR{2} ",x,y,z)); SQL.Add(" from XLWBBJDNR "); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pBJDID "); SQL.Add(string.Format(" and isnull(XLWBBJDNR_LMNR{0}, ' ') <>' ' and isnull(XLWBBJDNR_LMNR{1}, ' ') <>' ' and isnull(XLWBBJDNR_LMNR{2}, ' ') = ' ' ", x, y, z)); SQL.Add(" ) sor "); SQL.Add(" on ( "); SQL.Add(" sor.BJDID = XLWBBJDMX_BJDID "); SQL.Add(" and sor.WBBJDID = XLWBBJDMX_WBBJDID "); SQL.Add(" and sor.DRHH = XLWBBJDMX_DRHH "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(string.Format(" XLWBBJDMX_XLXHID = sor.XLWBBJDNR_LMNR{0} ",y)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" merge into XLWBBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLWBBJDNR_WBBJDID as WBBJDID ,XLWBBJDNR_BJDID as BJDID,XLWBBJDNR_DRHH as DRHH, "); SQL.Add(string.Format(" XLWBBJDNR_LMNR{0},XLWBBJDNR_LMNR{1},XLWBBJDNR_LMNR{2} ", x, y, z)); SQL.Add(" from XLWBBJDNR "); SQL.Add(" where 1=1 "); SQL.Add(" and XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pBJDID "); SQL.Add(string.Format(" and isnull(XLWBBJDNR_LMNR{0}, ' ') <>' ' and isnull(XLWBBJDNR_LMNR{1}, ' ') = ' ' and isnull(XLWBBJDNR_LMNR{2}, ' ') <>' ' ", x, y, z)); SQL.Add(" ) sor "); SQL.Add(" on ( "); SQL.Add(" sor.BJDID = XLWBBJDMX_BJDID "); SQL.Add(" and sor.WBBJDID = XLWBBJDMX_WBBJDID "); SQL.Add(" and sor.DRHH = XLWBBJDMX_DRHH "); SQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(string.Format(" XLWBBJDMX_XLGGID = sor.XLWBBJDNR_LMNR{0} ",z)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); } } //更新预处理字段 private void UpdateMLYCL(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, string sYCL) { SQL.Clear(); SQL.Add("update XLWBBJDML "); SQL.Add(" set XLWBBJDML_YCL=:pYCL "); SQL.Add(" where XLWBBJDML_WBBJDID=:pWBBJDID and XLWBBJDML_BJDID=:pBJDID "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pYCL").Value = sYCL; dberp.ExecSQL(SQL); } public static string GetJGCIDS(string sJGBID, string sMXBH) { string sJGCIDS = sJGBID; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("SELECT XLXSJGB_JGCIDS from XLXSJGB "); sql.Add("where XLXSJGB_MXBH=:pMXBH "); sql.Add(" and XLXSJGB_JGBID = :pJGBID "); sql.ParamByName("pMXBH").Value = sMXBH; sql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sJGCIDS = sJGCIDS + "," + ds.Tables[0].Rows[0][0].ToString().Trim(); } sJGCIDS = sJGCIDS.TrimStart(',').TrimEnd(','); return sJGCIDS; } public static void RecoverCPXX(ref string sCPXX) { if (dicXLXHKZHZ.Count == 0) { dicXLXHKZHZ.Clear(); dicXLXHKZHZ.Add(" 22 ", "22 "); dicXLXHKZHZ.Add(" 23 ", "23 "); dicXLXHKZHZ.Add(" 32 ", "32 "); dicXLXHKZHZ.Add(" 33 ", "33 "); dicXLXHKZHZ.Add(" 42 ", "42 "); dicXLXHKZHZ.Add(" 43 ", "43 "); dicXLXHKZHZ.Add(" 62 ", "62 "); dicXLXHKZHZ.Add(" 63 ", "63 "); dicXLXHKZHZ.Add(" 72 ", "72 "); dicXLXHKZHZ.Add(" 73 ", "73 "); lstCPXXHZ.Clear(); lstCPXXHZ.Add(" 22"); lstCPXXHZ.Add(" 23"); lstCPXXHZ.Add(" 32"); lstCPXXHZ.Add(" 33"); lstCPXXHZ.Add(" 42"); lstCPXXHZ.Add(" 43"); lstCPXXHZ.Add(" 62"); lstCPXXHZ.Add(" 63"); lstCPXXHZ.Add(" 72"); lstCPXXHZ.Add(" 73"); lstXLXHHZ.Clear(); lstXLXHHZ.Add("P2-22"); lstXLXHHZ.Add("P2-23"); lstXLXHHZ.Add("P2-32"); lstXLXHHZ.Add("P2-33"); lstXLXHHZ.Add("P2-42"); lstXLXHHZ.Add("P2-43"); lstXLXHHZ.Add("P2-62"); lstXLXHHZ.Add("P2-63"); lstXLXHHZ.Add("P2-72"); lstXLXHHZ.Add("P2-73"); lstXLXHHZ.Add("P3-22"); lstXLXHHZ.Add("P3-23"); lstXLXHHZ.Add("P3-32"); lstXLXHHZ.Add("P3-33"); lstXLXHHZ.Add("P3-42"); lstXLXHHZ.Add("P3-43"); lstXLXHHZ.Add("P3-62"); lstXLXHHZ.Add("P3-63"); lstXLXHHZ.Add("P3-72"); lstXLXHHZ.Add("P3-73"); lstXLXHHZ.Add("-B1"); lstXLXHHZ.Add("-B2"); lstXLXHHZ.Add("-Z"); } foreach (string key in dicXLXHKZHZ.Keys) { sCPXX = sCPXX.Replace(key, dicXLXHKZHZ[key]); } foreach (string sHZ in lstCPXXHZ) { if (sCPXX.EndsWith(sHZ)) { sCPXX.TrimEnd(' '); break; } } } public static void GetXLWBBJDXHDZB(TDatabase dberp, TSQL SQL, ref Dictionary dicXLWBBJDXHDZB) { dicXLWBBJDXHDZB.Clear(); SQL.Clear(); SQL.Add("select XLWBBJDXHDZB_WBXLXHID,XLWBBJDXHDZB_XLXHID from XLWBBJDXHDZB "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!dicXLWBBJDXHDZB.ContainsKey(ds.Tables[0].Rows[i]["XLWBBJDXHDZB_WBXLXHID"].ToString().Trim().ToUpper())) { dicXLWBBJDXHDZB.Add(ds.Tables[0].Rows[i]["XLWBBJDXHDZB_WBXLXHID"].ToString().Trim().ToUpper(), ds.Tables[0].Rows[i]["XLWBBJDXHDZB_XLXHID"].ToString().Trim()); } } } } #region 获取报价型号list,型号,规格,电压list public static void GetBJXHList(TDatabase dberp, TSQL SQL, string sJGBID, string sJGCIDS, ref List lstBJXHList) { //报价型号集合 lstBJXHList.Clear(); SQL.Clear(); if (XLBJDUtils.IsJGEJGB(sJGBID))//表价实时计算价格表 { SQL.Add("select distinct XLXSCLQD_XLXHID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ'"); } else { SQL.Add(" select distinct XLXSJGBMX_XLXHID from XLXSJGBMX where 1=1 "); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表 SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); else { SQL.Add(" and XLXSJGBMX_JGBID = :pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; } } DataSet dsBJXH = dberp.OpenDataSet(SQL); if (dsBJXH.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsBJXH.Tables[0].Rows.Count; i++) { lstBJXHList.Add(dsBJXH.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } } private void GetXLXHIDList(TDatabase dberp, TSQL SQL, ref List lstXLXHID) { //型号集合 lstXLXHID.Clear(); SQL.Clear(); //SQL.Add("select TOP 5 XLXHB_XLXHID from XLXHB where XLXHB_XLXHID like 'VV%' OR XLXHB_XLXHID LIKE '%BVR' "); SQL.Add(" select XLXHB_XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by XLXHB_XLXHID "); DataSet dsXLXHID = dberp.OpenDataSet(SQL); if (dsXLXHID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLXHID.Tables[0].Rows.Count; i++) { lstXLXHID.Add(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } } public static void GetXLXHIDList(TDatabase dberp, TSQL SQL, bool bWBXLXHID, ref List lstXLXHID) { //型号集合 lstXLXHID.Clear(); SQL.Clear(); SQL.Add(" select XLXHB_XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by XLXHB_XLXHID "); DataSet dsXLXHID = dberp.OpenDataSet(SQL); if (dsXLXHID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLXHID.Tables[0].Rows.Count; i++) { lstXLXHID.Add(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } SQL.Clear(); SQL.Add(" select distinct XLWBBJDXHGGDZB_WBXLXHID from XLWBBJDXHGGDZB order by XLWBBJDXHGGDZB_WBXLXHID "); dsXLXHID = dberp.OpenDataSet(SQL); if (dsXLXHID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLXHID.Tables[0].Rows.Count; i++) { if (!lstXLXHID.Contains(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim())) lstXLXHID.Add(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } SQL.Clear(); SQL.Add(" select distinct XLWBBJDXHDZB_WBXLXHID from XLWBBJDXHDZB order by XLWBBJDXHDZB_WBXLXHID "); dsXLXHID = dberp.OpenDataSet(SQL); if (dsXLXHID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLXHID.Tables[0].Rows.Count; i++) { if (!lstXLXHID.Contains(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim())) lstXLXHID.Add(dsXLXHID.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } } public static void GetXLGGIDList(TDatabase dberp, TSQL SQL, ref List lstXLGGID) { //规格集合 lstXLGGID.Clear(); SQL.Clear(); SQL.Add(" select XLGGB_XLGGID from XLGGB where isnull(XLGGB_TYBZ,'N')<>'Y' and isnull(XLGGB_XLGGID,' ') <>' ' order by XLGGB_XLGGID "); DataSet dsXLGGID = dberp.OpenDataSet(SQL); if (dsXLGGID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLGGID.Tables[0].Rows.Count; i++) { lstXLGGID.Add(dsXLGGID.Tables[0].Rows[i][0].ToString().Trim()); } } } public static void GetDYDJIDList(TDatabase dberp, TSQL SQL, ref List lstDYDJID) { //电压等级集合 lstDYDJID.Clear(); SQL.Clear(); SQL.Add(" select distinct XLDYDJB_DYDJID,XLDYDJB_XH from XLDYDJB where isnull(XLDYDJB_TYBZ,' ')<>'Y' order by XLDYDJB_XH "); DataSet dsDYDJID = dberp.OpenDataSet(SQL); if (dsDYDJID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsDYDJID.Tables[0].Rows.Count; i++) { lstDYDJID.Add(dsDYDJID.Tables[0].Rows[i][0].ToString().Trim().ToUpper()); } } } public static Dictionary GetdicXLYS() { Dictionary dicXLYS = new Dictionary(); dicXLYS.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(" select XLYSB_XLYSID,XLYSB_XLYSMC from XLYSB where 1=1 order by LEN(XLYSB_XLYSMC) DESC,XLYSB_YSZH DESC,XLYSB_XSXH "); DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXLYSID = ds.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim(); string sXLYSMC = ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(); if (!dicXLYS.ContainsKey(sXLYSMC) && !sXLYSMC.Equals("")) { dicXLYS.Add(sXLYSMC, sXLYSID); } } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXLYSID = ds.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim(); string sXLYSMC = ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim().Replace("色",""); if (!dicXLYS.ContainsKey(sXLYSMC) && !sXLYSMC.Equals("")) { dicXLYS.Add(sXLYSMC, sXLYSID); } } //广西桂奥,双色若不存在则视为绿黄 if (!dicXLYS.ContainsKey("双") && !dicXLYS.ContainsKey("双色")) { if (dicXLYS.ContainsKey("绿黄")) { string sLHYSID = dicXLYS["绿黄"]; dicXLYS.Add("双色", sLHYSID); dicXLYS.Add("双", sLHYSID); } else if (dicXLYS.ContainsKey("黄绿")) { string sHLYSID = dicXLYS["黄绿"]; dicXLYS.Add("双色", sHLYSID); dicXLYS.Add("双", sHLYSID); } } return dicXLYS; } #endregion #region 合规判定 private string getXHBHG(string sXLXHID) { string rB = "N"; if (!sXLXHID.Trim().Equals("")) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB WHERE XLXHB_XLXHID = '{0}' ", sXLXHID))) rB = "Y"; } return rB; } private string getGGBHG(string sXLGGID) { string rB = "N"; if (!sXLGGID.Trim().Equals("")) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLGGB WHERE XLGGB_XLGGID = replace('{0}','*','×') ", sXLGGID))) rB = "Y"; } return rB; } private string getDYDJBHG(string sDYDJID) { string rB = "N"; if (!sDYDJID.Trim().Equals("")) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLDYDJB WHERE XLDYDJB_DYDJID = isnull('{0}',' ') ", sDYDJID))) rB = "Y"; } return rB; } private string getCLQWSC(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) { string rB = "N"; string sJGBID = PageParam.GetRTrimString("JGBID").Trim(); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (XLBJDUtils.IsJGEJGB(sJGBID)) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD WHERE XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID = '{1}' " + "and XLXSCLQD_XLBZID=isnull('{2}',' ') and XLXSCLQD_DYDJID=isnull('{3}',' ')", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) rB = "Y"; } else { string sJGCIDS = GetJGCIDS(sJGBID, "JGB"); if (sJGCIDS.Equals("")) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX WHERE XLXSJGBMX_JGBID='" + sJGBID + "' and XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID = {1} " + "and XLXSJGBMX_XLBZID=isnull('{2}',' ') and XLXSJGBMX_DYDJID=isnull('{3}',' ')", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) rB = "Y"; } else { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX WHERE " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS) + " and XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID = '{1}' " + "and XLXSJGBMX_XLBZID=isnull('{2}',' ') and XLXSJGBMX_DYDJID=isnull('{3}',' ')", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) rB = "Y"; } } if (!sJGFID.Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX WHERE XLXSJGBMX_JGBID='" + sJGFID + "' and XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID = '{1}' " + "and XLXSJGBMX_XLBZID=isnull('{2}',' ') and XLXSJGBMX_DYDJID=isnull('{3}',' ')", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) rB = "N"; } return rB; } #endregion //标准与电压的转换传入与传出,格式XLXSCLQ_DYDJDID 或者XLXSJGBMX_DYDJID等,表明如果sValue传入电压,返回的则是标准。 private List GetBJCPValue_XLXSCLQDorXLXSJGBMX(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJGBID, string sZD, string sLY) { List lst = new List(); lst.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); DataSet ds = new DataSet(); if (sLY.Equals("XLXSCLQD")) { sql.Clear(); sql.Add(" select distinct XLXSCLQD_" + sZD + " "); sql.Add(" from XLXSCLQD "); sql.Add(" where 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID.Equals("") ? " " : sXLXHID; } if (!sXLGGID.Equals("")) { sql.Add(" and XLXSCLQD_XLGGID = :pXLGGID "); sql.ParamByName("pXLGGID").Value = sXLGGID.Equals("") ? " " : sXLGGID; } if (!sXLBZID.Equals("")) { sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID "); sql.ParamByName("pXLBZID").Value = sXLBZID.Equals("") ? " " : sXLBZID; } if (!sDYDJID.Equals("")) { sql.Add(" and XLXSCLQD_DYDJID=:pDYDJID "); sql.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; } if (sXLXHID.Equals("") && sXLGGID.Equals("") && sXLBZID.Equals("") && sDYDJID.Equals("")) { sql.Add(" and 1<> 1 "); } ds = dberp.OpenDataSet(sql); } else if (sLY.Equals("XLXSJGBMX")) { sql.Clear(); sql.Add(" select distinct XLXSJGBMX_" + sZD + " "); sql.Add(" from XLXSJGBMX "); sql.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID.Equals("") ? " " : sXLXHID; } if (!sXLGGID.Equals("")) { sql.Add(" and XLXSJGBMX_XLGGID = :pXLGGID "); sql.ParamByName("pXLGGID").Value = sXLGGID.Equals("") ? " " : sXLGGID; } if (!sXLBZID.Equals("")) { sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); sql.ParamByName("pXLBZID").Value = sXLBZID.Equals("") ? " " : sXLBZID; } if (!sDYDJID.Equals("")) { sql.Add(" and XLXSJGBMX_DYDJID=:pDYDJID "); sql.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; } if (sXLXHID.Equals("") && sXLGGID.Equals("") && sXLBZID.Equals("") && sDYDJID.Equals("")) { sql.Add(" and 1<> 1 "); } ds = dberp.OpenDataSet(sql); } if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!lst.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { lst.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } return lst; } #region 报价产品辅助检索相关 //构建报价分类的设置信息 private Dictionary GetBJFLXX(string sBJFLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJFL_BJCPFZJS,XLXSBJFL_XHABJCSDP,XLXSBJFL_XHGGYMHJS,XLXSBJFL_BABZFGDY from XLXSBJFL where XLXSBJFL_BJFLID = :pBJFLID "); SQL.ParamByName("pBJFLID").Value = sBJFLID.Trim(); DataSet ds = dberp.OpenDataSet(SQL); string sXHGGYMHJS = ""; string sXHABJCSDP = ""; string sBJCPFZJS = ""; string sBABZFGDY = ""; string sBJBM = ""; if (ds.Tables[0].Rows.Count > 0) { sXHGGYMHJS = ds.Tables[0].Rows[0]["XLXSBJFL_XHGGYMHJS"].ToString().Trim(); sXHABJCSDP = ds.Tables[0].Rows[0]["XLXSBJFL_XHABJCSDP"].ToString().Trim(); sBJCPFZJS = ds.Tables[0].Rows[0]["XLXSBJFL_BJCPFZJS"].ToString().Trim(); sBABZFGDY = ds.Tables[0].Rows[0]["XLXSBJFL_BABZFGDY"].ToString().Trim(); } Dictionary dicBJFLXX = new Dictionary(); dicBJFLXX.Add("XHGGYMHJS", sXHGGYMHJS); dicBJFLXX.Add("XHABJCSDP", sXHABJCSDP); dicBJFLXX.Add("BJCPFZJS", sBJCPFZJS); dicBJFLXX.Add("BABZFGDY", sBABZFGDY); return dicBJFLXX; } //型号/规格->标准-电压等级 private void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS) { XLBJDInfo.GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBIDS, "", true); } private string GetXLBZXX(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ_XLBZID from XLBZ where XLBZ_XLBZID= :pXLBZID "); SQL.ParamByName("pXLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } #endregion #region 国网物料编码匹配 public static void GetGWWLBMYS(TDatabase dberp, TSQL SQL, string sWBBJDID, string sSELBJDID, ref DataSet ds) { SQL.Clear(); SQL.Add(" select XLWBBJDMX_DRHH,XLXSBJGWWL_XLXHID as XLWBBJDMX_XLXHID,XLXSBJGWWL_XLGGID as XLWBBJDMX_XLGGID, "); SQL.Add(" XLXSBJGWWL_XLBZID as XLWBBJDMX_XLBZID,XLXSBJGWWL_DYDJID as XLWBBJDMX_DYDJID, "); SQL.Add(" case when isnull(XLXSBJGWWL_XLYSID,' ') = ' ' then 'BK' else XLXSBJGWWL_XLYSID end as XLWBBJDMX_XLYSID "); SQL.Add(" from XLWBBJDMX"); SQL.Add(" left join XLXSBJGWWL on XLXSBJGWWL_GWWLBM = XLWBBJDMX_GWWLBM "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); SQL.Add(" and isnull(XLWBBJDMX_XLXHID,' ') = ' ' and isnull(XLWBBJDMX_XLGGID,' ') = ' ' "); SQL.Add(" and isnull(XLXSBJGWWL_XLXHID,' ') <> ' ' and isnull(XLXSBJGWWL_XLGGID,' ') <> ' ' "); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; ds = dberp.OpenDataSet(SQL); } #endregion #region 控件事件 #region 明细模板事件 protected void QueryGrid_CalculateField(object sender, CalculateFieldEventArgs e) { if (e.EventFieldName != "XLWBBJDMX_DRHH") { string sDRHH = e.RowData["XLWBBJDMX_DRHH"].ToString().Trim(); string sLM = e.EventFieldName.ToString().Trim(); string sLMZ = ""; if (sLM.Equals("XLWBBJDMX_XLBZID") || sLM.Equals("XLWBBJDMX_JLDW") || sLM.Equals("XLWBBJDMX_XLYSID")) { sLMZ = e.RowData[sLM].Trim().Split('|')[0]; } else if (sLM.Equals("XLWBBJDMX_DYDJID") || sLM.Equals("XLWBBJDMX_XLXHID") || sLM.Equals("XLWBBJDMX_XLGGID")) { sLMZ = e.RowData[sLM].Trim().Replace("(*)", "").Replace("(**)", ""); } else { sLMZ = e.RowData[sLM].Trim(); } string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; bool BZCHanged = false; bool DYCHanged = false; bool XDBZCHanged = false; if (e.EventFieldName.Equals("XLWBBJDMX_XLXHID") || e.EventFieldName.Equals("XLWBBJDMX_XLGGID") || e.EventFieldName.Equals("XLWBBJDMX_DYDJID")) { e.ResultPairs.Add("XLWBBJDMX_XDBZ", "Y"); XDBZCHanged = true; } if (e.EventFieldName.Equals("XLWBBJDMX_XLXHID") || e.EventFieldName.Equals("XLWBBJDMX_XLGGID") || e.EventFieldName.Equals("XLWBBJDMX_XLBZID") || e.EventFieldName.Equals("XLWBBJDMX_DYDJID")) { sXLXHID = e.RowData["XLWBBJDMX_XLXHID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); sXLGGID = e.RowData["XLWBBJDMX_XLGGID"].ToString().Trim().Replace("(*)", ""); sXLBZID = e.RowData["XLWBBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim().Replace("(*)", "").Replace("(**)", ""); sDYDJID = e.RowData["XLWBBJDMX_DYDJID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (pzxx.XLXSBJPZ_QYBJCPFZJS=="Y") { string sJGBID = PageParam.GetRTrimString("JGBID") + "," + PageParam.GetRTrimString("JGCIDS"); sJGBID = sJGBID.TrimEnd(','); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } Dictionary dicBJFLXX = GetBJFLXX(PageParam.GetRTrimString("BJFLID")); string sBJCPFZJS = dicBJFLXX["BJCPFZJS"]; string sBABZFGDY = dicBJFLXX["BABZFGDY"]; string sDefaultXLBZID = ""; string sDefaultDYDJID = ""; XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_MRXLBZID)) sDefaultXLBZID = pzxx2.XLXSBJPZ_MRXLBZID; if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_MRDYDJ)) sDefaultDYDJID = pzxx2.XLXSBJPZ_MRDYDJ; if (e.EventFieldName.Equals("XLWBBJDMX_XLXHID") || e.EventFieldName.Equals("XLWBBJDMX_XLGGID")) { if (!sXLXHID.Equals("") && !sXLGGID.Equals("") && (GetOption(100860043, "BJU028") != "Y")) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBID); if (dicXLXX.Count == 0) { sXLBZID = ""; sDYDJID = ""; e.ResultPairs.Add("XLWBBJDMX_XLBZID", ""); e.ResultPairs.Add("XLWBBJDMX_DYDJID", ""); BZCHanged = true; DYCHanged = true; } else if (dicXLXX.Count == 1) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; e.ResultPairs.Add("XLWBBJDMX_XLBZID", GetXLBZXX(sXLBZID)); e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); BZCHanged = true; DYCHanged = true; } else if (dicXLXX.Count > 1) { //若sDefaultXLBZID=’ FirstBZ’,则在明细记录“型号”、“规格”发生变化时, //若根据型号、规格匹配到的“标准”记录超过1个,则默认赋值第一个标准。 //再根据型号、规格、标准,匹配出电压等级,若电压等级唯一,则给电压等级赋默认值,否则不赋值。 if (sDefaultXLBZID.Equals("FirstBZ")) { bool bPPBZ = false; string stempDYDJID = ""; for (int i = 0; i < dicXLXX.Count; i++) { if (dicXLXX[i.ToString().Trim()].ToString().Split('*')[0].Trim().Equals(sXLBZID)) { bPPBZ = true; stempDYDJID = dicXLXX[i.ToString().Trim()].ToString().Split('*')[1]; break; } } if (!bPPBZ) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; e.ResultPairs.Add("XLWBBJDMX_XLBZID", GetXLBZXX(sXLBZID)); BZCHanged = true; } bool bDYDJIDOne = true; string sTmp = ""; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); DYCHanged = true; } else { sDYDJID = ""; e.ResultPairs.Add("XLWBBJDMX_DYDJID", ""); DYCHanged = true; } } } else { sDYDJID = stempDYDJID; e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); DYCHanged = true; } } else if (sDefaultDYDJID.Equals("minDY") && !sXLBZID.Equals("")) { string stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; string sTmp = ""; bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { sDYDJID = stempDYDJID; e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); DYCHanged = true; } } } } } else if (e.EventFieldName.Equals("XLWBBJDMX_XLBZID")) { if (!sBABZFGDY.Equals("Y") || sDYDJID.Trim().Equals("")) { if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBID); string stempDYDJID = ""; bool bDYDJIDOne = true; string sTmp = ""; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (stempDYDJID.Equals("")) { stempDYDJID = sTmp.Split('*')[1]; } if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; if (sDYDJID.Equals("")) { e.ResultPairs.Add("XLWBBJDMX_DYDJID", ""); DYCHanged = true; } else { e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); DYCHanged = true; } } else { sDYDJID = ""; e.ResultPairs.Add("XLWBBJDMX_DYDJID", ""); DYCHanged = true; } } } else { sDYDJID = stempDYDJID; if (sDYDJID.Equals("")) { e.ResultPairs.Add("XLWBBJDMX_DYDJID", ""); DYCHanged = true; } else { e.ResultPairs.Add("XLWBBJDMX_DYDJID", sDYDJID); DYCHanged = true; } } } } } } if (e.EventFieldName.Equals("XLWBBJDMX_XLXHID")) { string sXHBHG = getXHBHG(sXLXHID); e.ResultPairs.Add("XHBHG", sXHBHG); } if (e.EventFieldName.Equals("XLWBBJDMX_XLGGID")) { string sGGBHG = getGGBHG(sXLGGID); e.ResultPairs.Add("GGBHG", sGGBHG); } if (e.EventFieldName.Equals("XLWBBJDMX_DYDJID") || DYCHanged) { string sDYDJBHG = getDYDJBHG(sDYDJID); e.ResultPairs.Add("DYDJBHG", sDYDJBHG); } string sCLQWSC = getCLQWSC(sXLXHID, sXLGGID, sXLBZID, sDYDJID); e.ResultPairs.Add("CLQWSC", sCLQWSC); } bool bYZZChanged = XLWBBJDUtils.IsWBBJDMXYZZField(sLM); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); if (bYZZChanged) { SQL.Add("update XLWBBJDMXYZZ set " + sLM + " = :pYZZ "); SQL.Add(" WHERE 1 = 1 "); SQL.Add(" and XLWBBJDMXYZZ_WBBJDID=:XLWBBJDMX_WBBJDID and XLWBBJDMXYZZ_BJDID=:XLWBBJDMX_BJDID and XLWBBJDMXYZZ_DRHH=:XLWBBJDMX_DRHH "); SQL.ParamByName("pYZZ").Value = CMISproConvert.StrToFloat(sLMZ); SQL.ParamByName("XLWBBJDMX_WBBJDID").Value = e.MasterDataSet["txtWBBJDID"].Trim(); SQL.ParamByName("XLWBBJDMX_BJDID").Value = sSELBJDID; SQL.ParamByName("XLWBBJDMX_DRHH").Value = sDRHH; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("select 1 as CNT from XLWBBJDMXYZZ "); SQL.Add(" where XLWBBJDMXYZZ_WBBJDID=:XLWBBJDMX_WBBJDID and XLWBBJDMXYZZ_BJDID=:XLWBBJDMX_BJDID and XLWBBJDMXYZZ_DRHH=:XLWBBJDMX_DRHH "); SQL.ParamByName("XLWBBJDMX_WBBJDID").Value = e.MasterDataSet["txtWBBJDID"].Trim(); SQL.ParamByName("XLWBBJDMX_BJDID").Value = sSELBJDID; SQL.ParamByName("XLWBBJDMX_DRHH").Value = sDRHH; DataSet dsYZZ = dberp.OpenDataSet(SQL); if (dsYZZ.Tables[0].Rows.Count == 0) { SQL.Clear(); SQL.Add("insert into XLWBBJDMXYZZ(XLWBBJDMXYZZ_WBBJDID,XLWBBJDMXYZZ_DRHH,XLWBBJDMXYZZ_BJDID"); for (int i = 1; i <= 20; i++) SQL.Add(string.Format(",XLWBBJDMXYZZ_YZZ{0}", i.ToString().PadLeft(2, '0'))); SQL.Add(") values(:XLWBBJDMX_WBBJDID,:XLWBBJDMX_DRHH,:XLWBBJDMX_BJDID"); for (int i = 1; i <= 20; i++) { string sYZZField = string.Format("XLWBBJDMXYZZ_YZZ{0}", i.ToString().PadLeft(2, '0')); if (sYZZField.Equals(sLM)) SQL.Add(",:pYZZ"); else SQL.Add(string.Format(",{0}", CMISproConvert.StrToFloat(e.RowData[sYZZField].ToString().Trim()))); } SQL.Add(")"); SQL.ParamByName("XLWBBJDMX_WBBJDID").Value = e.MasterDataSet["txtWBBJDID"].Trim(); SQL.ParamByName("XLWBBJDMX_BJDID").Value = sSELBJDID; SQL.ParamByName("XLWBBJDMX_DRHH").Value = sDRHH; SQL.ParamByName("pYZZ").Value = CMISproConvert.StrToFloat(sLMZ); dberp.ExecSQL(SQL); } } else { SQL.Add("update XLWBBJDMX set " + sLM + " = :XLWBBJDMX_LMZ "); if (BZCHanged) { SQL.Add(" ,XLWBBJDMX_XLBZID = :pXLBZ "); } if (DYCHanged) { SQL.Add(" ,XLWBBJDMX_DYDJID = :pDYDJ "); } if (XDBZCHanged) { SQL.Add(" ,XLWBBJDMX_XDBZ = 'Y' "); } SQL.Add(" WHERE 1 = 1 "); SQL.Add(" and XLWBBJDMX_WBBJDID=:XLWBBJDMX_WBBJDID and XLWBBJDMX_BJDID=:XLWBBJDMX_BJDID and XLWBBJDMX_DRHH=:XLWBBJDMX_DRHH "); SQL.ParamByName("XLWBBJDMX_LMZ").Value = sLMZ.Equals("") ? " " : sLMZ; SQL.ParamByName("XLWBBJDMX_WBBJDID").Value = e.MasterDataSet["txtWBBJDID"].Trim(); SQL.ParamByName("XLWBBJDMX_BJDID").Value = sSELBJDID; SQL.ParamByName("XLWBBJDMX_DRHH").Value = sDRHH; if (BZCHanged) { SQL.ParamByName("pXLBZ").Value = sXLBZID.Equals("") ? " " : sXLBZID; } if (DYCHanged) { SQL.ParamByName("pDYDJ").Value = sDYDJID.Equals("") ? " " : sDYDJID; } dberp.ExecSQL(SQL); } dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("操作不成功,请重新打开该页面!" + ex); return; } e.ResultPairs.Add("XLWBBJDMX_DRHH", e.RowData["XLWBBJDMX_DRHH"].ToString().Trim()); } //flag = 1; //btnCallBack_Click(null, null); } protected void QueryGrid_OnGetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) { List lstValue = new List(); lstValue.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); string sXLXHID = e.RowData["XLWBBJDMX_XLXHID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); string sXLGGID = e.RowData["XLWBBJDMX_XLGGID"].ToString().Trim().Replace("(*)", ""); string sXLBZID = e.RowData["XLWBBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim().Replace("(*)", "").Replace("(**)", ""); string sDYDJID = e.RowData["XLWBBJDMX_DYDJID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); string sJGBID = PageParam.GetRTrimString("JGBID") + "," + PageParam.GetRTrimString("JGCIDS"); sJGBID = sJGBID.TrimEnd(','); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } Dictionary dicBJFLXX = GetBJFLXX(PageParam.GetRTrimString("BJFLID")); string sBJCPFZJS = dicBJFLXX["BJCPFZJS"]; DataSet ds = new DataSet(); int flag = 0; if (e.EventFieldName == "XLWBBJDMX_XLBZID" && (GetOption(100860043, "BJU028") != "Y")) { string sBJU044 = GetOption(100860000, "BJU044"); string sGCBZSQL = string.Empty; if (!sBJU044.Equals("") && !sXLXHID.Equals("") && !sXLGGID.Equals("")) { List GCBZLists = new List(); sql.Clear(); sql.Add(@"select distinct XLXSCLQD_XLBZID,XLGYFL_GCLIST from XLXSCLQD left join XLJGCZBML on XLXSCLQD_JGCZBID=XLJGCZBML_JGCZBID left join XLGYFL on XLGYFL_GYFLBM=XLJGCZBML_GYFLBM where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; DataSet dsGCBZ = dberp.OpenDataSet(sql); for (int i = 0; i < dsGCBZ.Tables[0].Rows.Count; i++) { string sGCXLBZID = dsGCBZ.Tables[0].Rows[i]["XLXSCLQD_XLBZID"].ToString().Trim(); string sGCList = dsGCBZ.Tables[0].Rows[i]["XLGYFL_GCLIST"].ToString().Trim(); if (sGCList.Equals("") || ("," + sGCList + ",").Contains("," + sBJU044 + ",")) { if (!GCBZLists.Contains(sGCXLBZID)) { GCBZLists.Add(sGCXLBZID); if (sGCBZSQL.Equals("")) sGCBZSQL += string.Format("'{0}'", sGCXLBZID); else sGCBZSQL += string.Format(",'{0}'", sGCXLBZID); } } } if (!sGCBZSQL.Equals("")) sGCBZSQL = " and (XLBZ_DZSC='Y' or XLBZ_XLBZID in (" + sGCBZSQL + "))"; } if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { if (sBJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); sql.Add(" and len(XLBZ_XLBZID) <10 "); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ"); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) {//研发自测:王威 2025/09/24 11:46:53 flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID " + sGCBZSQL); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" and len(XLBZ_XLBZID) <10 "); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC, XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); } } } else { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID " + sGCBZSQL); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" and len(XLBZ_XLBZID) <10 "); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) {//研发自测:王威 2025/09/24 11:46:49 flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); sql.Add(" and len(XLBZ_XLBZID) <10 "); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ"); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); } } } e.DropDownItems.Clear(); e.DropDownItems.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { //1表示材料清单 2表示价格表明细 if (!sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSCLQD"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSJGBMX"); } } flag = 0; if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { flag = 3; break; } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim() + "(**)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } } } } else { if (sBJCPFZJS.Equals("1")) { flag = 1; } else { flag = 2; } sql.Clear(); sql.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX "); sql.Add(" from XLBZ "); sql.Add(" where 1=1 and len(XLBZ_XLBZID) <10 order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID"); ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); e.DropDownItems.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { if (!sXLXHID.Equals("") || !sXLGGID.Equals("") || !sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSCLQD"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSJGBMX"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSJGBMX"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, "", sDYDJID, sJGBID, "XLBZID", "XLXSCLQD"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())); } } else { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (lstValue.Contains(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim() + "(*)", ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())); } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())); } } } } } } else if (e.EventFieldName == "XLWBBJDMX_JLDW") { e.DropDownItems.Clear(); string sJLDWList = XLBJDUtils.GetJLDWS(); string[] sTempJCJLDW = sJLDWList.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTempJCJLDW.Length; m++) { lstValue.Add(sTempJCJLDW[m]); } foreach (string sJLDW in lstValue) { e.DropDownItems.Add(new ListItem(sJLDW)); } sql.Clear(); sql.Add(" select distinct XLXSJGBMX_JLDW from XLXSJGBMX "); sql.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID"); sql.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID"); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJLDW = ds.Tables[0].Rows[i]["XLXSJGBMX_JLDW"].ToString().Trim(); if (lstValue.Contains(sJLDW)) { continue; } else { e.DropDownItems.Add(new ListItem(sJLDW)); } } } } else if (e.EventFieldName == "XLWBBJDMX_XLYSID") { e.DropDownItems.Clear(); e.DropDownItems.Add(new ListItem("", "")); sql.Clear(); sql.Add(" select XLYSB_XLYSID ,XLYSB_XLYSMC from XLYSB where 1=1 order by XLYSB_XSXH,XLYSB_XLYSID "); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim())); } } } } protected void QueryGrid_GetDropListColumnItems(object sender, GetDropListColumnItemsEventArgs e) { List lstValue = new List(); lstValue.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); string sXLXHID = e.RowData["XLWBBJDMX_XLXHID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); string sXLGGID = e.RowData["XLWBBJDMX_XLGGID"].ToString().Trim().Replace("(*)", ""); string sXLBZID = e.RowData["XLWBBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim().Replace("(*)", "").Replace("(**)", ""); string sDYDJID = e.RowData["XLWBBJDMX_DYDJID"].ToString().Trim().Replace("(*)", "").Replace("(**)", ""); string sJGBID = PageParam.GetRTrimString("JGBID") + "," + PageParam.GetRTrimString("JGCIDS"); sJGBID = sJGBID.TrimEnd(','); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } Dictionary dicBJFLXX = GetBJFLXX(PageParam.GetRTrimString("BJFLID")); string sBJCPFZJS = dicBJFLXX["BJCPFZJS"]; string sXHABJCSDP = dicBJFLXX["XHABJCSDP"]; DataSet ds = new DataSet(); int flag = 0; if (e.EventFieldName == "XLWBBJDMX_XLXHID") { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!pzxx.XLXSBJPZ_XHZJSR.Equals("Y")) { Dictionary dicXLXH = new Dictionary(); sql.Clear(); if (sXHABJCSDP.Equals("Y")) { if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) { sql.Add("select distinct XLXSCLQD_XLXHID as XLXHID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ'"); } else { sql.Add("select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + PageParam.GetRTrimString("JGBID") + "'"); } if (!sJGFID.Equals("")) { sql.Add(" union all "); sql.Add("select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + sJGFID + "'"); } ds = dberp.OpenDataSet(sql); foreach (DataRow trow in ds.Tables[0].Rows) { string stXLXHID = trow["XLXHID"].ToString().Trim(); if (!dicXLXH.ContainsKey(stXLXHID)) dicXLXH.Add(stXLXHID, stXLXHID); } sql.Clear(); sql.Add(" select XLXHB_XLXHID from XLXHB "); sql.Add(" left join "); sql.Add(" (select XLXSBJDMX_XLXHID as XLXHID,count(*) as CNT "); sql.Add(" from XLXSBJDMX where 1=1 "); sql.Add(" group by XLXSBJDMX_XLXHID "); sql.Add(" ) a on a.XLXHID=XLXHB_XLXHID "); sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); sql.Add(" order by isnull(a.CNT,0) desc,XLXHB_XLXHID "); } else { sql.Add(" select XLXHB_XLXHID,1 as PX from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' "); if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) { sql.Add("and (exists(select 1 from (select distinct XLXSCLQD_XLXHID as XLXHID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ') a where a.XLXHID=XLXHB_XLXHID)"); if (!sJGFID.Equals("")) { sql.Add("or exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + sJGFID + "') b where b.XLXHID=XLXHB_XLXHID)"); } sql.Add(" )"); } else { sql.Add("and ( exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + PageParam.GetRTrimString("JGBID") + "') a where a.XLXHID=XLXHB_XLXHID)"); if (!sJGFID.Equals("")) { sql.Add("or exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + sJGFID + "') b where b.XLXHID=XLXHB_XLXHID)"); } sql.Add(" )"); } sql.Add(" union all "); sql.Add(" select XLXHB_XLXHID,2 as PX from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' "); if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) { sql.Add("and ( not exists(select 1 from (select distinct XLXSCLQD_XLXHID as XLXHID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ') a where a.XLXHID=XLXHB_XLXHID)"); if (!sJGFID.Equals("")) { sql.Add("and not exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + sJGFID + "') b where b.XLXHID=XLXHB_XLXHID)"); } sql.Add(" )"); } else { sql.Add("and ( not exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + PageParam.GetRTrimString("JGBID") + "') a where a.XLXHID=XLXHB_XLXHID)"); if (!sJGFID.Equals("")) { sql.Add("and not exists(select 1 from (select distinct XLXSJGBMX_XLXHID as XLXHID from XLXSJGBMX where XLXSJGBMX_JGBID ='" + sJGFID + "') b where b.XLXHID=XLXHB_XLXHID)"); } sql.Add(" )"); } sql.Add(" order by PX,XLXHB_XLXHID "); } ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (sBJCPFZJS.Equals("1")) { flag = 1; } else { flag = 2; } if (!sXLGGID.Equals("") || !sXLBZID.Equals("") || !sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX("", sXLGGID, sXLBZID, sDYDJID, sJGBID, "XLXHID", "XLXSCLQD"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX("", sXLGGID, sXLBZID, sDYDJID, sJGBID, "XLXHID", "XLXSJGBMX"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX("", sXLGGID, sXLBZID, sDYDJID, sJGBID, "XLXHID", "XLXSJGBMX"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX("", sXLGGID, sXLBZID, sDYDJID, sJGBID, "XLXHID", "XLXSCLQD"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sXHABJCSDP.Equals("Y")) { if (dicXLXH.ContainsKey(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); else e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } else { if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); else e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sXHABJCSDP.Equals("Y")) { if (dicXLXH.ContainsKey(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { flag = 3; break; } } } else { if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { flag = 3; break; } } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sXHABJCSDP.Equals("Y")) { if (dicXLXH.ContainsKey(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { if (lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(**)")); } } } else { if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) { if (lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(**)")); } } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sXHABJCSDP.Equals("Y")) { if (dicXLXH.ContainsKey(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } } else { if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sXHABJCSDP.Equals("Y")) { if (dicXLXH.ContainsKey(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); else e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } else { if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim() + "(*)")); else e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim())); } } } } } } } if (e.EventFieldName == "XLWBBJDMX_XLGGID") { if (sBJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID; } sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count <= 0) { sql.Clear(); sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB on XLXSBJXLGGTHB_JGB.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID; } sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); ds = dberp.OpenDataSet(sql); } } else { flag = 2; sql.Clear(); sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB2 on XLXSBJXLGGTHB_JGB2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB2.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID; } sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count <= 0) { sql.Clear(); sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); if (!sXLXHID.Equals("")) { sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); sql.ParamByName("pXLXHID").Value = sXLXHID; } sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); ds = dberp.OpenDataSet(sql); } } if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (!sXLXHID.Equals("") || !sXLBZID.Equals("") || !sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, "", sXLBZID, sDYDJID, sJGBID, "XLGGID", "XLXSCLQD"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, "", sXLBZID, sDYDJID, sJGBID, "XLGGID", "XLXSJGBMX"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, "", sXLBZID, sDYDJID, sJGBID, "XLGGID", "XLXSJGBMX"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, "", sXLBZID, sDYDJID, sJGBID, "XLGGID", "XLXSCLQD"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } else { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } } } if (e.EventFieldName == "XLWBBJDMX_DYDJID") { if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { if (sBJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID "); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSCLQD where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID "); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); sql.Add(" WHERE 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID"); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); } } } else { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); sql.Add(" WHERE 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID"); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID "); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSCLQD where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID = :pXLGGID "); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(sql); } } } e.DropDownItems.Clear(); e.DropDownItems.Add(new ListItem("")); if (ds.Tables[0].Rows.Count > 0) { //1表示材料清单 2表示价格表明细 if (!sXLBZID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSCLQD"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSJGBMX"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)")); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { flag = 3; break; } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(**)")); } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)")); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)")); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim())); } } } } } } else { if (sBJCPFZJS.Equals("1")) { flag = 1; } else { flag = 2; } sql.Clear(); sql.Add(" select distinct XLDYDJB_DYDJID,XLDYDJB_XH from XLDYDJB where isnull(XLDYDJB_TYBZ,' ')<>'Y' order by XLDYDJB_XH "); ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); e.DropDownItems.Add(new ListItem("")); if (ds.Tables[0].Rows.Count > 0) { if (!sXLXHID.Equals("") || !sXLGGID.Equals("") || !sXLBZID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSCLQD"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSJGBMX"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSJGBMX"); if (lstValue.Count == 0) lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, "", sJGBID, "DYDJID", "XLXSCLQD"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())); } } else { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (lstValue.Contains(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim() + "(*)")); } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!lstValue.Contains(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())); } } } } } } } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string sXHBHG = QueryGrid.GetCellByFieldName("XHBHG", e.Row).Text.Trim(); if (sXHBHG.Equals("Y")) { QueryGrid.GetCellByFieldName("XLWBBJDMX_XLXHID", e.Row).Attributes["BackColor"] = "#FFFF00"; } string sGGBHG = QueryGrid.GetCellByFieldName("GGBHG", e.Row).Text.Trim(); if (sGGBHG.Equals("Y")) { QueryGrid.GetCellByFieldName("XLWBBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#FFFF00"; } string sDYDJBHG = QueryGrid.GetCellByFieldName("DYDJBHG", e.Row).Text.Trim(); if (sDYDJBHG.Equals("Y")) { QueryGrid.GetCellByFieldName("XLWBBJDMX_DYDJID", e.Row).Attributes["BackColor"] = "#FFFF00"; } } base.Grid_RowDataBound(sender, e); } #endregion #region 报价产品解析 protected void btnBJCPJX_OnDropDown(object sender, EventArgs e) { btnBJCPJX.Nodes.Clear(); btnBJCPJX.Nodes.Add(new gtTreeNode("0", "型号-规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("1", "型号 规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("2", "型号-电压等级-规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("3", "型号-电压等级 规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("4", "型号 电压等级 规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("6", "型号 规格 电压等级")); btnBJCPJX.Nodes.Add(new gtTreeNode("7", "型号-电压等级,规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("9", "型号规格")); btnBJCPJX.Nodes.Add(new gtTreeNode("5", "KV替换kV")); btnBJCPJX.Nodes.Add(new gtTreeNode("8", "电压等级替换")); MenuAreaUpdate(); } protected void btnBJCPJX_MenuItemClick(object sender, string ItemIndex) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (ItemIndex.Equals("8")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_DYDJTHList.aspx"; pageParams.Title = "电压等级替换"; pageParams.AddString("btnCallBack", btnCallBack.ClientID); OpenDialog(pageParams); } else { if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ,XLWBBJDMX_XDBZ, "); SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); GetXLGGIDList(dberp, SQL, ref lstXLGGID); GetDYDJIDList(dberp, SQL, ref lstDYDJID); //获取颜色 if (pzxx.XLXSBJPZ_WBBJDJXYS.Equals("Y")) TZBJCP_5(ref ds); //解析方式 string sJXFS = ItemIndex; if (sJXFS.Equals("0")) { AnalysisByXH_GG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("1")) { AnalysisByXHGG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("2")) { AnalysisByXH_DY_GG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("3")) { AnalysisByXH_DYGG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("4")) { AnalysisByXHDYGG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("6")) { AnalysisByXHGGDY(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("7")) { AnalysisByXH_DY_GG1(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } else if (sJXFS.Equals("5")) { Analysis_XH(ref ds); } else if (sJXFS.Equals("9")) { AnalysisByXHANDGG(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); } UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } } protected void btnBJCPJX_Click(object sender, EventArgs e) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ,' ' as BZ_DYDJID,XLWBBJDMX_XDBZ, ");//标准电压等级ID SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); GetXLGGIDList(dberp, SQL, ref lstXLGGID); GetDYDJIDList(dberp, SQL, ref lstDYDJID); JXDYDJ(ref ds); Analysis_Common(ref ds, lstXLXHID, lstXLGGID, lstDYDJID); DYDJTH(ref ds); ApplyGgXhOrDxth(ref ds, UseDxthEquivalentRules); //获取颜色 if (pzxx.XLXSBJPZ_WBBJDJXYS.Equals("Y")) TZBJCP_5(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } protected void btnBJCPJX2_OnDropDown(object sender, EventArgs e) { btnBJCPJX2.Nodes.Clear(); if (PageParam.GetRTrimString("DRGZ").Equals("BYDGZ")) { btnBJCPJX2.Nodes.Add(new gtTreeNode("5", "比亚迪规则(基本型号_规格_电压等级_耐温等级_特性前缀)")); btnBJCPJX2.Nodes.Add(new gtTreeNode("6", "KV替换kV")); btnBJCPJX2.Nodes.Add(new gtTreeNode("7", "电压等级替换")); } else { btnBJCPJX2.Nodes.Add(new gtTreeNode("1", "解析规则1(例:电力电缆,AC10kV,YJV,150,3,22,ZC,无阻水)")); btnBJCPJX2.Nodes.Add(new gtTreeNode("2", "解析规则2(例:低压电力电缆,YJV,铜,16/10,3+1芯,ZC,22,普通)")); btnBJCPJX2.Nodes.Add(new gtTreeNode("3", "解析规则3(例:控制电缆,KYJVP2,2.5,7,ZC,22)")); btnBJCPJX2.Nodes.Add(new gtTreeNode("4", "解析规则4(例:架空绝缘导线,AC10kV,JKLGYJ,70/10)")); btnBJCPJX2.Nodes.Add(new gtTreeNode("6", "KV替换kV")); btnBJCPJX2.Nodes.Add(new gtTreeNode("7", "电压等级替换")); } MenuAreaUpdate(); } protected void btnBJCPJX2_MenuItemClick(object sender, string value) { if (value.Equals("7")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_DYDJTHList.aspx"; pageParams.Title = "电压等级替换"; pageParams.AddString("btnCallBack", btnCallBack.ClientID); OpenDialog(pageParams); } else { if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ,XLWBBJDMX_XDBZ, "); SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); GetXLGGIDList(dberp, SQL, ref lstXLGGID); GetDYDJIDList(dberp, SQL, ref lstDYDJID); switch (value) { case "1": Analysis_GWCP(ref ds, "GWGZ1", lstXLXHID, lstXLGGID, lstDYDJID); break; case "2": Analysis_GWCP(ref ds, "GWGZ2", lstXLXHID, lstXLGGID, lstDYDJID); break; case "3": Analysis_GWCP(ref ds, "GWGZ3", lstXLXHID, lstXLGGID, lstDYDJID); break; case "4": Analysis_GWCP(ref ds, "GWGZ4", lstXLXHID, lstXLGGID, lstDYDJID); break; case "5": Analysis_BYDCP(ref ds, "BYDGZ", lstXLXHID, lstXLGGID, lstDYDJID); break; case "6": Analysis_XH(ref ds); break; } TSDYTH(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } } #endregion #region 线缆报价等效替换 protected void btnXLBJDXDXYTH_OnDropDown(object sender, EventArgs e) { btnXLBJDXDXYTH.Nodes.Clear(); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("YCLGZ", "系统预处理等效规则")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHGGDYDJJQTH", "型号规格电压等级精确等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHGGJQTH", "型号规格精确等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHDYDJJQTH", "型号电压等级精确等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHZZDYDJJQTHDYDJ", "型号正则电压等级精确等效电压等级")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("DYDJJQTH", "电压等级精确等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHJQTH", "型号精确等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("XHZZTH", "型号正则等效")); btnXLBJDXDXYTH.Nodes.Add(new gtTreeNode("GGZZTH", "规格正则等效")); MenuAreaUpdate(); } protected void btnXLBJDXDXYTH_MenuItemClick(object sender, string ItemIndex) { TPageParams tpp = new TPageParams(); tpp.CallAction = TPageCallAction.pcaBrowse; switch (ItemIndex.Trim()) { case "YCLGZ": tpp.UrlPath = "XLBJD_WBBJDXYCLGZList.aspx"; break; case "XHGGDYDJJQTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHGGDYDJJQTH"); break; case "XHGGJQTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHGGJQTH"); break; case "XHDYDJJQTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHDYDJJQTH"); break; case "XHZZDYDJJQTHDYDJ": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHZZDYDJJQTHDYDJ"); break; case "DYDJJQTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "DYDJJQTH"); break; case "XHJQTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHJQTH"); break; case "XHZZTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "XHZZTH"); break; case "GGZZTH": tpp.UrlPath = "XLBJD_WBBJDDXDZQDList.aspx"; tpp.AddString("THLX", "GGZZTH"); break; default: return; } OpenDialog(tpp); } protected void btnXLBJDXDXYTH_Click(object sender, EventArgs e) { } #endregion #region 型号调整 protected void btnXHTZ_OnDropDown(object sender, EventArgs e) { btnXHTZ.Nodes.Clear(); btnXHTZ.Nodes.Add(new gtTreeNode("XHZZTH", "型号正则替换")); if (SystemInfoUtils.GetSystem().FzrGh.Equals(CurSession.UserId)) { btnXHTZ.Nodes.Add(new gtTreeNode("X", "选项配置")); } DataSet dsXLWBBJDANXX = GetXLWBBJDANXX("01"); if (dsXLWBBJDANXX != null && dsXLWBBJDANXX.Tables.Count > 0 && dsXLWBBJDANXX.Tables[0].Rows.Count > 0) { Dictionary dic = new Dictionary(); dic.Clear(); dic = XLBJD_WBBJDANXX.TZ_ANXX("01"); for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { if (dic.ContainsKey(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim())) { btnXHTZ.Nodes.Add(new gtTreeNode(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim(), dic[dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim()])); } } } else { Dictionary dic = new Dictionary(); dic.Clear(); dic = XLBJD_WBBJDANXX.XHTZ_MRZS(); foreach (KeyValuePair kvp in dic) { btnXHTZ.Nodes.Add(new gtTreeNode(kvp.Key, kvp.Value)); } } MenuAreaUpdate(); } protected void btnXHTZ_MenuItemClick(object sender, string ItemIndex) { //调整方式 string sTZFS = ItemIndex; if (sTZFS.Equals("XHZZTH")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_WBBJDMX_XHZZTHList.aspx"; tpp.CallAction = TPageCallAction.pcaBrowse; OpenDialog(tpp); } else if (sTZFS.Equals("X")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_WBBJDANXXList.aspx"; tpp.CallAction = TPageCallAction.pcaBrowse; tpp.AddString("ANLX", "01"); OpenDialog(tpp); } else { if (!sTZFS.Equals("7")) { if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ, "); SQL.Add(" XLWBBJDMX_XDBZ,XLWBBJDMX_XLXHID AS OLD_XLXHID,XLWBBJDMX_XLGGID AS OLD_XLGGID,XLWBBJDMX_DYDJID AS OLD_DYDJID, "); SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (pzxx.XLXSBJPZ_THSFTGKBXH == "Y") GetBJXHList(dberp, SQL, PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), ref lstBJXHList); else lstBJXHList.Clear(); if (lstXLXHID.Count == 0) GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); if (sTZFS.Equals("0")) { TZXH_0(lstBJXHList,ref ds); } else if (sTZFS.Equals("1")) { TZXH_1(lstBJXHList, ref ds); } else if (sTZFS.Equals("2")) { TZXH_2(lstBJXHList, ref ds); } else if (sTZFS.Equals("3")) { TZXH_3(lstBJXHList, ref ds); } else if (sTZFS.Equals("4")) { TZXH_4(lstBJXHList, ref ds); } else if (sTZFS.Equals("5")) { TZXH_5(lstBJXHList, ref ds); } else if (sTZFS.Equals("6")) { TZXH_6(lstXLXHID, ref ds); } else if (sTZFS.Equals("8")) { TZXH_8(lstBJXHList,ref ds); } else if (sTZFS.Equals("9")) { TZXH_9(lstBJXHList, ref ds); } else if (sTZFS.Equals("A")) { TZXH_A(lstBJXHList,ref ds); } else if (sTZFS.Equals("B")) { TZXH_B(lstBJXHList,ref ds); } else if (sTZFS.Equals("C")) { TZXH_C(lstBJXHList,ref ds); } else if (sTZFS.Equals("D")) { TZXH_D(lstBJXHList,ref ds); } else if (sTZFS.Equals("7")) { TZXH_7_Page(sDRHHList); } //7方式已经在页面中处理数据且回刷了页面 if (!sTZFS.Equals("7")) { //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } } } protected void btnXHTZ_Click(object sender, EventArgs e) { if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); TSQL tSQL = new TSQL(dberp); tSQL.Clear(); tSQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); tSQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); tSQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ, "); tSQL.Add(" XLWBBJDMX_XDBZ,XLWBBJDMX_XLXHID AS OLD_XLXHID,XLWBBJDMX_XLGGID AS OLD_XLGGID,XLWBBJDMX_DYDJID AS OLD_DYDJID, "); tSQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); tSQL.Add(" from XLWBBJDMX "); tSQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); tSQL.ParamByName("pWBBJDID").Value = sWBBJDID; tSQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(tSQL); /* dic.Add("0", "NH-替换为N-"); dic.Add("1", "ZR-替换为ZC-"); dic.Add("2", "ZN-替换为ZCN-"); dic.Add("3", "WDZ-替换为WDZC-"); dic.Add("4", "WDZN-替换为WDZCN-"); dic.Add("5", "去除空格"); dic.Add("6", "去除中文"); dic.Add("7", "型号替换"); */ DataSet dsXLWBBJDANXX = GetXLWBBJDANXX("01"); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (lstXLXHID.Count == 0) GetXLXHIDList(dberp, SQL, true, ref lstXLXHID); if (pzxx.XLXSBJPZ_THSFTGKBXH == "Y") GetBJXHList(dberp, SQL, PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), ref lstBJXHList); else lstBJXHList.Clear(); //按钮选项 bool bXLWBBJDANXX = dsXLWBBJDANXX != null && dsXLWBBJDANXX.Tables.Count > 0 && dsXLWBBJDANXX.Tables[0].Rows.Count > 0; if (bXLWBBJDANXX) { for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("0")) { TZXH_0(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("1")) { TZXH_1(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("2")) { TZXH_2(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("3")) { TZXH_3(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("4")) { TZXH_4(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("5")) { TZXH_5(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("6")) { TZXH_6(lstXLXHID, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("8")) { TZXH_8(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("9")) { TZXH_9(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("A")) { TZXH_A(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("B")) { TZXH_B(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("C")) { TZXH_C(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("D")) { TZXH_D(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("E")) { TZXH_E(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("F")) { TZXH_F(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("G")) { TZXH_G(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("H")) { TZXH_H(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("I")) { TZXH_I(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("J")) { TZXH_J(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("K")) { TZXH_K(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("L")) { TZXH_L(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("M")) { TZXH_M(lstBJXHList, ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Contains("N") && dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Length>1) { TZXH_ZDY(lstBJXHList,dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim(), ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("7")) { //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); TZXH_7_SQL(dberp, SQL, sWBBJDID, sSELBJDID, sDRHHList); ds = dberp.OpenDataSet(tSQL); } } } else { //默认不增加去除空格的预处理 //增加7,对于型号的调整,仍然选择放在最后执行 Dictionary dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS(); foreach (KeyValuePair kvp in dicMRZX) { if (kvp.Key.Equals("0")) { TZXH_0(lstBJXHList, ref ds); } if (kvp.Key.Equals("1")) { TZXH_1(lstBJXHList, ref ds); } if (kvp.Key.Equals("2")) { TZXH_2(lstBJXHList, ref ds); } if (kvp.Key.Equals("3")) { TZXH_3(lstBJXHList, ref ds); } if (kvp.Key.Equals("4")) { TZXH_4(lstBJXHList, ref ds); } if (kvp.Key.Equals("8")) { TZXH_8(lstBJXHList, ref ds); } if (kvp.Key.Equals("9")) { TZXH_9(lstBJXHList, ref ds); } if (kvp.Key.Equals("A")) { TZXH_A(lstBJXHList, ref ds); } if (kvp.Key.Equals("B")) { TZXH_B(lstBJXHList, ref ds); } if (kvp.Key.Equals("C")) { TZXH_C(lstBJXHList, ref ds); } if (kvp.Key.Equals("D")) { TZXH_D(lstBJXHList, ref ds); } } } //处理修订标志 XHZZTH(ref ds); if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); if(bXLWBBJDANXX) { } else { TZXH_7_SQL(dberp, SQL, sWBBJDID, sSELBJDID, sDRHHList); } btnCallBack_Click(null, null); } #endregion #region 规格调整 protected void btnGGTZ_OnDropDown(object sender, EventArgs e) { Dictionary dic = new Dictionary(); dic.Clear(); dic = XLBJD_WBBJDANXX.TZ_ANXX("02"); btnGGTZ.Nodes.Clear(); btnGGTZ.Nodes.Add(new gtTreeNode("GGZZTH", "规格正则替换")); if (SystemInfoUtils.GetSystem().FzrGh.Equals(CurSession.UserId)) { btnGGTZ.Nodes.Add(new gtTreeNode("G", "选项配置")); } DataSet dsXLWBBJDANXX = GetXLWBBJDANXX("02"); if (dsXLWBBJDANXX != null && dsXLWBBJDANXX.Tables.Count > 0 && dsXLWBBJDANXX.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { if (dic.ContainsKey(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim())) { btnGGTZ.Nodes.Add(new gtTreeNode(dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim(), dic[dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim()])); } } } else { Dictionary dicMRGGTZ = new Dictionary(); dicMRGGTZ = XLBJD_WBBJDANXX.GGTZ_MRZS(); foreach (KeyValuePair kvp in dicMRGGTZ) { btnGGTZ.Nodes.Add(new gtTreeNode(kvp.Key, kvp.Value)); } } MenuAreaUpdate(); } protected void btnGGTZ_MenuItemClick(object sender, string ItemIndex) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); //调整方式 string sTZFS = ItemIndex; if (sTZFS.Equals("GGZZTH")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_WBBJDMX_GGZZTHList.aspx"; OpenDialog(tpp); } else if (sTZFS.Equals("G")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_WBBJDANXXList.aspx"; tpp.CallAction = TPageCallAction.pcaBrowse; tpp.AddString("ANLX", "02"); OpenDialog(tpp); } else { if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ, "); SQL.Add(" XLWBBJDMX_XDBZ,XLWBBJDMX_XLXHID AS OLD_XLXHID,XLWBBJDMX_XLGGID AS OLD_XLGGID,XLWBBJDMX_DYDJID AS OLD_DYDJID, "); SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (sTZFS.Equals("1")) { TZGG_1(ref ds); } else if (sTZFS.Equals("2")) { TZGG_2(ref ds); } else if (sTZFS.Equals("3"))//x/X替换为* { TZGG_3(ref ds); } else if (sTZFS.Equals("6"))//x/X替换为× { TZGG_6(ref ds); } else if (sTZFS.Equals("4")) { TZGG_4(ref ds); } else if (sTZFS.Equals("7"))//去除mm2、mm { TZGG_7(ref ds); } else if (sTZFS.Equals("8")) { TZGG_8(ref ds); } else if (sTZFS.Equals("9")) { TZGG_9(ref ds); } else if (sTZFS.Equals("A")) { TZGG_A(ref ds); } else if (sTZFS.Equals("B")) { TZGG_B(ref ds); } //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } } protected void btnGGTZ_Click(object sender, EventArgs e) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); if (QueryGrid.CheckedRows.Equals("")) { ShowMessage("请先勾选记录!"); return; } string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); //A|× B|* string sXLJGU007 = GetOption(102579000, "XLJGU007"); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH, "); SQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_BJCPDYDJID,XLWBBJDMX_BJCP, "); SQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ, "); SQL.Add(" XLWBBJDMX_XDBZ,XLWBBJDMX_XLXHID AS OLD_XLXHID,XLWBBJDMX_XLGGID AS OLD_XLGGID,XLWBBJDMX_DYDJID AS OLD_DYDJID, "); SQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); SQL.Add(" from XLWBBJDMX "); SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; DataSet ds = dberp.OpenDataSet(SQL); /* btnGGTZ.Nodes.Add(new gtTreeNode("0", "×替换为*")); btnGGTZ.Nodes.Add(new gtTreeNode("1", "去除非数值字符")); btnGGTZ.Nodes.Add(new gtTreeNode("2", "1*截面")); btnGGTZ.Nodes.Add(new gtTreeNode("3", "x/X替换为*")); btnGGTZ.Nodes.Add(new gtTreeNode("4", "去除.0")); btnGGTZ.Nodes.Add(new gtTreeNode("5", "*替换为×")); btnGGTZ.Nodes.Add(new gtTreeNode("6", "x/X替换为×")); btnGGTZ.Nodes.Add(new gtTreeNode("7", "去除mm2、mm")); btnGGTZ.Nodes.Add(new gtTreeNode("8", "E或者PE替换为1*")); btnGGTZ.Nodes.Add(new gtTreeNode("9", "去除空格")); */ DataSet dsXLWBBJDANXX = GetXLWBBJDANXX("02"); if (dsXLWBBJDANXX != null && dsXLWBBJDANXX.Tables.Count > 0 && dsXLWBBJDANXX.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLWBBJDANXX.Tables[0].Rows.Count; i++) { if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("1")) { TZGG_1(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("2")) { TZGG_2(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("3")) { TZGG_3(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("4")) { TZGG_4(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("6")) { TZGG_6(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("7")) { TZGG_7(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("8")) { TZGG_8(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("9")) { TZGG_9(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("A")) { TZGG_A(ref ds); } else if (dsXLWBBJDANXX.Tables[0].Rows[i]["XLWBBJDANXX_ANXX"].ToString().Trim().Equals("B")) { TZGG_B(ref ds); } } } else { //目前支持0-9 TZGG_7(ref ds); TZGG_9(ref ds); TZGG_8(ref ds); //3和6执行一个即可。 TZGG_3(ref ds); TZGG_6(ref ds); TZGG_1(ref ds); TZGG_2(ref ds); TZGG_4(ref ds); } //A|× B|* if (sXLJGU007.Equals("B")) { TZGG_0(ref ds); } else { TZGG_5(ref ds); } //处理修订标志 if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y")) UpdateXDBZ(ref ds); UpdateData(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); } #endregion protected void btnGWWLBMPP_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); DataSet ds = new DataSet(); GetGWWLBMYS(dberp, SQL, sWBBJDID, sSELBJDID, ref ds); UpdateCPYS(dberp, SQL, sWBBJDID, sSELBJDID, ds); btnCallBack_Click(null, null); ShowMessage("匹配成功!"); } //删除记录 protected void btnDELETE_Click(object sender, EventArgs e) { string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); if (sDRHHList.Equals("")) { if (QueryGrid.SelectedIndex > -1) { sDRHHList = QueryGrid.GetValueByFieldName("XLWBBJDMX_DRHH", QueryGrid.NewRows[QueryGrid.SelectedIndex]).Trim(); } else { ShowMessage("请选择需要删除的记录!"); return; } } string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" delete from XLWBBJDMX where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; dberp.ExecSQL(SQL); QueryGrid.CheckedRows = ""; btnCallBack_Click(null, null); } //清空查询条件 protected void btnClear_Click(object sender, EventArgs e) { cbxXLXHID.SelectedValue = ""; cbxXLBZID.SelectedValue = ""; cbxDYDJID.SelectedValue = ""; cbxXLYSID.SelectedValue = ""; cbxJLDW.SelectedValue = ""; txtBJCP.Text = ""; txtZHCPML.Text = ""; cbxBHFCX.SelectedValue = ""; btnCallBack_Click(null, null); } #region 型号规格替换以及标准电压匹配相关 #region 型号&规格 protected void btnXHGG_Click(object sender, EventArgs e) { SelectMatchForXLXHIDAndXLGGID(); btnCallBack_Click(null, null); } protected void btnXHGG_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_WBBJDMX_TDGXWHList.aspx"; tpp.CallAction = TPageCallAction.pcaBrowse; OpenDialog(tpp); break; } } #endregion #region 标准&电压 protected void btnBZDY_Click(object sender, EventArgs e) { SelectMatchForXLBZIDAndDYDJID(false, PageParam.GetRTrimString("JGBID")); } protected void btnBZDY_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: //重新生成 SelectMatchForXLBZIDAndDYDJID(true, PageParam.GetRTrimString("JGBID")); break; } } #endregion protected void btnPPXLWL_Click(object sender, EventArgs e) { SelectMatchForXLWL(); } #endregion #region 输出数据相关---导出 //重新导入 protected void btnDRBJDMX_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: txtSFCXDR.Value = "Y"; btnDRBJDMX_Click(null, null); break; } } //导入报价单明细 protected void btnDRBJDMX_Click(object sender, EventArgs e) { string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sXLBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); string sMsg = ""; if (sBJSJLY.Equals("BJWL")) { sSQL.Clear(); sSQL.Add("select XLWBBJDMX_DRHH"); sSQL.Add(" from XLWBBJDMX "); sSQL.Add("where XLWBBJDMX_WBBJDID=:pWBBJDID "); sSQL.Add(" and XLWBBJDMX_BJDID=:pBJDID "); sSQL.Add(" and isnull(XLWBBJDMX_WLID,' ')<>' ' "); sSQL.Add(" and not exists(select 1 from XLXLB "); sSQL.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID "); sSQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_BJWL on XLXSBJXLGGTHB_BJWL.XLXSBJXLGGTHB_XLGGID=XLWBBJDMX_XLGGID "); sSQL.Add(" where XLWBBJDMX_WLID=XLXLB_WLID "); sSQL.Add(" and XLWBBJDMX_XLXHID=case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end "); sSQL.Add(" and isnull(XLXSBJXLGGTHB_BJWL.XLXSBJXLGGTHB_XLGGIDCH,' ')=XLXLB_XLGGID "); sSQL.Add(" and XLWBBJDMX_XLBZID=XLXLB_XLBZID "); sSQL.Add(" and XLWBBJDMX_DYDJID=XLXLB_DYDJID "); sSQL.Add(" and XLWBBJDMX_XLYSID=XLXLB_XLYSID) "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet dsBJWL = dberp.OpenDataSet(sSQL); if (dsBJWL.Tables[0].Rows.Count > 0) { sMsg = "行号【" + dsBJWL.Tables[0].Rows[0][0].ToString().Trim() + "】的物料编码与型号、规格、标准、电压等级、颜色不匹配,不是合法的线缆物料,请修正或清空物料编码后重试!"; ShowMessage(sMsg); return; } } sSQL.Clear(); sSQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_WLID, XLWBBJDMX_DRHH, "); sSQL.Add(" XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID,XLWBBJDMX_BJCP, "); sSQL.Add(" XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_BZ, "); sSQL.Add(" XLWBBJDMX_WHR,XLWBBJDMX_WHRID,XLWBBJDMX_WHSJ "); sSQL.Add(" from XLWBBJDMX "); sSQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet dsMX = dberp.OpenDataSet(sSQL); GetXLXHIDList(dberp, sSQL, ref lstXLXHID); GetXLGGIDList(dberp, sSQL, ref lstXLGGID); GetDYDJIDList(dberp, sSQL, ref lstDYDJID); //3*1 //string sWARNING = "\r\n"; string sDRHH = ""; //string sMSG = ""; string sBJCPMX = ""; string sXLXHIDMX = ""; string sXLGGIDMX = ""; string sDYDJIDMX = ""; int sign1 = 0; int sign2 = 0; int sign3 = 0; int sign4 = 0; //无表价/无清单查询 //string sWCLQDList = ""; //bool bWCLQDListCC = false; sSQL.Clear(); sSQL.Add(" select XLWBBJDMX_DRHH,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_DYDJID from XLWBBJDMX "); sSQL.Add(" where 1 = 1 "); sSQL.Add(" and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); string sJGBID = PageParam.GetRTrimString("JGBID").Trim(); string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ")); string sJGCIDS = GetJGCIDS(sJGBID, "JGB"); if (XLBJDUtils.IsJGEJGB(sJGBID)) sSQL.Add(" and not exists (select 1 from XLXSCLQD WHERE XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID=XLWBBJDMX_XLXHID and XLXSCLQD_XLGGID = XLWBBJDMX_XLGGID and XLXSCLQD_XLBZID=isnull(XLWBBJDMX_XLBZID,' ') and XLXSCLQD_DYDJID=isnull(XLWBBJDMX_DYDJID,' ')) "); else { if (sJGCIDS.Equals("")) { sSQL.Add(" and not exists (select 1 from XLXSJGBMX WHERE XLXSJGBMX_JGBID = '" + sJGBID + "' and XLXSJGBMX_XLXHID=XLWBBJDMX_XLXHID and XLXSJGBMX_XLGGID = XLWBBJDMX_XLGGID and XLXSJGBMX_XLBZID=isnull(XLWBBJDMX_XLBZID,' ') and XLXSJGBMX_DYDJID=isnull(XLWBBJDMX_DYDJID,' ')) "); } else { sSQL.Add(" and not exists (select 1 from XLXSJGBMX WHERE " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS) + " and XLXSJGBMX_XLXHID=XLWBBJDMX_XLXHID and XLXSJGBMX_XLGGID = XLWBBJDMX_XLGGID and XLXSJGBMX_XLBZID=isnull(XLWBBJDMX_XLBZID,' ') and XLXSJGBMX_DYDJID=isnull(XLWBBJDMX_DYDJID,' ')) "); } } if (!sJGFID.Equals("")) sSQL.Add(" and not exists (select 1 from XLXSJGBMX WHERE XLXSJGBMX_JGBID = '" + sJGFID + "' and XLXSJGBMX_XLXHID=XLWBBJDMX_XLXHID and XLXSJGBMX_XLGGID = XLWBBJDMX_XLGGID and XLXSJGBMX_XLBZID=isnull(XLWBBJDMX_XLBZID,' ') and XLXSJGBMX_DYDJID=isnull(XLWBBJDMX_DYDJID,' ')) "); sSQL.Add("order by XLWBBJDMX_DRHH "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet dsCLQDSC = dberp.OpenDataSet(sSQL); if (dsCLQDSC.Tables[0].Rows.Count > 0) { sign4 = 1; //foreach (DataRow trow in dsCLQDSC.Tables[0].Rows) //{ // if (System.Text.ASCIIEncoding.Default.GetBytes(sWCLQDList).Length > 15000) // { // bWCLQDListCC = true; // break; // } // string sDRHHWCLQD = trow["XLWBBJDMX_DRHH"].ToString().Trim(); // string sXLXHIDWCLQD = trow["XLWBBJDMX_XLXHID"].ToString().Trim(); // string sXLGGIDWCLQD = trow["XLWBBJDMX_XLGGID"].ToString().Trim(); // string sDYDJIDWCLQD = trow["XLWBBJDMX_DYDJID"].ToString().Trim(); // if (!sWCLQDList.Equals("")) // sWCLQDList += "\r\n"; // sWCLQDList += "[" + sDRHHWCLQD + "]   " + sXLXHIDWCLQD + "   " + sXLGGIDWCLQD + "   " + sDYDJIDWCLQD; //} } for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++) { sDRHH = dsMX.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim(); sBJCPMX = dsMX.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); sXLXHIDMX = dsMX.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGIDMX = dsMX.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sDYDJIDMX = dsMX.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim(); if (!sBJCPMX.Equals("")) { if (!lstXLXHID.Contains(sXLXHIDMX.ToUpper()) && !sXLXHIDMX.Equals("")) { sign1 = 1; } if (!lstXLGGID.Contains(sXLGGIDMX.Replace('*', '×')) && !lstXLGGID.Contains(sXLGGIDMX.Replace('×', '*')) && !sXLGGIDMX.Equals("")) { sign2 = 1; } if (!lstDYDJID.Contains(sDYDJIDMX.ToUpper()) && !sDYDJIDMX.Equals("")) { sign3 = 1; } } if (1 == sign1 && 1 == sign2 && 1 == sign3) { break; } } if (1 == sign1 || 1 == sign2 || 1 == sign3 || 1 == sign4) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "DRASKInfo.aspx"; tpp.AddString("sign1", sign1.ToString()); tpp.AddString("sign2", sign2.ToString()); tpp.AddString("sign3", sign3.ToString()); tpp.AddString("sign4", sign4.ToString()); tpp.AddString("sJGBID", sJGBID); tpp.AddString("sJGFID", sJGFID); tpp.AddString("sJGCIDS", sJGCIDS); tpp.AddString("sWBBJDID", sWBBJDID); tpp.AddString("sXLBJDID", sXLBJDID);; tpp.AddString("CloseFlag", txtCloseFlag.ClientID); tpp.AddString("SFCXDR", txtSFCXDR.Value); tpp.AddString("txtSFCXDR", txtSFCXDR.ClientID); OpenDialogClickBtn(tpp, btnDRMX.ClientID); } else { txtCloseFlag.Value = "Y"; btnDRMX_Click(null, null); } } //导入合同标的 protected void btnDRXSHTBD_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_HTBDInfo.aspx"; pageParams.Title = "导入销售合同线缆标的"; pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("HTBH"))) { pageParams.AddString("HTBH", PageParam.GetRTrimString("HTBH")); } OpenDialog(pageParams); } protected void btnDRMX_Click(object sender, EventArgs e) { if (txtCloseFlag.Value.Equals("Y")) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043); string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sXLBJDID = XLBJDUtils.FetEmptyStr(PageParam.GetRTrimString("SELBJDID")); string sMLFZH = PageParam.GetRTrimString("MLFZH"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(PageParam.GetRTrimString("BJFLID")); int tmpXSWS = string.IsNullOrEmpty(GetOption(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); tmpXSWS = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : tmpXSWS;//保留精度高的 if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sErrorNum = ""; int iStartXH = 0; string sBJU003 = GetOption(100860000, "BJU003"); string sBJLY = PageParam.GetRTrimString("BJLY"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY"); string sBJRQ = PageParam.GetRTrimString("BJRQ"); bool bNeedUp = false; double fBJSL = 0.0; if (!string.IsNullOrEmpty(PageParam.GetRTrimString("BJDID"))) { try { string sBJDID = PageParam.GetRTrimString("BJDID"); string sXLXHID = "", sXLGGID = "", sST = "", sDYDJ = ""; string sXLYSID = ""; string sJLDW = "";//计量单位 string sBJCP = ""; double sCPBJ = 0.0; double sYXJG = 0.0; double dCPBJXJ = 0; double dBJJEXJ = 0; string sYZ = ""; string sYSCP = ""; string sKHWLID = ""; string sBH = ""; string sZHCPMLMC = ""; string sCPMLMC = ""; string sPWQDID = ""; string sWLMC = ""; string sMS = ""; dberp.BeginTrans(); if (txtSFCXDR.Value.Trim().Equals("Y")) { sSQL.Clear(); sSQL.Add(" delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID =:pBJDID and exists(select 1 from XLXSBJDMX "); sSQL.Add(" where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WBBJDID=:pWBBJDID) "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add(" delete from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_WBBJDID=:pWBBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); txtSFCXDR.Value = "N"; } int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'"); int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'"); sSQL.Clear(); sSQL.Add("select XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH,XLWBBJDMX_WLID,XLWBBJDMX_XLXHID,XLWBBJDMX_XLGGID,XLWBBJDMX_XLBZID,XLWBBJDMX_DYDJID,XLWBBJDMX_XLYSID,XLWBBJDMX_ZHCPMLMC,XLWBBJDMX_CPMLMC,XLWBBJDMX_PWQDID,XLWBBJDMX_PWQDWLMC,XLWBBJDMX_PWQDMS,XLWBBJDMX_LSJGBBJ, "); sSQL.Add(" XLWBBJDMX_YSCP,XLWBBJDMX_KHWLID,XLWBBJDMX_BJCP,XLWBBJDMX_JLDW,XLWBBJDMX_BJSL,XLWBBJDMX_CPBJ,XLWBBJDMX_YXJG,XLWBBJDMX_YZ,XLWBBJDMX_FBH,XLWBBJDMX_CPBJXJ,XLWBBJDMX_BJJEXJ,XLWBBJDMX_JMBGS,' ' as JMBGSJSZ,isnull(XLWBBJDMX_WGCPBZ,' ') as XLWBBJDMX_WGCPBZ,XLWBBJDMX_XDBZ,XLWBBJDMX_BZ from XLWBBJDMX "); sSQL.Add(" WHERE 1 = 1"); sSQL.Add(" AND XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); sSQL.Add(" order by XLWBBJDMX_DRHH"); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sXLBJDID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { gtExpression exp = new gtExpression(); if (!ds.Tables[0].Rows[i]["XLWBBJDMX_JMBGS"].ToString().Trim().Equals("")) { try { TZYZXX tzyzxx = XLBJDUtils.GetYZXXByYZID(bjflxx.XLXSBJFL_JMBGSYZID); string sJMBYZJJFS = tzyzxx.XLXSTZYZ_JJFS; double dJGBGSResult = NumberUtils.RoundX(exp.Evaluate(ds.Tables[0].Rows[i]["XLWBBJDMX_JMBGS"].ToString().Trim()), 6); if (sJMBYZJJFS == "JD") dJGBGSResult = NumberUtils.RoundX((dJGBGSResult - 1) * 100, 2); if (sJMBYZJJFS == "MD") dJGBGSResult = NumberUtils.RoundX((1 - dJGBGSResult) * 100, 2); if (sJMBYZJJFS == "MX") dJGBGSResult = NumberUtils.RoundX(dJGBGSResult, 4); ds.Tables[0].Rows[i]["JMBGSJSZ"] = dJGBGSResult.ToString(); } catch { string sJMBGS = "截面比公式"; if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } ShowMessage(string.Format("行号【{0}】的" + sJMBGS + "有误,请修正或清空后重试!", ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim())); return; } } } } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLGGID"].ToString().Trim(); sST = ds.Tables[0].Rows[i]["XLWBBJDMX_XLBZID"].ToString().Trim(); sDYDJ = ds.Tables[0].Rows[i]["XLWBBJDMX_DYDJID"].ToString().Trim().Replace('K', 'k').Replace('v', 'V'); sJLDW = ds.Tables[0].Rows[i]["XLWBBJDMX_JLDW"].ToString().Trim(); sBJCP = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim(); if (sJLDW.Equals("")) { string sMRJLDW =XLBJDInfo.GetMRJLDWByJBXH(sXLXHID); if (sMRJLDW.Equals("")) sJLDW = sBJU003; else sJLDW = sMRJLDW; } //if (sBJCP.Equals("") && sXLXHID.Equals("") && sXLGGID.Equals(""))//报价产品、型号、规格都为空认为是空行 //{ // continue; //} //else //{ // if (sXLXHID.Equals("")) // sXLXHID = "/"; // if (sXLGGID.Equals("")) // sXLGGID = "/"; //} if (sXLXHID.Equals("")) sXLXHID = "/"; if (sXLGGID.Equals("")) sXLGGID = "/"; iXH = iXH + 1; iXSSX = iXSSX + 1; if (i == 0) { iStartXH = iXH; } if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) { sSQL.Clear(); sSQL.Add(string.Format(" insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ{0} )", bjflxx.XLXSBJFL_JMBGSYZID.Replace("BJ", ""))); sSQL.Add(" values("); sSQL.Add(" :XLXSBJDYZZ0_BJDID,:XLXSBJDYZZ0_XH,:pYZZ)"); sSQL.ParamByName("XLXSBJDYZZ0_BJDID").Value = sBJDID; sSQL.ParamByName("XLXSBJDYZZ0_XH").Value = iXH; if (!ds.Tables[0].Rows[i]["JMBGSJSZ"].ToString().Trim().Equals("")) sSQL.ParamByName("pYZZ").Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["JMBGSJSZ"].ToString().Trim()); else { Dictionary dicYZZ_ = XLBJDUtils.GetBJDYZZ0(sBJFLID, ds.Tables[0].Rows[i]["XLWBBJDMX_WGCPBZ"].ToString().Trim().Equals("Y"), false, sJLDW, sBJU003, sXLXHID, sXLGGID, sST, sDYDJ, sBJDID); sSQL.ParamByName("pYZZ").Value = dicYZZ_[bjflxx.XLXSBJFL_JMBGSYZID]; } dberp.ExecSQL(sSQL); } sSQL.Clear(); sSQL.Add(" insert into XLXSBJDMX( "); sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS, "); sSQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); sSQL.Add(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_FBH,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_BJSDBZ, "); sSQL.Add(" XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB, XLXSBJDMX_JGBBJ,XLXSBJDMX_DZSC,XLXSBJDMX_WHR,XLXSBJDMX_WHRID,XLXSBJDMX_WHSJ,"); sSQL.Add(" XLXSBJDMX_BJJE,XLXSBJDMX_TZQBJJE,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_CLZL,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJJEXJ,"); sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_WBBJDID,XLXSBJDMX_DRHH,XLXSBJDMX_WLID,XLXSBJDMX_JMBGS,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_BZ) "); sSQL.Add(" values("); sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID,:XLXSBJDMX_XDXLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_ZHCPMLMC,:XLXSBJDMX_CPMLMC,:XLXSBJDMX_PWQDID,:XLXSBJDMX_PWQDWLMC,:XLXSBJDMX_PWQDMS, "); sSQL.Add(" :XLXSBJDMX_XLBZID,:XLXSBJDMX_XDXLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP, :XLXSBJDMX_BJCPSD,:XLXSBJDMX_WGCPBZ, "); sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ,:XLXSBJDMX_YXJG,:XLXSBJDMX_YZ,:XLXSBJDMX_FBH,:XLXSBJDMX_YSCP,:XLXSBJDMX_KHWLID,:XLXSBJDMX_BJSDBZ, :XLXSBJDMX_JGBJJ, :XLXSBJDMX_CLCB, :XLXSBJDMX_JGBBJ, "); sSQL.Add(" :XLXSBJDMX_DZSC, :XLXSBJDMX_WHR, :XLXSBJDMX_WHRID, :XLXSBJDMX_WHSJ,:XLXSBJDMX_BJJE,:XLXSBJDMX_TZQBJJE,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_CLZL,"); sSQL.Add(" :XLXSBJDMX_CPBJXJ,:XLXSBJDMX_BJJEXJ,:XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_WBBJDID,:XLXSBJDMX_DRHH,:XLXSBJDMX_WLID,:XLXSBJDMX_JMBGS,:XLXSBJDMX_LSJGBBJ,:XLXSBJDMX_BZ)"); sXLYSID = ds.Tables[0].Rows[i]["XLWBBJDMX_XLYSID"].ToString().Trim(); sCPBJ = XLBJDUtils.RoundSZ(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_CPBJ"].ToString().Trim()), CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS)); sYXJG = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_YXJG"].ToString().Trim()); sDYDJ = sDYDJ.Equals("") ? " " : sDYDJ; fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_BJSL"].ToString().Trim()); sYZ = ds.Tables[0].Rows[i]["XLWBBJDMX_YZ"].ToString().Trim(); sYSCP = ds.Tables[0].Rows[i]["XLWBBJDMX_YSCP"].ToString().Trim(); sKHWLID = ds.Tables[0].Rows[i]["XLWBBJDMX_KHWLID"].ToString().Trim(); sBH = ds.Tables[0].Rows[i]["XLWBBJDMX_FBH"].ToString().Trim(); dCPBJXJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_CPBJXJ"].ToString().Trim()); dBJJEXJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_BJJEXJ"].ToString().Trim()); sYSCP = ds.Tables[0].Rows[i]["XLWBBJDMX_YSCP"].ToString().Trim(); sZHCPMLMC = ds.Tables[0].Rows[i]["XLWBBJDMX_ZHCPMLMC"].ToString().Trim(); sCPMLMC = ds.Tables[0].Rows[i]["XLWBBJDMX_CPMLMC"].ToString().Trim(); sPWQDID = ds.Tables[0].Rows[i]["XLWBBJDMX_PWQDID"].ToString().Trim(); sWLMC = ds.Tables[0].Rows[i]["XLWBBJDMX_PWQDWLMC"].ToString().Trim(); sMS = ds.Tables[0].Rows[i]["XLWBBJDMX_PWQDMS"].ToString().Trim(); sSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH; sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_ZHCPMLMC").Value = sZHCPMLMC; sSQL.ParamByName("XLXSBJDMX_CPMLMC").Value = sCPMLMC; sSQL.ParamByName("XLXSBJDMX_PWQDID").Value = sPWQDID; sSQL.ParamByName("XLXSBJDMX_PWQDWLMC").Value = sWLMC; sSQL.ParamByName("XLXSBJDMX_PWQDMS").Value = sMS; sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJ; sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; sSQL.ParamByName("XLXSBJDMX_CPBJXJ").Value = dCPBJXJ; sSQL.ParamByName("XLXSBJDMX_BJJEXJ").Value = dBJJEXJ; sSQL.ParamByName("XLXSBJDMX_JMBGS").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_JMBGS"].ToString().Trim(); sSQL.ParamByName("XLXSBJDMX_LSJGBBJ").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_LSJGBBJ"].ToString().Trim(); if (sXLYSID.Equals("")) { sXLYSID = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); } sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = sXLYSID; if (!sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N"; } if (sBJCP.Equals("")) { sBJCP = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJ); } sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP; sSQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL; sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0; if (sCPBJ != 0) { sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = sCPBJ; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N"; } if (PageParam.GetRTrimString("XSYXJ") == "Y") { sSQL.ParamByName("XLXSBJDMX_YXJG").Value = sYXJG; } else { sSQL.ParamByName("XLXSBJDMX_YXJG").Value = 0.0; } sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJJE").Value = NumberUtils.RoundX(fBJSL * Convert.ToDouble(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value), 2); sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = NumberUtils.RoundX(fBJSL * Convert.ToDouble(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value), 2); sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_WBBJDID").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_WBBJDID"].ToString().Trim(); sSQL.ParamByName("XLXSBJDMX_DRHH").Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim()); sSQL.ParamByName("XLXSBJDMX_WLID").Value = ""; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_WGCPBZ"].ToString().Trim().Equals("") ? "N" : ds.Tables[0].Rows[i]["XLWBBJDMX_WGCPBZ"].ToString().Trim(); if (PageParam.GetRTrimString("XSYZ") == "Y") { sSQL.ParamByName("XLXSBJDMX_YZ").Value = sYZ; } else { sSQL.ParamByName("XLXSBJDMX_YZ").Value = ""; } if (PageParam.GetRTrimString("XSYSCP") == "Y") { sSQL.ParamByName("XLXSBJDMX_YSCP").Value = sYSCP; } else { sSQL.ParamByName("XLXSBJDMX_YSCP").Value = ""; } if (PageParam.GetRTrimString("XSKHWLID") == "Y") { sSQL.ParamByName("XLXSBJDMX_KHWLID").Value = sKHWLID; } else { sSQL.ParamByName("XLXSBJDMX_KHWLID").Value = ""; } if (PageParam.GetRTrimString("XSBH") == "Y") { sSQL.ParamByName("XLXSBJDMX_FBH").Value = sBH; } else { sSQL.ParamByName("XLXSBJDMX_FBH").Value = ""; } string sXDBZ = ds.Tables[0].Rows[i]["XLWBBJDMX_XDBZ"].ToString().Trim(); string sBZ = ds.Tables[0].Rows[i]["XLWBBJDMX_BZ"].ToString().Trim(); if (pzxx.XLXSBJPZ_JLTZHCP.Equals("Y") && sXDBZ.Equals("Y")) { if (sBZ.Equals("")) { sBZ = sXLXHID.Trim() + "-" + sDYDJ.Trim() + " " + sXLGGID.Trim(); } else sBZ = sBZ+" "+sXLXHID.Trim() + "-" + sDYDJ.Trim() + " " + sXLGGID.Trim(); } sSQL.ParamByName("XLXSBJDMX_BZ").Value = sBZ; if (XLBJDUtils.ISDZBZ(sST)) { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_WHR").Value = CurSession.UserName; sSQL.ParamByName("XLXSBJDMX_WHRID").Value = CurSession.UserId; sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); bNeedUp = true; } XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, sBJDID, "", iStartXH - 1, ref sErrorNum); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, sBJDID, "", iStartXH - 1); if (bNeedUp) { sSQL.Clear(); sSQL.Add("update XLWBBJDML set XLWBBJDML_BJDID = :pBJDID where 1 = 1 and XLWBBJDML_WBBJDID=:pWBBJDID and XLWBBJDML_BJDID=:pSELBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sBJDID; sSQL.ParamByName("pSELBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add("update XLWBBJDLM set XLWBBJDLM_BJDID = :pBJDID where 1 = 1 and XLWBBJDLM_WBBJDID=:pWBBJDID and XLWBBJDLM_BJDID=:pSELBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sBJDID; sSQL.ParamByName("pSELBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add("update XLWBBJDNR set XLWBBJDNR_BJDID = :pBJDID where 1 = 1 and XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pSELBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sBJDID; sSQL.ParamByName("pSELBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add("update XLWBBJDMX set XLWBBJDMX_BJDID = :pBJDID where 1 = 1 and XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pSELBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sBJDID; sSQL.ParamByName("pSELBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add("update XLWBBJDMXYZZ set XLWBBJDMXYZZ_BJDID = :pBJDID where 1 = 1 and XLWBBJDMXYZZ_WBBJDID=:pWBBJDID and XLWBBJDMXYZZ_BJDID=:pSELBJDID "); sSQL.ParamByName("pWBBJDID").Value = sWBBJDID; sSQL.ParamByName("pBJDID").Value = sBJDID; sSQL.ParamByName("pSELBJDID").Value = sXLBJDID; dberp.ExecSQL(sSQL); string sBJU002 = GetOption(100860000, "BJU002"); XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, sBJDID, iStartXH, sBJU002, sBJU003, GetOption(100860000, "BJU018"), CurSession.UserId, CurSession.UserName, bjflxx.XLXSBJFL_JMBGSYZID, ref sErrorNum); if (XLWBBJDUtils.GetWBBJDDRYZList(sBJDID).Length > 0) { XLWBBJDUtils.CopyWBBJDYZZToBJDYZZ0(dberp, sSQL, sBJDID, sWBBJDID, sXLBJDID); int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; XLBJDUtils.UpdateBJDMX(dberp, sSQL, sBJFLID, sBJDID, iXSWS, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_BJJCLLX, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_LJJCLLX, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_CPBJMRXSWS, "", iStartXH); XLBJDUtils.UpdateZDXJGS(dberp, sSQL, sBJDID, sBJFLID, sBJU002, "", iStartXH); XLBJDUtils.UpdateJSJGS(dberp, sSQL, sBJDID, sBJFLID, sBJU002, "", iStartXH); XLBJDUtils.UpdateXLXSBJD(dberp, sSQL, sBJDID, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_BJJCLLX, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_LJJCLLX, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_ZDXJJCLLX, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_JYF, "", "", XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_YFWLID, XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_BJHYF); } } } dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("导入出现异常情况:" + ex.Message); return; } } DialogOperationScript dos = new DialogOperationScript(this); if (sMLFZH.Equals("0")) { ShowMessage("导入成功!"); dos.SetOwnerControlValue(PageParam.GetRTrimString("txtOpen"), "CLOSE"); dos.CloseSelf(); dos.Execute(); } else { sSQL.Clear(); sSQL.Add("select top 1 XLWBBJDML_WBBJDID from XLWBBJDML where XLWBBJDML_MLFZH =:pMLFZH and XLWBBJDML_FSXH>:pFSXH and XLWBBJDML_BJDID=:pBJDID order by XLWBBJDML_FSXH "); sSQL.ParamByName("pMLFZH").Value = CMISproConvert.StrToInt(sMLFZH); sSQL.ParamByName("pFSXH").Value = GetFSXH(sWBBJDID, sMLFZH, PageParam.GetRTrimString("BJDID")); sSQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { string ssWBBJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); sWBBJDID = ssWBBJDID; txtWBBJDID.Text = sWBBJDID; //!IsPostBack需要执行的方法都要调用一次 PretreatmentData(); btnBZDY_Click(null, null); InitGrid(sWBBJDID, sSELBJDID); cbxXLXHID.SelectedValue = ""; cbxXLBZID.SelectedValue = ""; cbxDYDJID.SelectedValue = ""; cbxXLYSID.SelectedValue = ""; cbxJLDW.SelectedValue = ""; cbxBHFCX.SelectedValue = ""; txtBJCP.Text = ""; txtZHCPML.Text = ""; txtCloseFlag.Value = ""; txtRetXLXHID.Value = ""; txtRetXLBZID.Value = ""; txtRetDYDJID.Value = ""; txtRetXLYSID.Value = ""; Master_OnQuery(); GridDataBind(); BillAreaUpdate(); FormAreaUpdate(); ShowMessage("导入成功,并已自动打开下一份!"); } else { ShowMessage("导入成功!"); dos.SetOwnerControlValue(PageParam.GetRTrimString("txtOpen"), "CLOSE"); dos.CloseSelf(); dos.Execute(); } } } } #endregion #region 标签点击事件 //型号点击事件 protected void linkXLXHID_Click(object sender, EventArgs e) { //if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) //{ // ShowMessage("请先勾选记录!"); // return; //} sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_TZInfo.aspx"; pageParams.Title = "外部报价单型号调整"; pageParams.AddString("XLXHID", cbxXLXHID.SelectedValue.Trim()); pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("txtRetXLXHID", txtRetXLXHID.ClientID); pageParams.AddString("btnRefreshXLXHID", btnRefreshXLXHID.ClientID); OpenDialog(pageParams); } protected void btnRefreshXLXHID_Click(object sender, EventArgs e) { string sRetXLXHID = txtRetXLXHID.Value; string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_XLXHID = :pXLXHID,XLWBBJDMX_XDBZ='Y' where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!string.IsNullOrEmpty(sDRHHList.Trim())) { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); } SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pXLXHID").Value = sRetXLXHID; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } //标准点击事件 protected void linkXLBZID_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_TZInfo.aspx"; pageParams.Title = "外部报价单标准调整"; pageParams.AddString("XLBZID", cbxXLBZID.SelectedValue.Trim()); pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("txtRetXLBZID", txtRetXLBZID.ClientID); pageParams.AddString("btnRefreshXLBZID", btnRefreshXLBZID.ClientID); OpenDialog(pageParams); } protected void btnRefreshXLBZID_Click(object sender, EventArgs e) { string sRetXLBZID = txtRetXLBZID.Value; string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_XLBZID = :pXLBZID where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pXLBZID").Value = sRetXLBZID.Equals("") ? " " : sRetXLBZID; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } //电压等级的点击事件 protected void linkDYDJID_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_TZInfo.aspx"; pageParams.Title = "外部报价单电压等级调整"; pageParams.AddString("DYDJID", cbxDYDJID.SelectedValue.Trim()); pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("txtRetDYDJID", txtRetDYDJID.ClientID); pageParams.AddString("btnRefreshDYDJID", btnRefreshDYDJID.ClientID); OpenDialog(pageParams); } //外购的点击事件 protected void linkWG_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_TZInfo.aspx"; pageParams.Title = "外部报价单外购调整"; pageParams.AddString("WGCPBZ", cbxWG.SelectedValue.Trim()); pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("txtRetWGCPBZ", txtRetWGCPBZ.ClientID); pageParams.AddString("btnRefreshWGCPBZ", btnRefreshWGCPBZ.ClientID); OpenDialog(pageParams); } protected void btnRefreshDYDJID_Click(object sender, EventArgs e) { string sDYDJID = txtRetDYDJID.Value.Trim().Equals("") ? " " : txtRetDYDJID.Value.Trim(); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_DYDJID = :pDYDJID,XLWBBJDMX_XDBZ='Y' where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } protected void btnRefreshWGCPBZ_Click(object sender, EventArgs e) { string sWGCPBZ = txtRetWGCPBZ.Value.Trim().Equals("") ? "N" : txtRetWGCPBZ.Value.Trim(); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_WGCPBZ = :pWGCPBZ,XLWBBJDMX_XDBZ='Y' where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pWGCPBZ").Value = sWGCPBZ; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } //颜色点击事件 protected void linkXLYSID_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_TZInfo.aspx"; pageParams.Title = "外部报价单颜色调整"; pageParams.AddString("XLYSID", cbxXLYSID.SelectedValue.Trim()); pageParams.AddExtString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("txtRetXLYSID", txtRetXLYSID.ClientID); pageParams.AddString("btnRefreshXLYSID", btnRefreshXLYSID.ClientID); OpenDialog(pageParams); } protected void btnRefreshXLYSID_Click(object sender, EventArgs e) { string sRetXLYSID = txtRetXLYSID.Value; string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_XLYSID = :pXLYSID where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pXLYSID").Value = sRetXLYSID; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } //计量单位的点击事件 protected void linkJLDW_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } string sJLDW = cbxJLDW.SelectedValue.Trim(); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); if (sDRHHList.Equals("")) { return; } string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_JLDW = :pJLDW where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pJLDW").Value = sJLDW; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } //修订的点击事件 protected void linkXD_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } if (cbxXD.SelectedValue.Trim().Equals("")) { ShowMessage("请先选择是否修订!"); return; } string sXD = cbxXD.SelectedValue.Trim(); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); if (sDRHHList.Equals("")) { return; } string sWBBJDID = txtWBBJDID.Text.Trim(); //string sWBBJDID = PageParam.GetRTrimString("WBBJDID"); string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" UPDATE XLWBBJDMX SET XLWBBJDMX_XDBZ = :pXDBZ where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pXDBZ").Value = sXD; dberp.ExecSQL(SQL); flag = 0; btnCallBack_Click(null, null); } protected void linkBHFCX_Click(object sender, EventArgs e) { if (!cbxBHFCX.SelectedValue.Trim().Equals("1")) { ShowMessage("仅'型号不合规'时才可以进行设置!"); return; } if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); //默认传入第一个选择 sDRHHList = sDRHHList.Split(',')[0]; TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WBBJDMX_XLXHInfo.aspx"; pageParams.Title = "外部报价单新增型号"; pageParams.AddString("DRHHList", sDRHHList); pageParams.AddString("WBBJDID", sWBBJDID); pageParams.AddString("SELBJDID", sSELBJDID); pageParams.AddString("btnRefreshXLXHIDBHFCX", btnRefreshXLXHIDBHFCX.ClientID); OpenDialog(pageParams); } //不合法查询 protected void btnRefreshXLXHIDBHFCX_Click(object sender, EventArgs e) { //清空查询按钮进行展示 cbxXLXHID.SelectedValue = ""; cbxXLBZID.SelectedValue = ""; cbxDYDJID.SelectedValue = ""; cbxXLYSID.SelectedValue = ""; cbxJLDW.SelectedValue = ""; txtBJCP.Text = ""; txtZHCPML.Text = ""; cbxBHFCX.SelectedValue = "1"; btnCallBack_Click(null, null); } #endregion protected void btnReplace_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } if (cbxReplaceLM.SelectedValue.Trim().Equals("")) { ShowMessage("请选择需要替换的栏目!"); SetFocus(cbxReplaceLM.ClientID); return; } sWBBJDID = txtWBBJDID.Text.Trim(); //sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); string sDRHHList = ""; QueryGrid_Checked(ref sDRHHList); string sReplaceLM = cbxReplaceLM.SelectedValue.Trim(); string sReplaceBef = txtReplaceBef.Text.Trim(); string sReplaceAft = txtReplaceAft.Text.Trim(); if (!sReplaceLM.Equals("")) { string tmp = sReplaceBef; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" update XLWBBJDMX set "); SQL.Add(sReplaceLM + " = replace(" + sReplaceLM + ", :pReplace1, :pReplace2) "); if (sReplaceLM.Equals("XLWBBJDMX_XLXHID") || sReplaceLM.Equals("XLWBBJDMX_XLGGID") || sReplaceLM.Equals("XLWBBJDMX_XLBZID") || sReplaceLM.Equals("XLWBBJDMX_DYDJID")) { SQL.Add(" ,XLWBBJDMX_XDBZ='Y' "); } SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID "); if (!tmp.Equals("")) { if ((tmp.StartsWith("!") || tmp.StartsWith("!")) && (tmp.EndsWith("!") || tmp.EndsWith("!"))) { tmp = tmp.TrimStart('!').TrimEnd('!').TrimStart('!').TrimEnd('!'); SQL.Add(" and " + sReplaceLM + " = :pReplaceBef "); SQL.ParamByName("pReplaceBef").Value = tmp; } else if (tmp.StartsWith("!") || tmp.StartsWith("!")) { tmp = tmp.TrimStart('!').TrimStart('!'); SQL.Add(" and " + sReplaceLM + " like :pReplaceBef "); SQL.ParamByName("pReplaceBef").Value = tmp + "%"; } else if (tmp.EndsWith("!") || tmp.EndsWith("!")) { tmp = tmp.TrimEnd('!').TrimEnd('!'); SQL.Add(" and " + sReplaceLM + " like :pReplaceBef "); SQL.ParamByName("pReplaceBef").Value = "%" + tmp; } else { tmp = tmp.TrimStart('!').TrimEnd('!').TrimStart('!').TrimEnd('!'); SQL.Add(" and " + sReplaceLM + " like :pReplaceBef "); SQL.ParamByName("pReplaceBef").Value = "%" + tmp + "%"; } } SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDMX_DRHH", sDRHHList)); SQL.ParamByName("pWBBJDID").Value = sWBBJDID; SQL.ParamByName("pBJDID").Value = sSELBJDID; SQL.ParamByName("pReplace1").Value = sReplaceBef.TrimStart('!').TrimEnd('!').TrimStart('!').TrimEnd('!'); SQL.ParamByName("pReplace2").Value = sReplaceAft.TrimStart('!').TrimEnd('!').TrimStart('!').TrimEnd('!'); string ss = SQL.Text; dberp.ExecSQL(SQL); } flag = 0; btnCallBack_Click(null, null); } //刷新 protected void btnCallBack_Click(object sender, EventArgs e) { Master_OnQuery(); // GridDataBind(); BillAreaUpdate(); FormAreaUpdate(); } #endregion } }