using System; using System.Data; using System.Configuration; 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.Data; using System.Text; using System.Collections.Generic; namespace GThinking.N_XLXSBJ { [EntityType(Db = "DBERP", Table = "XLXSBJDWLHQ", IsWf = false, IsWhr = true, IsAttach = false)] public class XLBJD_WLHQTZ : EntityObject { public string sBJDID = ""; public string sWLVID = ""; public string sCLVID = ""; public string sRYID = ""; public string sBJRQ = ""; public override TSQL SetQuerySql() { TSQL SQL = base.SetQuerySql(); SQL.Add("select XLXSBJCLWL_WLID,rtrim(isnull(WL_MC,' ')) || ' ' || rtrim(isnull(WL_GG,' ')) || ' ' || rtrim(isnull(WL_CL,' ')) as WLMC, "); SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.WSJGF else V_XLXSBJDWLHQ_WSJGF end as WSJGF, "); SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.CLJG else V_XLXSBJDWLHQ_WSJG end as WSJG, "); SQL.Add("a.XLXSBJCL_ZZSL, "); SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.HSJGF else V_XLXSBJDWLHQ_HSJGF end as HSJGF, "); SQL.Add("case when V_XLXSBJDWLHQ_WLID is null then bjrwlhq.HSJG else V_XLXSBJDWLHQ_HSJG end as HSJG, "); SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then ' ' else rtrim(a.XLXSBJCL_JGYBJCLID) ||'|'|| rtrim(b.XLXSBJCL_BJCLMC) end as JGYBJCLXX,"); SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then 0.0 else V_XLXSBJDCLHQ_WSJG end as JGYBJCLID_WSJG,"); SQL.Add(" case when isnull(a.XLXSBJCL_JGYBJCLID,' ') = ' ' then 0.0 else V_XLXSBJDCLHQ_HSJG end as JGYBJCLID_HSJG,"); SQL.Add("V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ "); SQL.Add("from XLXSBJCLWL "); //先使用物料与材料关系取到材料 SQL.Add("left join XLXSBJCL a on a.XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID "); //取到材料后取到报价原材料 SQL.Add("left join XLXSBJCL b on b.XLXSBJCL_BJCLID = a.XLXSBJCL_JGYBJCLID "); //关联报价单的材料行情----显示的是报价原材料的价格,所以使用报价原材料关联 SQL.Add("left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pCLVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=isnull( a.XLXSBJCL_JGYBJCLID, ' ') "); //关联报价单的物料行情----只有报价材料才有物料行情,此处直接关联 SQL.Add("left join V_XLXSBJDWLHQ on V_XLXSBJDWLHQ_BJDID=:pBJDID and V_XLXSBJDWLHQ_ID=:pWLVID and V_XLXSBJDWLHQ_TZRYID=:pRYID and V_XLXSBJDWLHQ_WLID=XLXSBJCLWL_WLID "); SQL.Add("left join "); SQL.Add("( "); /*报价物料之报价日行情*/ SQL.Add("select WLID,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_HSJG as HSJG, "); SQL.Add(" XLXSWLHQ_WSJGF as WSJGF,XLXSWLHQ_HSJGF as HSJGF "); SQL.Add("from XLXSWLHQ, "); SQL.Add("( "); SQL.Add("select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); SQL.Add("from XLXSWLHQ "); SQL.Add("where XLXSWLHQ_JGBID=' ' "); SQL.Add("and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); SQL.Add("group by XLXSWLHQ_WLID "); SQL.Add(") a "); SQL.Add("where XLXSWLHQ_JGBID=' ' "); SQL.Add("and XLXSWLHQ_WLID=WLID "); SQL.Add("and XLXSWLHQ_YXQS=maxYXQS "); SQL.Add(") bjrwlhq on bjrwlhq.WLID=XLXSBJCLWL_WLID "); SQL.Add("left join WL on WL_WLID=XLXSBJCLWL_WLID "); //SQL.Add("where XLXSBJCLWL_BJCLID=:pBJCLID "); SQL.Add("where 1 = 1 "); //只显示报价单明细用到的物料 SQL.Add(" and XLXSBJCLWL_WLID in "); SQL.Add(" ("); SQL.Add(" select distinct case XLJGCZBLM_CLQDL "); for (int i = 1; i <= 80; i++) SQL.Add(string.Format("when '{0}' then XLXSCLQDWL_WLID{1}", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); SQL.Add(" else ' ' end as WLID "); SQL.Add(" from XLXSBJDMX"); SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ')"); SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID"); SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); SQL.Add(" and XLXSCLQD_WPID='ZZZZ'"); SQL.Add(" and XLXSBJCL_BJHQ='2'"); SQL.Add(" ) "); SQL.Add("order by XLXSBJCLWL_BJCLID,XLXSBJCLWL_WLID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pCLVID").Value = sCLVID; SQL.ParamByName("pWLVID").Value = sWLVID; SQL.ParamByName("pRYID").Value = sRYID; SQL.ParamByName("pBJRQ").Value = sBJRQ; string ss = SQL.Text; return SQL; } public override bool Querying(TSQL sql) { Entites.Columns.Clear(); Entites.Clear(); return base.Querying(sql); } } }