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_MISPRO; using GThinking.N_WORKFLOW; using System.Collections.Generic; using GThinking.N_CONTROL; namespace GThinking.N_XLXSBJ { public partial class CLQDList : SingleGridBase { CLQD entity = new CLQD(); CLQD_M queryentity = new CLQD_M(); Dictionary dicHeaderText = new Dictionary(); Dictionary dicHeaderTextCLWL = new Dictionary(); #region Page类事件继承 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860002; this.UMName = "线缆销售报价材料清单"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurEntity = entity; this.CurQueryEntity = queryentity; this.PageHeight = 600; this.PageWidth = 750; this.sURLTarget = "CLQDInfo.aspx"; this.sQueryURLTarget = "CLQDQuery.aspx"; base.DataKeyNames = new string[] { "XLXSCLQD_XLXHID", "XLXSCLQD_XLGGID", "XLXSCLQD_XLBZID", "XLXSCLQD_DYDJID" }; //if (GetOption("BJU003").Equals("M")) // ContentGrid.FindColumnExByFieldName("XLXSCLQD_CLCB").NumberDecimalPlace = 5; ContentGrid.FindColumnByFieldName("XLXSCLQD_CLZL").HeaderText = "材料重量(Kg/" + GetOption("BJU003") + ")"; this.Master.EnableAttachBtn = false; Master.EnableNewBtn = false; Master.EnableCopyBtn = false; Master.EnableEditBtn = false; Server.ScriptTimeout = 3600; CanDeleteCheckedRows = true; if (!IsPostBack) { //从结构尺重表模块跳转 if (!PageParam.GetRTrimString("JGCZBIDFromJGCZBML").Equals("")) { CurQueryEntity.FieldByName("JGCZBID").Value = PageParam.GetRTrimString("JGCZBIDFromJGCZBML"); CurQueryEntity.FieldByName("JGCZBBBID").Value = PageParam.GetRTrimString("JGCZBBBIDFromJGCZBML"); } CurQueryEntity.FieldByName("PXFS").Value = "型号+序号"; } base.InitPage(); Server.ScriptTimeout = 3600; if (!IsPostBack) { if (!PageParam.GetRTrimString("JGCZBIDFromJGCZBML").Equals("")) { Master_OnStandardQuery(null, null); } else { if (IsDefaultExecute) Master_OnStandardQuery(null, null); else { IfExistMC_Get(); initGrid(); } } } } #endregion #region 模板继承事件 protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { string sSQL = ""; sSQL = string.Format("select top 1 XLXSJGBMX_JGBID from XLXSJGBMX where XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID='{1}' and XLXSJGBMX_XLBZID='{2}' and isnull(XLXSJGBMX_DYDJID,' ')='{3}'", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLXHID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLGGID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLBZID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_DYDJID"].ToString().Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(sSQL); DataSet ds = dberp.OpenDataSet(SQL); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { string tmpKey = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLXHID"].ToString().Trim() + " " + ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLGGID"].ToString().Trim() + " " + ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLBZID"].ToString().Trim() + " " + ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_DYDJID"].ToString().Trim(); ShowMessage("【" + tmpKey + "】已被销售价格表【" +ds.Tables[0].Rows[0][0].ToString().Trim() +"】使用,不允许删除!"); return false; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}' and isnull(XLXSCLQD_WFHANDLER,' ')<>' '", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLXHID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLGGID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLBZID"].ToString().Trim(), ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_DYDJID"].ToString().Trim()))) { ShowMessage("已经过工作流转,不允许直接删除!"); return false; } CurEntity.Param.Add("XLXSCLQD_XLXHID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLXHID"].ToString().Trim()); CurEntity.Param.Add("XLXSCLQD_XLGGID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLGGID"].ToString().Trim()); CurEntity.Param.Add("XLXSCLQD_XLBZID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_XLBZID"].ToString().Trim()); CurEntity.Param.Add("XLXSCLQD_DYDJID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSCLQD_DYDJID"].ToString().Trim()); return base.Master_BeforeDeleteAction(sender, e); } protected override bool Master_AfterDeleteAction(object sender, EventArgs e) { if (!base.Master_AfterDeleteAction(sender, e)) return false; base.InitEntityByCondition(); IfExistMC_Get(); initGrid(); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(ContentGrid, tSession); ContentGrid.SelectedIndex = -1; return true; } protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); base.Master_OnStandardQuery(sender, e); IfExistMC_Get(); initGrid(); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(ContentGrid, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); IfExistMC_Get(); initGrid(); entity.EntityTable.QuerySelSql = GetQuerySql(); ContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkPageParam.AddString("XLXSCLQD_XLXHID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLXHID"].ToString().Trim()); LinkPageParam.AddString("XLXSCLQD_XLGGID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLGGID"].ToString().Trim()); LinkPageParam.AddString("XLXSCLQD_XLBZID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLBZID"].ToString().Trim()); LinkPageParam.AddString("XLXSCLQD_DYDJID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_DYDJID"].ToString().Trim()); } base.moduleGV_RowDataBound(sender, e); } #endregion #region 私有函数 private string GetQuerySql() { //若所选尺重表为Z类、B类,则关联XLJGCZBNR表,按XLJGCZBNR_DRHH排序; //若所选尺重表为A类、C类、G类,则关联XLXHJGCZBNR表,按XLXHJGCZBML_JGCZBXH,XLXHJGCZBNR_DRHH排序。 string sCZBLX = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" SELECT XLJGCZBML_CZBLX from XLJGCZBML "); sql.Add(" where XLJGCZBML_JGCZBID=:pJGCZBID "); sql.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sCZBLX = ds.Tables[0].Rows[0][0].ToString().Trim(); } string sSQL = " select XLXSCLQD_XLXHID, XLXSCLQD_XLGGID, XLXSCLQD_XLBZID,RTRIM(XLXSCLQD_XLBZID)||'|'|| XLBZ_XLBZLXMC as XLBZ, XLXSCLQD_DYDJID,'" + GetOption("BJU003") + "' as JLDW, XLXSCLQD_CLZL,\r\n" + "XLXSCLQD_SL01, XLXSCLQD_SL02, XLXSCLQD_SL03, XLXSCLQD_SL04, XLXSCLQD_SL05, XLXSCLQD_SL06, XLXSCLQD_SL07, XLXSCLQD_SL08, XLXSCLQD_SL09, XLXSCLQD_SL10,\r\n" + "XLXSCLQD_SL11, XLXSCLQD_SL12, XLXSCLQD_SL13, XLXSCLQD_SL14, XLXSCLQD_SL15, XLXSCLQD_SL16, XLXSCLQD_SL17, XLXSCLQD_SL18, XLXSCLQD_SL19, XLXSCLQD_SL20,\r\n" + "XLXSCLQD_SL21, XLXSCLQD_SL22, XLXSCLQD_SL23, XLXSCLQD_SL24, XLXSCLQD_SL25, XLXSCLQD_SL26, XLXSCLQD_SL27, XLXSCLQD_SL28, XLXSCLQD_SL29, XLXSCLQD_SL30,\r\n" + "XLXSCLQD_SL31, XLXSCLQD_SL32, XLXSCLQD_SL33, XLXSCLQD_SL34, XLXSCLQD_SL35, XLXSCLQD_SL36, XLXSCLQD_SL37, XLXSCLQD_SL38, XLXSCLQD_SL39, XLXSCLQD_SL40,\r\n" + "XLXSCLQD_SL41, XLXSCLQD_SL42, XLXSCLQD_SL43, XLXSCLQD_SL44, XLXSCLQD_SL45, XLXSCLQD_SL46, XLXSCLQD_SL47, XLXSCLQD_SL48, XLXSCLQD_SL49, XLXSCLQD_SL50,\r\n" + "XLXSCLQD_SL51, XLXSCLQD_SL52, XLXSCLQD_SL53, XLXSCLQD_SL54, XLXSCLQD_SL55, XLXSCLQD_SL56, XLXSCLQD_SL57, XLXSCLQD_SL58, XLXSCLQD_SL59, XLXSCLQD_SL60,\r\n" + "XLXSCLQD_SL61, XLXSCLQD_SL62, XLXSCLQD_SL63, XLXSCLQD_SL64, XLXSCLQD_SL65, XLXSCLQD_SL66, XLXSCLQD_SL67, XLXSCLQD_SL68, XLXSCLQD_SL69, XLXSCLQD_SL70,\r\n" + "XLXSCLQD_SL71, XLXSCLQD_SL72, XLXSCLQD_SL73, XLXSCLQD_SL74, XLXSCLQD_SL75, XLXSCLQD_SL76, XLXSCLQD_SL77, XLXSCLQD_SL78, XLXSCLQD_SL79, XLXSCLQD_SL80,\r\n"; for (int i = 1; i <= 80; i++) { if (dicHeaderTextCLWL.ContainsKey("第" + i.ToString().PadLeft(2, '0') + "列")) sSQL += string.Format("RTRIM(XLXSCLQDWL_WLID{0}) || '|' || RTRIM(ISNULL(WL{0}.WL_MC,' ')) || ' ' || RTRIM(ISNULL(WL{0}.WL_GG,' ')) as XLXSCLWL{0},\r\n", i.ToString().PadLeft(2, '0')); else sSQL += string.Format("' ' as XLXSCLWL{0},", i.ToString().PadLeft(2, '0')); } sSQL += " XLXSCLQD_CPMLID,XLXSCLQD_BZ, XLXSCLQD_WHR, XLXSCLQD_WHRID, XLXSCLQD_WHSJ " + " from XLXSCLQD " + " left join XLBZ on XLBZ_XLBZID = XLXSCLQD_XLBZID " + " LEFT JOIN XLXSCLQDWL ON XLXSCLQDWL_JGCZBID = XLXSCLQD_JGCZBID AND XLXSCLQDWL_JGCZBBBID = XLXSCLQD_JGCZBBBID and XLXSCLQD_JGCZBXH = XLXSCLQDWL_JGCZBXH AND XLXSCLQDWL_DRHH = XLXSCLQD_DRHH "; if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("尺重表内容导入行号")) { if (sCZBLX.Equals("B")) { sSQL += " left join XLJGCZBNR on XLJGCZBNR_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBNR_JGCZBBBID = XLXSCLQD_JGCZBBBID and XLJGCZBNR_DRHH = XLXSCLQD_DRHH "; } else if (sCZBLX.Equals("Z") || sCZBLX.Equals("A") || sCZBLX.Equals("C") || sCZBLX.Equals("G")) { sSQL += " left join XLXHJGCZBNR on XLXHJGCZBNR_JGCZBID = XLXSCLQD_JGCZBID and XLXHJGCZBNR_JGCZBBBID = XLXSCLQD_JGCZBBBID " + " and XLXHJGCZBNR_JGCZBXH = XLXSCLQD_JGCZBXH " + " and XLXHJGCZBNR_DRHH = XLXSCLQD_DRHH "; } } for (int i = 1; i <= 80; i++) { if (dicHeaderTextCLWL.ContainsKey("第" + i.ToString().PadLeft(2, '0') + "列")) sSQL += string.Format("LEFT JOIN WL WL{0} ON WL{0}.WL_WLID =XLXSCLQDWL_WLID{0} \r\n", i.ToString().PadLeft(2, '0')); } //加入线芯结构,进行规格排序 //+ " left join XLGGB on XLGGB_XLGGID=XLXSCLQD_XLGGID " //+ " left join XLXXJGB on XLXXJGB_XXJGID=XLGGB_XXJGID " //+ " left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID " sSQL += " where 1=1 and XLXSCLQD_WPID ='ZZZZ' "; if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_JGCZBID = :pJGCZBID "; entity.Param.Add("pJGCZBID", CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "; entity.Param.Add("pJGCZBBBID", CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CPMLID").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_CPMLID = :pCPMLID "; entity.Param.Add("pCPMLID", CurQueryEntity.FieldByName("CPMLID").Value.Trim()); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_XLXHID like :pXLXHID "; entity.Param.Add("pXLXHID", "%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%"); } } else { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_XLXHID = :pXLXHID "; entity.Param.Add("pXLXHID", CurQueryEntity.FieldByName("XLXHID").Value.Trim()); } } //规格模糊 if (!CurQueryEntity.FieldByName("XLGGIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim())) { sSQL += " and replace(XLXSCLQD_XLGGID,'*','×') like :pXLGGID "; entity.Param.Add("pXLGGID", "%" + CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×") + "%"); } } else { string sXLGGID = CurQueryEntity.FieldByName("XLGGID").Value.Trim(); if (!string.IsNullOrEmpty(sXLGGID)) { string[] sTemp = sXLGGID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { sSQL += " and " + CMISproDataBase.GetWhereEqual(" replace(XLXSCLQD_XLGGID,'*','×')", sXLGGID.Replace('*', '×')); } else { sSQL += " and replace(XLXSCLQD_XLGGID,'*','×') = :pXLGGID "; entity.Param.Add("pXLGGID", CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×")); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_XLBZID = :pST "; entity.Param.Add("pST", CurQueryEntity.FieldByName("ST").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { sSQL += "\r\n and XLXSCLQD_DYDJID = :pDYDJ "; entity.Param.Add("pDYDJ", CurQueryEntity.FieldByName("DYDJ").Value.Trim()); } if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("型号+序号")) { sSQL += " order by XLXSCLQD_XLXHID,XLXSCLQD_XH "; } else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("尺重表内容导入行号")) { if ( sCZBLX.Equals("B")) { sSQL += " order by XLJGCZBNR_DRHH "; } else if (sCZBLX.Equals("Z") || sCZBLX.Equals("A") || sCZBLX.Equals("C") || sCZBLX.Equals("G")) { sSQL += " order by XLXHJGCZBNR_JGCZBXH,XLXHJGCZBNR_DRHH "; } else { sSQL += " order by XLXSCLQD_XLXHID,XLXSCLQD_XH "; } } else { sSQL += " order by XLXSCLQD_XLXHID,XLXSCLQD_XH "; } //sSQL += " order by XLXSCLQD_XLXHID,"; //sSQL += " charindex('+',XLGGB_XXJGID),charindex('×',XLGGB_XXJGID),len(XLGGB_XXJGID),"; //sSQL += " XLGGB_XXJGID,XLDTJMZHB_DTJM1,XLDTJMZHB_DTJM2,XLDTJMZHB_DTJM3,XLDTJMZHB_DTJM4,"; //sSQL += " XLXSCLQD_XH,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"; string s = sSQL; return sSQL; } public void IfExistMC_Get() { dicHeaderText.Clear(); dicHeaderTextCLWL.Clear(); if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { for (int i = 1; i <= 80; i++) { ContentGrid.Columns[2 * i + 5].Visible = false; } return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); DataSet ds; sql.Add(" select XLXSBJCL_BJHQ,XLJGCZBLM_CLQDL, "); sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then XLJGCZBLM_CZBLMMC else XLXSBJCL_BJCLMC end as CLMC"); sql.Add(" from XLJGCZBLM "); sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); //sql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID = XLJGCZBLM_JGCZBID "); sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID =:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" order by XLJGCZBLM_CLQDL "); sql.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; sql.ParamByName("pJGCZBBBID").Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dicHeaderText.Add((ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), ds.Tables[0].Rows[i]["CLMC"].ToString().Trim()); //添加物料列 if (ds.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) { dicHeaderTextCLWL.Add((ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), ds.Tables[0].Rows[i]["CLMC"].ToString().Trim()); } } SetColumnsVisible(); } private void initGrid() { for (int i = 1; i <= 80; i++) { string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列"; string sExist = ""; if (dicHeaderText.ContainsKey(sCLQDL)) { sExist = dicHeaderText[sCLQDL].Trim(); } if (!sExist.Equals("")) { ContentGrid.Columns[2 * i - 1 + 5].HeaderText = sExist; } } } private void SetColumnsVisible() { if (dicHeaderText.Count > 0) { for (int i = 1; i <= 80; i++) { string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列"; string sExist = ""; if (dicHeaderText.ContainsKey(sCLQDL)) { sExist = dicHeaderText[sCLQDL].Trim(); } if (!CurQueryEntity.FieldByName("XSBJCLWL").Value.ToString().Trim().ToUpper().Equals("TRUE")) { ContentGrid.Columns[2 * i + 5].Visible = false; } else { if (!dicHeaderTextCLWL.ContainsKey(sCLQDL)) { ContentGrid.Columns[2 * i + 5].Visible = false; } } if (sExist.Equals("")) { ContentGrid.Columns[2 * i - 1 + 5].Visible = false; } } } } //判断收货通知单记录是否存在 private bool IsExistsJL(string sXLXHID, string sXLGGID, string sST, string sDYDJ) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:XLXSCLQD_XLXHID and XLXSCLQD_XLGGID=:XLXSCLQD_XLGGID and XLXSCLQD_XLBZID=:XLXSCLQD_XLBZID and XLXSCLQD_DYDJID=:XLXSCLQD_DYDJID "); sql.ParamByName("XLXSCLQD_XLXHID").Value = sXLXHID; sql.ParamByName("XLXSCLQD_XLGGID").Value = sXLGGID; sql.ParamByName("XLXSCLQD_XLBZID").Value = sST; sql.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJ; DataSet ds = dberp.OpenDataSet(sql); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { return true; } return false; } #region 添加虚拟材料 private string GetBJCLMC(string sBJCLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJCL_BJCLMC from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID "); sql.ParamByName("pBJCLID").Value = sBJCLID.Trim(); DataSet ds = dberp.OpenDataSet(sql); string sBJCLMC = ""; if (ds.Tables[0].Rows.Count > 0) { sBJCLMC = ds.Tables[0].Rows[0][0].ToString().Trim(); } return sBJCLMC; } private DataSet GetJGCZBbyYZXX(string sJGCZBID, string sJGCZBBBID,string sYZID,string sJGBID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@" select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLJGCZBML_JGCZBMC as JGCZBMC from XLXSCLQD left join XLJGCZBML on XLXSCLQD_JGCZBID=XLJGCZBML_JGCZBID and XLXSCLQD_JGCZBBBID=XLJGCZBML_JGCZBBBID where XLXSCLQD_WPID='ZZZZ' and exists(select 1 from XLXSJGBYZZ1 where XLXSJGBYZZ1_JGBID=:pJGBID and XLXSJGBYZZ1_YZID=:pYZID and XLXSJGBYZZ1_XLXHID=XLXSCLQD_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSCLQD_XLGGID and XLXSJGBYZZ1_XLBZID=XLXSCLQD_XLBZID and XLXSJGBYZZ1_DYDJID=XLXSCLQD_DYDJID) "); if (!string.IsNullOrEmpty(sJGCZBID)) { SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; } SQL.Add(" order by XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBID"); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pYZID").Value = sYZID; DataSet ds = dberp.OpenDataSet(SQL); return ds; } private DataSet GetCLQDLbyBJCLID(string sJGCZBID, string sJGCZBBBID, string sBJCLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"select XLJGCZBLM_CLQDL from XLJGCZBLM where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and XLJGCZBLM_BJCLID=:pBJCLID "); SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; SQL.ParamByName("pBJCLID").Value = sBJCLID; DataSet dsCLQDL = dberp.OpenDataSet(SQL); return dsCLQDL; } private int GetMaxCLQDL(string sJGCZBID, string sJGCZBBBID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"select max(SUBSTRING(XLJGCZBLM_CLQDL,2,2)) from XLJGCZBLM where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and XLJGCZBLM_ZDLMLX='4' group by XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID "); SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; DataSet dsMAX = dberp.OpenDataSet(SQL); int iMaxCLQDL = 0; if (dsMAX.Tables[0].Rows.Count > 0) iMaxCLQDL = CMISproConvert.StrToInt(dsMAX.Tables[0].Rows[0][0].ToString().Trim(), 0); return iMaxCLQDL; } #endregion #endregion # region 控件事件 protected void btnZJCLLM_DropDown(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select distinct XLXSTZYZ_XSXH,XLXSTZYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JGBID,XLXSTZYZ_BJCLID from XLXSTZYZ where ISNULL(XLXSTZYZ_BJCLID,' ')<>' ' and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='1' order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID "); DataSet ds = dberp.OpenDataSet(SQL); btnZJCLLM.Nodes.Clear(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim(); string sJGBID = ds.Tables[0].Rows[i]["XLXSTZYZ_JGBID"].ToString().Trim(); string sBJCLID = ds.Tables[0].Rows[i]["XLXSTZYZ_BJCLID"].ToString().Trim(); btnZJCLLM.Nodes.Add(new gtTreeNode(sYZID+"|"+sBJCLID+"|"+sYZMC+"|"+sJGBID,sYZMC)); } } MenuAreaUpdate(); } protected void btnZJCLLM_MenuItemClick(object sender, string sValue) { Dictionary dicXNBJCL = new Dictionary(); string sYZID = sValue.Split('|')[0]; string sBJCLID = sValue.Split('|')[1]; string sYZMC=sValue.Split('|')[2]; string sJGBID = sValue.Split('|')[3]; string sBJCLMC = GetBJCLMC(sBJCLID); base.InitEntityByCondition(); string sMsg = ""; if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sMsg = string.Format("将对所有存在【{0}】调价表覆盖产品的尺重表追加材料栏目【{1}】,是否继续?", sYZMC,sBJCLMC); } else sMsg = string.Format("将对当前尺重表追加材料栏目【{0}】,是否继续?", sBJCLMC); Confirm.Register("IsQD", sMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } DataSet dsJGCZB = GetJGCZBbyYZXX(CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0], CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(), sYZID, sJGBID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (dsJGCZB.Tables[0].Rows.Count > 0) { try { dberp.BeginTrans(); for (int i = 0; i < dsJGCZB.Tables[0].Rows.Count; i++) { string sJGCZBID = dsJGCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBID"].ToString().Trim(); string sJGCZBBBID = dsJGCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); string sJGCZBMC = dsJGCZB.Tables[0].Rows[i]["JGCZBMC"].ToString().Trim(); DataSet dsCLQDL = GetCLQDLbyBJCLID(sJGCZBID, sJGCZBBBID, sBJCLID); if(dsCLQDL.Tables[0].Rows.Count >1) { string sEXmsg = string.Format("【{0}|{1}|{2}】存在多个{3}栏目,无法继续追加材料栏目!",sJGCZBID,sJGCZBMC,sJGCZBBBID,sBJCLMC); throw (new Exception(sEXmsg)); } else if (dsCLQDL.Tables[0].Rows.Count ==1) dicXNBJCL.Add(sJGCZBID + "|" + sJGCZBBBID, dsCLQDL.Tables[0].Rows[0][0].ToString().Trim()); else { int iMaxCLQDL = GetMaxCLQDL(sJGCZBID,sJGCZBBBID); if (iMaxCLQDL >= 80) { string sEXmsg = string.Format("【{0}|{1}|{2}】已有材料栏目数量大于等于80,无法继续追加材料栏目!", sJGCZBID, sJGCZBMC, sJGCZBBBID); throw (new Exception(sEXmsg)); } else { iMaxCLQDL += 1; dicXNBJCL.Add(sJGCZBID + "|" + sJGCZBBBID, "第" + iMaxCLQDL.ToString().PadLeft(2, '0') + "列"); SQL.Clear(); SQL.Add(@" insert into XLJGCZBLM(XLJGCZBLM_JGCZBID,XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_JGCZBBBID) values(:pJGCZBID,:pWHRID,:pWHR,:pWHSJ,:pCZBLMBH,:pCZBLMMC,:pCLQDL,:pBJCLID,:pHLMLX,:pZDLMLX,:pJGCZBBBID)"); string sConditon = "XLJGCZBLM_JGCZBID ='" + sJGCZBID + "' and XLJGCZBLM_JGCZBBBID='" + sJGCZBBBID + "'"; int iLMBH = CMISproDataBase.GetMaxXH("DBERP", "XLJGCZBLM", "XLJGCZBLM_CZBLMBH", sConditon) + 1; SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pCZBLMBH").Value = iLMBH.ToString().PadLeft(2, '0'); SQL.ParamByName("pCZBLMMC").Value = sBJCLMC; SQL.ParamByName("pCLQDL").Value = "第" + iMaxCLQDL.ToString().PadLeft(2, '0') + "列"; SQL.ParamByName("pBJCLID").Value = sBJCLID; SQL.ParamByName("pHLMLX").Value = "Z"; SQL.ParamByName("pZDLMLX").Value = "4"; dberp.ExecSQL(SQL); } } } foreach (string key in dicXNBJCL.Keys) { string sJGCZBID = key.Split('|')[0]; string sJGCZBBBID = key.Split('|')[1]; string sCLQDL = dicXNBJCL[key]; SQL.Clear(); SQL.Add(string.Format(@"update XLXSCLQD set XLXSCLQD_SL{0} = 0 where XLXSCLQD_JGCZBID='{1}' and XLXSCLQD_JGCZBBBID='{2}' ", sCLQDL.Substring(1, 2), sJGCZBID, sJGCZBBBID)); dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(string.Format(@"merge into XLXSCLQD tar using ( select XLXSJGBYZZ1_XLXHID,XLXSJGBYZZ1_XLGGID,XLXSJGBYZZ1_XLBZID,XLXSJGBYZZ1_DYDJID,XLXSJGBYZZ1_YZZ from XLXSJGBYZZ1 where XLXSJGBYZZ1_JGBID='{0}' and XLXSJGBYZZ1_YZID='{1}' ) sor on ( tar.XLXSCLQD_XLXHID=sor.XLXSJGBYZZ1_XLXHID and tar.XLXSCLQD_XLGGID=sor.XLXSJGBYZZ1_XLGGID and tar.XLXSCLQD_XLBZID=sor.XLXSJGBYZZ1_XLBZID and tar.XLXSCLQD_DYDJID=sor.XLXSJGBYZZ1_DYDJID and tar.XLXSCLQD_WPID='ZZZZ' and tar.XLXSCLQD_JGCZBID='{2}' and tar.XLXSCLQD_JGCZBBBID='{3}') when matched then update set tar.XLXSCLQD_SL{4}=sor.XLXSJGBYZZ1_YZZ ",sJGBID,sYZID, sJGCZBID, sJGCZBBBID, sCLQDL.Substring(1, 2))); dberp.ExecSQL(SQL); } ShowMessage("追加材料栏目成功!"); dberp.CommitTrans(); moduleGV_PageIndexChanging(null, null); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); return; } } } protected void btnRefreshDR_Click(object sender, EventArgs e) { //设置材料用量比例后更新材料成本 if (!String.IsNullOrEmpty(txtCLMXList.Value.Trim())) { string[] RowsArry; if (ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) { RowsArry = ContentGrid.CheckedRowIndexs.Split(new char[] { ',' }); } else { RowsArry = new string[1]; RowsArry[0] = ContentGrid.SelectedIndex.ToString(); } for (int j = 0; j < RowsArry.Length; j++) { string sXLXHID = ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSCLQD_XLXHID"].ToString().Trim(); string sXLGGID = ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSCLQD_XLGGID"].ToString().Trim(); string sST = ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSCLQD_XLBZID"].ToString().Trim(); string sDYDJ = ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSCLQD_DYDJID"].ToString().Trim(); //更新80列数量 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); dberp.BeginTrans(); try { string sGXCLJGBL = ""; double dCLJGBL = CMISproConvert.StrToFloat(txtCLJGBL.Value.Trim(), 1); string[] sCLArry = txtCLMXList.Value.Trim().Split(','); for (int i = 0; i < sCLArry.Length; i++) { if (sGXCLJGBL.Equals("")) { sGXCLJGBL = " XLXSCLQD_CLJGBL" + sCLArry[i].ToString().PadLeft(2, '0') + " =" + dCLJGBL; } else { sGXCLJGBL = sGXCLJGBL + " , XLXSCLQD_CLJGBL" + sCLArry[i].ToString().PadLeft(2, '0') + " =" + dCLJGBL; } } if (!sGXCLJGBL.Equals("")) { //Dictionary dicCLJG = new Dictionary(); dberp.ExecSQL(string.Format("update XLXSCLQD set " + sGXCLJGBL + " where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'" , sXLXHID , sXLGGID , sST , sDYDJ)); dberp.CommitTrans(); } } catch (Exception ex) { txtCLMXList.Value = ""; txtCLJGBL.Value = ""; dberp.RollbackTrans(); ShowMessage(ex.Message); return; } } } //更新完成后清空隐藏控件的值 txtCLMXList.Value = ""; txtCLJGBL.Value = ""; Master_OnStandardQuery(null, null); FormAreaUpdate(); } protected void btnSZCLJGBL_Click(object sender, EventArgs e) { txtCLJGBL.Value = ""; txtCLMXList.Value = ""; base.InitEntityByCondition(); if (!((ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) || (ContentGrid.SelectedIndex >= 0))) { ShowMessage("请选择记录!"); return; } TPageParams param = new TPageParams(); param.UrlPath = "CLQD_SZCLJGBL.aspx"; param.AddString("JGCZBID", CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]); param.AddString("JGCZBBBID", CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()); param.AddString("RefreshCtrlID", btnRefresh1.ClientID.Trim()); OpenDialog(param); } protected void btnJSCLZL_OnClick(object sender, EventArgs e) { base.InitEntityByCondition(); string sMsg = ""; if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sMsg = "将按结构尺重表依次重新计算材料重量,是否继续?"; } else sMsg = "将重新计算当前结构尺重表下的材料重量,是否继续?"; Confirm.Register("IsQD", sMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); UpdateCLZL(dberp, sql); ShowMessage("材料重量计算完成!"); moduleGV_PageIndexChanging(null, null); } protected void UpdateCLZL(TDatabase dberp, TSQL sql) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { UpdatCLZL(dberp, sql, CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0], CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()); } else { sql.Clear(); sql.Add("select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID from XLXSCLQD where XLXSCLQD_WPID ='ZZZZ' order by XLXSCLQD_JGCZBID "); DataSet dsCZB = dberp.OpenDataSet(sql); for (int i = 0; i < dsCZB.Tables[0].Rows.Count; i++) { string sJGCZBID = dsCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBID"].ToString().Trim(); string sJGCZBBBID = dsCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); UpdatCLZL(dberp, sql, sJGCZBID, sJGCZBBBID); } } } public static void UpdatCLZL(TDatabase dberp, TSQL sql, string sJGCZBID, string sJGCZBBBID) { sql.Clear(); sql.Add(" select XLJGCZBLM_CLQDL,XLXSBJCL_JTZ,XLXSBJCL_JLZ "); sql.Add(" from XLJGCZBLM "); sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID =:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" and isnull(XLXSBJCL_BJJZ,'Y')<>'N'");//报价计重 sql.Add(" order by XLJGCZBLM_CLQDL "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; DataSet ds = dberp.OpenDataSet(sql); sql.Clear(); sql.Add("update XLXSCLQD set "); if (ds.Tables[0].Rows.Count > 0) { sql.Add("XLXSCLQD_CLZL=("); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (i == 0) sql.Add(string.Format("XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); else sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } sql.Add("), "); sql.Add("XLXSCLQD_TZL=0"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["XLXSBJCL_JTZ"].ToString().Trim().Equals("Y"))//计铜重 { sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } } sql.Add(", "); sql.Add("XLXSCLQD_LZL=0"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["XLXSBJCL_JLZ"].ToString().Trim().Equals("Y"))//计铜重 { sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } } } else sql.Add("XLXSCLQD_CLZL=0,XLXSCLQD_TZL=0,XLXSCLQD_LZL=0"); sql.Add(" where XLXSCLQD_WPID ='ZZZZ' and XLXSCLQD_JGCZBID = :pJGCZBID and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; dberp.ExecSQL(sql); } public static void UpdateSHL(TDatabase dberp, TSQL sql, string sJGCZBID, string sJGCZBBBID, string sTJYS) { //先将材料损耗率全部清0 if (!string.IsNullOrEmpty(sJGCZBID)) { sql.Clear(); sql.Add("update XLXSCLQD set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=0,", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=0 "); sql.Add("where XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; dberp.ExecSQL(sql); } else { sql.Clear(); sql.Add("update XLXSCLQD set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=0,", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=0 "); sql.Add("where XLXSCLQD_WPID='ZZZZ'"); dberp.ExecSQL(sql); } //使用调价因素2或6或7“材料损耗系数”更新XLXSCLQD_SHL if (!string.IsNullOrEmpty(sJGCZBID)) { /* 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……) */ if (sTJYS.Equals("2")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID"); sql.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSCLQD_DYDJID"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_DTCLID,XLXSJGBYZZ2_BJCLID,sum(XLXSJGBYZZ2_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ2"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='2' and XLXSJGBYZZ2_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ2_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_DTCLID,XLXSJGBYZZ2_BJCLID"); sql.Add(" ) JGBYZZ2 on XLXSJGBYZZ2_CPYT=XLXHB_CPYT and (XLXSJGBYZZ2_DYDJFL=' ' or XLXSJGBYZZ2_DYDJFL=XLDYDJB_DYDJFL) and (XLXSJGBYZZ2_DTCLID=' ' or XLXSJGBYZZ2_DTCLID=XLXHB_DTCLID) and XLXSJGBYZZ2_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; dberp.ExecSQL(sql); } else if (sTJYS.Equals("6")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ6_XLXHID,XLXSJGBYZZ6_DYDJIDS,XLXSJGBYZZ6_BJCLID,sum(XLXSJGBYZZ6_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ6"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='6' and XLXSJGBYZZ6_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ6_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ6_XLXHID,XLXSJGBYZZ6_DYDJIDS,XLXSJGBYZZ6_BJCLID"); sql.Add(" ) JGBYZZ6 on XLXSJGBYZZ6_XLXHID=XLXSCLQD_XLXHID and (XLXSJGBYZZ6_DYDJIDS = ' ' or ',' || rtrim(XLXSJGBYZZ6_DYDJIDS) || ',' like '%,' || rtrim(XLXSCLQD_DYDJID) || ',%') and XLXSJGBYZZ6_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID "); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; dberp.ExecSQL(sql); } else if (sTJYS.Equals("7")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ7_BJCLID,sum(XLXSJGBYZZ7_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ7"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='7' and XLXSJGBYZZ7_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ7_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ7_BJCLID"); sql.Add(" ) JGBYZZ7 on XLXSJGBYZZ7_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID "); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; dberp.ExecSQL(sql); } } else { if (sTJYS.Equals("2")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID"); sql.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSCLQD_DYDJID"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_DTCLID,XLXSJGBYZZ2_BJCLID,sum(XLXSJGBYZZ2_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ2"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='2' and XLXSJGBYZZ2_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ2_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_DTCLID,XLXSJGBYZZ2_BJCLID"); sql.Add(" ) JGBYZZ2 on XLXSJGBYZZ2_CPYT=XLXHB_CPYT and (XLXSJGBYZZ2_DYDJFL=' ' or XLXSJGBYZZ2_DYDJFL=XLDYDJB_DYDJFL) and (XLXSJGBYZZ2_DTCLID=' ' or XLXSJGBYZZ2_DTCLID=XLXHB_DTCLID) and XLXSJGBYZZ2_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ'"); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); dberp.ExecSQL(sql); } else if (sTJYS.Equals("6")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ6_XLXHID,XLXSJGBYZZ6_DYDJIDS,XLXSJGBYZZ6_BJCLID,sum(XLXSJGBYZZ6_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ6"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='6' and XLXSJGBYZZ6_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ6_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ6_XLXHID,XLXSJGBYZZ6_DYDJIDS,XLXSJGBYZZ6_BJCLID"); sql.Add(" ) JGBYZZ6 on XLXSJGBYZZ6_XLXHID=XLXSCLQD_XLXHID and (XLXSJGBYZZ6_DYDJIDS = ' ' or ',' || rtrim(XLXSJGBYZZ6_DYDJIDS) || ',' like '%,' || rtrim(XLXSCLQD_DYDJID) || ',%') and XLXSJGBYZZ6_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ' "); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); dberp.ExecSQL(sql); } else if (sTJYS.Equals("7")) { sql.Clear(); sql.Add(" merge into XLXSCLQD tar "); sql.Add(" using ( "); sql.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,"); for (int i = 1; i < 80; i++) { sql.Add(string.Format("sum(case when XLJGCZBLM_CLQDL='{0}' then YZZ else 0 end) as SHL{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } sql.Add(" sum(case when XLJGCZBLM_CLQDL='第80列' then YZZ else 0 end) as SHL80"); sql.Add(" from XLXSCLQD"); sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" left join"); sql.Add(" (select XLXSJGBYZZ7_BJCLID,sum(XLXSJGBYZZ7_YZZ) as YZZ"); sql.Add(" from XLXSTZYZ,XLXSJGBYZZ7"); sql.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='7' and XLXSJGBYZZ7_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ7_YZID=XLXSTZYZ_YZID"); sql.Add(" group by XLXSJGBYZZ7_BJCLID"); sql.Add(" ) JGBYZZ6 on XLXSJGBYZZ7_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLXSCLQD_WPID='ZZZZ' "); sql.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); sql.Add(" ) sor "); sql.Add(" on( "); sql.Add(" XLXSCLQD_XLXHID=XLXHID and XLXSCLQD_XLGGID=XLGGID and XLXSCLQD_XLBZID=XLBZID and XLXSCLQD_DYDJID=DYDJID"); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" ) "); sql.Add(" when matched then update set "); for (int i = 1; i < 80; i++) { sql.Add(string.Format("XLXSCLQD_SHL{0}=isnull(SHL{0},0),", i.ToString().PadLeft(2, '0'))); } sql.Add("XLXSCLQD_SHL80=isnull(SHL80,0) "); dberp.ExecSQL(sql); } } } public static void UpdatCLZL(TDatabase dberp, TSQL sql, string sJGCZBID, string sJGCZBBBID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) { sql.Clear(); sql.Add(" select XLJGCZBLM_CLQDL,XLXSBJCL_JTZ,XLXSBJCL_JLZ "); sql.Add(" from XLJGCZBLM "); sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID =:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" and isnull(XLXSBJCL_BJJZ,'Y')<>'N'");//报价计重 sql.Add(" order by XLJGCZBLM_CLQDL "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; DataSet ds = dberp.OpenDataSet(sql); sql.Clear(); sql.Add("update XLXSCLQD set "); if (ds.Tables[0].Rows.Count > 0) { sql.Add("XLXSCLQD_CLZL=("); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (i == 0) sql.Add(string.Format("XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); else sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } sql.Add("), "); sql.Add("XLXSCLQD_TZL=0"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["XLXSBJCL_JTZ"].ToString().Trim().Equals("Y"))//计铜重 { sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } } sql.Add(", "); sql.Add("XLXSCLQD_LZL=0"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["XLXSBJCL_JLZ"].ToString().Trim().Equals("Y"))//计铜重 { sql.Add(string.Format("+XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""))); } } } else sql.Add("XLXSCLQD_CLZL=0,XLXSCLQD_TZL=0,XLXSCLQD_LZL=0"); sql.Add(" where XLXSCLQD_WPID ='ZZZZ' and XLXSCLQD_JGCZBID = :pJGCZBID and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID"); sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pXLBZID").Value = sXLBZID; sql.ParamByName("pDYDJID").Value = sDYDJID; dberp.ExecSQL(sql); } //计算材料损耗率 protected void btnJSSHL_OnClick(object sender, EventArgs e) { //查询调价因素为‘2、6、7’的调价因子 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSTZYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_TJYS from XLXSTZYZ "); sql.Add("where XLXSTZYZ_MXBH='JZJ' and (XLXSTZYZ_TJYS='2' or XLXSTZYZ_TJYS='6' or XLXSTZYZ_TJYS='7') "); sql.Add("order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count <= 0) { ShowMessage("还没有指定调整材料损耗率的因子!"); return; } string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(); string sYZMCList = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sYZMCList += ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + ","; } sYZMCList = sYZMCList.TrimEnd(','); base.InitEntityByCondition(); string sMsg = ""; if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sMsg = string.Format("所有尺重表下的材料损耗率都将全部清0,并按【{0}】重新设置,是否继续?", sYZMCList); } else sMsg = string.Format("当前尺重表下的材料损耗率将全部清0,并按【{0}】重新设置,是否继续?", sYZMCList); Confirm.Register("IsQD", sMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } UpdateSHL(dberp, sql, CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0], CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(), sTJYS); UpdateCLZL(dberp, sql); ShowMessage("材料损耗率计算完成、材料重量也一并更新了!"); } protected void btnPX_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: sort_XHBZGGDY(); break; } } //型号+标准+规格+电压等级 private void sort_XHBZGGDY() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); 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 XLXSCLQD a "); SQL.Add(" using "); SQL.Add("( "); SQL.Add(" select XLXHID,XLGGID,XLBZID,DYDJID,min(XH) AS XH from "); SQL.Add(" ( "); SQL.Add(" select "); SQL.Add(" XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID, "); SQL.Add(" XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID, "); SQL.Add(" row_number() "); SQL.Add(" over(order by XLXSCLQD_XLXHID,XLXSCLQD_XLBZID,XLGGB_XH,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID ) as XH "); SQL.Add(" from XLXSCLQD"); SQL.Add(" left join XLGGB on XLGGB_XLGGID=replace(XLXSCLQD_XLGGID,'*','×') "); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" ) c "); SQL.Add(" group by XLXHID,XLGGID,XLBZID,DYDJID "); SQL.Add(" ) b "); SQL.Add(" on( "); SQL.Add(" a.XLXSCLQD_XLXHID=b.XLXHID "); SQL.Add(" and a.XLXSCLQD_XLGGID=b.XLGGID "); SQL.Add(" and a.XLXSCLQD_XLBZID=b.XLBZID "); SQL.Add(" and a.XLXSCLQD_DYDJID=b.DYDJID "); SQL.Add(" ) "); SQL.Add(" when matched then update set a.XLXSCLQD_XH=b.XH "); string s = SQL.Text; dberp.ExecSQL(SQL); moduleGV_PageIndexChanging(null, null); FormAreaUpdate(); ShowMessage("已按照型号、标准、规格、电压等级排序"); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); return; } } #endregion } }