Files
N_XLXSBJ----MX/XLBJD_WBBJDMXList.aspx.cs
T
2026-08-21 17:03:02 +08:00

9710 lines
491 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<string> lstXLXHID = new List<string>();
List<string> lstXLGGID = new List<string>();
List<string> lstDYDJID = new List<string>();
List<string> lstBJXHList = new List<string>();
Dictionary<string, string> dicXLWBBJDXHDZB = new Dictionary<string, string>();
public static List<string> lstCPXXHZ = new List<string>();
public static List<string> lstXLXHHZ = new List<string>();
public static Dictionary<string, string> dicXLXHKZHZ = new Dictionary<string, string>();
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<string, string> 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;
}
}
/// <summary>
/// 外部报价单预处理
/// 预处理原则1:只预处理处理报价产品有值,型号或者规格其一有值的,
/// 预处理原则2:原则1中,处理结束,还原型号或者规格其一有值的。
/// 预处理原则3:报价产品无值,型号规格有值,需要补全报价产品
/// </summary>
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<string> lstXLXHTZ = new List<string>();
lstXLXHTZ.Clear();
dicXLWBBJDXHDZB.Clear();
if (!bBJCP)
{
List<string> lstXLGGTZ = new List<string>();
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<string, string> dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS();
foreach (KeyValuePair<string, string> 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<string, string> dicDYDJTH = new Dictionary<string, string>(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<string, string> dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS();
foreach (KeyValuePair<string, string> 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<string> lstValue = new List<string>();
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<string, string> dicWBBJDYZZGDLM = XLWBBJDUtils.GetWBBJDYZZGDLM(PageParam.GetRTrimString("BJDID"));
foreach (KeyValuePair<string, string> 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<string,string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> lstDYDJID)
{
TZBJCP_2(ref ds);
Dictionary<string, string> dicGGJG = new Dictionary<string, string>();
Dictionary<string, string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> lstDYDJID)
{
TZBJCP_2(ref ds);
Dictionary<string, string> 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<string, string> 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<string, string> dicDYDJTH = XLWBBJDUtils.GetDYDJTH();
List<string> lstJKXXLXHID = new List<string>();
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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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<string> lstXLXHID, List<string> lstXLGGID, List<string> 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");
}
}
/// <summary>
/// 解析电压等级
/// </summary>
/// <param name="ds"></param>
public static void JXDYDJ(ref DataSet ds)
{
Dictionary<string, string> 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];
}
}
}
/// <summary>
/// 使用标准电压等级替换外部报价单明细电压等级
/// </summary>
/// <param name="ds"></param>
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();
}
}
/// <summary>
/// 规格正则替换:按 XLXSBJDXTHDZQD(THLX=GGZZTH,序号升序)对 XLWBBJDMX_XLGGID 执行 Regex.Replace
/// </summary>
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<Regex> lstRx = new List<Regex>();
List<string> lstTHH = new List<string>();
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;
}
}
/// <summary>
/// 型号正则替换:按 XLXSBJDXTHDZQD(THLX=XHZZTH,序号升序)对 XLWBBJDMX_XLXHID 执行 Regex.Replace
/// </summary>
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<Regex> lstRx = new List<Regex>();
List<string> lstTHH = new List<string>();
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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string, string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string, string> 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<string, string> dicMCTCH = new Dictionary<string, string>();
dicMCTCH.Clear();
Dictionary<string, string> dicXGD = new Dictionary<string, string>();
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<string, string> dicMCTCH, ref string ErrorNo)
{
//使用材料清单匹配
foreach (KeyValuePair<string, string> 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<string, string> 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<string, string> 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<string> 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<string> 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<string> 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<string> 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<string> 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<string, string> GetdicXLYS()
{
Dictionary<string, string> dicXLYS = new Dictionary<string, string>();
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<string> GetBJCPValue_XLXSCLQDorXLXSJGBMX(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJGBID, string sZD, string sLY)
{
List<string> lst = new List<string>();
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<string, string> 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<string, string> dicBJFLXX = new Dictionary<string, string>();
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<string, string> 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<string, string> 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<string, string> dicXLXX = new Dictionary<string, string>();
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<string, string> dicXLXX = new Dictionary<string, string>();
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<string> lstValue = new List<string>();
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<string, string> 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<string> GCBZLists = new List<string>();
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<string> lstValue = new List<string>();
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<string, string> 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<string, string> dicXLXH = new Dictionary<string, string>();
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<string, string> dic = new Dictionary<string, string>();
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<string, string> dic = new Dictionary<string, string>();
dic.Clear();
dic = XLBJD_WBBJDANXX.XHTZ_MRZS();
foreach (KeyValuePair<string, string> 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<string, string> dicMRZX = XLBJD_WBBJDANXX.XHTZ_MRZS();
foreach (KeyValuePair<string, string> 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<string, string> dic = new Dictionary<string, string>();
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<string, string> dicMRGGTZ = new Dictionary<string, string>();
dicMRGGTZ = XLBJD_WBBJDANXX.GGTZ_MRZS();
foreach (KeyValuePair<string, string> 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 + "]&nbsp;&nbsp;&nbsp;" + sXLXHIDWCLQD + "&nbsp;&nbsp;&nbsp;" + sXLGGIDWCLQD + "&nbsp;&nbsp;&nbsp;" + 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<string, double> 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
}
}