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_WORKFLOW; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO.Utility; using System.Text; using System.Collections.Generic; using GThinking.N_CONTROL; using System.Drawing; namespace GThinking.N_XLXSBJ { public partial class XLBJD_BJLRList : SingleGridBase { XLBJD_BJLR entity = new XLBJD_BJLR(); XLBJD_BJLR_M queryentity = new XLBJD_BJLR_M(); int iXSWS = 5; #region 页面事件 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860008; this.UMName = "线缆销售报价单价差"; this.CurMaster = Master; this.ModuleGV = grdGrid; this.CurEntity = entity; this.CurQueryEntity = queryentity; this.sQueryURLTarget = "XLBJD_BJLRQuery.aspx"; this.PageHeight = 600; this.PageWidth = 750; //base.DataKeyNames = new string[] { "XLXSBJDMX_XLXHID", "XLXSBJDMX_XLGGID", "XLXSBJDMX_XLBZID", "XLXSBJDMX_DYDJID" }; iXSWS = string.IsNullOrEmpty(GetOption(100860001, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860001, "BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; InitControl(); if (!IsPostBack) { CurQueryEntity.FieldByName("HZFS").Value = "1"; CurQueryEntity.FieldByName("XSMX").Value = "True"; CurQueryEntity.FieldByName("XSXJ").Value = "True"; } base.InitEntityByCondition(); grdGrid.FindColumnByFieldName("XLXSBJDMX_BJLY").Visible = false; if (CurQueryEntity.FieldByName("XSMX").Value.ToString().Trim().ToUpper().Equals("TRUE")) grdGrid.FindColumnByFieldName("XLXSBJDMX_BJLY").Visible = true; base.InitPage(); this.ModuleGV.OnClientDblClick = "return false;"; if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #endregion #region 模板继承事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); base.Master_OnStandardQuery(sender, e); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(grdGrid, tSession); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[3].Text.ToString().Trim().Contains("小计") || e.Row.Cells[3].Text.ToString().Trim().Contains("合计")) { if (e.Row.Cells[3].Text.ToString().Trim().Contains("小计")) e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#87CEFA"); e.Row.Cells[12].Text = ""; e.Row.Cells[14].Text = ""; e.Row.Cells[16].Text = ""; e.Row.Cells[19].Text = ""; e.Row.Cells[25].Text = ""; } double dBJJEZB=0; if (txtZJE.Value > 0) { dBJJEZB = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.Row.Cells[21].Text.Trim()) / txtZJE.Value,4); } if (dBJJEZB > 0) e.Row.Cells[21].Text = dBJJEZB.ToString("P"); else e.Row.Cells[21].Text = ""; } base.moduleGV_RowDataBound(sender, e); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetQuerySql(); grdGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义函数 private void InitControl() { //sJCLLX //cbxBJJCLLX.Items.Add(new ListItem("(调整后报价金额-表价金额)/调整后报价金额*100", "1")); //cbxBJJCLLX.Items.Add(new ListItem("(表价金额-调整后报价金额)/表价金额*100", "2")); //cbxBJJCLLX.Items.Add(new ListItem("表价金额/调整后报价金额*100", "3")); string sJCLLX = PageParam.GetRTrimString("JCLLX"); string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); this.CurMaster.EnableNewBtn = false; this.CurMaster.EnableCopyBtn = false; this.CurMaster.EnableEditBtn = false; this.CurMaster.EnableDeleteBtn = false; this.CurMaster.EnableWorkflowBtn = false; this.CurMaster.EnableViewBtn = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDID").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_XH").Visible = false; grdGrid.FindColumnByFieldName("OLD_XLXSBJDMX_XH").Visible = false; grdGrid.FindColumnByFieldName("BJLJJCL").Visible = false; grdGrid.FindColumnExByFieldName("XLXSBJDMX_BJDHQCLCB").NumberDecimalPlace = iXSWS; grdGrid.FindColumnExByFieldName("XLXSBJDMX_CLCB").NumberDecimalPlace = iXSWS; grdGrid.FindColumnExByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace = iXSWS; grdGrid.FindColumnExByFieldName("XLXSBJDMX_CPBJ").NumberDecimalPlace = iXSWS; grdGrid.FindColumnExByFieldName("XLXSBJDMX_ZDXJ").NumberDecimalPlace = iXSWS; //显示报价单行情料价 if (PageParam.GetRTrimString("XSBJDHQLJ").Equals("Y")) { lblBJDHQCLCBZJE.Visible = true; txtBJDHQCLCBZJE.Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; grdGrid.FindColumnByFieldName("BJDHQCLCBJE").Visible = true; } else { lblBJDHQCLCBZJE.Visible = false; txtBJDHQCLCBZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; grdGrid.FindColumnByFieldName("BJDHQCLCBJE").Visible = false; } //显示价格表行情料价 if (PageParam.GetRTrimString("XSLJ").Trim().Equals("Y")) { lblCLCBZJE.Visible = true; txtCLCBZJE.Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; grdGrid.FindColumnByFieldName("CLCBJE").Visible = true; } else { lblCLCBZJE.Visible = false; txtCLCBZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; grdGrid.FindColumnByFieldName("CLCBJE").Visible = false; } //sJCLLX //cbxBJJCLLX.Items.Add(new ListItem("(调整后报价金额-表价金额)/调整后报价金额*100", "1")); //cbxBJJCLLX.Items.Add(new ListItem("(表价金额-调整后报价金额)/表价金额*100", "2")); //cbxBJJCLLX.Items.Add(new ListItem("表价金额/调整后报价金额*100", "3")); //显示表价价差率 if (PageParam.GetRTrimString("XSJCL").Equals("Y")) { lblLRL.Visible = true; txtLRL.Visible = true; lblLRLP.Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = true; } else { lblLRL.Visible = false; txtLRL.Visible = false; lblLRLP.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; } //sLJJCLLX //XLXSBJDMX_CLCB----价格表行情料价 //cbxLJJCLLX.Items.Add(new ListItem("(调整后报价金额-价格表行情料价金额)/调整后报价金额*100", "1")); //XLXSBJDMX_BJDHQCLCB----报价单行情料价 //cbxLJJCLLX.Items.Add(new ListItem("(调整后报价金额-报价单行情料价金额)/调整后报价金额*100", "2")); //显示价格表行情料价/显示料价价差率 if (PageParam.GetRTrimString("XSLJJCL").Equals("Y")) { lblCLCBLRL.Visible = true; txtCLCBLRL.Visible = true; lblCLCBLRLLP.Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = true; } else { lblCLCBLRL.Visible = false; txtCLCBLRL.Visible = false; lblCLCBLRLLP.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; } //最低限价 if (PageParam.GetRTrimString("XSZDXJ").Equals("Y")) { lblZDXJZJE.Visible = true; txtZDXJZJE.Visible = true; lblZDXJLRL.Visible = true; txtZDXJLRL.Visible = true; lblZDXJLRLP.Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJZJE").Visible = true; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = true; } else { lblZDXJZJE.Visible = false; txtZDXJZJE.Visible = false; lblZDXJLRL.Visible = false; txtZDXJLRL.Visible = false; lblZDXJLRLP.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJZJE").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } if (sJCLLX.Equals("")) { lblLRL.Visible = false; txtLRL.Visible = false; lblLRLP.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; } //if (grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible == true && grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible == true) if (PageParam.GetRTrimString("XSBJLJJCL").Equals("Y")) { lblBJLJJCL.Visible = true; txtBJLJJCL.Visible = true; lblBJLJ.Visible = true; grdGrid.FindColumnByFieldName("BJLJJCL").Visible = true; } if (PageParam.ContainsKey("HidJSLMList")) { HidJSLM(PageParam.GetRTrimString("HidJSLMList")); } string sBJLJJCL = "表价料价价差率"; if (PageParam.ContainsKey("JGBBJBM")) { string sJGBBJBM = PageParam.GetRTrimString("JGBBJBM"); if (!string.IsNullOrEmpty(sJGBBJBM)) { lblBJLJJCL.Text = sJGBBJBM + "料价价差率:"; lblCPJJZJE.Text = sJGBBJBM + "总金额:"; lblLRL.Text = sJGBBJBM + "价差率:"; grdGrid.FindColumnByFieldName("BJLJJCL").HeaderText = sJGBBJBM + "料价价差率(%)"; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM; grdGrid.FindColumnByFieldName("CPJJJE").HeaderText=sJGBBJBM+"金额"; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = sJGBBJBM + "价差率(%)"; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText=sJGBBJBM+"价差额"; } } if (PageParam.ContainsKey("BJDHQLJBM")) { string sBJDHQLJBM = PageParam.GetRTrimString("BJDHQLJBM"); if (!string.IsNullOrEmpty(sBJDHQLJBM)) { grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = sBJDHQLJBM; grdGrid.FindColumnByFieldName("BJDHQCLCBJE").HeaderText = sBJDHQLJBM + "金额"; } } lblBJLJJCL.Text = sBJLJJCL + ":"; grdGrid.FindColumnByFieldName("BJLJJCL").HeaderText = sBJLJJCL + "(%)"; if (PageParam.ContainsKey("BJBM")) { string sBJBM = PageParam.GetRTrimString("BJBM"); if (!string.IsNullOrEmpty(sBJBM)) { lblZJE.Text = sBJBM + "总金额:"; grdGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = sBJBM; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = sBJBM + "金额"; grdGrid.FindColumnByFieldName("BJJEZB").HeaderText = sBJBM + "金额占比"; } } } private string GetQuerySql() { string sBJDID = PageParam.GetRTrimString("BJDID"); string sXHList = PageParam.GetRTrimString("XHList"); string SqlXHLIST=""; if (!sXHList.Equals("")) SqlXHLIST = " and XLXSBJDMX_XH in(" + sXHList + ") "; string sJCLLX = PageParam.GetRTrimString("JCLLX"); string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); string sZDXJJCLLX = PageParam.GetRTrimString("ZDXJJCLLX"); bool bXSMX = CurQueryEntity.FieldByName("XSMX").Value.ToString().Trim().ToUpper().Equals("TRUE"); bool bXSXJ = CurQueryEntity.FieldByName("XSXJ").Value.ToString().Trim().ToUpper().Equals("TRUE"); bool bWGXJ = CurQueryEntity.FieldByName("WGXJ").Value.ToString().Trim().ToUpper().Equals("TRUE"); string sHZFS = CurQueryEntity.FieldByName("HZFS").Value.ToString().Trim(); string sTcpList = ""; string sLcpList = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860063); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TDTGSCLID)) sTcpList = pzxx.XLXSBJPZ_TDTGSCLID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LDTGSCLID)) sLcpList = pzxx.XLXSBJPZ_LDTGSCLID; StringBuilder strSQL = new StringBuilder(); //sJCLLX //cbxBJJCLLX.Items.Add(new ListItem("(调整后报价金额-表价金额)/调整后报价金额*100", "1")); //cbxBJJCLLX.Items.Add(new ListItem("(表价金额-调整后报价金额)/表价金额*100", "2")); //cbxBJJCLLX.Items.Add(new ListItem("表价金额/调整后报价金额*100", "3")); //sLJJCLLX //料价价差率公式 //XLXSBJDMX_CLCB----价格表行情料价 //cbxLJJCLLX.Items.Add(new ListItem("(调整后报价金额-价格表行情料价金额)/调整后报价金额*100", "1")); //XLXSBJDMX_BJDHQCLCB----报价单行情料价 //cbxLJJCLLX.Items.Add(new ListItem("(调整后报价金额-报价单行情料价金额)/调整后报价金额*100", "2")); if (sHZFS.Equals("1")) { grdGrid.FindColumnByFieldName("HZFS").HeaderText = "产品目录"; } else if (sHZFS.Equals("2")) { grdGrid.FindColumnByFieldName("HZFS").HeaderText = "产品用途"; } else if(sHZFS.Equals("3")) { grdGrid.FindColumnByFieldName("HZFS").HeaderText = "产品用途+铜铝产品"; } else if (sHZFS.Equals("5")) { grdGrid.FindColumnByFieldName("HZFS").HeaderText = "包号+产品目录"; } else { grdGrid.FindColumnByFieldName("HZFS").HeaderText = "汇总栏目"; } #region 产品目录 if (sHZFS.Equals("1") || sHZFS.Equals("4") || sHZFS.Equals("5")) { if (sHZFS.Equals("4")) { strSQL.AppendLine("select 0 as px0, 0 as px1,case when XLXSBJDMX_WGCPBZ<>'Y' then 0 else 1 end as px2 ,"); strSQL.AppendLine(" case when XLXSBJDMX_WGCPBZ<>'Y' then (case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')||'|'||'非外购') end ) else '外购' end as HZFS, "); } else if (sHZFS.Equals("5")) { strSQL.AppendLine("select 0 as px0, 0 as px1,"); strSQL.AppendLine(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then XLXSBJDMX_FBH else rtrim(isnull(XLXSBJDMX_FBH,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS, "); } else { strSQL.AppendLine("select 0 as px0, 0 as px1,"); strSQL.AppendLine(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then ' ' else rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' ')) end as HZFS, "); } strSQL.AppendLine(" XLXSBJDMX_BJDID,XLXSBJDMX_XSSX,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,"); strSQL.AppendLine(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ, XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ as CPJJJE,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_BJJE as BJJEZB, "); strSQL.AppendLine(" XLXSBJDMX_CLCB,XLXSBJDMX_BJSL*XLXSBJDMX_CLCB as CLCBJE, XLXSBJDMX_BJDHQCLCB, XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB as BJDHQCLCBJE, "); strSQL.AppendLine(" XLXSBJDMX_JGBBJLJJCL as BJLJJCL, "); strSQL.AppendLine(" XLXSBJDMX_JGBBJJCL, XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL,XLXSBJDMX_ZDXJ,XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ as XLXSBJDMX_ZDXJZJE,XLXSBJDMX_ZDXJJCL"); strSQL.AppendLine(" ,case when XLXSBJDMX_BJLY= 'JGBHQLJ' then '价格表行情料价' when XLXSBJDMX_BJLY='BJDHQLJ' then '报价单行情料价' when XLXSBJDMX_BJLY='SSJGBBJ' then '手输表价' when XLXSBJDMX_BJLY='JGBBJ' then '价格表表价' else ' ' end as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); strSQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); strSQL.AppendLine(" LEFT JOIN XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); strSQL.AppendLine(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST); if (!bXSMX) { strSQL.AppendLine(" and 1 <> 1 "); } strSQL.AppendLine(" union all "); if (sHZFS.Equals("4")) { strSQL.AppendLine(" select 0 as px0, 1 as px1,0 as px2,"); strSQL.AppendLine(" rtrim(isnull(a.XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(a.XLXSCPML_CPMLMC,' '))||'非外购(小计)' as HZFS, "); } else if (sHZFS.Equals("5")) { strSQL.AppendLine(" select 0 as px0, 1 as px1,"); strSQL.AppendLine(" case when isnull(XLXSCPML_CPMLID,' ')=' ' then rtrim(isnull(XLXSBJDMX_FBH,' '))||'(小计)' else rtrim(isnull(XLXSBJDMX_FBH,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(XLXSCPML_CPMLMC,' '))||'(小计)' end as HZFS, "); } else { strSQL.AppendLine(" select 0 as px0, 1 as px1,"); strSQL.AppendLine(" rtrim(isnull(a.XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(a.XLXSCPML_CPMLMC,' '))||'(小计)' as HZFS, "); } strSQL.AppendLine(" ' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX,99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBA on XHMLBA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBB on XHMLBB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML b on XLXSCPML_CPMLID = case when ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLBB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(b.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBA on XHMLBA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBB on XHMLBB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML b on XLXSCPML_CPMLID = case when ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLBB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(b.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBA on XHMLBA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLBB on XHMLBB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLBB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML b on XLXSCPML_CPMLID = case when ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLBB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLBA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST+"and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(b.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST+"and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST+"and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLAA on XHMLAA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLAA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLAB on XHMLAB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLAB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLAA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLAB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLAA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST); if (sHZFS.Equals("4")) strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); if (!bXSXJ) { strSQL.AppendLine(" and 1 <> 1 "); } if (sHZFS.Equals("5")) strSQL.AppendLine("group by XLXSBJDMX_FBH,a.XLXSCPML_CPMLID,a.XLXSCPML_CPMLMC"); else { strSQL.AppendLine(" group by a.XLXSCPML_CPMLID,a.XLXSCPML_CPMLMC "); } if (sHZFS.Equals("4")) strSQL.AppendLine(GetQuerySql_HZFS4(bXSMX, bXSXJ, sJCLLX, sLJJCLLX, sZDXJJCLLX)); else if (bWGXJ) { strSQL.AppendLine(GetQuerySql_WGXJ(sJCLLX, sLJJCLLX, sZDXJJCLLX)); } strSQL.AppendLine(" union all "); if (sHZFS.Equals("4")) { strSQL.AppendLine(" select 1 as px0, 1 as px1, 1 as px2,'合计:' as HZFS,' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); } else { strSQL.AppendLine(" select 1 as px0, 1 as px1,'合计:' as HZFS,' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); } strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST+"and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"+SqlXHLIST+" and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("2")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 - 100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("4")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("5")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ <> 0) as XLXSBJDMX_ZDXJJCL "); else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); strSQL.AppendLine(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); strSQL.AppendLine(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST); if (sHZFS.Equals("4")) { if (!bXSXJ) strSQL.AppendLine(" order by px2,px0, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); else strSQL.AppendLine(" order by px2,px0,HZFS, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); } else { if (!bXSXJ) strSQL.AppendLine(" order by px0, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); else strSQL.AppendLine(" order by px0,HZFS, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); } } #endregion #region 产品用途 else { strSQL.AppendLine("select 0 as px0, 0 as px1, rtrim(XLCPYT_CPYT) || '|' || rtrim(XLCPYT_CPYTMC) "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" || '|' || TLCP "); } strSQL.AppendLine(" as HZFS,"); strSQL.AppendLine(" XLXSBJDMX_BJDID,XLXSBJDMX_XSSX,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,"); strSQL.AppendLine(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ, XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ as CPJJJE,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_BJJE as BJJEZB, "); strSQL.AppendLine(" XLXSBJDMX_CLCB,XLXSBJDMX_BJSL*XLXSBJDMX_CLCB as CLCBJE, XLXSBJDMX_BJDHQCLCB, XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB as BJDHQCLCBJE,"); strSQL.AppendLine(" XLXSBJDMX_JGBBJLJJCL as BJLJJCL, "); strSQL.AppendLine(" XLXSBJDMX_JGBBJJCL, XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL,XLXSBJDMX_ZDXJ,XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ as XLXSBJDMX_ZDXJZJE,XLXSBJDMX_ZDXJJCL"); strSQL.AppendLine(" ,case when XLXSBJDMX_BJLY= 'JGBHQLJ' then '价格表行情料价' when XLXSBJDMX_BJLY='BJDHQLJ' then '报价单行情料价' when XLXSBJDMX_BJLY='SSJGBBJ' then '手输表价' when XLXSBJDMX_BJLY='JGBBJ' then '价格表表价' else ' ' end as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); strSQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) a on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST); if (!bXSMX) { strSQL.AppendLine(" and 1 <> 1 "); } strSQL.AppendLine(" union all "); strSQL.AppendLine(" select 0 as px0, 1 as px1,rtrim(isnull(XLXHB_CPYT,' ')) || '|' || rtrim(isnull(XLCPYT_CPYTMC,' '))"); if (sHZFS.Equals("3")) { strSQL.AppendLine(" || '|' || TLCP "); } strSQL.AppendLine(" ||'(小计)' as HZFS,' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP, ' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ')"); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(b.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ')"); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(b.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(b.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(c.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(c.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(c.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(c.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(d.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(d.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(d.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(d.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(d.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(d.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(d.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(d.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB d on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(d.XLXHB_CPYT,' ') "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" and ISNULL(a.TLCP,' ') = ISNULL(d.TLCP,' ') "); } strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); if (sHZFS.Equals("3")) { strSQL.AppendLine(" LEFT JOIN (select XLXHB_XLXHID,XLXHB_CPYT, "); strSQL.AppendLine(" case when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sTcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铜产品' "); strSQL.AppendLine(" when " + XLBJDUtils.GetWhereEqual("isnull(XLXHB_DTCLID,' ')", sLcpList) + " and isnull(XLXHB_DTCLID,' ') <> ' ' then '铝产品' "); strSQL.AppendLine(" else '其他产品' end as TLCP from XLXHB where 1=1 ) a on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } else { strSQL.AppendLine(" LEFT JOIN XLXHB a on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); } strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST); if (!bXSXJ) { strSQL.AppendLine(" and 1 <> 1 "); } strSQL.AppendLine(" group by XLXHB_CPYT,XLCPYT_CPYTMC"); if (sHZFS.Equals("3")) { strSQL.AppendLine(" ,TLCP "); } if (bWGXJ) { strSQL.AppendLine(GetQuerySql_WGXJ(sJCLLX, sLJJCLLX, sZDXJJCLLX)); } strSQL.AppendLine(" union all "); strSQL.AppendLine(" select 1 as px0, 2 as px1,'合计:' as HZFS,' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("2")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("4")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("5")) strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ <> 0) as XLXSBJDMX_ZDXJJCL "); else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" LEFT JOIN XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); strSQL.AppendLine(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "+SqlXHLIST); if (!bXSXJ) strSQL.AppendLine(" order by px0, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); else strSQL.AppendLine(" order by px0,HZFS, px1,XLXSBJDMX_XSSX, XLXSBJDMX_XH "); } #endregion entity.Param.Clear(); entity.Param.Add("XLXSBJDMX_BJDID", sBJDID); txtCLCBZJE.Value = 0; txtCPJJZJE.Value = 0; txtZJE.Value = 0; txtLRL.Value = 0; txtCLCBLRL.Value = 0; txtZDXJZJE.Value = 0; txtZDXJLRL.Value = 0; txtBJLJJCL.Value = 0; SQL.Clear(); SQL.Add(strSQL.ToString()); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; string ss = SQL.Text; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["HZFS"].ToString().Trim().Contains("合计")) { txtCLCBZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()); txtBJDHQCLCBZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()); txtCPJJZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CPJJJE"].ToString().Trim()); txtZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim()); txtZDXJZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJZJE"].ToString().Trim()); //txtBJLJJCL.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJLJJCL"].ToString().Trim()); double HJBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJLJJCL"].ToString().Trim()), 2); double HJLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJJCL"].ToString().Trim()),2); double HJCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_CLCBJCL"].ToString().Trim()),2); double HJZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJJCL"].ToString().Trim()),2); double dBJLJJCL = 0, dLRL = 0, dCLCBJCL = 0, dZDXJJCL = 0; GetBJDLRL(sBJDID, ref dLRL, ref dCLCBJCL, ref dZDXJJCL, ref dBJLJJCL); txtLRL.Value = dLRL; txtCLCBLRL.Value = dCLCBJCL; txtZDXJLRL.Value = dZDXJJCL; txtBJLJJCL.Value = dBJLJJCL; if (Math.Abs(HJLRL - dLRL) > 0.001) lblLRL.ForeColor = Color.Red; else lblLRL.ForeColor = Color.Black; if (Math.Abs(HJCLCBJCL - dCLCBJCL) > 0.001) lblCLCBLRL.ForeColor = Color.Red; else lblCLCBLRL.ForeColor = Color.Black; if (Math.Abs(HJZDXJJCL - dZDXJJCL) > 0.001) lblZDXJLRL.ForeColor = Color.Red; else lblZDXJLRL.ForeColor = Color.Black; if (Math.Abs(HJBJLJJCL - dBJLJJCL) > 0.001) lblBJLJJCL.ForeColor = Color.Red; else lblBJLJJCL.ForeColor = Color.Black; } } } return strSQL.ToString(); } //直接查询报价单利润率字段 private void GetBJDLRL(string sBJDID, ref double dLRL, ref double dCLCBJCL, ref double dZDXJJCL, ref double dBJLJJCL) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJD_JGBBJLJJCL,XLXSBJD_LRL,XLXSBJD_CLCBJCL,XLXSBJD_ZDXJJCL from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_LRL"].ToString().Trim()),2); dCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_CLCBJCL"].ToString().Trim()),2); dZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_ZDXJJCL"].ToString().Trim()),2); dBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_JGBBJLJJCL"].ToString().Trim()), 2); } } private string GetQuerySql_HZFS4(bool bXSMX, bool bXSXJ, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX) { string sXHList = PageParam.GetRTrimString("XHList"); string SqlXHLIST = ""; if (!sXHList.Equals("")) SqlXHLIST = " and XLXSBJDMX_XH in(" + sXHList + ") "; StringBuilder strSQL = new StringBuilder(); strSQL.AppendLine(" union all "); strSQL.AppendLine(" select 0 as px0, 1 as px1,1 as px2,'外购(小计)' as HZFS, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX,99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100-100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); if (!bXSXJ) { strSQL.AppendLine(" and 1 <> 1 "); } strSQL.AppendLine(" group by XLXSBJDMX_BJDID"); return strSQL.ToString(); } private string GetQuerySql_WGXJ(string sJCLLX, string sLJJCLLX, string sZDXJJCLLX) { string sXHList = PageParam.GetRTrimString("XHList"); string SqlXHLIST = ""; if (!sXHList.Equals("")) SqlXHLIST = " and XLXSBJDMX_XH in(" + sXHList + ") "; StringBuilder strSQL = new StringBuilder(); strSQL.AppendLine(" union all "); strSQL.AppendLine(" select 0 as px0, 2 as px1,'外购(小计)' as HZFS, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_BJDID,99999 as XLXSBJDMX_XSSX,99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); strSQL.AppendLine(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJJE) as BJJEZB, "); strSQL.AppendLine(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); strSQL.AppendLine(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (sJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_JGBBJJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (sLJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_CLCBJCL, "); } strSQL.AppendLine(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100-100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST + " and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID " + SqlXHLIST + "and XLXSBJDMX_BJJE <> 0 "); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); } else strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.AppendLine(" ,' ' as XLXSBJDMX_BJLY "); strSQL.AppendLine(" from XLXSBJDMX "); strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID" + SqlXHLIST ); strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); strSQL.AppendLine(" group by XLXSBJDMX_BJDID"); return strSQL.ToString(); } private void HidJSLM(string sHidJSLMList) { sHidJSLMList += ","; if (sHidJSLMList.Contains("XLXSBJDMX_BJDHQCLCB,")) { lblBJDHQCLCBZJE.Visible = false; txtBJDHQCLCBZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; grdGrid.FindColumnByFieldName("BJDHQCLCBJE").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_CLCB,")) { lblCLCBZJE.Visible = false; txtCLCBZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; grdGrid.FindColumnByFieldName("CLCBJE").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_JGBBJ,")) { lblCPJJZJE.Visible = false; txtCPJJZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; grdGrid.FindColumnByFieldName("CPJJJE").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_CPBJ,")) { grdGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_BJJE,")) { lblZJE.Visible = false; txtZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_ZDXJ,")) { lblZDXJZJE.Visible = false; txtZDXJZJE.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJZJE").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_CLCBJCL,")) { lblCLCBLRLLP.Visible = false; lblCLCBLRL.Visible = false; txtCLCBLRL.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_JGBBJJCL,")) { lblLRLP.Visible = false; lblLRL.Visible = false; txtLRL.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_ZDXJJCL,")) { lblZDXJLRLP.Visible = false; lblZDXJLRL.Visible = false; txtZDXJLRL.Visible = false; grdGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } if (sHidJSLMList.Contains("XLXSBJDMX_JGBBJLJJCL,")) { lblBJLJJCL.Visible = false; txtBJLJJCL.Visible = false; lblBJLJ.Visible = false; grdGrid.FindColumnByFieldName("BJLJJCL").Visible = false; } } #endregion } }