using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO; using GThinking.N_CONTROL; using GThinking.N_MISPRO.Utility; using System.Text; using System.Collections.Generic; namespace GThinking.N_XLXSBJ { public partial class CLWL_XLJGCZBList : SingleGridBase { CLWL_XLJGCZB entity = new CLWL_XLJGCZB(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860013; this.UMName = "线缆销售报价材料物料"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurEntity = entity; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "JGCZBID" }; Master.EnableNewBtn = false; Master.EnableCopyBtn = false; Master.EnableViewBtn = false; Master.EnableEditBtn = false; Master.EnableDeleteBtn = false; Master.EnableQueryBtn = false; base.InitPage(); this.ModuleGV.OnClientDblClick = "return false;"; if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #region 模板继承事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.Master_OnStandardQuery(sender, e); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(ContentGrid, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetQuerySql(); ContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义方法 private string GetQuerySql() { Dictionary dicJGCZBID = new Dictionary(); dicJGCZBID.Clear(); string sWLID = PageParam.GetRTrimString("WLID"); string sJGCZBID =""; string sJGCZBBBID = ""; string sDRHH = ""; string sJGCZBXH = ""; string sCLQDL = ""; //先查询结构尺重表和结构尺重表ID---- TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select a.JGCZBID, a.JGCZBBBID, a.DRHH, a.JGCZBXH from ( "); SQL.Add(" select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH,XLXSCLQDWL_JGCZBXH as JGCZBXH FROM XLXSCLQDWL where 1 =1 and ( "); for (int i = 1; i <= 80; i++) { SQL.Add(" ISNULL(XLXSCLQDWL_WLID" + i.ToString().PadLeft(2, '0') + ",' ') = :pWLID "); if (i != 80) { SQL.Add(" or "); } } SQL.Add(" ) group by XLXSCLQDWL_JGCZBID ,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_DRHH,XLXSCLQDWL_JGCZBXH "); SQL.Add(") a order by JGCZBID, JGCZBBBID, DRHH "); SQL.ParamByName("pWLID").Value = sWLID; DataSet dsXLJGCZBID = dberp.OpenDataSet(SQL); if (dsXLJGCZBID != null && dsXLJGCZBID.Tables.Count > 0 && dsXLJGCZBID.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLJGCZBID.Tables[0].Rows.Count; i++) { sJGCZBID = dsXLJGCZBID.Tables[0].Rows[i]["JGCZBID"].ToString().Trim(); sJGCZBBBID = dsXLJGCZBID.Tables[0].Rows[i]["JGCZBBBID"].ToString().Trim(); sDRHH = dsXLJGCZBID.Tables[0].Rows[i]["DRHH"].ToString().Trim(); sJGCZBXH = dsXLJGCZBID.Tables[0].Rows[i]["JGCZBXH"].ToString().Trim(); //再将数据反查对应的XLXSCLQDWL对应的WLIDXX,将数据存储在dic中 SQL.Clear(); SQL.Add(" SELECT "); for (int j = 1; j <= 80; j++) { if (j != 80) { SQL.Add(" ISNULL(XLXSCLQDWL_WLID" + j.ToString().PadLeft(2, '0') + ",' '), "); } else { SQL.Add(" ISNULL(XLXSCLQDWL_WLID" + j.ToString().PadLeft(2, '0') + ",' ') "); } } SQL.Add(" FROM XLXSCLQDWL WHERE XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID = :pJGCZBBBID "); SQL.Add(" and XLXSCLQDWL_DRHH =:pDRHH and XLXSCLQDWL_JGCZBXH =:pJGCZBXH "); SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; SQL.ParamByName("pDRHH").Value = sDRHH; SQL.ParamByName("pJGCZBXH").Value = sJGCZBXH; DataSet dsWLID = dberp.OpenDataSet(SQL); if (dsWLID != null && dsWLID.Tables.Count > 0 && dsWLID.Tables[0].Rows.Count > 0) { for (int k = 1; k <= dsWLID.Tables[0].Columns.Count; k++) { if (dsWLID.Tables[0].Rows[0][k - 1].ToString().Trim().Equals(sWLID)) { sCLQDL = sCLQDL + k.ToString().PadLeft(2, '0') + ","; } } sCLQDL = sCLQDL.TrimStart(',').TrimEnd(','); sCLQDL = sCLQDL.Replace(",", "列,第"); sCLQDL = "第" + sCLQDL + "列"; if (!dicJGCZBID.ContainsKey(sJGCZBID + "|" + sJGCZBBBID)) { dicJGCZBID.Add(sJGCZBID + "|" + sJGCZBBBID, sCLQDL); } sCLQDL = ""; } } } //dic 【B0003|1.0】【第01行,第02行,第03行】 //查询XLXSCLQDWL数据,关联XLJGCZBLM,将上述dic放入限制条件。 StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine(" select a.JGCZBID, a.JGCZBBBID, a.JGCZBXH, a.DRHH,b.CZBLMBH,b.CZBLMMC,b.JGCZBMC,"); sSQL.AppendLine(" b.CLQDL,b.XLCLZLID,b.XLJGCZBLM_XLCLID,b.BJCL "); sSQL.AppendLine(" from ( "); sSQL.AppendLine(" select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH,XLXSCLQDWL_JGCZBXH as JGCZBXH FROM XLXSCLQDWL where 1 =1 and ( "); for (int i = 1; i <= 80; i++) { sSQL.AppendLine(" ISNULL(XLXSCLQDWL_WLID" + i.ToString().PadLeft(2, '0') + ",' ') = :pWLID "); if (i != 80) { sSQL.AppendLine(" or "); } } sSQL.AppendLine(" ) group by XLXSCLQDWL_JGCZBID ,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_DRHH,XLXSCLQDWL_JGCZBXH "); entity.Param.Add("pWLID", sWLID); sSQL.AppendLine(" ) a left join "); sSQL.AppendLine(" ( "); sSQL.AppendLine(" select XLJGCZBLM_JGCZBID as JGCZBID, XLJGCZBML_JGCZBMC as JGCZBMC,XLJGCZBLM_JGCZBBBID AS JGCZBBBID, "); sSQL.AppendLine(" XLJGCZBLM_CZBLMBH AS CZBLMBH,XLJGCZBLM_CZBLMMC AS CZBLMMC,XLJGCZBLM_CLQDL AS CLQDL, "); sSQL.AppendLine(" XLJGCZBLM_XLCLZLID AS XLCLZLID,rtrim(XLJGCZBLM_XLCLID)||'|'||rtrim(CL.XLCLMC) as XLJGCZBLM_XLCLID,XLJGCZBLM_XLCLID AS XLCLID, "); sSQL.AppendLine(" case isnull(XLJGCZBLM_BJCLID,' ') when ' ' then ' ' else rtrim(XLJGCZBLM_BJCLID)||'|'||XLXSBJCL_BJCLMC end as BJCL "); sSQL.AppendLine(" from XLJGCZBLM "); sSQL.AppendLine(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID "); sSQL.AppendLine(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID "); sSQL.AppendLine(" left join ( "); sSQL.AppendLine(" select 'DTCL' as XLCLZLID,XLDTCLB_DTCLID as XLCLID,XLDTCLB_XLXTCLID as XLXTCLID,XLDTCLB_WLMC as XLCLMC from XLDTCLB where XLDTCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'JYCL' as XLCLZLID,XLJYCLB_JYCLID as XLCLID,XLJYCLB_XLXTCLID as XLXTCLID,XLJYCLB_WLMC as XLCLMC from XLJYCLB where XLJYCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'HTCL' as XLCLZLID,XLHTCLB_HTCLID as XLCLID,XLHTCLB_XLXTCLID as XLXTCLID,XLHTCLB_WLMC as XLCLMC from XLHTCLB where XLHTCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'KZCL' as XLCLZLID,XLKZCLB_KZCLID as XLCLID,XLKZCLB_XLXTCLID as XLXTCLID,XLKZCLB_WLMC as XLCLMC from XLKZCLB where XLKZCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'WHCL' as XLCLZLID,XLWHCLB_WHCLID as XLCLID,XLWHCLB_XLXTCLID as XLXTCLID,XLWHCLB_WLMC as XLCLMC from XLWHCLB where XLWHCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'PBCL' as XLCLZLID,XLPBCLB_PBCLID as XLCLID,XLPBCLB_XLXTCLID as XLXTCLID,XLPBCLB_WLMC as XLCLMC from XLPBCLB where XLPBCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'TCCL' as XLCLZLID,XLTCCLB_TCCLID as XLCLID,XLTCCLB_XLXTCLID as XLXTCLID,XLTCCLB_WLMC as XLCLMC from XLTCCLB where XLTCCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'RBCL' as XLCLZLID,XLRBCLB_RBCLID as XLCLID,XLRBCLB_XLXTCLID as XLXTCLID,XLRBCLB_WLMC as XLCLMC from XLRBCLB where XLRBCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'FZCL' as XLCLZLID,XLFZCLB_FZCLID as XLCLID,XLFZCLB_XLXTCLID as XLXTCLID,XLFZCLB_WLMC as XLCLMC from XLFZCLB where XLFZCLB_WLID=' ' "); sSQL.AppendLine(" ) CL on CL.XLCLZLID=case when XLJGCZBLM_XLCLZLID='DTCP' then 'DTCL' else XLJGCZBLM_XLCLZLID end and CL.XLCLID = XLJGCZBLM_XLCLID "); sSQL.AppendLine(" where 1 = 1 "); /* * 限制行栏目类型为用量栏目 * 限制物料行情 * 限制材料清单列不允许为空 */ sSQL.AppendLine(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); sSQL.AppendLine(" and XLJGCZBLM_ZDLMLX='4' "); sSQL.AppendLine(" and XLXSBJCL_BJHQ = '2' "); sSQL.AppendLine(" and (1<>1 "); int index = 1; foreach (KeyValuePair kvp in dicJGCZBID) { sSQL.AppendLine(" or (XLJGCZBLM_JGCZBID = :pJGCZBID" + index.ToString().Trim() + " and XLJGCZBLM_JGCZBBBID =:pJGCZBBBID" + index.ToString().Trim()); sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLJGCZBLM_CLQDL", kvp.Value)); sSQL.AppendLine(" ) "); entity.Param.Add("pJGCZBID" + index.ToString().Trim(), kvp.Key.Split('|')[0]); entity.Param.Add("pJGCZBBBID" + index.ToString().Trim(), kvp.Key.Split('|')[1]); index++; } sSQL.AppendLine(" ) "); sSQL.AppendLine(" ) b on b.JGCZBID = a.JGCZBID and b.JGCZBBBID = a.JGCZBBBID "); sSQL.AppendLine(" order by JGCZBID,JGCZBBBID,JGCZBXH, DRHH,CZBLMBH "); return sSQL.ToString(); } #endregion #region 控件事件 #endregion } }