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_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO.Data; using GThinking.N_CONTROL; using System.Collections.Generic; namespace GThinking.N_XLXSBJ { public partial class BJDTJList : SingleGridBase { BJDTJ entity = new BJDTJ(); BJDTJ_M queryentity = new BJDTJ_M(); #region pageload 事件 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860063; this.UMName = "线缆销售报价单统计"; this.CurMaster = Master; this.ModuleGV = this.grdContentGrid; this.CurEntity = entity; this.CurQueryEntity = queryentity; this.sQueryURLTarget = "BJDTJQuery.aspx"; this.sURLTarget = ""; this.PageHeight = 600; this.PageWidth = 750; if (!IsPostBack) { DateTime dtNow = DateTime.Now; string dateNow = dtNow.ToShortDateString().Trim(); string dateFirst = dateNow.Split('-')[0] + "-" + dateNow.Split('-')[1] + "-01"; CurQueryEntity.FieldByName("BJRQS").Value = dateFirst; CurQueryEntity.FieldByName("BJRQZ").Value = dateNow; } this.Master.EnableCopyBtn = false; this.Master.EnableDeleteBtn = false; this.Master.EnableNewBtn = false; this.Master.EnableEditBtn = false; this.Master.EnableViewBtn = false; string sHZFS = CurQueryEntity.FieldByName("HZFS").Value.Trim(); if (sHZFS.Equals("CPYTDYDJFL")) { base.DataKeyNames = new string[] { "COLOR", "HZFS_1", "HZFS_2" }; } else { base.DataKeyNames = new string[] { "COLOR", "HZFS_1" }; } base.InitPage(); if (!IsPostBack) { if (IsDefaultExecute) Master_OnStandardQuery(null, null); } this.ModuleGV.OnClientDblClick = "return false;"; } #endregion #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = "select 1 from XLXSJGBMX where 1<>1"; base.Master_OnStandardQuery(sender, e); DataSet ds = GetTable(); entity.GridDataBind(grdContentGrid, tSession); entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count); grdContentGrid.DataSource = ds; } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = "select 1 from XLXSJGBMX where 1<>1"; base.moduleGV_PageIndexChanging(sender, e); grdContentGrid.SelectedIndex = -1; DataSet ds = GetTable(); entity.GridDataBind(grdContentGrid, tSession); entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count); grdContentGrid.DataSource = ds; } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (grdContentGrid.DataKeys[e.Row.RowIndex]["COLOR"].ToString().Trim().Equals("PB")) { e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#87CEFA"); } else if (grdContentGrid.DataKeys[e.Row.RowIndex]["COLOR"].ToString().Trim().Equals("DB")) { e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#00BFFF"); } } base.moduleGV_RowDataBound(sender, e); } protected override void ReportRecordSetAdd() { base.InitEntityByCondition(); DataSet ds = GetTable(); AddUserReportDataSet("CX_BJDTJ", ds); base.ReportRecordSetAdd(); } protected override void ReportDataSetAdd() { base.InitEntityByCondition(); DataSet ds = GetTable(); for (int i = 0; i < grdContentGrid.Columns.Count; i++) { string sDataField = ((System.Web.UI.WebControls.BoundField)(grdContentGrid.Columns[i])).DataField.ToString().Trim(); string sHeaderText = grdContentGrid.Columns[i].HeaderText; AddUserReportField("CX_BJDTJ", sDataField, sHeaderText, "S"); } base.ReportDataSetAdd(); } #endregion #region 自定义函数 private string AddCondition() { string sSQL = " and isnull(XLXSBJD_YWLX,' ') = ' ' "; if (!CurQueryEntity.FieldByName("DCBJCXSY").Value.ToString().Trim().ToUpper().Equals("TRUE")) sSQL += " and ISNULL(XLXSBJD_TJBZ,'N') = 'Y' "; sSQL += CMISproDataBase.GetTimeConditionSQL("XLXSBJD_BJRQ", CurQueryEntity.FieldByName("BJRQS").Value.ToString().Trim(), CurQueryEntity.FieldByName("BJRQZ").Value.ToString().Trim(), DateTimeType.dtDate, DateTimeType.dtDate); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("STATE").Value.Trim())) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WPID", CurQueryEntity.FieldByName("STATE").Value.Trim()); } if (!CurQueryEntity.FieldByName("KH").Value.Trim().Equals("")) { sSQL += " and XLXSBJD_KH like '%" + CurQueryEntity.FieldByName("KH").Value.Trim() + "%' "; } if (!CurQueryEntity.FieldByName("XM").Value.Trim().Equals("")) { sSQL += " and XLXSBJD_XMMC like '%" + CurQueryEntity.FieldByName("XM").Value.Trim() + "%' "; } if (!CurQueryEntity.FieldByName("TXY").Value.Trim().Equals("")) { sSQL += " and XLXSBJD_TXY = '" + CurQueryEntity.FieldByName("TXY").Value.Trim() + "' "; } if (!CurQueryEntity.FieldByName("XSBM").Value.Trim().Equals("")) { sSQL += " and XLXSBJD_XSBMID = '" + CurQueryEntity.FieldByName("XSBM").Value.Trim() + "' "; } if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sSQL += " and (" + CMISproDataBase.GetWhereEqual("XLXSBJD_XSBMID", GetOption("HJU006").Trim()); sSQL += " or isnull(XLXSBJD_XSBMID, ' ') = ' ')"; } if (!CurQueryEntity.FieldByName("XSDW").Value.Trim().Equals("")) { sSQL += " and (GS_GSMC like '%" + CurQueryEntity.FieldByName("XSDW").Value.Trim() + "%' or KH_MC like '%" + CurQueryEntity.FieldByName("XSDW").Value.Trim() + "%) "; } if (!CurQueryEntity.FieldByName("BJFLID").Value.Trim().Equals("")) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", CurQueryEntity.FieldByName("BJFLID").Value.Trim()); } if (!GetOption("BJU012").Equals("")) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", GetOption("BJU012")); } if (!CurQueryEntity.FieldByName("CPYT").Value.Trim().Equals("")) { sSQL += " and XLXHB_CPYT = '" + CurQueryEntity.FieldByName("CPYT").Value.Trim() + "' "; } if (!CurQueryEntity.FieldByName("XH").Value.Trim().Equals("")) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XLXHID", CurQueryEntity.FieldByName("XH").Value.Trim()); } return sSQL; } private DataSet GetTable() { grdContentGrid.Columns.Clear(); int iXSWS = string.IsNullOrEmpty(GetOption(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); if (iXSWS < 0) { iXSWS = 0; } else if (iXSWS > 8) { iXSWS = 8; } string sJLDW = GetOption(100860000, "BJU003"); string sHZFS = CurQueryEntity.FieldByName("HZFS").Value.Trim(); string sBJFLID = CurQueryEntity.FieldByName("BJFLID").Value.Trim(); //显示明细 bool bXSMX = CurQueryEntity.FieldByName("XSMX").Value.ToString().Trim().ToUpper().Equals("TRUE"); //分铜铝产品展示 bool bDTCLZS = CurQueryEntity.FieldByName("DTCLZS").Value.ToString().Trim().ToUpper().Equals("TRUE"); DataSet dsQry = new DataSet(); DataTable dt = new DataTable(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); #region 初始化 string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; //同产品所属,铝产品所属 string sTcpList = ""; string sLcpList = ""; string sTLcpList = ""; if (bDTCLZS) { pzxx = XLBJDUtils.GetXLXSBJPZXX(100860063); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TDTGSCLID)) sTcpList = pzxx.XLXSBJPZ_TDTGSCLID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LDTGSCLID)) sLcpList = pzxx.XLXSBJPZ_LDTGSCLID; sTLcpList = sTcpList + "," + sLcpList; sTLcpList = sTLcpList.TrimStart(',').TrimEnd(','); } pzxx = XLBJDUtils.GetXLXSBJPZXX(100860063); string sZBLRGS = pzxx.XLXSBJPZ_ZBLRGS; #region 报价分类的设置 string sJCLLX = string.Empty; string sLJJCLLX = string.Empty; string sZDXJJCLLX = string.Empty; bool bXSBJDHQLJ = false; bool bXSLJ = false; bool bXSJCL = false; bool bXSLJJCL = false; bool bXSJGBBJJCE = false; bool bXSZDXJ = false; string[] sBJFLIDList = sBJFLID.Split(','); foreach (string sID in sBJFLIDList) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sID); //表价-料价-最低限价=价差率 if (string.IsNullOrEmpty(sJCLLX)) sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; if (string.IsNullOrEmpty(sLJJCLLX)) sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; if (string.IsNullOrEmpty(sZDXJJCLLX)) sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; //显示报价单行情料价 if (bjflxx.XSBJDHQLJ()) bXSBJDHQLJ = true; //显示价格表行情料价 if (bjflxx.XSLJ()) bXSLJ = true; //显示表价价差率 if (bjflxx.XSJCL()) bXSJCL = true; //显示价格表行情料价/显示料价价差率 if (bjflxx.XSLJJCL()) bXSLJJCL = true; //表价价差总额/表价价差额 if (bjflxx.XSJGBBJJCEChecked()) bXSJGBBJJCE = true; //最低限价 if (bjflxx.XSZDXJ()) bXSZDXJ = true; } #endregion #endregion #region 列构建 if (bXSMX) { #region 显示明细 AddColumn("px0", "px0", 100, false); AddColumn("px1", "px1", 100, false); //设置动态列 SetColumn_HZFS(sHZFS); AddColumn("XLXHID", "型号", 100); AddColumn("XLGGID", "规格", 100); AddColumn("XLBZID", "标准", 60); AddColumn("DYDJID", "电压等级", 60); AddColumn("TLCP", "铜铝产品", 60); AddColumn("GGZJM", "规格总截面", 2, 72); AddColumn("XLXSBJDMX_JLDW", "计量单位", 60); AddColumn("BJSL", "报价数量", true, 3, 80); AddColumn("XLXSBJDMX_BJDID", "报价单号", 100); AddColumn("XLXSBJDMX_XSSX", "显示序号", 0, 60); AddColumn("BJSLZB", "报价数量占比(%)", 2, 100); AddColumn("XLXSBJDMX_CPBJ", "报价", iXSWS, 80); AddColumn("BJJE", "报价金额", 2, 80); AddColumn("XLXSBJDMX_BJDHQCLCB", "报价单行情料价", iXSWS, 80, bXSBJDHQLJ); AddColumn("BJDHQCLCBJE", "报价单行情料价金额", 2, 80, bXSBJDHQLJ); AddColumn("XLXSBJDMX_CLCB", "价格表行情料价", iXSWS, 80, bXSLJ); AddColumn("CLCBJE", "价格表行情料价金额", 2, 80, bXSLJ); AddColumn("XLXSBJDMX_JGBBJ", "表价", iXSWS, 80); AddColumn("CPJJJE", "表价金额", 2, 80); AddColumn("XLXSBJDMX_ZDXJ", "最低限价", 2, 80, bXSZDXJ); AddColumn("XLXSBJDMX_ZDXJZJE", "最低限价金额", 2, 80, bXSZDXJ); AddColumn("XLXSBJDMX_ZDXJJCL", "最低限价价差率", 2, 100, bXSZDXJ); AddColumn("XLXSBJDMX_JGBBJJCL", "表价价差率", 2, 100, bXSJCL); AddColumn("XLXSBJDMX_JGBBJJCE", "表价价差额", 2, 100, bXSJGBBJJCE); AddColumn("XLXSBJDMX_CLCBJCL", "料价价差率", 2, 100, bXSLJJCL); AddColumn("ZBSL", "中标数量", 3, 100); AddColumn("ZBJE", "中标金额", 2, 80); if (!sZBLRGS.Equals("")) AddColumn("ZBLR", "中标利润", 2, 80, true, true); AddColumn("ZBBJDHQLJJE", "中标报价单行情料价金额", 2, 80); AddColumn("ZBJGBHQLJJE", "中标价格表行情料价金额", 2, 80); AddColumn("ZBBJJE", "中标表价金额", 2, 80); AddColumn("ZBBJJCL", "中标表价价差率", 2, 100, bXSJCL); AddColumn("ZBZDXJJE", "中标最低限价金额", 2, 80, bXSZDXJ); AddColumn("ZBZDXJJCL", "中标最低限价价差率", 2, 100, bXSZDXJ); AddColumn("ZBLJJCL", "中标料价价差率", 2, 100, bXSLJJCL); AddColumn("COLOR", "COLOR", 100, false); #endregion } else { #region 不显示明细 SetColumn_HZFS(sHZFS); if (bDTCLZS) { AddColumn("BJDCount", "报价次数", 0, 80); AddColumn("ZBCount", "中标次数", 0, 80); AddColumn("BJJE", "报价金额", 2, 80); AddColumn("TBJJE", "铜产品报价金额", 2, 80); AddColumn("LBJJE", "铝产品报价金额", 2, 80); AddColumn("QTBJJE", "其他产品报价金额", 2, 80); AddColumn("ZBJE", "中标金额", 2, 80); if (!sZBLRGS.Equals("")) AddColumn("ZBLR", "中标利润", 2, 80, true, true); AddColumn("TZBJE", "铜产品中标金额", 2, 80); AddColumn("LZBJE", "铝产品中标金额", 2, 80); AddColumn("QTZBJE", "其他产品中标金额", 2, 80); AddColumn("ZBBL", "中标次数/报价次数", 4, 100); AddColumn("BJJEZB", "报价金额占比(%)", 2, 100); AddColumn("ZBJEZB", "中标金额占比(%)", 2, 100); } else { AddColumn("BJDCount", "报价次数", 0, 80); AddColumn("ZBCount", "中标次数", 0, 80); AddColumn("BJJE", "报价金额", 2, 80); AddColumn("ZBJE", "中标金额", 2, 80); if (!sZBLRGS.Equals("")) AddColumn("ZBLR", "中标利润", 2, 80, true, true); AddColumn("ZBBL", "中标次数/报价次数", 4, 100); AddColumn("BJJEZB", "报价金额占比(%)", 2, 100); AddColumn("ZBJEZB", "中标金额占比(%)", 2, 100); } AddColumn("JGBLJJE", "价格表料价金额", 2, 80, bXSLJ); AddColumn("BJDLJJE", "报价单料价金额", 2, 80, bXSBJDHQLJ); AddColumn("LJJCL", "料价价差率", 2, 100, bXSLJJCL); AddColumn("JGBBJJE", "表价金额", 2, 80); AddColumn("BJJCL", "表价价差率", 2, 100, bXSJCL); AddColumn("ZDXJJE", "最低限价金额", 2, 80, bXSZDXJ); AddColumn("ZDXJJCL", "最低限价价差率", 2, 100, bXSZDXJ); AddColumn("MXJLS", "明细记录数", 0, 80); AddColumn("BJSL", "报价数量", true, 3, 100); AddColumn("BJSLZB", "报价数量占比(%)", 2, 100); AddColumn("PX", "PX", 100, false); AddColumn("COLOR", "COLOR", 100, false); #endregion } #endregion double sumBJSL = 0.0; double sumBJJE = 0.0; double sumZBJE = 0.0; SQL.Clear(); SQL.Add("select sum(XLXSBJDMX_BJSL) as sumBJSL,sum(XLXSBJDMX_BJJE) as sumBJJE,sum(XLXSBJDMX_ZBJE) as sumZBJE "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); DataSet dsAllMX = dberp.OpenDataSet(SQL); if (dsAllMX.Tables[0].Rows.Count > 0) { sumBJSL = CMISproConvert.StrToFloat(dsAllMX.Tables[0].Rows[0]["sumBJSL"].ToString()); sumBJJE = CMISproConvert.StrToFloat(dsAllMX.Tables[0].Rows[0]["sumBJJE"].ToString()); sumZBJE = CMISproConvert.StrToFloat(dsAllMX.Tables[0].Rows[0]["sumZBJE"].ToString()); } if (bXSMX) { #region 显示明细 SQL.Clear(); if (sHZFS.Equals("CPYT"))//产品用途 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); } else if (sHZFS.Equals("CPYTDYDJFL"))//产品用途+电压等级分类 { SQL.Add("select 0 as px0, XLXHB_CPYT as CPYT,XLDYDJB_DYDJFL as DYDJFL, 0 as px1,"); SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } else if (sHZFS.Equals("XH"))//型号 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" XLXSBJDMX_XLXHID as HZFS_1, "); } else if (sHZFS.Equals("KHFL"))//客户分类 { SQL.Add("select 0 as px0, 0 as px1, "); if (sKHJSLY.Equals("KH")) { SQL.Add(" case when isnull(KH_FL,' ')=' ' then ' ' else rtrim(isnull(KH_FL,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); } else { SQL.Add(" case when isnull(KHXX_FLID,' ')=' ' then ' ' else rtrim(isnull(KHXX_FLID,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); } } else if (sHZFS.Equals("KH"))//客户 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" rtrim(isnull(XLXSBJD_KH, ' ')) as HZFS_1, "); } else if (sHZFS.Equals("TXY"))//销售员 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" rtrim(isnull(XLXSBJD_TXY, ' ')) as HZFS_1, "); } else if (sHZFS.Equals("BM"))//销售部门 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case when isnull(XLXSBJD_XSBMID,' ')= ' ' then ' ' else rtrim(isnull(XLXSBJD_XSBMID,' '))||'|'||rtrim(isnull(BM_MC,' ')) end as HZFS_1, "); } else if (sHZFS.Equals("XMSZD_PRO")) { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); } else if (sHZFS.Equals("XMSZD_PROCPXLID")) { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIY")) { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); } else if (sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("CPMLID"))//产品目录 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); } else if (sHZFS.Equals("CPXLID"))//产品系列 { SQL.Add("select 0 as px0, 0 as px1, "); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_1, "); } else if (sHZFS.Equals("CPMLIDDYDJFL"))//产品目录+电压等级分类 { SQL.Add("select 0 as px0,XLXSCPML_CPMLID as CPMLID,XLDYDJB_DYDJFL as DYDJFL, 0 as px1, "); SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } SQL.Add(" XLXSBJDMX_XLXHID as XLXHID, XLXSBJDMX_XLGGID as XLGGID, "); SQL.Add(" rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID, "); SQL.Add(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList.Equals("") ? "XXXX" : sTcpList) + " then '铜产品' "); SQL.Add(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList.Equals("") ? "XXXX" : sLcpList) + " then '铝产品' "); SQL.Add(" else '其他产品' end as TLCP,"); SQL.Add(" XLGGB_GGZJM as GGZJM,"); SQL.Add(" XLXSBJDMX_JLDW,"); SQL.Add(" XLXSBJDMX_BJSL as BJSL, "); SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XSSX, "); if (sumBJSL != 0) { SQL.Add(" round(XLXSBJDMX_BJSL / :psumBJSL, 4)*100 as BJSLZB, "); } else SQL.Add(" 0.0 as BJSLZB, "); //报价 SQL.Add(" XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE as BJJE, "); //报价单行情料价 SQL.Add(" XLXSBJDMX_BJDHQCLCB,"); SQL.Add(" XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB as BJDHQCLCBJE, "); //价格表行情料价 SQL.Add(" XLXSBJDMX_CLCB,"); SQL.Add(" XLXSBJDMX_BJSL*XLXSBJDMX_CLCB as CLCBJE,"); //表价 SQL.Add(" XLXSBJDMX_JGBBJ,"); SQL.Add(" XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ as CPJJJE,"); //最低限价 SQL.Add(" XLXSBJDMX_ZDXJ,"); SQL.Add(" XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ as XLXSBJDMX_ZDXJZJE, "); SQL.Add(" XLXSBJDMX_ZDXJJCL, "); //表价价差率 SQL.Add(" XLXSBJDMX_JGBBJJCL,"); //表价价差额 SQL.Add(" XLXSBJDMX_JGBBJJCE,"); //料价价差率 SQL.Add(" XLXSBJDMX_CLCBJCL,"); SQL.Add(" XLXSBJDMX_ZBSL as ZBSL,XLXSBJDMX_ZBJE as ZBJE,"); if (sZBLRGS.Equals("1")) SQL.Add(" XLXSBJDMX_ZBJE - RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ,2) as ZBLR,"); else SQL.Add(" 0 as ZBLR,"); SQL.Add(" XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB as ZBBJDHQLJJE,"); SQL.Add(" XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB as ZBJGBHQLJJE,"); SQL.Add(" XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ as ZBBJJE,"); SQL.Add(" XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ as ZBZDXJJE,"); //中标表价价差率 if (sJCLLX.Equals("1")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ-XLXSBJDMX_ZBJE)/(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else { SQL.Add(" 0.0 as ZBBJJCL, "); } //中标最低限价价差率 if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else 100.0-RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ when 0.0 then 0.0 else RoundFix(XLXSBJDMX_ZBJE/(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ),4) *100.0 - 100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/(XLXSBJDMX_ZBJE),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ when 0.0 then 0.0 else 100.0 - RoundFix(XLXSBJDMX_BJDHQCLCB/XLXSBJDMX_ZDXJ,4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + " when 0.0 then 0.0 else RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + "),4) *100.0 end as ZBZDXJJCL, "); } else { SQL.Add(" 0.0 as ZBZDXJJCL, "); } //中标料价价差率 if (sLJJCLLX.Equals("1")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else 100.0-RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else 100.0-RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB when 0.0 then 0.0 else RoundFix(XLXSBJDMX_ZBJE/(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB),4) *100.0 - 100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case XLXSBJDMX_ZBJE when 0.0 then 0.0 else RoundFix((XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/XLXSBJDMX_ZBJE,4) *100.0 end as ZBLJJCL, "); } else { SQL.Add(" 0.0 as ZBLJJCL, "); } SQL.Add(" 'WT' as COLOR "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID = XLXSBJDMX_XLXHID "); SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); SQL.Add(" left join XLGGB on XLGGB_XLGGID=XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); if (sHZFS.Equals("CPYT")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } else if (sHZFS.Equals("XH")) { } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" left join KH on isnull(KH_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KH_FL "); } else { SQL.Add(" left join KHXX on isnull(KHXX_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KHXX_FLID "); } } else if (sHZFS.Equals("KH")) { } else if (sHZFS.Equals("TXY")) { } else if (sHZFS.Equals("BM")) { SQL.Add(" left join BM on BM_BMID = isnull(XLXSBJD_XSBMID,' ') "); } else if (sHZFS.Equals("XMSZD_PRO") || sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); } else if (sHZFS.Equals("CPXLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); SQL.Add(" union all"); if (sHZFS.Equals("CPYT")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then '(小计)' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' '))||'|'|| '(小计)' end as HZFS_1, "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" select 0 as px0, XLXHB_CPYT as CPYT,XLDYDJB_DYDJFL as DYDJFL, 1 as px1,"); SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then '(小计)' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' '))||'|'|| '(小计)' end as HZFS_1, "); SQL.Add(" case when isnull(XLDYDJB_DYDJFL,' ')=' ' then '(小计)' else rtrim(XLDYDJB_DYDJFL)|| '|' ||'(小计)' end as HZFS_2, "); } else if (sHZFS.Equals("XH")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" rtrim(XLXSBJDMX_XLXHID) || '|' || '(小计)' as HZFS_1, "); } else if (sHZFS.Equals("KHFL")) { SQL.Add(" select 0 as px0, 1 as px1,"); if (sKHJSLY.Equals("KH")) { SQL.Add(" case when isnull(KH_FL,' ')=' ' then ' ' else rtrim(isnull(KH_FL,' '))||'|'||rtrim(isnull(KHFL_FLMC,' '))||'|'||'(小计)' end as HZFS_1, "); } else { SQL.Add(" case when isnull(KHXX_FLID,' ')=' ' then ' ' else rtrim(isnull(KHXX_FLID,' '))||'|'||rtrim(isnull(KHFL_FLMC,' '))||'|'||'(小计)' end as HZFS_1, "); } } else if (sHZFS.Equals("KH")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" rtrim(isnull(XLXSBJD_KH, ' '))|| '|' ||'(小计)' as HZFS_1, "); } else if (sHZFS.Equals("TXY")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" rtrim(isnull(XLXSBJD_TXY, ' '))|| '|' ||'(小计)' as HZFS_1, "); } else if (sHZFS.Equals("BM")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case when isnull(XLXSBJD_XSBMID,' ')= ' ' then ' ' else rtrim(isnull(XLXSBJD_XSBMID,' '))||'|'||rtrim(isnull(BM_MC,' ')) || '|' || '(小计)' end as HZFS_1, "); } else if (sHZFS.Equals("XMSZD_PRO")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then rtrim(isnull(C.XZQH_PROVINCE,' '))||'|'||'(小计)' else rtrim(isnull(D.XZQH_PROVINCE,' '))||'|'||'(小计)' end as HZFS_1,"); } else if (sHZFS.Equals("XMSZD_PROCPXLID")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then rtrim(isnull(C.XZQH_PROVINCE,' '))||'|'||'(小计)' else rtrim(isnull(D.XZQH_PROVINCE,' '))||'|'||'(小计)' end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' '))||'|'||'(小计)' end as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then rtrim(isnull(C.XZQH_PROVINCE,' '))||'|'||'(小计)' else rtrim(isnull(D.XZQH_PROVINCE,' '))||rtrim(isnull(C.XZQH_CITY,' '))||'|'||'(小计)' end as HZFS_1,"); } else if (sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then rtrim(isnull(C.XZQH_PROVINCE,' '))||'|'||'(小计)' else rtrim(isnull(D.XZQH_PROVINCE,' '))||rtrim(isnull(C.XZQH_CITY,' '))||'|'||'(小计)' end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' '))||'|'||'(小计)' end as HZFS_2, "); } else if (sHZFS.Equals("CPMLID")) { SQL.Add(" select 0 as px0, 1 as px1,"); SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then '(小计)' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' '))||'|'||'(小计)' end as HZFS_1, "); } else if (sHZFS.Equals("CPXLID"))//产品系列 { SQL.Add("select 0 as px0, 1 as px1, "); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' '))||'|'||'(小计)' end as HZFS_1, "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" select 0 as px0,XLXSCPML_CPMLID as CPMLID,XLDYDJB_DYDJFL as DYDJFL, 1 as px1,"); SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then '(小计)' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' '))||'|'||'(小计)' end as HZFS_1, "); SQL.Add(" case when isnull(XLDYDJB_DYDJFL,' ')=' ' then '(小计)' else rtrim(XLDYDJB_DYDJFL)|| '|' ||'(小计)' end as HZFS_2, "); } SQL.Add(" ' ' as XLXHID, ' ' as XLGGID, "); SQL.Add(" ' ' as XLBZID, ' ' as DYDJID, "); SQL.Add(" ' ' as TLCP,"); SQL.Add(" 0.0 as GGZJM,"); SQL.Add(" ' ' as XLXSBJDMX_JLDW, "); SQL.Add(" sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" ' ' as XLXSBJDMX_BJDID, 0 as XLXSBJDMX_XSSX, "); if (sumBJSL != 0) { SQL.Add(" round(sum(XLXSBJDMX_BJSL) / :psumBJSL, 4)*100 as BJSLZB, "); } else SQL.Add(" 0.0 as BJSLZB, "); //报价 SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ,sum(XLXSBJDMX_BJJE) as BJJE, "); //报价单行情料价 SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); //价格表行情料价 SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); //表价 SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); //最低限价 SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); //最低限价价差率 if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100.0 - 100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else 100.0 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_ZDXJJCL, "); } //表价价差率 if (sJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_JGBBJJCL, "); } //表价价差额 SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); //料价价差率 if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100.0 - 100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_CLCBJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZBSL) as ZBSL,sum(XLXSBJDMX_ZBJE) as ZBJE,"); if (sZBLRGS.Equals("1")) SQL.Add(" sum(XLXSBJDMX_ZBJE - RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ,2)) as ZBLR,"); else SQL.Add(" 0 as ZBLR,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB) as ZBBJDHQLJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB) as ZBJGBHQLJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) as ZBBJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) as ZBZDXJJE,"); //中标表价价差率 if (sJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ-XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else { SQL.Add(" 0.0 as ZBBJJCL, "); } //中标最低限价价差率 if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ),4) *100.0 - 100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else 100.0 - RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as ZBZDXJJCL, "); } else { SQL.Add(" 0.0 as ZBZDXJJCL, "); } //中标料价价差率 if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB),4) *100.0 - 100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else { SQL.Add(" 0.0 as ZBLJJCL, "); } SQL.Add(" 'PB' as COLOR "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); if (sHZFS.Equals("CPYT")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" left join XLDYDJB a2 on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } else if (sHZFS.Equals("XH")) { } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" left join KH a on isnull(a.KH_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KH_FL "); } else { SQL.Add(" left join KHXX a on isnull(a.KHXX_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KHXX_FLID "); } } else if (sHZFS.Equals("KH")) { } else if (sHZFS.Equals("TXY")) { } else if (sHZFS.Equals("BM")) { SQL.Add(" left join BM on BM_BMID = isnull(XLXSBJD_XSBMID,' ') "); } else if (sHZFS.Equals("XMSZD_PRO") || sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); } else if (sHZFS.Equals("CPXLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML a1 on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join XLDYDJB a2 on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); if (sHZFS.Equals("CPYT")) { SQL.Add(" group by XLXHB_CPYT,XLCPYT_CPYTMC"); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" group by XLXHB_CPYT,XLCPYT_CPYTMC,XLDYDJB_DYDJFL"); } else if (sHZFS.Equals("XH")) { SQL.Add(" group by XLXSBJDMX_XLXHID "); } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" group by isnull(KH_FL, ' '),KHFL_FLMC "); } else { SQL.Add(" group by isnull(KHXX_FLID, ' '),KHFL_FLMC "); } } else if (sHZFS.Equals("KH")) { SQL.Add(" group by isnull(XLXSBJD_KH, ' ') "); } else if (sHZFS.Equals("TXY")) { SQL.Add(" group by isnull(XLXSBJD_TXY, ' ') "); } else if (sHZFS.Equals("BM")) { SQL.Add(" group by isnull(XLXSBJD_XSBMID,' '),BM_MC "); } else if (sHZFS.Equals("XMSZD_PRO")) SQL.Add(" group by ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' ') "); else if (sHZFS.Equals("XMSZD_PROCPXLID")) SQL.Add(" group by ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' ') "); else if (sHZFS.Equals("XMSZD_CIY")) SQL.Add(" group by ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' ') "); else if (sHZFS.Equals("XMSZD_CIYCPXLID")) SQL.Add(" group by ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' ') "); else if (sHZFS.Equals("CPMLID")) SQL.Add(" group by ISNULL(XLXSCPML_CPMLID,' '),isnull(XLXSCPML_CPMLMC,' ') "); else if (sHZFS.Equals("CPXLID")) SQL.Add(" group by ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' ') "); else if (sHZFS.Equals("CPMLIDDYDJFL")) SQL.Add(" group by XLXSCPML_CPMLID,XLXSCPML_CPMLMC,XLDYDJB_DYDJFL "); SQL.Add(" union all"); if (sHZFS.Equals("CPYT")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" select 1 as px0, ' ' as CPYT,' ' as DYDJFL, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XH")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("KHFL")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("KH")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("TXY")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("BM")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("XMSZD_PRO") || sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("CPMLID") || sHZFS.Equals("CPXLID")) { SQL.Add(" select 1 as px0, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" select 1 as px0,1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" select 1 as px0,' ' as CPMLID,' ' as DYDJFL, 1 as px1,"); SQL.Add(" '合计' as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } SQL.Add(" ' ' as XLXHID, ' ' as XLGGID, "); SQL.Add(" ' ' as XLBZID, ' ' as DYDJID, "); SQL.Add(" ' ' as TLCP,"); SQL.Add(" 0.0 as GGZJM,"); SQL.Add(" ' ' as XLXSBJDMX_JLDW, "); SQL.Add(" sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" ' ' as XLXSBJDMX_BJDID, 0 as XLXSBJDMX_XSSX, 100 as BJSLZB, "); //报价 SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ,sum(XLXSBJDMX_BJJE) as BJJE, "); //报价单行情料价 SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); //价格表行情料价 SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); //表价 SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); //最低限价 SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); //最低限价价差率 if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100.0 - 100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else 100.0 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as XLXSBJDMX_ZDXJJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_ZDXJJCL, "); } //表价价差率 if (sJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100.0 end as XLXSBJDMX_JGBBJJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_JGBBJJCL, "); } //表价价差额 SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); //料价价差率 if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100.0 - 100.0 end as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_BJJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100.0 end as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" 0.0 as XLXSBJDMX_CLCBJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZBSL) as ZBSL,sum(XLXSBJDMX_ZBJE) as ZBJE,"); if (sZBLRGS.Equals("1")) SQL.Add(" sum(XLXSBJDMX_ZBJE - RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ,2)) as ZBLR,"); else SQL.Add(" 0 as ZBLR,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB) as ZBBJDHQLJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB) as ZBJGBHQLJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) as ZBBJJE,"); SQL.Add(" sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) as ZBZDXJJE,"); //中标表价价差率 if (sJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ-XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBBJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE-XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_JGBBJ),4) *100.0 end as ZBBJJCL, "); } else { SQL.Add(" 0.0 as ZBBJJCL, "); } //中标最低限价价差率 if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ),4) *100.0 - 100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ) when 0.0 then 0.0 else 100.0 - RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_ZDXJ),4) *100.0 end as ZBZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as ZBZDXJJCL, "); } else { SQL.Add(" 0.0 as ZBZDXJJCL, "); } //中标料价价差率 if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBJE)/sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB),4) *100.0 - 100.0 end as ZBLJJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(XLXSBJDMX_ZBJE) when 0.0 then 0.0 else RoundFix(sum(XLXSBJDMX_ZBSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_ZBJE),4) *100.0 end as ZBLJJCL, "); } else { SQL.Add(" 0.0 as ZBLJJCL, "); } SQL.Add(" 'PB' as COLOR "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID = XLXSBJDMX_XLXHID "); SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" order by px0,CPYT,DYDJFL,px1,XLXHID,XLGGID,XLBZID,DYDJID "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" order by px0,CPMLID,DYDJFL,px1,XLXHID,XLGGID,XLBZID,DYDJID "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" order by px0,HZFS_1,HZFS_2,px1,XLXHID,XLGGID,XLBZID,DYDJID "); } else { SQL.Add(" order by px0,HZFS_1,px1,XLXHID,XLGGID,XLBZID,DYDJID "); } if (sumBJSL != 0) { SQL.ParamByName("psumBJSL").Value = sumBJSL; } #endregion } else { #region 不显示明细 SQL.Clear(); SQL.Add(" select HZFS_1,HZFS_2,count(XLXSBJD_BJDID) as BJDCount,sum(isnull(ZB,0)) as ZBCount, "); SQL.Add(" sum(BJJE) as BJJE, "); if (bDTCLZS) SQL.Add(" sum(TBJJE) as TBJJE,sum(LBJJE) as LBJJE,sum(QTBJJE) as QTBJJE, "); SQL.Add(" sum(ZBJE) as ZBJE, "); if (sZBLRGS.Equals("1")) SQL.Add(" sum(ZBJE - ZDXJJE) as ZBLR,"); else SQL.Add(" 0 as ZBLR,"); if (bDTCLZS) SQL.Add(" sum(TZBJE) as TZBJE,sum(LZBJE) as LZBJE,sum(QTZBJE) as QTZBJE, "); SQL.Add(" case when count(XLXSBJD_BJDID)=0 then 0 else RoundFix(sum(case when isnull(ZB,0)>0 then 1.0 else 0.0 end)/count(XLXSBJD_BJDID),4) end as ZBBL, "); if (sumBJJE != 0) { SQL.Add(" round(sum(BJJE) / :psumBJJE, 4)*100 as BJJEZB, "); } else SQL.Add(" 0.0 as BJJEZB, "); if (sumZBJE != 0) { SQL.Add(" round(sum(ZBJE) / :psumZBJE, 4)*100 as ZBJEZB, "); } else SQL.Add(" 0.0 as ZBJEZB, "); SQL.Add(" sum(MXJLS) as MXJLS, "); SQL.Add(" sum(BJSL) as BJSL, "); if (sumBJSL != 0) { SQL.Add(" round(sum(BJSL) / :psumBJSL, 4)*100 as BJSLZB, "); } else SQL.Add(" 0.0 as BJSLZB, "); //最低限价价差率 SQL.Add(" sum(ZDXJJE) as ZDXJJE, "); if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(ZDXJJE)/sum(BJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(ZDXJJE) when 0.0 then 0.0 else RoundFix(sum(BJJE)/sum(ZDXJJE),4) *100.0 - 100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(ZDXJJE)/sum(BJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(ZDXJJE) when 0.0 then 0.0 else 100.0 - RoundFix(sum(BJDLJJE)/sum(ZDXJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(JGBBJJE *" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(ZDXJJE)/(sum(JGBBJJE *" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as ZDXJJCL, "); } else { SQL.Add(" 0.0 as ZDXJJCL, "); } //表价价差率 SQL.Add(" sum(JGBBJJE) as JGBBJJE,"); if (sJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(JGBBJJE)/sum(BJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(JGBBJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(BJJE)/sum(JGBBJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(JGBBJJE)/sum(BJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(JGBBJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(BJJE)/sum(JGBBJJE),4) *100.0 end as BJJCL, "); } else { SQL.Add(" 0.0 as BJJCL, "); } //料价价差率 SQL.Add(" sum(JGBLJJE) as JGBLJJE,"); SQL.Add(" sum(BJDLJJE) as BJDLJJE,"); if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(JGBLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(BJDLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(BJDLJJE) when 0.0 then 0.0 else RoundFix(sum(BJJE)/sum(BJDLJJE),4) *100.0 - 100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(BJDLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else { SQL.Add(" 0.0 as LJJCL, "); } SQL.Add(" 0 as PX,'WT' as COLOR "); SQL.Add(" from "); SQL.Add(" ( "); SQL.Add(" select XLXSBJD_BJDID, "); if (sHZFS.Equals("CPYT"))//产品用途 { SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPYTDYDJFL"))//产品用途+电压等级分类 { SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } else if (sHZFS.Equals("XH"))//型号 { SQL.Add(" XLXSBJDMX_XLXHID as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("KHFL"))//客户分类 { if (sKHJSLY.Equals("KH")) { SQL.Add(" case when isnull(KH_FL,' ')=' ' then ' ' else rtrim(isnull(KH_FL,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else { SQL.Add(" case when isnull(KHXX_FLID,' ')=' ' then ' ' else rtrim(isnull(KHXX_FLID,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } } else if (sHZFS.Equals("KH"))//客户 { SQL.Add(" rtrim(isnull(XLXSBJD_KH, ' ')) as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("TXY"))//销售员 { SQL.Add(" rtrim(isnull(XLXSBJD_TXY, ' ')) as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("BM"))//销售部门 { SQL.Add(" case when isnull(XLXSBJD_XSBMID,' ')= ' ' then ' ' else rtrim(isnull(XLXSBJD_XSBMID,' '))||'|'||rtrim(isnull(BM_MC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_PRO")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_PROCPXLID")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("CPMLID"))//产品目录 { SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPXLID"))//产品系列 { SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPMLIDDYDJFL"))//产品目录+电压等级分类 { SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } SQL.Add(" case when XLXSBJD_ZB = 'Y' then 1 else 0 end as ZB, "); SQL.Add(" sum(1) as MXJLS,sum(XLXSBJDMX_BJSL)as BJSL, "); SQL.Add(" sum(XLXSBJDMX_BJJE)as BJJE, "); if (bDTCLZS) { SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList.Equals("") ? "XXXX" : sTcpList) + " then XLXSBJDMX_BJJE else 0 end) as TBJJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList.Equals("") ? "XXXX" : sLcpList) + " then XLXSBJDMX_BJJE else 0 end) as LBJJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereNotEqual("isnull(XLXHB_DTCLID,' ')", sTLcpList.Equals("") ? "XXXX" : sTLcpList) + " then XLXSBJDMX_BJJE else 0 end) as QTBJJE, "); } SQL.Add(" sum(XLXSBJDMX_ZBJE) as ZBJE, ");//--中标金额 if (bDTCLZS) { SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList.Equals("") ? "XXXX" : sTcpList) + " then XLXSBJDMX_ZBJE else 0 end) as TZBJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList.Equals("") ? "XXXX" : sLcpList) + " then XLXSBJDMX_ZBJE else 0 end) as LZBJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereNotEqual("isnull(XLXHB_DTCLID,' ')", sTLcpList.Equals("") ? "XXXX" : sTLcpList) + " then XLXSBJDMX_ZBJE else 0 end) as QTZBJE, "); } SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as ZDXJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as JGBBJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as JGBLJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDLJJE"); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); if (sHZFS.Equals("CPYT")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } else if (sHZFS.Equals("XH")) { } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" left join KH on isnull(KH_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KH_FL "); } else { SQL.Add(" left join KHXX on isnull(KHXX_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KHXX_FLID "); } } else if (sHZFS.Equals("KH")) { } else if (sHZFS.Equals("TXY")) { } else if (sHZFS.Equals("BM")) { SQL.Add(" left join BM on BM_BMID = isnull(XLXSBJD_XSBMID,' ') "); } else if (sHZFS.Equals("XMSZD_PRO") || sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); } else if (sHZFS.Equals("CPXLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); if (sHZFS.Equals("CPYT")) { SQL.Add(" group by XLXSBJD_BJDID,XLXHB_CPYT,XLCPYT_CPYTMC,XLXSBJD_ZB,XLXSBJD_ZBJE"); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" group by XLXSBJD_BJDID,XLXHB_CPYT,XLCPYT_CPYTMC,XLDYDJB_DYDJFL,XLXSBJD_ZB,XLXSBJD_ZBJE"); } else if (sHZFS.Equals("XH")) { SQL.Add(" group by XLXSBJD_BJDID,XLXSBJDMX_XLXHID,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(KH_FL, ' '),KHFL_FLMC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else { SQL.Add(" group by XLXSBJD_BJDID,isnull(KHXX_FLID, ' '),KHFL_FLMC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } } else if (sHZFS.Equals("KH")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_KH, ' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("TXY")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_TXY, ' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("BM")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_XSBMID,' '),BM_MC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("XMSZD_PRO")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_CIY")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_PROCPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_CIYCPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPMLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(XLXSCPML_CPMLID,' '),isnull(XLXSCPML_CPMLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPMLIDDYDJFL")) SQL.Add(" group by XLXSBJD_BJDID,XLXSCPML_CPMLID,XLXSCPML_CPMLMC,XLDYDJB_DYDJFL,XLXSBJD_ZB,XLXSBJD_ZBJE "); SQL.Add(" ) tmpCPYT "); SQL.Add(" where 1=1 "); SQL.Add(" group by HZFS_1,HZFS_2 "); SQL.Add(" union all"); SQL.Add(" select '合计' as HZFS_1,' ' as HZFS_2, "); SQL.Add(" count(XLXSBJD_BJDID) as BJDCount,sum(isnull(ZB,0)) as ZBCount, "); SQL.Add(" sum(BJJE) as BJJE, "); if (bDTCLZS) SQL.Add(" sum(TBJJE) as TBJJE,sum(LBJJE) as LBJJE,sum(QTBJJE) as QTBJJE, "); SQL.Add(" sum(ZBJE) as ZBJE, "); if (sZBLRGS.Equals("1")) SQL.Add(" sum(ZBJE - ZDXJJE) as ZBLR,"); else SQL.Add(" 0 as ZBLR,"); if (bDTCLZS) SQL.Add(" sum(TZBJE) as TZBJE,sum(LZBJE) as LZBJE,sum(QTZBJE) as QTZBJE, "); SQL.Add(" case when count(XLXSBJD_BJDID)=0 then 0 else RoundFix(sum(case when isnull(ZB,0)>0 then 1.0 else 0.0 end)/count(XLXSBJD_BJDID),4) end as ZBBL, "); if (sumBJJE != 0) { SQL.Add(" round(sum(BJJE) / :psumBJJE, 4)*100 as BJJEZB, "); } else SQL.Add(" 0.0 as BJJEZB, "); if (sumZBJE != 0) { SQL.Add(" round(sum(ZBJE) / :psumZBJE, 4)*100 as ZBJEZB, "); } else SQL.Add(" 0.0 as ZBJEZB, "); SQL.Add(" sum(MXJLS) as MXJLS, "); SQL.Add(" sum(BJSL) as BJSL, "); if (sumBJSL != 0) { SQL.Add(" round(sum(BJSL) / :psumBJSL, 4)*100 as BJSLZB, "); } else SQL.Add(" 0.0 as BJSLZB, "); //最低限价价差率 SQL.Add(" sum(ZDXJJE) as ZDXJJE, "); if (sZDXJJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(ZDXJJE)/sum(BJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" case sum(ZDXJJE) when 0.0 then 0.0 else RoundFix(sum(BJJE)/sum(ZDXJJE),4) *100.0 - 100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(ZDXJJE)/sum(BJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" case sum(ZDXJJE) when 0.0 then 0.0 else 100.0 - RoundFix(sum(BJDLJJE)/sum(ZDXJJE),4) *100.0 end as ZDXJJCL, "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" case sum(JGBBJJE *" + XLBJDUtils.sCJXS.ToString() + ") when 0.0 then 0.0 else RoundFix(sum(ZDXJJE)/(sum(JGBBJJE *" + XLBJDUtils.sCJXS.ToString() + ")),4) *100.0 end as ZDXJJCL, "); } else { SQL.Add(" 0.0 as ZDXJJCL, "); } //表价价差率 SQL.Add(" sum(JGBBJJE) as JGBBJJE,"); if (sJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(JGBBJJE)/sum(BJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("2")) { SQL.Add(" case sum(JGBBJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(BJJE)/sum(JGBBJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("3")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(JGBBJJE)/sum(BJJE),4) *100.0 end as BJJCL, "); } else if (sJCLLX.Equals("4")) { SQL.Add(" case sum(JGBBJJE) when 0.0 then 0.0 else RoundFix(sum(BJJE)/sum(JGBBJJE),4) *100.0-100.0 end as BJJCL, "); } else { SQL.Add(" 0.0 as BJJCL, "); } //料价价差率 SQL.Add(" sum(JGBLJJE) as JGBLJJE,"); SQL.Add(" sum(BJDLJJE) as BJDLJJE,"); if (sLJJCLLX.Equals("1")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(JGBLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else 100.0-RoundFix(sum(BJDLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("3")) { SQL.Add(" case sum(BJDLJJE) when 0.0 then 0.0 else RoundFix(sum(BJJE)/sum(BJDLJJE),4) *100.0 - 100.0 end as LJJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" case sum(BJJE) when 0.0 then 0.0 else RoundFix(sum(BJDLJJE)/sum(BJJE),4) *100.0 end as LJJCL, "); } else { SQL.Add(" 0.0 as LJJCL, "); } SQL.Add(" 1 as PX,'DB' as COLOR "); SQL.Add(" from "); SQL.Add(" ( "); SQL.Add(" select XLXSBJD_BJDID, "); if (sHZFS.Equals("CPYT"))//产品用途 { SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPYTDYDJFL"))//产品用途+电压等级分类 { SQL.Add(" case when isnull(XLXHB_CPYT,' ')=' ' then ' ' else rtrim(isnull(XLXHB_CPYT,' '))||'|'||rtrim(isnull(XLCPYT_CPYTMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } else if (sHZFS.Equals("XH"))//型号 { SQL.Add(" XLXSBJDMX_XLXHID as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("KHFL"))//客户分类 { if (sKHJSLY.Equals("KH")) { SQL.Add(" case when isnull(KH_FL,' ')=' ' then ' ' else rtrim(isnull(KH_FL,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else { SQL.Add(" case when isnull(KHXX_FLID,' ')=' ' then ' ' else rtrim(isnull(KHXX_FLID,' '))||'|'||rtrim(isnull(KHFL_FLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } } else if (sHZFS.Equals("KH"))//客户 { SQL.Add(" rtrim(isnull(XLXSBJD_KH, ' ')) as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("TXY"))//销售员 { SQL.Add(" rtrim(isnull(XLXSBJD_TXY, ' ')) as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("BM"))//销售部门 { SQL.Add(" case when isnull(XLXSBJD_XSBMID,' ')= ' ' then ' ' else rtrim(isnull(XLXSBJD_XSBMID,' '))||'|'||rtrim(isnull(BM_MC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_PRO")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_PROCPXLID")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else isnull(D.XZQH_PROVINCE,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then isnull(C.XZQH_PROVINCE,' ') else rtrim(isnull(D.XZQH_PROVINCE,' '))||isnull(C.XZQH_CITY,' ') end as HZFS_1,"); SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_2, "); } else if (sHZFS.Equals("CPMLID"))//产品目录 { SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPXLID"))//产品系列 { SQL.Add(" case when isnull(CPXL_CPXLID,' ')=' ' then ' ' else rtrim(isnull(CPXL_CPXLID,' '))||'|'||rtrim(isnull(CPXL_CPXLMC,' ')) end as HZFS_1, "); SQL.Add(" ' ' as HZFS_2, "); } else if (sHZFS.Equals("CPMLIDDYDJFL"))//产品目录+电压等级分类 { SQL.Add(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS_1, "); SQL.Add(" XLDYDJB_DYDJFL as HZFS_2, "); } SQL.Add(" case when XLXSBJD_ZB = 'Y' then 1 else 0 end as ZB, "); SQL.Add(" sum(1) as MXJLS,sum(XLXSBJDMX_BJSL)as BJSL, "); SQL.Add(" sum(XLXSBJDMX_BJJE)as BJJE, "); if (bDTCLZS) { SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList.Equals("") ? "XXXX" : sTcpList) + " then XLXSBJDMX_BJJE else 0 end) as TBJJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList.Equals("") ? "XXXX" : sLcpList) + " then XLXSBJDMX_BJJE else 0 end) as LBJJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereNotEqual("isnull(XLXHB_DTCLID,' ')", sTLcpList.Equals("") ? "XXXX" : sTLcpList) + " then XLXSBJDMX_BJJE else 0 end) as QTBJJE, "); } SQL.Add(" sum(XLXSBJDMX_ZBJE) as ZBJE, ");//--中标金额 if (bDTCLZS) { SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList.Equals("") ? "XXXX" : sTcpList) + " then XLXSBJDMX_ZBJE else 0 end) as TZBJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList.Equals("") ? "XXXX" : sLcpList) + " then XLXSBJDMX_ZBJE else 0 end) as LZBJE, "); SQL.Add(" sum(case when " + XLBJDUtils.GetWhereNotEqual("isnull(XLXHB_DTCLID,' ')", sTLcpList.Equals("") ? "XXXX" : sTLcpList) + " then XLXSBJDMX_ZBJE else 0 end) as QTZBJE, "); } SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as ZDXJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as JGBBJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as JGBLJJE,"); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDLJJE"); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); if (sHZFS.Equals("CPYT")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } else if (sHZFS.Equals("XH")) { } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" left join KH on isnull(KH_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KH_FL "); } else { SQL.Add(" left join KHXX on isnull(KHXX_MC,' ')=isnull(XLXSBJD_KH,' ') "); SQL.Add(" left join KHFL on KHFL_FLID=KHXX_FLID "); } } else if (sHZFS.Equals("KH")) { } else if (sHZFS.Equals("TXY")) { } else if (sHZFS.Equals("BM")) { SQL.Add(" left join BM on BM_BMID = isnull(XLXSBJD_XSBMID,' ') "); } else if (sHZFS.Equals("XMSZD_PRO") || sHZFS.Equals("XMSZD_CIY")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); } else if (sHZFS.Equals("XMSZD_PROCPXLID") || sHZFS.Equals("XMSZD_CIYCPXLID")) { SQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); } else if (sHZFS.Equals("CPXLID")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join CPXLDZB on CPXLDZB_CPMLID = XLXSCPML_CPMLID "); SQL.Add(" left join CPXL on CPXL_CPXLID = CPXLDZB_CPXLID "); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); } SQL.Add(" where 1=1 "); SQL.Add(AddCondition()); if (sHZFS.Equals("CPYT")) { SQL.Add(" group by XLXSBJD_BJDID,XLXHB_CPYT,XLCPYT_CPYTMC,XLXSBJD_ZB,XLXSBJD_ZBJE"); } else if (sHZFS.Equals("CPYTDYDJFL")) { SQL.Add(" group by XLXSBJD_BJDID,XLXHB_CPYT,XLCPYT_CPYTMC,XLDYDJB_DYDJFL,XLXSBJD_ZB,XLXSBJD_ZBJE"); } else if (sHZFS.Equals("XH")) { SQL.Add(" group by XLXSBJD_BJDID,XLXSBJDMX_XLXHID,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("KHFL")) { if (sKHJSLY.Equals("KH")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(KH_FL, ' '),KHFL_FLMC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else { SQL.Add(" group by XLXSBJD_BJDID,isnull(KHXX_FLID, ' '),KHFL_FLMC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } } else if (sHZFS.Equals("KH")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_KH, ' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("TXY")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_TXY, ' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("BM")) { SQL.Add(" group by XLXSBJD_BJDID,isnull(XLXSBJD_XSBMID,' '),BM_MC,XLXSBJD_ZB,XLXSBJD_ZBJE "); } else if (sHZFS.Equals("XMSZD_PRO")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_CIY")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_PROCPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("XMSZD_CIYCPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(D.XZQH_XZQHID,' '),isnull(C.XZQH_PROVINCE,' '),isnull(D.XZQH_PROVINCE,' '),isnull(C.XZQH_CITY,' '),ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPMLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(XLXSCPML_CPMLID,' '),isnull(XLXSCPML_CPMLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPXLID")) SQL.Add(" group by XLXSBJD_BJDID,ISNULL(CPXL_CPXLID,' '),isnull(CPXL_CPXLMC,' '),XLXSBJD_ZB,XLXSBJD_ZBJE "); else if (sHZFS.Equals("CPMLIDDYDJFL")) SQL.Add(" group by XLXSBJD_BJDID,XLXSCPML_CPMLID,XLXSCPML_CPMLMC,XLDYDJB_DYDJFL,XLXSBJD_ZB,XLXSBJD_ZBJE "); SQL.Add(" ) tmpCPYT "); SQL.Add(" where 1=1 "); SQL.Add(" order by PX,HZFS_1,HZFS_2 "); SQL.ParamByName("psumBJSL").Value = sumBJSL; SQL.ParamByName("psumBJJE").Value = sumBJJE; if (sumZBJE != 0) { SQL.ParamByName("psumZBJE").Value = sumZBJE; } #endregion } dsQry = dberp.OpenDataSet(SQL); return dsQry; } //汇总方式栏目 private void SetColumn_HZFS(string sHZFS) { if (sHZFS.Equals("CPYT")) { AddColumn("HZFS_1", "产品用途", 180); } else if (sHZFS.Equals("CPYTDYDJFL")) { AddColumn("HZFS_1", "产品用途", 180); AddColumn("HZFS_2", "电压等级分类", 180); } else if (sHZFS.Equals("XH")) { AddColumn("HZFS_1", "型号", 180); } else if (sHZFS.Equals("KHFL")) { AddColumn("HZFS_1", "客户分类", 180); } else if (sHZFS.Equals("KH")) { AddColumn("HZFS_1", "客户", 180); } else if (sHZFS.Equals("TXY")) { AddColumn("HZFS_1", "销售员", 180); } else if (sHZFS.Equals("BM")) { AddColumn("HZFS_1", "销售部门", 180); } else if (sHZFS.Equals("XMSZD_PRO")) { AddColumn("HZFS_1", "项目所在地(省/直辖市/自治区)", 180); } else if (sHZFS.Equals("XMSZD_CIY")) { AddColumn("HZFS_1", "项目所在地(市/区/盟/州)", 180); } else if (sHZFS.Equals("XMSZD_PROCPXLID")) { AddColumn("HZFS_1", "项目所在地(省/直辖市/自治区)", 180); AddColumn("HZFS_2", "产品系列", 180); } else if (sHZFS.Equals("XMSZD_CIYCPXLID")) { AddColumn("HZFS_1", "项目所在地(市/区/盟/州)", 180); AddColumn("HZFS_2", "产品系列", 180); } else if (sHZFS.Equals("CPMLID")) { AddColumn("HZFS_1", "产品目录", 180); } else if (sHZFS.Equals("CPXLID")) { AddColumn("HZFS_1", "产品系列", 180); } else if (sHZFS.Equals("CPMLIDDYDJFL")) { AddColumn("HZFS_1", "产品目录", 180); AddColumn("HZFS_2", "电压等级分类", 180); } } #endregion #region GridView增加列 /// /// 设置etCheckBox列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, TEditType CheckBox) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etCheckBox; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etString列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etString; ColumnEx.ShowHint = true; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width, bool bVisible,bool bShowZero) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.Visible = bVisible; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; ColumnEx.ShowZero = bShowZero; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列(报价数量) /// /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, bool NumberIsQuantity, int NumberDecimalPlace, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberIsQuantity = NumberIsQuantity; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etDateTime列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etDateTime; ColumnEx.DateTimeEditKins = DateTimeKind; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etCheckBox列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, TEditType CheckBox, bool bVisible) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.Visible = bVisible; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etCheckBox; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etString列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, bool bVisible) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.Visible = bVisible; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etString; ColumnEx.ShowHint = true; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width, bool bVisible) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.Visible = bVisible; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etDateTime列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind, bool bVisible) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.Visible = bVisible; Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etDateTime; ColumnEx.DateTimeEditKins = DateTimeKind; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } #endregion } }