using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO.Data; using GThinking.N_WORKFLOW; using GThinking.N_PUBLIC; using GThinking.N_MISPRO; using GThinking.N_MISPRO.TableCache; using System.Text; namespace GThinking.N_XLXSBJ { public partial class JGCZBLMList : SingleGridBase { JGCZBLM entity = new JGCZBLM(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860020; this.UMName = "线缆销售报价结构尺重表"; this.CurMaster = Master; this.CurEntity = entity; this.ModuleGV = grdJGCZBLM; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "BJCL", "XLJGCZBLM_CZBLMBH", "XLJGCZBLM_CZBLMMC", "XLJGCZBLM_CLQDL", "XLJGCZBLM_XLCLZLID", "XLJGCZBLM_XLCLID", "XLCLID" }; this.Master.EnableNewBtn = false; this.Master.EnableCopyBtn = false; this.Master.EnableDeleteBtn = false; this.Master.EnableEditBtn = false; this.Master.EnableViewBtn = false; this.Master.EnableQueryBtn = false; if (!IsPostBack) { } base.InitPage(); if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { entity.EntityTable.QuerySelSql = GetQuerySql(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(grdJGCZBLM, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetQuerySql(); grdJGCZBLM.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } base.moduleGV_RowDataBound(sender, e); } #endregion #region 自定义函数 private string GetQuerySql() { StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine(" select XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,XLJGCZBLM_CLQDL, XLJGCZBLM_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 ,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ "); sSQL.AppendLine(" from XLJGCZBLM "); sSQL.AppendLine(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID "); sSQL.AppendLine(" left join ( "); sSQL.AppendLine(" select 'DTCL' as XLCLZLID,XLDTCLB_DTCLID as XLCLID,XLDTCLB_WLMC as XLCLMC from XLDTCLB where XLDTCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'JYCL' as XLCLZLID,XLJYCLB_JYCLID as XLCLID,XLJYCLB_WLMC as XLCLMC from XLJYCLB where XLJYCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'HTCL' as XLCLZLID,XLHTCLB_HTCLID as XLCLID,XLHTCLB_WLMC as XLCLMC from XLHTCLB where XLHTCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'KZCL' as XLCLZLID,XLKZCLB_KZCLID as XLCLID,XLKZCLB_WLMC as XLCLMC from XLKZCLB where XLKZCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'WHCL' as XLCLZLID,XLWHCLB_WHCLID as XLCLID,XLWHCLB_WLMC as XLCLMC from XLWHCLB where XLWHCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'PBCL' as XLCLZLID,XLPBCLB_PBCLID as XLCLID,XLPBCLB_WLMC as XLCLMC from XLPBCLB where XLPBCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'TCCL' as XLCLZLID,XLTCCLB_TCCLID as XLCLID,XLTCCLB_WLMC as XLCLMC from XLTCCLB where XLTCCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'RBCL' as XLCLZLID,XLRBCLB_RBCLID as XLCLID,XLRBCLB_WLMC as XLCLMC from XLRBCLB where XLRBCLB_WLID=' ' "); sSQL.AppendLine(" union all "); sSQL.AppendLine(" select 'FZCL' as XLCLZLID,XLFZCLB_FZCLID as XLCLID,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,' ')<>' ' "); if (PageParam.ContainsKey("JGCZBID")) { sSQL.AppendLine(" and XLJGCZBLM_JGCZBID=:pJGCZBID "); entity.Param.Add("pJGCZBID", PageParam.GetRTrimString("JGCZBID")); } if (PageParam.ContainsKey("JGCZBBBID")) { sSQL.AppendLine(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); entity.Param.Add("pJGCZBBBID", PageParam.GetRTrimString("JGCZBBBID")); } sSQL.AppendLine(" and XLJGCZBLM_ZDLMLX='4' "); sSQL.AppendLine(" order by XLJGCZBLM_CZBLMBH asc,XLJGCZBLM_HLMLX desc "); return sSQL.ToString(); } private string GetSFXZPZ() { string rstr = "Y"; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860020); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_ALMXZBJCL)) rstr = pzxx.XLXSBJPZ_ALMXZBJCL; return rstr; } #endregion #region 按钮事件 //按栏目名称匹配报价材料,栏目名称=报价材料名称填写报价价材料为空的XLJGCZBLM_BJCLID protected void btnPPBJCL_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); bool bJSWC = false; if (Confirm.GetValue("ask").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("ask").Trim().Equals("Y")) { Confirm.Clear(); XZ_BJCL(dberp, SQL); bJSWC = true; } else if (Confirm.GetValue("ask").Trim().Equals("")) { try { /* merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……) */ dberp.BeginTrans(); SQL.Clear(); SQL.Add(" merge into XLJGCZBLM tar "); SQL.Add(" using ( "); SQL.Add(" SELECT min(XLXSBJCL_BJCLID) as XLXSBJCL_BJCLID, XLXSBJCL_BJCLMC FROM XLXSBJCL GROUP BY XLXSBJCL_BJCLMC "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" sor.XLXSBJCL_BJCLMC = tar.XLJGCZBLM_CZBLMMC"); SQL.Add(" and XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add("XLJGCZBLM_BJCLID=sor.XLXSBJCL_BJCLID, "); SQL.Add(" XLJGCZBLM_WHR= :pWHR, "); SQL.Add(" XLJGCZBLM_WHRID= :pWHRID, "); SQL.Add(" XLJGCZBLM_WHSJ= :pWHSJ "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" merge into XLJGCZBLM tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSBJCLDH_XLCLZLID as XLCLZLID,XLXSBJCLDH_XLCLID as XLCLID,XLXSBJCLDH_BJCLID as BJCLID from XLXSBJCLDH where 1= 1 "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" sor.BJCLID = XLJGCZBLM_BJCLID and (select count(*) from XLXSBJCLDH where XLXSBJCLDH_BJCLID=XLJGCZBLM_BJCLID)=1"); SQL.Add(" and XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')<>' ' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add("XLJGCZBLM_XLCLZLID=sor.XLCLZLID,"); SQL.Add("XLJGCZBLM_XLCLID=sor.XLCLID "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); dberp.ExecSQL(SQL); bJSWC = true; dberp.CommitTrans(); Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { ShowMessage("匹配出现意料之外的错误,请联系系统管理员!错误原因:" + ex); dberp.RollbackTrans(); } string sSFXZ = GetSFXZPZ(); if (sSFXZ.Equals("Y")) { string sCZBLMBH = ""; SQL.Clear(); SQL.Add("select XLJGCZBLM_CZBLMBH,XLJGCZBLM_BJCLID from XLJGCZBLM "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCZBLMBH += ds.Tables[0].Rows[i]["XLJGCZBLM_CZBLMBH"].ToString().Trim() + "、"; } sCZBLMBH = sCZBLMBH.TrimEnd('、').Trim(); //若有没匹配上,新增弹出对话框列示未匹配上栏目,并询问是否新增 Confirm.Register("ask", "存在栏目编号" + sCZBLMBH + "未匹配上报价材料,是否新增?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("ask").Trim().Equals("")) { Confirm.Ask("ask"); return; } } else { ShowMessage("匹配完成!"); } } else { ShowMessage("匹配完成!"); } } if (bJSWC) { CLQDList.UpdatCLZL(dberp, SQL, PageParam.GetRTrimString("JGCZBID"), PageParam.GetRTrimString("JGCZBBBID")); } } //按栏目名称新增报价材料,将XLJGCZBLM_BJCLID为空、XLJGCZBLM_CLQDL不为空的栏目名称,XLJGCZBLM_CZBLMMC作为报价材料名称依次插入XLXSBJCL private void XZ_BJCL(TDatabase dberp, TSQL SQL) { try { if (dberp.DriverName == "ORACLE") { #region oracle语法 SQL.RAW = true; dberp.BeginTrans(); SQL.Clear(); SQL.Add(" insert into XLXSBJCL(XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLXSBJCL_ZZSL,XLXSBJCL_BZ,XLXSBJCL_WHRID,XLXSBJCL_WHR,XLXSBJCL_WHSJ) "); SQL.Add(" select a.BJCLID||DECODE(SIGN(LENGTHB('0000'||rtrim(SUBSTRB(RPAD(TO_CHAR(row_number()over(partition by a.BJCLID order by CZBLMMC)-1+NVL(BJCLXH,0)),4,' '),1,4)))-4),"); SQL.Add(" 1,SUBSTR('0000'||rtrim(SUBSTRB(RPAD(TO_CHAR(row_number()over(partition by a.BJCLID order by CZBLMMC)-1+NVL(BJCLXH,0)),4,' '),1,4)), "); SQL.Add(" LENGTHB('0000'||rtrim(SUBSTRB(RPAD(TO_CHAR(row_number()over(partition by a.BJCLID order by CZBLMMC)-1+NVL(BJCLXH,0)),4,' '),1,4)))-4+1,4), "); SQL.Add(" '0000'||rtrim(SUBSTRB(RPAD(TO_CHAR(row_number()over(partition by a.BJCLID order by CZBLMMC)-1+NVL(BJCLXH,0)),4,' '),1,4))) as BJCLID, "); SQL.Add(" CZBLMMC as BJCLMC,13 as ZZSL,"); SQL.Add(" :pJGCZBID||'|'||:pJGCZBMC||'(自动生成)' as BZ,"); SQL.Add(" :pWHRID,:pWHR,SYSDATE as WHSJ"); SQL.Add(" from"); SQL.Add(" ("); SQL.Add(" select 'BJCL'||rtrim(XLJGCZBLM_CZBLMBH)as BJCLID,XLJGCZBLM_CZBLMMC as CZBLMMC,XLJGCZBLM_CLQDL as CLQDL"); SQL.Add(" from XLJGCZBLM,"); SQL.Add(" ("); SQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); SQL.Add(" XLJGCZBLM_CLQDL as CLQDL,min(XLJGCZBLM_CZBLMBH)as CZBLMBH,"); SQL.Add(" XLJGCZBLM_HLMLX as HLMLX"); SQL.Add(" from XLJGCZBLM"); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID"); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); SQL.Add(" and NVL(XLJGCZBLM_CLQDL,' ')<>' '"); SQL.Add(" and NVL(XLJGCZBLM_BJCLID,' ')=' '"); SQL.Add(" and XLJGCZBLM_HLMLX='Z'"); SQL.Add(" group by XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CLQDL,XLJGCZBLM_HLMLX"); SQL.Add(" )c"); SQL.Add(" where XLJGCZBLM_JGCZBID=c.JGCZBID and XLJGCZBLM_JGCZBBBID=c.JGCZBBBID and XLJGCZBLM_CZBLMBH=c.CZBLMBH"); SQL.Add(" and XLJGCZBLM_HLMLX=c.HLMLX"); SQL.Add(" )a left join"); SQL.Add(" (select SUBSTR(XLXSBJCL_BJCLID,1,6) as BJCLID,"); SQL.Add(" case when not REGEXP_LIKE(NVL(max(SUBSTR(XLXSBJCL_BJCLID,7,4)),' '),'(^[ -]?\\d{0,}\\.?\\d{0,}$)') then 1"); SQL.Add(" else CEIL(TO_NUMBER(NVL(max(SUBSTR(XLXSBJCL_BJCLID,7,4)),' ')))+1"); SQL.Add(" end as BJCLXH"); SQL.Add(" from XLXSBJCL"); SQL.Add(" group by SUBSTR(XLXSBJCL_BJCLID,1,6)"); SQL.Add(" )b on b.BJCLID=a.BJCLID"); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBMC").Value = PageParam.GetRTrimString("JGCZBMC"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLJGCZBLM set XLJGCZBLM_BJCLID= "); SQL.Add(" ( select top 1 XLXSBJCL_BJCLID from XLXSBJCL where XLXSBJCL_BJCLMC=XLJGCZBLM_CZBLMMC ),"); SQL.Add(" XLJGCZBLM_WHR= :pWHR, "); SQL.Add(" XLJGCZBLM_WHRID= :pWHRID, "); SQL.Add(" XLJGCZBLM_WHSJ= :pWHSJ "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); dberp.CommitTrans(); #endregion } else { #region sqlserver语法 dberp.BeginTrans(); SQL.Clear(); SQL.Add(" insert into XLXSBJCL(XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLXSBJCL_ZZSL,XLXSBJCL_BZ,XLXSBJCL_WHRID,XLXSBJCL_WHR,XLXSBJCL_WHSJ) "); SQL.Add(" select a.BJCLID||right('0000'||rtrim(convert(char(4),row_number() over(partition by a.BJCLID order by CZBLMMC)-1+isnull(BJCLXH,0))),4) as BJCLID, "); SQL.Add(" CZBLMMC as BJCLMC,13 as ZZSL, "); SQL.Add(" :pJGCZBID || '|' || :pJGCZBMC || '(自动生成)' as BZ, "); SQL.Add(" :pWHRID,:pWHR,getdate() as WHSJ "); SQL.Add(" from "); SQL.Add(" ("); SQL.Add(" select 'BJCL'||rtrim(XLJGCZBLM_CZBLMBH) as BJCLID,XLJGCZBLM_CZBLMMC as CZBLMMC,XLJGCZBLM_CLQDL as CLQDL "); SQL.Add(" from XLJGCZBLM,"); SQL.Add(" ("); SQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); SQL.Add(" XLJGCZBLM_CLQDL as CLQDL,min(XLJGCZBLM_CZBLMBH) as CZBLMBH,"); SQL.Add(" XLJGCZBLM_HLMLX as HLMLX "); SQL.Add(" from XLJGCZBLM"); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.Add(" and XLJGCZBLM_HLMLX='Z'");//仅查询主行栏目,用于生成报价材料 SQL.Add(" group by XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CLQDL,XLJGCZBLM_HLMLX"); SQL.Add(" ) c "); SQL.Add(" where XLJGCZBLM_JGCZBID=c.JGCZBID and XLJGCZBLM_JGCZBBBID=c.JGCZBBBID and XLJGCZBLM_CZBLMBH=c.CZBLMBH"); SQL.Add(" and XLJGCZBLM_HLMLX=c.HLMLX"); SQL.Add(" ) a left join "); SQL.Add(" (select left(XLXSBJCL_BJCLID,6) as BJCLID, "); SQL.Add(" case when isnumeric(isnull(max(substring(XLXSBJCL_BJCLID,7,4)),' '))<>1 then 1 "); SQL.Add(" else convert(integer,isnull(max(substring(XLXSBJCL_BJCLID,7,4)),' '))+1 "); SQL.Add(" end as BJCLXH "); SQL.Add(" from XLXSBJCL "); SQL.Add(" group by left(XLXSBJCL_BJCLID,6) "); SQL.Add(" ) b on b.BJCLID=a.BJCLID"); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBMC").Value = PageParam.GetRTrimString("JGCZBMC"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLJGCZBLM set XLJGCZBLM_BJCLID= "); SQL.Add(" ( select top 1 XLXSBJCL_BJCLID from XLXSBJCL where XLXSBJCL_BJCLMC=XLJGCZBLM_CZBLMMC ), "); SQL.Add(" XLJGCZBLM_WHR= :pWHR, "); SQL.Add(" XLJGCZBLM_WHRID= :pWHRID, "); SQL.Add(" XLJGCZBLM_WHSJ= :pWHSJ "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); dberp.CommitTrans(); #endregion } ShowMessage("新增完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("新增出现意料之外的错误,请联系系统管理员!错误原因:" + ex); } } //按材料种类和材料编码匹配报价材料,材料种类_材料代号=报价材料ID填写报价价材料为空的XLJGCZBLM_BJCLID protected void btnZLPPBJCL_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); bool bJSWC = false; if (Confirm.GetValue("ask").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("ask").Trim().Equals("Y")) { Confirm.Clear(); XZZL_BJCL(dberp, SQL); bJSWC = true; } else if (Confirm.GetValue("ask").Trim().Equals("")) { try { /* merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……) */ dberp.BeginTrans(); SQL.Clear(); SQL.Add(" merge into XLJGCZBLM tar "); SQL.Add(" using ( "); SQL.Add(" SELECT XLXSBJCL_BJCLID FROM XLXSBJCL "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" sor.XLXSBJCL_BJCLID = (rtrim(case when tar.XLJGCZBLM_XLCLZLID='DTCP' then 'DTCL' else tar.XLJGCZBLM_XLCLZLID end) || '_' || tar.XLJGCZBLM_XLCLID) "); SQL.Add(" and XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add("XLJGCZBLM_BJCLID=sor.XLXSBJCL_BJCLID, "); SQL.Add(" XLJGCZBLM_WHR= :pWHR, "); SQL.Add(" XLJGCZBLM_WHRID= :pWHRID, "); SQL.Add(" XLJGCZBLM_WHSJ= :pWHSJ "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); bJSWC = true; dberp.CommitTrans(); Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { ShowMessage("匹配出现意料之外的错误,请联系系统管理员!错误原因:" + ex); dberp.RollbackTrans(); } string sSFXZ = GetSFXZPZ(); if (sSFXZ.Equals("Y")) { string sCZBLMBH = ""; SQL.Clear(); SQL.Add("select XLJGCZBLM_CZBLMBH,XLJGCZBLM_BJCLID from XLJGCZBLM "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_XLCLZLID,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_XLCLID,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sCZBLMBH += ds.Tables[0].Rows[i]["XLJGCZBLM_CZBLMBH"].ToString().Trim() + "、"; } sCZBLMBH = sCZBLMBH.TrimEnd('、').Trim(); //若有没匹配上,新增弹出对话框列示未匹配上栏目,并询问是否新增 Confirm.Register("ask", "存在栏目编号" + sCZBLMBH + "未匹配上报价材料,是否新增?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("ask").Trim().Equals("")) { Confirm.Ask("ask"); return; } } else { ShowMessage("匹配完成!"); } } else { ShowMessage("匹配完成!"); } } if (bJSWC) { CLQDList.UpdatCLZL(dberp, SQL, PageParam.GetRTrimString("JGCZBID"), PageParam.GetRTrimString("JGCZBBBID")); } } //按材料种类和材料编码匹配报价材料,将XLJGCZBLM_BJCLID为空、XLJGCZBLM_CLQDL不为空的材料种类_材料代号作为报价材料名称依次插入XLXSBJCL private void XZZL_BJCL(TDatabase dberp, TSQL SQL) { try { dberp.BeginTrans(); SQL.Clear(); SQL.Add(" insert into XLXSBJCL(XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,XLXSBJCL_ZZSL,XLXSBJCL_BJJZ,XLXSBJCL_CLHQFD, "); SQL.Add(" XLXSBJCL_BZ,XLXSBJCL_WHRID,XLXSBJCL_WHR,XLXSBJCL_WHSJ) "); SQL.Add(" select distinct rtrim(CL.XLCLZLID) || '_' || rtrim(CL.XLCLID) as BJCLID, "); SQL.Add(" case "); SQL.Add(" when CL.XLCLZLID = 'DTCL' then '导体材料' "); SQL.Add(" when CL.XLCLZLID = 'JYCL' then '绝缘材料' "); SQL.Add(" when CL.XLCLZLID = 'HTCL' then '护套材料' "); SQL.Add(" when CL.XLCLZLID = 'KZCL' then '铠装材料' "); SQL.Add(" when CL.XLCLZLID = 'WHCL' then '外护材料' "); SQL.Add(" when CL.XLCLZLID = 'PBCL' then '屏蔽材料' "); SQL.Add(" when CL.XLCLZLID = 'TCCL' then '填充材料' "); SQL.Add(" when CL.XLCLZLID = 'RBCL' then '绕包材料' "); SQL.Add(" when CL.XLCLZLID = 'FZCL' then '辅助材料' "); SQL.Add(" else ' ' end || '_' || rtrim(CL.XLCLMC) as BJCLMC,"); SQL.Add(" '1' as BJHQ,13.0 as ZZSL,'Y' as BJJZ,'N' as CLHQFD,"); SQL.Add(" :pJGCZBID || '|' || :pJGCZBMC + '(自动生成)',:pWHRID,:pWHR,:pWHSJ "); SQL.Add(" from XLJGCZBLM, "); SQL.Add(" ( "); SQL.Add(" select 'DTCL' as XLCLZLID,XLDTCLB_DTCLID as XLCLID,XLDTCLB_XLXTCLID as XLXTCLID,XLDTCLB_WLMC as XLCLMC from XLDTCLB where XLDTCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'JYCL' as XLCLZLID,XLJYCLB_JYCLID as XLCLID,XLJYCLB_XLXTCLID as XLXTCLID,XLJYCLB_WLMC as XLCLMC from XLJYCLB where XLJYCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'HTCL' as XLCLZLID,XLHTCLB_HTCLID as XLCLID,XLHTCLB_XLXTCLID as XLXTCLID,XLHTCLB_WLMC as XLCLMC from XLHTCLB where XLHTCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'KZCL' as XLCLZLID,XLKZCLB_KZCLID as XLCLID,XLKZCLB_XLXTCLID as XLXTCLID,XLKZCLB_WLMC as XLCLMC from XLKZCLB where XLKZCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'WHCL' as XLCLZLID,XLWHCLB_WHCLID as XLCLID,XLWHCLB_XLXTCLID as XLXTCLID,XLWHCLB_WLMC as XLCLMC from XLWHCLB where XLWHCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'PBCL' as XLCLZLID,XLPBCLB_PBCLID as XLCLID,XLPBCLB_XLXTCLID as XLXTCLID,XLPBCLB_WLMC as XLCLMC from XLPBCLB where XLPBCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'TCCL' as XLCLZLID,XLTCCLB_TCCLID as XLCLID,XLTCCLB_XLXTCLID as XLXTCLID,XLTCCLB_WLMC as XLCLMC from XLTCCLB where XLTCCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'RBCL' as XLCLZLID,XLRBCLB_RBCLID as XLCLID,XLRBCLB_XLXTCLID as XLXTCLID,XLRBCLB_WLMC as XLCLMC from XLRBCLB where XLRBCLB_WLID=' ' "); SQL.Add(" union all "); SQL.Add(" select 'FZCL' as XLCLZLID,XLFZCLB_FZCLID as XLCLID,XLFZCLB_XLXTCLID as XLXTCLID,XLFZCLB_WLMC as XLCLMC from XLFZCLB where XLFZCLB_WLID=' ' "); SQL.Add(" ) CL "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and CL.XLCLZLID = case when XLJGCZBLM_XLCLZLID='DTCP' then 'DTCL' else XLJGCZBLM_XLCLZLID end "); SQL.Add(" and CL.XLCLID=XLJGCZBLM_XLCLID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.Add(" and isnull(XLJGCZBLM_XLCLZLID,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_XLCLID,' ')<>' ' "); SQL.Add(" and XLJGCZBLM_HLMLX='Z' "); SQL.Add(" and not exists(select 1 from XLXSBJCL where XLXSBJCL_BJCLID=rtrim(CL.XLCLZLID) || '_' || rtrim(CL.XLCLID))"); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBMC").Value = PageParam.GetRTrimString("JGCZBMC"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLJGCZBLM set XLJGCZBLM_BJCLID= "); SQL.Add(" ( select top 1 XLXSBJCL_BJCLID from XLXSBJCL where XLXSBJCL_BJCLID = (rtrim(case when XLJGCZBLM_XLCLZLID='DTCP' then 'DTCL' else XLJGCZBLM_XLCLZLID end) || '_' || XLJGCZBLM_XLCLID) ), "); SQL.Add(" XLJGCZBLM_WHR= :pWHR, "); SQL.Add(" XLJGCZBLM_WHRID= :pWHRID, "); SQL.Add(" XLJGCZBLM_WHSJ= :pWHSJ "); SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID "); SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" and isnull(XLJGCZBLM_BJCLID,' ')=' ' "); SQL.ParamByName("pJGCZBID").Value = PageParam.GetRTrimString("JGCZBID"); SQL.ParamByName("pJGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBID"); SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); dberp.CommitTrans(); ShowMessage("新增完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("新增出现意料之外的错误,请联系系统管理员!错误原因:" + ex); } } //清空报价材料, protected void btnQKBJCL_Click(object sender, EventArgs e) { string sJGCZBID = PageParam.GetRTrimString("JGCZBID"); string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID"); Confirm.Register("IsQQ", "即将清空报价材料,是否继续?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQQ").Trim().Equals("")) { Confirm.Ask("IsQQ"); return; } else if (Confirm.GetValue("IsQQ").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQQ").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); dberp.ExecSQL(String.Format("update XLJGCZBLM set XLJGCZBLM_BJCLID = null,XLJGCZBLM_WHR = '{2}', XLJGCZBLM_WHRID = '{3}', XLJGCZBLM_WHSJ = '{4}' where XLJGCZBLM_JGCZBID = '{0}' and XLJGCZBLM_JGCZBBBID = '{1}' ", sJGCZBID, sJGCZBBBID, tSession.UserName, tSession.UserId, DateTime.Now)); btnRefresh_Click(null, null); } protected void grdJGCZBLM_RowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e) { string sBJCLID = grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["BJCL"].ToString().Trim(); string sBJCLMC = grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["XLJGCZBLM_CZBLMMC"].ToString().Trim(); string sCLQDL = grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["XLJGCZBLM_CLQDL"].ToString().Trim(); string sXLCLZLID = grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["XLJGCZBLM_XLCLZLID"].ToString().Trim(); string sXLCLID = grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["XLCLID"].ToString().Trim(); if (!sBJCLID.Equals("")) { sBJCLID = sBJCLID.Split('|')[0]; } TPageParams tpp = new TPageParams(); tpp.UrlPath = "JGCZBLMInfo.aspx"; tpp.AddString("BJCLID", sBJCLID); tpp.AddString("BJCLMC", sBJCLMC); tpp.AddString("CLQDL", sCLQDL); tpp.AddString("JGCZBID",PageParam.GetRTrimString("JGCZBID")); tpp.AddString("JGCZBMC", PageParam.GetRTrimString("JGCZBMC")); tpp.AddString("JGCZBBBID", PageParam.GetRTrimString("JGCZBBBID")); tpp.AddString("CZBLMBH", grdJGCZBLM.DataKeys[grdJGCZBLM.SelectedIndex]["XLJGCZBLM_CZBLMBH"].ToString().Trim()); tpp.AddString("XLCLZLID", sXLCLZLID); tpp.AddString("XLCLID", sXLCLID); tpp.AddString("RefreshCtrlID", btnRefresh.ClientID.Trim()); OpenDialog(tpp); } protected void btnRefresh_Click(object sender, EventArgs e) { moduleGV_PageIndexChanging(null, null); } #endregion } }