Files
N_XLXSBJ----MX/JGCZBLMList.aspx.cs
2026-08-21 17:03:02 +08:00

691 lines
37 KiB
C#

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
}
}