using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Data; using GThinking.N_PUBLIC; using System.Text; using GThinking.N_MISPRO.Utility; using GThinking.N_CONTROL; using GThinking.N_COMPRESS; using System.Collections.Generic; using GThinking.N_MISPRO.TableCache; using System.Data.OleDb; using System.IO; using System.Web.UI.MobileControls; using System.Xml; using GThinking.N_PUBLIC2; using GThinking.N_WORKFLOW; using GThinking.N_MISPROAS.Services; using GThinking.N_MISPRO.MISPROAS; using PdfSharp.Pdf; using PdfSharp.Drawing; using System.Drawing.Text; using PdfSharp.Drawing.Layout; using PdfSharp; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { public partial class XLJGB_JGBMXList : SingleGridBase { XLJGB_JGBMX entity = new XLJGB_JGBMX(); XLJGB_JGBMX_M qryEntity = new XLJGB_JGBMX_M(); static string sTBBZ = ""; static bool bALLD = false; protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860001; this.UMName = "线缆销售报价价格表"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurEntity = entity; this.CurQueryEntity = qryEntity; this.sURLTarget = "XLJGB_JGBMXInfo.aspx"; this.sQueryURLTarget = "XLJGB_JGBMXQuery.aspx"; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "XLXSJGBMX_JGBID", "XLXSJGBMX_XH", "XLXSJGB_TJYS" }; if (!IsPostBack) { qryEntity.FieldByName("MXBH").Value = "JGB"; qryEntity.FieldByName("XLXHIDJQPP").Value = "True"; } if (PageParam.ContainsKey("FromJGBML")) { if (!IsPostBack) { qryEntity.FieldByName("MXBH").Value = PageParam.GetRTrimString("MXBH"); qryEntity.FieldByName("JGBID").Value = PageParam.GetRTrimString("JGBID"); } } if (PageParam.ContainsKey("XLXHID")) { if (!IsPostBack) { qryEntity.FieldByName("MXBH").Value = PageParam.GetRTrimString("MXBH"); qryEntity.FieldByName("JGBID").Value = PageParam.GetRTrimString("JGBID"); qryEntity.FieldByName("XLXHID").Value = PageParam.GetRTrimString("XLXHID"); } } CurEntity.EntityFields["XLXSJGBMX_JGBID"].PrintVisible = false; int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; CanDeleteCheckedRows = true; base.InitPage(); sTBBZ = ""; this.Master.StandardEditButton.OnClientClick = ""; this.Master.StandardEditButton.Click += new EventHandler(StandardEditButton_Click); SetBtnVisble(); if (!IsPostBack) { if (PageParam.ContainsKey("XLXHID")) { Master_OnStandardQuery(null, null); } else if (PageParam.ContainsKey("FromJGBML")) { if (GetOption("BJU034") == "Y") Master_OnStandardQuery(null, null); else { if (base.IsDefaultExecute) Master_OnStandardQuery(null, null); } } else { if (base.IsDefaultExecute) Master_OnStandardQuery(null, null); else { this.Master.StandardNewButton.OnClientClick = "alert('请先查询价格表!');"; this.Master.StandardCopyButton.OnClientClick = "alert('请先查询价格表!');"; InitGridView(); } } } if (Request.Form["BBYS"] != null) { string sRepXML = Request.Form["BBYS"].ToString(); string sJGBID = Request.Form["JGBID"].ToString(); string sJGCIDS = Request.Form["JGCIDS"].ToString(); string sBJU003 = Request.Form["BJU003"].ToString(); string sDefaultXLBZID = Request.Form["sDefaultXLBZID"].ToString(); string sYXQS = Request.Form["YXQS"].ToString(); string sYXQZ = Request.Form["YXQZ"].ToString(); ReadBBYS(sRepXML, sJGBID, sJGCIDS, sBJU003, sDefaultXLBZID, sYXQS, sYXQZ); } if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { TPageParams tpp = new TPageParams(); tpp.AddString("FromJGBML", "Y"); tpp.AddString("JGBID", PageParam.GetRTrimString("JGBID")); QueryPageParam = tpp; } } #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); string sBJU035 = GetOption("BJU035"); string sJJLY = ""; string sBJLY = ""; string sTJYS = ""; string sYXQS = ""; string sYXQZ = ""; string sMXBH = ""; string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } JGBMLXX jgbxx = XLBJDUtils.GetXLXSJGBXX(sJGBID, sQRMXBH); if (!string.IsNullOrEmpty(jgbxx.XLXSJGB_JGBID)) { txtJGCIDS.Value = jgbxx.XLXSJGB_JGCIDS; sBJLY = jgbxx.XLXSJGB_BJLY; sYXQS = jgbxx.XLXSJGB_YXQS; sYXQZ = jgbxx.XLXSJGB_YXQZ; txtJGBMC.Value = jgbxx.XLXSJGB_JGBMC; sTJYS = jgbxx.XLXSJGB_TJYS; sJJLY = jgbxx.XLXSJGB_JJLY; sMXBH = jgbxx.XLXSJGB_MXBH; if (jgbxx.XLXSJGB_BJLY.Equals("J")) { btnDR.Visible = false; btnPLSZ.Visible = true; btnCLJJ.Visible = true; } else if (jgbxx.XLXSJGB_BJLY.Equals("C")) { btnDR.Visible = false; btnPLSZ.Visible = false; btnCLJJ.Visible = true; } else { //==D btnDR.Visible = true; btnPLSZ.Visible = false; btnCLJJ.Visible = true; } if (sMXBH.Equals("JGF")) { btnDR.Visible = true; btnPLSZ.Visible = false; btnCLJJ.Visible = false; } if (jgbxx.XLXSJGB_TJYS.Equals("1") && jgbxx.XLXSJGB_JJLY.Equals("A") && jgbxx.XLXSJGB_BJLY.Equals("J")) btnBJZSDC.Visible = true; else btnBJZSDC.Visible = false; } else { txtJGCIDS.Value = ""; btnDR.Visible = false; btnPLSZ.Visible = false; btnCLJJ.Visible = false; btnBJZSDC.Visible = false; } //3|表价(现行价)=基价(出厂价+材料价价差)&调价----按型号加点对照表扩充 btnXHJDDZKC.Visible = false; txtMXBH.Value = sQRMXBH; txtJGBID.Value = sJGBID; txtJGCZBID.Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; txtJGCZBBBID.Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); txtBJLY.Value = sBJLY; txtYXQS.Value = sYXQS; txtYXQZ.Value = sYXQZ; txtTJYS.Value = sTJYS; txtJJLY.Value = sJJLY; txtJGBIDS.Value = GetJGBIDS(txtJGBID.Value, txtMXBH.Value); if (sBJLY.Equals("D") || sJJLY.Equals("D")) { btnBJCPXD.Enabled = true; } else btnBJCPXD.Enabled = false; InitGridView(); entity.EntityTable.QuerySelSql = GetSQL(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(ContentGrid, tSession); if (sJGBID.Equals("")) { this.Master.StandardNewButton.OnClientClick = "alert('请先查询价格表!');"; this.Master.StandardCopyButton.OnClientClick = "alert('请先查询价格表!');"; } else { this.Master.StandardNewButton.OnClientClick = "OpenCardForm('INSERT');return false;"; this.Master.StandardCopyButton.OnClientClick = "OpenCardForm('COPY');return false;"; //如果是查询组合产品目录价格表 if (txtBJLY.Value.Equals("C")) { if (!IsPostBack)//首次打开需要补上这一段,否则按钮还是可用状态 { Master.RightNewBtn = false; Master.RightCopyBtn = false; Master.RightEditBtn = false; Master.RightDeleteBtn = false; } Master.StandardNewButton.Enabled = false; Master.StandardCopyButton.Enabled = false; Master.StandardEditButton.Enabled = false; Master.StandardDeleteButton.Enabled = false; btnPLSZ.Enabled = false; btnCLJJ.Nodes[0].Enabled = false; btnCLJJ.Nodes[1].Enabled = false; btnCLJJ.Nodes[2].Enabled = false; btnCLJJ.Nodes[3].Enabled = false; if (DSActiveModule.IsActiveModule(100860038)) { if (txtJJLY.Value.Equals("D") || txtJJLY.Value.Equals("A")) { btnXHJDDZKC.Visible = true; } } } else { if (!txtJGBIDS.Value.Trim().Equals("")) { if (!IsPostBack)//首次打开需要补上这一段,否则按钮还是可用状态 { Master.RightNewBtn = false; Master.RightCopyBtn = false; Master.RightEditBtn = false; Master.RightDeleteBtn = false; } Master.StandardNewButton.Enabled = false; Master.StandardCopyButton.Enabled = false; Master.StandardEditButton.Enabled = false; Master.StandardDeleteButton.Enabled = false; } else { Master.StandardNewButton.Enabled = true; Master.StandardCopyButton.Enabled = true; Master.StandardEditButton.Enabled = true; Master.StandardDeleteButton.Enabled = true; } if (txtTJYS.Value.Trim().Equals("3")) { //btnPLSZ.Enabled = false; btnCLJJ.Nodes[3].Enabled = false; if (DSActiveModule.IsActiveModule(100860038)) { btnXHJDDZKC.Visible = true; } } else { btnPLSZ.Enabled = true; btnCLJJ.Nodes[0].Enabled = true; btnCLJJ.Nodes[1].Enabled = true; //调价因素为“0|表价(成本价)=基价(材料价)&调价”或“1|表价(出厂价)=基价(成本价)&调价”时,控制“基价”按钮下的“检查”菜单不显示、增加显示“按尺重表同步”菜单 if (txtTJYS.Value.Trim().Equals("0") || txtTJYS.Value.Trim().Equals("1")) { btnCLJJ.Nodes[2].Enabled = false; btnCLJJ.Nodes[3].Enabled = true; if (txtJJLY.Value.Equals("D") || txtBJLY.Value.Equals("D") || txtJJLY.Value.Equals("A")) { if (XLBJDUtils.GetXLXSJGBXXByJGBID(txtJGBID.Value.Trim()).HasJGBIDS()) { btnCLJJ.Nodes[3].Enabled = false; } if (DSActiveModule.IsActiveModule(100860038)) { btnXHJDDZKC.Visible = true; } } if (txtTJYS.Value.Trim().Equals("1") && XLJGB_CLJGTZList.NeedJGBJJFP()) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGB_JGBID from XLXSJGB where ','||rtrim(isnull(XLXSJGB_JGBIDS,' '))||',' like '{0}'", "%," + txtJGBID.Value.Trim() + ",%"))) { btnCLJJ.Nodes[0].Enabled = false; btnCLJJ.Nodes[3].Enabled = false; } } } else if (txtTJYS.Value.Trim().Equals("2")) { btnCLJJ.Nodes[2].Enabled = true; btnCLJJ.Nodes[3].Enabled = false; } } if (!string.IsNullOrEmpty(sBJU035)) { if (!sBJU035.Contains(txtTJYS.Value.Trim())) { btnXHJDDZKC.Visible = false; } } } } TPageParams pageParams = new TPageParams(); pageParams.AddString("MXBH", sQRMXBH); pageParams.AddString("XLXSJGBMX_JGBID", sJGBID); pageParams.AddString("BJLY", txtBJLY.Value); pageParams.AddString("JJLY", txtJJLY.Value); if (!PageParam.GetRTrimString("XLXHID").Equals("")) pageParams.AddString("XLXHID", PageParam.GetRTrimString("XLXHID").Trim()); SetNewFormParam(pageParams); } protected override void BeforeDelete(TDatabase db, ref bool ActionIsDone) { entity.Param.Add("XLXSJGBMX_JGBID", this.ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString()); entity.Param.Add("XLXSJGBMX_XH", this.ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString()); base.BeforeDelete(db, ref ActionIsDone); } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { bool bReturn = base.Master_BeforeDeleteAction(sender, e); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=:pXH"); SQL.ParamByName("pJGBID").Value = ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(); SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString()); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (!GetJGBTJYS(ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim()).Equals("2")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDMX left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID where XLXSBJD_JGBID='{0}' and XLXSBJDMX_XLXHID='{1}' and XLXSBJDMX_XLGGID='{2}' and XLXSBJDMX_XLBZID='{3}' and XLXSBJDMX_DYDJID='{4}'", ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString()))) { ShowMessage("已被报价单使用,不允许删除!"); return false; } } } SQL.Clear(); SQL.Add(" select top 1 XLXSJGBMX_XH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_SYXH=:pXH"); SQL.ParamByName("pJGBID").Value = ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(); SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString()); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("当前记录已有衍生记录,不允许删除!"); return false; } base.InitEntityByCondition(); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sMXBH = PageParam.GetRTrimString("MXBH"); } JGBMLXX jgbxx = XLBJDUtils.GetXLXSJGBXX(sJGBID, sMXBH); if (jgbxx.XLXSJGB_TJZT == "W" || jgbxx.XLXSJGB_TJZT == "J") { ShowMessage("正在同步计算中,不允许删除!"); return false; } return bReturn; } protected override bool Master_AfterDeleteAction(object sender, EventArgs e) { if (!base.Master_AfterDeleteAction(sender, e)) return false; base.InitEntityByCondition(); InitGridView(); entity.EntityTable.QuerySelSql = GetSQL(); entity.GridDataBind(ContentGrid, tSession); ContentGrid.SelectedIndex = -1; return true; } protected override void AfterDelete(TDatabase db, ref bool ActionIsDone) { db.ExecSQL(string.Format("delete from XLXSJGBYZZ0 where XLXSJGBYZZ0_JGBID ='{0}' and XLXSJGBYZZ0_XH={1}", this.ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(), this.ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString())); db.ExecSQL(string.Format("delete from XLXSJGBCLQD where XLXSJGBCLQD_JGBID ='{0}' and XLXSJGBCLQD_XH={1}", this.ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(), this.ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString())); db.ExecSQL(string.Format("delete from XLXSJGBCLQDWL where XLXSJGBCLQDWL_JGBID ='{0}' and XLXSJGBCLQDWL_XH={1}", this.ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(), this.ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString())); db.ExecSQL(string.Format("delete from XLXSJGBYLLM where XLXSJGBYLLM_JGBID='{0}' and not exists(select 1 from XLXSJGBCLQD where XLXSJGBCLQD_JGBID=XLXSJGBYLLM_JGBID and XLXSJGBYLLM_JGCZBID=XLXSJGBCLQD_JGCZBID and XLXSJGBYLLM_JGCZBBBID=XLXSJGBCLQD_JGCZBBBID and XLXSJGBYLLM_JJFPSJ=XLXSJGBCLQD_JJFPSJ)", this.ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim())); base.AfterDelete(db, ref ActionIsDone); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); InitGridView(); entity.EntityTable.QuerySelSql = GetSQL(); 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("XLXSJGBMX_JGBID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSJGBMX_JGBID"].ToString().Trim()); LinkPageParam.AddString("XLXSJGBMX_XH", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSJGBMX_XH"].ToString().Trim()); LinkPageParam.AddString("TJYS", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSJGB_TJYS"].ToString().Trim()); LinkPageParam.AddString("MXBH", txtMXBH.Value); LinkPageParam.AddString("BJLY", txtBJLY.Value); LinkPageParam.AddString("JJLY", txtJJLY.Value); LinkPageParam.AddString("JGBIDS", txtJGBIDS.Value); try { int index_WSBJ = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("XLXSJGBMX_WSBJ")) + 1; int index_HSBJ = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("XLXSJGBMX_HSBJ")) + 1; if ((CMISproConvert.StrToFloat(ContentGrid.DataKeys[e.Row.RowIndex]["XLXSJGBMX_WSBJ"].ToString().Trim()) < 0) || (CMISproConvert.StrToFloat(ContentGrid.DataKeys[e.Row.RowIndex]["XLXSJGBMX_HSBJ"].ToString().Trim()) < 0)) { for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[index_WSBJ].Style.Add(HtmlTextWriterStyle.Color, "#ff0000"); e.Row.Cells[index_HSBJ].Style.Add(HtmlTextWriterStyle.Color, "#ff0000"); } } } catch { } } base.moduleGV_RowDataBound(sender, e); } protected void StandardEditButton_Click(object sender, EventArgs e) { if (ContentGrid.SelectedIndex < 0) { ShowMessage("请选择处理记录!"); return; } string sJGBID = ContentGrid.SelectedDataKey["XLXSJGBMX_JGBID"].ToString().Trim(); string sXH = ContentGrid.SelectedDataKey["XLXSJGBMX_XH"].ToString().Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=:pXH"); sql.ParamByName("pJGBID").Value = sJGBID; sql.ParamByName("pXH").Value = CMISproConvert.StrToFloat(sXH); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDMX left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID where XLXSBJD_JGBID='{0}' and XLXSBJDMX_XLXHID='{1}' and XLXSBJDMX_XLGGID='{2}' and XLXSBJDMX_XLBZID='{3}' and XLXSBJDMX_DYDJID='{4}'", sJGBID, ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString()))) { ShowMessage("已被报价单使用,不允许编辑!"); return; } } base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } JGBMLXX jgbxx = XLBJDUtils.GetXLXSJGBXX(sQRJGBID, sQRMXBH); if (jgbxx.XLXSJGB_TJZT == "W" || jgbxx.XLXSJGB_TJZT == "J") { ShowMessage("正在同步计算中,不允许编辑!"); return; } TPageParams App = new TPageParams(); App.UrlPath = this.sURLTarget; App.CallAction = TPageCallAction.pcaEdit; App.AddString("XLXSJGBMX_JGBID", sJGBID); App.AddString("XLXSJGBMX_XH", sXH); App.AddString("TJYS", ContentGrid.SelectedDataKey["XLXSJGB_TJYS"].ToString().Trim()); App.AddString("MXBH", txtMXBH.Value); App.AddString("BJLY", txtBJLY.Value); App.AddString("JJLY", txtJJLY.Value); App.AddString("JGBIDS", txtJGBIDS.Value); OpenDialog(App); } protected override void OnReportUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) { string[] Param; Param = Params.Split(','); if (Name.Trim().ToUpper() == "GETHSBJ") { ValueType = "N"; if (Param.Length >= 5) { Value = XLBJDUtils.GetHSBJ(Param[0], Param[1], Param[2], Param[3], Param[4]).ToString(); } else { Value = "0"; } } } #endregion #region 自定义函数 private string GetSQL() { string[] sYZIDs = txtYZIDList.Value.Split(','); string sBJU018 = GetOption(100860000, "BJU018"); int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine("select rtrim(XLXSJGBMX_JGBID)||'|'||XLXSJGB_JGBMC as JGBXX,XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,RTRIM(XLXSJGBMX_XLBZID)||'|'||XLBZ_XLBZLXMC as XLBZ,XLXSJGBMX_DYDJID,"); sSQL.AppendLine("XLXSJGBMX_JLDW as JLDW,"); sSQL.AppendLine(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_CJ,round(XLXSJGBYZZ0_YZZ01*100*100/81.2655989526499/71.3980341706337,6) as SCRGF,"); if (sBJU018.Equals("Y")) { sSQL.AppendLine(" case when XLXSJGBMX_WSJJM <> 0 then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end as XLXSJGBMX_WSJJ,"); sSQL.AppendLine(" case when XLXSJGBMX_HSJJM <> 0 then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end as XLXSJGBMX_HSJJ, "); sSQL.AppendLine(" case when XLXSJGBMX_HSBJM <> 0 then RoundFix(XLXSJGBMX_HSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_HSBJ end as XLXSJGBMX_HSBJ,"); sSQL.AppendLine(" case when XLXSJGBMX_WSBJM <> 0 then RoundFix(XLXSJGBMX_WSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_WSBJ end as XLXSJGBMX_WSBJ, "); } else sSQL.AppendLine(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ, "); sSQL.AppendLine(" XLXSJGBMX_SYXH, XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,XLXSJGB_TJYS "); //for (int i = 0; i < sYZIDs.Length; i++) //{ // if (!sYZIDs[i].Trim().Equals("")) // sSQL.AppendLine(string.Format(",TZYZ_{0}", sYZIDs[i].Trim())); //} sSQL.AppendLine(" ,XLXSJGBYZZ0_YZZ01 as TZYZ_JZ01,XLXSJGBYZZ0_YZZ02 as TZYZ_JZ02,XLXSJGBYZZ0_YZZ03 as TZYZ_JZ03,XLXSJGBYZZ0_YZZ04 as TZYZ_JZ04,XLXSJGBYZZ0_YZZ05 as TZYZ_JZ05 "); sSQL.AppendLine(" ,XLXSJGBYZZ0_YZZ06 as TZYZ_JZ06,XLXSJGBYZZ0_YZZ07 as TZYZ_JZ07,XLXSJGBYZZ0_YZZ08 as TZYZ_JZ08,XLXSJGBYZZ0_YZZ09 as TZYZ_JZ09,XLXSJGBYZZ0_YZZ10 as TZYZ_JZ10 "); sSQL.AppendLine(" from XLXSJGBMX "); sSQL.AppendLine(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_Q on XLXSBJXLGGTHB_Q.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); sSQL.AppendLine(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { sSQL.AppendLine(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { sSQL.AppendLine(" left join XLXHB on XLXHB_XLXHID = XLXSJGBMX_XLXHID "); } sSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sSQL.AppendLine(" left join XLXSJGB on XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=XLXSJGBMX_JGBID "); sSQL.AppendLine("where 1=1 "); if (txtBJLY.Value.Equals("C"))//组合产品目录价格表 { sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", txtJGCIDS.Value.Trim())); entity.Param.Add("pMXBH", "JGC"); } else { sSQL.AppendLine(" and XLXSJGBMX_JGBID=:pJGBID "); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!IsPostBack) { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sMXBH = PageParam.GetRTrimString("MXBH"); } } entity.Param.Add("pJGBID", sJGBID); entity.Param.Add("pMXBH", sMXBH); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sSQL.AppendLine("\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.AppendLine("\r\n and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); entity.Param.Add("pJGCZBBBID", CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { sSQL.AppendLine("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID2 "); entity.Param.Add("pJGCZBID2", CurQueryEntity.FieldByName("JGCZBID2").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WCLQD").Value.Trim())) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WCLQD").Value.Trim())) { if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("1")) { sSQL.AppendLine("\r\n and exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("2")) { sSQL.AppendLine("\r\n and NOT exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } } } //外购产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WGCP").Value.Trim())) { if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("1")) { sSQL.AppendLine("\r\n and exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("2")) { sSQL.AppendLine("\r\n and NOT exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } } //线缆产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLCP").Value.Trim())) { if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("1")) { sSQL.AppendLine("\r\n and exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("2")) { sSQL.AppendLine("\r\n and NOT exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WJGBYS1").Value.Trim())) { sSQL.AppendLine("\r\n and NOT exists(SELECT 1 FROM XLXSJGBYZZ1 WHERE XLXSJGBYZZ1_YZID=:pYZID AND XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID AND XLXSJGBYZZ1_XLBZID=XLXSJGBMX_XLBZID "); sSQL.AppendLine("\r\n AND XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID) "); entity.Param.Add("pYZID", CurQueryEntity.FieldByName("WJGBYS1").Value.Trim()); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sSQL.AppendLine(" \r\n and XLXSJGBMX_XLXHID like :pXLXHID "); entity.Param.Add("pXLXHID", "%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%"); } } else { string sXLXHID = CurQueryEntity.FieldByName("XLXHID").Value.Trim(); if (!string.IsNullOrEmpty(sXLXHID)) { string[] sTemp = sXLXHID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { sSQL.AppendLine(" \r\n and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHID)); } else { sSQL.AppendLine(" \r\n and XLXSJGBMX_XLXHID = :pXLXHID "); entity.Param.Add("pXLXHID", sXLXHID); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { sSQL.AppendLine(" \r\n and XLXHB_DTCLID = :pDTCLID "); entity.Param.Add("pDTCLID", CurQueryEntity.FieldByName("DTCLID").Value.Trim()); } //规格模糊 if (!CurQueryEntity.FieldByName("XLGGIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim())) { sSQL.AppendLine(" and XLXSBJXLGGTHB_Q.XLXSBJXLGGTHB_XLGGIDCH 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.AppendLine(" and " + CMISproDataBase.GetWhereEqual(" XLXSBJXLGGTHB_Q.XLXSBJXLGGTHB_XLGGIDCH", sXLGGID.Replace('*', '×'))); } else { sSQL.AppendLine(" and XLXSBJXLGGTHB_Q.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); entity.Param.Add("pXLGGID", CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×")); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim())) { sSQL.AppendLine(" and XLXSJGBMX_XLBZID = :pST "); entity.Param.Add("pST", CurQueryEntity.FieldByName("ST").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { sSQL.AppendLine(" and XLXSJGBMX_DYDJID = :pDYDJ "); entity.Param.Add("pDYDJ", CurQueryEntity.FieldByName("DYDJ").Value.Trim()); } //价格核查 //空、1-表价<0、2-表价<基价、3-表价=基价、4-表价>基价 if (!CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("")) { if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("1")) { sSQL.AppendLine(" and (XLXSJGBMX_WSBJ < 0 or XLXSJGBMX_HSBJ < 0)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("2")) { sSQL.AppendLine(" and (XLXSJGBMX_WSBJ < XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ < XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("3")) { sSQL.AppendLine(" and (XLXSJGBMX_WSBJ = XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ = XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("4")) { sSQL.AppendLine(" and (XLXSJGBMX_WSBJ > XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ > XLXSJGBMX_HSJJ)"); } } //4、若“零值因子”选中‘JZ01’,则查询时限制isnull(XLXSJGBYZZ0_YZZ01,0)=0 if (!CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Equals("")) { string sTmpJZ = CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Replace("JZ", ""); sSQL.AppendLine(" and isnull(XLXSJGBYZZ0_YZZ" + sTmpJZ + ",0)=0"); } sSQL.AppendLine("order by XLXSJGBMX_JGBID, XLXSJGBMX_XSXH "); return sSQL.ToString(); } private void InitGridView() { if (!txtBJLY.Value.Equals("C"))//组合产品目录价格表 ContentGrid.FindColumnByFieldName("JGBXX").Visible = false; int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; //base.InitEntityByCondition(); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); } List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); txtYZIDList.Value = ""; string sBJU018 = GetOption(100860000, "BJU018"); if (sBJU018.Equals("Y")) { AddColumn("XLXSJGBMX_WSJJ", "无税基价", 6, 80); AddColumn("XLXSJGBMX_HSJJ", "含税基价", 6, 80); } else { AddColumn("XLXSJGBMX_WSJJ", "无税基价", iXSWS, 80); AddColumn("XLXSJGBMX_HSJJ", "含税基价", iXSWS, 80); } AddColumn("SCRGF", "生产人工费", iXSWS, 80); foreach (TZYZXX yzxx in yzxx_List) { if (yzxx.XLXSTZYZ_JJFS.Trim().Equals("JJ")) AddColumn("TZYZ_" + yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim() + "(元)", iXSWS, 80); else AddColumn("TZYZ_" + yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim() + "(%)", XLBJDUtils.JGBYZZDecimal, 80); txtYZIDList.Value += yzxx.XLXSTZYZ_YZID.Trim() + ","; } txtYZIDList.Value = txtYZIDList.Value.TrimEnd(','); AddColumn("XLXSJGBMX_WSBJ", "无税表价", iXSWS, 80); AddColumn("XLXSJGBMX_HSBJ", "含税表价", iXSWS, 80); AddColumn("XLXSJGBMX_CJ", "厂价", iXSWS, 80); AddColumn("XLXSJGBMX_BZ", "备注", 150); AddColumn("XLXSJGBMX_WHR", "维护人", 72); AddColumn("XLXSJGBMX_WHSJ", "维护时间", TDateTimeEditKinds.dtDateTime); } //因素1导入同步出厂价 private void DRCLCB_1(TDatabase dberp, string sMXBH, string sJGBID, string sJGBIDS, int iXSWS, string sJSBLFS) { string sBJU003 = GetOption(100860000,"BJU003"); string sKZBZ = "N"; try { //导入:即将区域价所依的出厂价作为无税基价、含税基价导入区域价 dberp.BeginTrans(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_JGBID={0}", sJGBID))) { string 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(); } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_SYXH<>0 and XLXSJGBMX_JGBID={0}", sJGBID))) sKZBZ = "Y"; Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-delete-XLXSJGBMX-Begin")); dberp.ExecSQL(string.Format("delete from XLXSJGBMX where XLXSJGBMX_JGBID='{0}'", sJGBID)); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-delete-XLXSJGBMX-End")); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-delete-XLXSJGBYZZ0-Begin")); dberp.ExecSQL(string.Format("delete from XLXSJGBYZZ0 where XLXSJGBYZZ0_JGBID='{0}'", sJGBID)); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-delete-XLXSJGBYZZ0-End")); } Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-InsertCLCB_CCJasJJ-Begin")); InsertCLCB_CCJasJJ(dberp, tSession, sJGBID, sJGBIDS); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-InsertCLCB_CCJasJJ-End")); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-DoCPJJ-Begin")); XLJGB_CLJGTZList.DoCPJJ(dberp, sMXBH, sJGBID, true, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-DoCPJJ-End")); //若需要进行扩展,则在扩展方法里扩展后排序 if (!sKZBZ.Equals("Y")) { JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, sMXBH); } dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return; } if (sKZBZ.Equals("Y")) { sTBBZ = "D"; btnXHJDDZKC_Click(null, null); } else { ShowMessage("导入基价完成!"); } Master_OnStandardQuery(null, null); FormAreaUpdate(); } //sJSBLFS|计算保留方式:R|四舍五入法、C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) private void TBCLCB_1(string sMXBH, string sJGBID, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sJJLY, string sJGBIDS) { if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } string sBJU003 = GetOption(100860000, "BJU003"); TDatabase DBERP = TContextDatabases.GetDatabase("DBERP"); if (sJGBIDS.Equals("")) { bool bUpdateByJCZB = false;//按尺重表同步 if (!sJGCZBID.Trim().Equals("") && !sJGCZBBBID.Trim().Equals("")) bUpdateByJCZB = true; TSQL tmpSQL = new TSQL(DBERP); DataSet dsJGB2 = null; bool bNeedTB = false; tmpSQL.Clear(); tmpSQL.Add("select XLXSJGB_JGBID,XLXSJGB_JGBMC,XLXSJGB_JGBIDS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_TJYS='2'"); tmpSQL.Add(" and isnull(XLXSJGB_JGBIDS,' ')<>' ' and ','||rtrim(isnull(XLXSJGB_JGBIDS,' '))||',' like :pJGBID"); tmpSQL.Add(" order by XLXSJGB_JGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = "%," + sJGBID + ",%"; dsJGB2 = DBERP.OpenDataSet(tmpSQL); //如果当前价格表存在关联的区域价价格表,则进行询问 if (dsJGB2.Tables[0].Rows.Count > 0) { string sMsg = bUpdateByJCZB ? ("将同步当前价格表下尺重表【" + sJGCZBID.Trim() + "|" + sJGCZBBBID.Trim() + "】包含产品的基价、表价,是否一并执行如下区域价的同步操作?" + "\r\n") : ("是否一并执行如下区域价的同步操作?" + "\r\n"); for (int i = 0; i < dsJGB2.Tables[0].Rows.Count; i++) { sMsg += dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim() + "|" + dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim() + "\r\n"; } 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 false; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //是 bNeedTB = true; Confirm.Clear(); } } else { string sMsg = bUpdateByJCZB ? "将同步当前价格表下尺重表【" + sJGCZBID.Trim() + "|" + sJGCZBBBID.Trim() + "】包含产品的基价、表价,是否继续?" : "将同步当前价格表的基价、表价,是否继续?"; 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(); } } //初始化调价人、起止调价时间 tmpSQL.Clear(); tmpSQL.Add("update XLXSJGB set "); tmpSQL.Add(" XLXSJGB_TJRGH=:pTJRGH,XLXSJGB_TJKSSJ=null,XLXSJGB_TJWCSJ=null,"); tmpSQL.Add(" XLXSJGB_TJZT=' '");//不设置为“W|等待”,以防计算异常或超时时,记录被锁无法编辑 tmpSQL.Add(" where XLXSJGB_MXBH=:pMXBH"); tmpSQL.Add(" and XLXSJGB_JGBID=:pJGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = sJGBID; tmpSQL.ParamByName("pTJRGH").Value = tSession.UserId; DBERP.ExecSQL(tmpSQL); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); if (XLBJDUtils.CheckJGBTJServ()) { //使用异步服务计算 ServiceParams serviceParams = new ServiceParams(); JGBTJXX objJGB = new JGBTJXX(); objJGB.JGBID = sJGBID; objJGB.MXBH = sMXBH; objJGB.JJLY = sJJLY; objJGB.XSWS = iXSWS; objJGB.JGCZBID = sJGCZBID; objJGB.JGCZBBBID = sJGCZBBBID; objJGB.JSBLFS = sJSBLFS; Dictionary dicJGB2 = new Dictionary(); for (int i = 0; i < dsJGB2.Tables[0].Rows.Count; i++) { dicJGB2.Add(dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(), dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBIDS"].ToString().Trim()); } objJGB.dicJGB2 = dicJGB2; objJGB.bUpdateByJCZB = bUpdateByJCZB; objJGB.bNeedTB = bNeedTB; objJGB.XLJGU007 = GetOption(102579000, "XLJGU007"); objJGB.sBJU003 = sBJU003; serviceParams.Add("objJGB", objJGB); ServiceProgress serviceProgress = AsyncService.Enqueue("N_XLXSBJ", 100860077, "AsyncDoJGBTJ", serviceParams); tmpSQL.Clear(); tmpSQL.Add("update XLXSJGB set "); tmpSQL.Add(" XLXSJGB_TJZT='W'");//W|等待 tmpSQL.Add(" where XLXSJGB_MXBH=:pMXBH"); tmpSQL.Add(" and XLXSJGB_JGBID=:pJGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = sJGBID; DBERP.ExecSQL(tmpSQL); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); ShowMessage("正在同步,请稍后查看!"); } else { tmpSQL.Clear(); tmpSQL.Add("update XLXSJGB set XLXSJGB_TJZT='J',");//J|计算中 tmpSQL.Add(" XLXSJGB_TJKSSJ=:pTJKSSJ"); tmpSQL.Add(" where XLXSJGB_MXBH=:pMXBH"); tmpSQL.Add(" and XLXSJGB_JGBID=:pJGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = sJGBID; tmpSQL.ParamByName("pTJKSSJ").Value = MISproUtils.GetServerTime(); DBERP.ExecSQL(tmpSQL); string sMsgTB = ""; string sMessage = ""; try { DBERP.BeginTrans(); if (sJJLY.Equals("D")) { XLJGB_CLJGTZList.DoCPJJ(DBERP, sMXBH, sJGBID, false, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); } else { if (bUpdateByJCZB) XLJGB_CLJGTZList.DoCLCB(DBERP, sMXBH, sJGBID, tSession.UserId, tSession.UserName, sJGCZBID, sJGCZBBBID, iXSWS, sJSBLFS, sBJU003); else XLJGB_CLJGTZList.DoCLCB(DBERP, sMXBH, sJGBID, tSession.UserId, tSession.UserName, iXSWS, sJSBLFS, sBJU003); } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_SYXH<>0 and XLXSJGBMX_JGBID={0}", sJGBID))) XHJDDZKC_TJYS1(DBERP, tmpSQL, sJGBID, sJSBLFS, iXSWS.ToString(), tSession.UserName, tSession.UserId, ref sMessage, GetOption(102579000, "XLJGU007")); if (bNeedTB && dsJGB2 != null)//需要同步区域价 { for (int i = 0; i < dsJGB2.Tables[0].Rows.Count; i++) { if (XLJGB_CLJGTZList.TBCLCB_2(DBERP, sMXBH, dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(), dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBIDS"].ToString().Trim(), iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003)) { sMsgTB += dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim() + "|" + dsJGB2.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim() + "\r\n"; } } } DBERP.CommitTrans(); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); } catch (Exception ex) { ShowMessage(ex.Message); DBERP.RollbackTrans(); tmpSQL.Clear(); tmpSQL.Add("update XLXSJGB set XLXSJGB_TJZT='F'");//F|失败 tmpSQL.Add(" where XLXSJGB_MXBH=:pMXBH"); tmpSQL.Add(" and XLXSJGB_JGBID=:pJGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = sJGBID; DBERP.ExecSQL(tmpSQL); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); return; } tmpSQL.Clear(); tmpSQL.Add("update XLXSJGB set XLXSJGB_TJZT='S',");//S|完成 tmpSQL.Add(" XLXSJGB_TJWCSJ=:pTJWCSJ"); tmpSQL.Add(" where XLXSJGB_MXBH=:pMXBH"); tmpSQL.Add(" and XLXSJGB_JGBID=:pJGBID"); tmpSQL.ParamByName("pMXBH").Value = sMXBH; tmpSQL.ParamByName("pJGBID").Value = sJGBID; tmpSQL.ParamByName("pTJWCSJ").Value = MISproUtils.GetServerTime(); DBERP.ExecSQL(tmpSQL); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); if (sMsgTB.Trim().Equals("")) ShowMessage("同步完成!" + sMessage); else ShowMessage("完成当前价格表同步,以及如下区域价的同步!" + "\r\n" + sMsgTB.Trim()); } } else { TSQL sSql = new TSQL(DBERP); string KZBJ = ""; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_SYXH<>0 and XLXSJGBMX_JGBID={0}", sJGBID))) { KZBJ = "Y"; } else { KZBJ = "N"; } try { //导入:即将区域价所依的出厂价作为无税基价、含税基价导入区域价 DBERP.BeginTrans(); Mac.MacLog.TraceFormat(String.Format("TBCLCB_ClearJG-Begin")); TBCLCB_ClearJG(DBERP, sJGBID); Mac.MacLog.TraceFormat(String.Format("TBCLCB_ClearJG-End")); Mac.MacLog.TraceFormat(String.Format("TBCLCB_CCJasJJ-Begin")); TBCLCB_CCJasJJ(DBERP, tSession, sJGBID, sJGBIDS); Mac.MacLog.TraceFormat(String.Format("TBCLCB_CCJasJJ-End")); Mac.MacLog.TraceFormat(String.Format("DoCPJJ-Begin")); XLJGB_CLJGTZList.DoCPJJ(DBERP, sMXBH, sJGBID, true, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); Mac.MacLog.TraceFormat(String.Format("DoCPJJ-End")); DBERP.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); DBERP.RollbackTrans(); return; } if(KZBJ.Equals("Y")) { sTBBZ = "Y"; btnXHJDDZKC_Click(null,null); } else ShowMessage("同步完成!"); } Master_OnStandardQuery(null, null); FormAreaUpdate(); } //因素2导入/同步出厂价 private void TBCLCB_2(TDatabase dberp, string sMXBH, string sJGBID, string sJGBIDS, string sFLAG, int iXSWS, string sJSBLFS) { string sBJU003 = GetOption(100860000, "BJU003"); if (sFLAG.Equals("TB")) { try { //同步出厂价的无税表价、含税表价->区域价的无税基价、含税基价 dberp.BeginTrans(); if (!sJGBIDS.Equals("")) { TBCLCB_ClearJG(dberp, sJGBID); } TBCLCB_CCJasJJ(dberp, tSession, sJGBID, sJGBIDS); XLJGB_CLJGTZList.DoCPJJ(dberp, sMXBH, sJGBID, false, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return; } ShowMessage("同步出厂价完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } else if (sFLAG.Equals("DR")) { try { //导入:即将区域价所依的出厂价作为无税基价、含税基价导入区域价 dberp.BeginTrans(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_JGBID={0}", sJGBID))) { string 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(); } } dberp.ExecSQL(string.Format("delete from XLXSJGBMX where XLXSJGBMX_JGBID='{0}'", sJGBID)); dberp.ExecSQL(string.Format("delete from XLXSJGBYZZ0 where XLXSJGBYZZ0_JGBID='{0}'", sJGBID)); InsertCLCB_CCJasJJ(dberp, tSession, sJGBID, sJGBIDS); XLJGB_CLJGTZList.DoCPJJ(dberp, sMXBH, sJGBID, true, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, sMXBH); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return; } ShowMessage("导入出厂价完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } } //因素3现行价的处理 private void TBCLCB_3(TDatabase dberp, string sMXBH, string sJGBID, string sJGBIDS, string sFLAG, int iXSWS, string sJSBLFS) { string sBJU003 = GetOption(100860000, "BJU003"); TSQL SQL = new TSQL(dberp); if (sFLAG.Equals("TB")) { try { //现行价 dberp.BeginTrans(); if (!sJGBIDS.Equals("")) { TBCLCB_ClearJG(dberp, sJGBID); } //sJGBIDS不为空,则XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB只用来记录材料价价差 XLBJDCalcUtils.UpdateJGBTJYS_3(dberp, SQL, sJGBID, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sJGBIDS, "", 0); //XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, 0, sJGBIDS, "", "", 0, 0, "", 0); //sJGBIDS不为空,则利用XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB记录的材料价价差更新价格表基价、表价 //XLJGB_CLJGTZList.UpdateCLCB_TJYS(dberp, sMXBH, sJGBID, sJGBIDS, "3"); XLJGB_CLJGTZList.DoCPJJ(dberp, sMXBH, sJGBID, false, "", "", iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, 0, sBJU003); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return; } ShowMessage("同步完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } else if (sFLAG.Equals("DR")) { try { //导入:即将现行价所依的出厂价作为无税基价、含税基价导入现行价 dberp.BeginTrans(); //获取价格表明细最大序号 SQL.Clear(); SQL.Add("select isnull(max(XLXSJGBMX_XH),0.0) from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID"); SQL.ParamByName("pJGBID").Value = sJGBID; DataSet dsJGB = dberp.OpenDataSet(SQL); double MaxXH = 0.0; if (dsJGB.Tables[0].Rows.Count > 0) { MaxXH = CMISproConvert.StrToFloat(dsJGB.Tables[0].Rows[0][0].ToString(), 0); } if (MaxXH > 0) { Confirm.Register("IsQD", "已有数据将清空,按所依出厂价重新导入,是否继续?"); 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(); } } SQL.Clear(); SQL.Add("delete from XLXSJGBMX where XLXSJGBMX_JGBID = :XLXSJGBMX_JGBID "); SQL.ParamByName("XLXSJGBMX_JGBID").Value = sJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("delete from XLXSJGBYZZ0 where XLXSJGBYZZ0_JGBID = :XLXSJGBYZZ0_JGBID "); SQL.ParamByName("XLXSJGBYZZ0_JGBID").Value = sJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" INSERT INTO XLXSJGBMX( XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_XH, "); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_JLDW, XLXSJGBMX_WHR, XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ, "); SQL.Add(" XLXSJGBMX_BZ,XLXSJGBMX_HSJJ, XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM) "); SQL.Add(" SELECT :pXLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); SQL.Add(" XLXSJGBMX_XH,"); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_JLDW, XLXSJGBMX_WHR, XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ, "); SQL.Add(" XLXSJGBMX_BZ,XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSBJM,XLXSJGBMX_WSBJM"); SQL.Add(" FROM XLXSJGBMX"); SQL.Add(" WHERE 1 = 1 "); SQL.Add(" AND " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); //SQL.Add(" and not exists "); //SQL.Add(" (select 1 from XLXSJGBMX b where 1 = 1 "); //SQL.Add(" and b.XLXSJGBMX_JGBID= :pXLXSJGBMX_JGBID "); //SQL.Add(" and b.XLXSJGBMX_XLXHID=a.XLXSJGBMX_XLXHID "); //SQL.Add(" and b.XLXSJGBMX_XLGGID=a.XLXSJGBMX_XLGGID "); //SQL.Add(" and b.XLXSJGBMX_XLBZID=a.XLXSJGBMX_XLBZID "); //SQL.Add(" and b.XLXSJGBMX_DYDJID=a.XLXSJGBMX_DYDJID ) "); SQL.ParamByName("pXLXSJGBMX_JGBID").Value = sJGBID; dberp.ExecSQL(SQL); //sJGBIDS不为空,则XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB只用来记录材料价价差 XLBJDCalcUtils.UpdateJGBTJYS_3(dberp, SQL, sJGBID, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sJGBIDS, "", 0); //XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, 0, sJGBIDS, "", "", 0, 0, "", 0); //sJGBIDS不为空,则利用XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB记录的材料价价差更新价格表基价、表价 //XLJGB_CLJGTZList.UpdateCLCB_TJYS(dberp, sMXBH, sJGBID, sJGBIDS, "3"); XLJGB_CLJGTZList.DoCPJJ(dberp, sMXBH, sJGBID, true, "", "", iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, 0, sBJU003); JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, sMXBH); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return; } ShowMessage("导入完成!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } } public static void TBXLXSCLHQ(TDatabase dberp, string sJGBID, string sJGBIDS) { TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" delete from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into "); SQL.Add(" XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_HSJGF,XLXSCLHQ_WSJGF,XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ) "); SQL.Add(" select :pJGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_HSJGF,XLXSCLHQ_WSJGF,XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ "); SQL.Add(" from XLXSCLHQ "); SQL.Add(" where XLXSCLHQ_JGBID=:pJGBIDS "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pJGBIDS").Value = sJGBIDS; dberp.ExecSQL(SQL); } protected void OpenBB() { string sWizard = ""; string sBBYSJS = ""; string sReportizard = ""; string sBBMB = ""; string sXML = ""; //导入前的缺省样式 if(txtBJLY.Value.Trim().Equals("D") && txtJJLY.Value.Trim().Equals("D")) { bALLD = true; sXML = ""; } else { bALLD = false; sXML = ""; } byte[] b4 = new byte[0]; b4 = Encoding.Default.GetBytes(sXML); byte[] zipbuf4 = ZlibCompress.CompressBytes(b4); sBBMB = Convert.ToBase64String(zipbuf4); try { string sRun = string.Format("document.all.ActiveXBBForBBYS.OperationType = 'DesignReport';document.all.ActiveXBBForBBYS.EncodedReport = \'{0}\';", sBBMB); sBBYSJS = @" "; TPageParams tpp = new TPageParams(); tpp.Title = "按复制内容导入"; tpp.UrlPath = "../N_MODEL/Dialog/BBYS_YSSJ.aspx"; tpp.AddString("BBLink", "Y"); tpp.AddExtString("sRun", sRun.Trim()); tpp.AddExtString("Save", sBBYSJS); tpp.AddExtString("Wizard", sWizard); tpp.AddExtString("ReportWizard", sReportizard); tpp.AddString("FormTitle", "报表样式"); OpenFuncModuleDialog(100210034, tpp); } catch { ShowMessage("打开报表失败!"); } } //无税基价-XLXSJGBMX_WSJJ 含税基价-XLXSJGBMX_HSJJ //无税表价-XLXSJGBMX_WSBJ 含税表价-XLXSJGBMX_HSBJ public void ReadBBYS(string sRep, string sJGBID, string sJGCIDS, string sBJU003, string sDefaultXLBZID, string sYXQS, string sYXQZ) { Dictionary dicDRMXBZ = new Dictionary(); dicDRMXBZ.Clear(); byte[] b = Convert.FromBase64String(sRep); string sBBMB = ""; string sRow = "";//sRow变量:记录元组的行号,用于在换行时处理电压等级、计量单位时赋值为上一条数据的问题 string sValue = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJ = ""; string sST = ""; string sJLDW = ""; string sCLCB = ""; string sCLCB2 = ""; string sCPJJ = ""; string sCPJJ2 = ""; string sWSCLCB = ""; string sWSCLCB2 = ""; string sWSCPJJ = ""; string sWSCPJJ2 = ""; //是否启用非长度计量单位 bool bQYFCDJLDW = XLBJDUtils.GetXLXSBJPZXX(100860018).QYFCDJLDW(); Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); //A|× B|* string sXLJGU007 = GetOption(102579000, "XLJGU007"); byte[] zipbuf = new byte[0]; zipbuf = ZlibCompress.DecompressBytes(b); sBBMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length); if (!string.IsNullOrEmpty(sBBMB.Trim())) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); //初始化 int iXH = XLJGB_JGBMX.getMaxXH(sJGBID); sSQL.Clear(); sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 "); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dicDRMXBZ.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim()); } } XmlDocument xml = new XmlDocument(); xml.LoadXml(sBBMB); XmlNode XmlRoot = xml.SelectSingleNode("Report"); XmlNodeList XmlRootList = XmlRoot.SelectNodes("Cells"); try { dberp.BeginTrans(); foreach (XmlNode XmlKey in XmlRootList) { for (int i = 0; i < XmlKey.ChildNodes.Count; i++) { XmlNode XmlKeyC = XmlKey.ChildNodes[i]; for (int j = 0; j < XmlKeyC.ChildNodes.Count; j++) { if (float.Parse(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim()) >= 2) { //判断是否换行了 if (!sRow.Equals(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim())) { #region 换行时,插入前一行数据 if (!sRow.Equals("")) { string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sST; string tmpDYDJID = sDYDJ; bool bExistCLQD = XLBJDUtils.ExistCLQD(ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID); double dJQJGXS = 1;//精确价格系数 if (!XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { dJQJGXS = 0; } else { if (sJLDW.ToUpper().Equals("KM") || sJLDW.ToUpper().Equals("千米")) { dJQJGXS = 0.001; } } int bExistJGBMX = XLJGB_JGBMX.ExistJGBMX(sJGBID, tmpXLXHID, tmpXLGGID, tmpXLBZID, tmpDYDJID); if (-1 == bExistJGBMX) { sSQL.Clear(); sSQL.Add(" insert into XLXSJGBMX( "); sSQL.Add(" XLXSJGBMX_JGBID, XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_JLDW, "); sSQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,"); sSQL.Add(" XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM )"); sSQL.Add(" values("); sSQL.Add(" :XLXSJGBMX_JGBID,:XLXSJGBMX_XH,:XLXSJGBMX_XLXHID,:XLXSJGBMX_XLGGID,:XLXSJGBMX_XLBZID,isnull(:XLXSJGBMX_DYDJID,' '),:XLXSJGBMX_JLDW, "); sSQL.Add(" :XLXSJGBMX_YXQS,:XLXSJGBMX_YXQZ,:XLXSJGBMX_WSJJ,:XLXSJGBMX_HSJJ,:XLXSJGBMX_HSBJ,:XLXSJGBMX_WSBJ,:XLXSJGBMX_BZ,:XLXSJGBMX_WHR,:XLXSJGBMX_WHRID,:XLXSJGBMX_WHSJ, "); sSQL.Add(" :XLXSJGBMX_HSJJM,:XLXSJGBMX_HSBJM,:XLXSJGBMX_WSJJM,:XLXSJGBMX_WSBJM )"); sSQL.ParamByName("XLXSJGBMX_JGBID").Value = sJGBID; sSQL.ParamByName("XLXSJGBMX_YXQS").Value = sYXQS; sSQL.ParamByName("XLXSJGBMX_YXQZ").Value = sYXQZ.Equals("") ? null : sYXQZ; if (bExistCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sST = tmpXLBZID; sDYDJ = tmpDYDJID; //重新赋值 sSQL.ParamByName("XLXSJGBMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSJGBMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = sDYDJ; } else { sSQL.ParamByName("XLXSJGBMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSJGBMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = sDYDJ; //XLJGB_JGBMX.CLQD_DR(tmpXLXHID, tmpXLGGID, tmpXLBZID, tmpDYDJID, sJGBID, iXH.ToString().Trim(),tSession); } sSQL.ParamByName("XLXSJGBMX_XH").Value = iXH; sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sJLDW; if (bALLD == true) { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB2, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB2, 0) * dJQJGXS, 6); } else { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); } sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_BZ").Value = ""; sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); iXH++; } //更新 else { sSQL.Clear(); sSQL.Add(" update XLXSJGBMX set "); sSQL.Add(" XLXSJGBMX_WSJJ = :XLXSJGBMX_WSJJ ,XLXSJGBMX_HSJJ = :XLXSJGBMX_HSJJ, "); sSQL.Add(" XLXSJGBMX_HSBJ = :XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ=:XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW=:XLXSJGBMX_JLDW, "); sSQL.Add(" XLXSJGBMX_HSJJM = :XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM=:XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM=:XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM=:XLXSJGBMX_WSBJM, "); sSQL.Add(" XLXSJGBMX_WHR = :XLXSJGBMX_WHR, XLXSJGBMX_WHRID=:XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ=:XLXSJGBMX_WHSJ "); sSQL.Add(" where XLXSJGBMX_XH = :XLXSJGBMX_XH and XLXSJGBMX_JGBID =:XLXSJGBMX_JGBID"); sSQL.ParamByName("XLXSJGBMX_XH").Value = bExistJGBMX; sSQL.ParamByName("XLXSJGBMX_JGBID").Value = sJGBID; sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sJLDW; if (bALLD) { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB2, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB2, 0) * dJQJGXS, 6); } else { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); } sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); } } #endregion sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = ""; sST = ""; sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = ""; sDYDJ = ""; sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sBJU003; sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = 0; sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = 0; sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = 0; sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = 0; sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = 0; sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = 0; sSQL.ParamByName("XLXSJGBMX_HSBJM").Value = 0; sSQL.ParamByName("XLXSJGBMX_WSBJM").Value = 0; sRow = XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim(); } sValue = XmlKeyC.ChildNodes[j].Attributes["Value"].Value.Trim(); if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "1") { sSQL.ParamByName("XLXSJGBMX_XLXHID").Value = sValue; sXLXHID = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "2") { if (sXLJGU007.Equals("A")) { sValue = sValue.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sValue = sValue.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } sSQL.ParamByName("XLXSJGBMX_XLGGID").Value = sValue; sXLGGID = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "3") { string sXLXBZID = XLBJDUtils.GetBZXLZBZID(sValue, sDefaultXLBZID, dicDRMXBZ); sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = sXLXBZID; sST = sXLXBZID; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "4") { sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = sValue.Replace('K', 'k').Replace('v', 'V'); ; sDYDJ = sValue.Replace('K', 'k').Replace('v', 'V'); } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "5") { if (!bQYFCDJLDW) { if (!sValue.Trim().ToUpper().Equals("KM") && !sValue.Trim().ToUpper().Equals("M") && !sValue.Trim().Equals("千米") && !sValue.Trim().Equals("米") && !dicLenJLDWTD.ContainsKey(sValue.Trim())) sValue = sBJU003; else if (sValue.Trim().ToUpper().Equals("KM")) sValue = "Km"; else if (sValue.Trim().ToUpper().Equals("M")) sValue = "M"; } else { if (sValue.Trim().Equals("")) sValue = sBJU003; else if (sValue.Trim().ToUpper().Equals("KM")) sValue = "Km"; else if (sValue.Trim().ToUpper().Equals("M")) sValue = "M"; } sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sValue.Trim(); sJLDW = sValue.Trim(); } if (sJLDW.Equals("")) sJLDW = sBJU003; if (bALLD) { if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "6") { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sValue); sCLCB2 = sValue; sCPJJ2 = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "7") { sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sValue); sWSCLCB2 = sValue; sWSCPJJ2 = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "8") { sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sValue); sCLCB = sValue; sCPJJ = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "9") { sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sValue); sWSCLCB = sValue; sWSCPJJ = sValue; } } else { if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "6") { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sValue); sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sValue); sCLCB = sValue; sCPJJ = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "7") { sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sValue); sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sValue); sWSCLCB = sValue; sWSCPJJ = sValue; } } } } } } #region 插入最后一行 if (!sRow.Equals("")) { string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sST; string tmpDYDJID = sDYDJ; bool bExistCLQD = XLBJDUtils.ExistCLQD(ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID); double dJQJGXS = 1;//精确价格系数 if (!XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { dJQJGXS = 0; } else { if (sJLDW.ToUpper().Equals("KM") || sJLDW.ToUpper().Equals("千米")) { dJQJGXS = 0.001; } } int bExistJGBMX = XLJGB_JGBMX.ExistJGBMX(sJGBID, tmpXLXHID, tmpXLGGID, tmpXLBZID, tmpDYDJID); if (-1 == bExistJGBMX) { sSQL.Clear(); sSQL.Add(" insert into XLXSJGBMX( "); sSQL.Add(" XLXSJGBMX_JGBID, XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_JLDW, "); sSQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,"); sSQL.Add(" XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM )"); sSQL.Add(" values("); sSQL.Add(" :XLXSJGBMX_JGBID,:XLXSJGBMX_XH,:XLXSJGBMX_XLXHID,:XLXSJGBMX_XLGGID,:XLXSJGBMX_XLBZID,isnull(:XLXSJGBMX_DYDJID,' '), :XLXSJGBMX_JLDW,"); sSQL.Add(" :XLXSJGBMX_YXQS,:XLXSJGBMX_YXQZ,:XLXSJGBMX_WSJJ,:XLXSJGBMX_HSJJ,:XLXSJGBMX_HSBJ,:XLXSJGBMX_WSBJ,:XLXSJGBMX_BZ,:XLXSJGBMX_WHR,:XLXSJGBMX_WHRID,:XLXSJGBMX_WHSJ, "); sSQL.Add(" :XLXSJGBMX_HSJJM,:XLXSJGBMX_HSBJM,:XLXSJGBMX_WSJJM,:XLXSJGBMX_WSBJM )"); sSQL.ParamByName("XLXSJGBMX_JGBID").Value = sJGBID; sSQL.ParamByName("XLXSJGBMX_YXQS").Value = sYXQS; sSQL.ParamByName("XLXSJGBMX_YXQZ").Value = sYXQZ.Equals("") ? null : sYXQZ; if (bExistCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sST = tmpXLBZID; sDYDJ = tmpDYDJID; //重新赋值 sSQL.ParamByName("XLXSJGBMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSJGBMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = sDYDJ; } else { sSQL.ParamByName("XLXSJGBMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSJGBMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSJGBMX_DYDJID").Value = sDYDJ; //XLJGB_JGBMX.CLQD_DR(tmpXLXHID, tmpXLGGID, tmpXLBZID, tmpDYDJID, sJGBID, iXH.ToString().Trim(),tSession); } sSQL.ParamByName("XLXSJGBMX_XH").Value = iXH; sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sJLDW; if (bALLD) { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB2, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB2, 0) * dJQJGXS, 6); } else { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); } sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_BZ").Value = ""; sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); iXH++; } //更新 else { sSQL.Clear(); sSQL.Add(" update XLXSJGBMX set "); sSQL.Add(" XLXSJGBMX_WSJJ = :XLXSJGBMX_WSJJ ,XLXSJGBMX_HSJJ = :XLXSJGBMX_HSJJ, "); sSQL.Add(" XLXSJGBMX_HSBJ = :XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ=:XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW=:XLXSJGBMX_JLDW, "); sSQL.Add(" XLXSJGBMX_HSJJM = :XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM=:XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM=:XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM=:XLXSJGBMX_WSBJM, "); sSQL.Add(" XLXSJGBMX_WHR = :XLXSJGBMX_WHR, XLXSJGBMX_WHRID=:XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ=:XLXSJGBMX_WHSJ "); sSQL.Add(" where XLXSJGBMX_XH = :XLXSJGBMX_XH and XLXSJGBMX_JGBID =:XLXSJGBMX_JGBID"); sSQL.ParamByName("XLXSJGBMX_XH").Value = bExistJGBMX; sSQL.ParamByName("XLXSJGBMX_JGBID").Value = sJGBID; sSQL.ParamByName("XLXSJGBMX_JLDW").Value = sJLDW; if (bALLD) { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB2, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB2, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB2, 0) * dJQJGXS, 6); } else { sSQL.ParamByName("XLXSJGBMX_HSJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSJJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSJJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); } sSQL.ParamByName("XLXSJGBMX_HSBJ").Value = CMISproConvert.StrToFloat(sCLCB, 0); sSQL.ParamByName("XLXSJGBMX_WSBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0); sSQL.ParamByName("XLXSJGBMX_HSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WSBJM").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSCLCB, 0) * dJQJGXS, 6); sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); } } #endregion XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID); JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, ""); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } } } //按复制内容导入 private void DR_FZNR() { string sJGBID = txtJGBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); } sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } OpenBB(); } //按EXECL导入 private void DR_Excel() { string sJGBID = txtJGBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); } sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_DRInfo.aspx"; pageParams.Title = "导入Excel文件"; pageParams.AddString("JJLY", txtJJLY.Value.Trim()); pageParams.AddString("BJLY", txtBJLY.Value.Trim()); pageParams.AddString("YXQS", txtYXQS.Value.Trim()); pageParams.AddString("YXQZ", txtYXQZ.Value.Trim()); pageParams.AddString("BJU003", GetOption("BJU003") ); pageParams.AddString("sDefaultXLBZID", XLBJDUtils.GetDefaultXLBZID()); pageParams.AddString("XLXSJGBMX_JGBID", sJGBID); pageParams.AddString("XLXSJGBMX_JGBMC", txtJGBMC.Value.Trim()); pageParams.AddString("btnRefreshCID", btnRefresh.ClientID); OpenDialog(pageParams); } public static DataSet CheckXHJDDZKC(string sJGBID) { //若依{0}扩充{1},将会产生重复产品,比如:{1}、{2}、{3}、{4},操作终止!”, TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select top 1 XLXSJGBXHDZB_JGBXLXHID,XLXSJGBXHDZB_BJDXLXHID,a.XLXSJGBMX_XLGGID,a.XLXSJGBMX_XLBZID,a.XLXSJGBMX_DYDJID "); SQL.Add(" from XLXSJGBXHDZB "); SQL.Add(" left join XLXSJGBMX a on a.XLXSJGBMX_JGBID=:pJGBID and a.XLXSJGBMX_XLXHID=XLXSJGBXHDZB_JGBXLXHID "); SQL.Add(" left join XLXSJGBMX b on b.XLXSJGBMX_JGBID=:pJGBID and b.XLXSJGBMX_XLXHID=XLXSJGBXHDZB_BJDXLXHID "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=a.XLXSJGBMX_XLXHID "); SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_A on XLXSBJXLGGTHB_A.XLXSBJXLGGTHB_XLGGID = a.XLXSJGBMX_XLGGID "); SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_A.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); SQL.Add(" where a.XLXSJGBMX_XLGGID=b.XLXSJGBMX_XLGGID "); SQL.Add(" and a.XLXSJGBMX_XLBZID=b.XLXSJGBMX_XLBZID "); SQL.Add(" and b.XLXSJGBMX_DYDJID=(case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else a.XLXSJGBMX_DYDJID end )"); #region 电压等级 SQL.Add(" and ( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(a.XLXSJGBMX_DYDJID,' ') then 1 "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(a.XLXSJGBMX_DYDJID,' ') <> ' ' then 2 "); SQL.Add(" else -999 end "); SQL.Add(" ) <> -999 "); #endregion #region 主芯截面区间 SQL.Add(" and XLXSJGBXHDZB_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((XLXSJGBXHDZB_ZXJMSX<>0 and XLXSJGBXHDZB_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or XLXSJGBXHDZB_ZXJMSX=0)"); #endregion #region 芯线结构 SQL.Add(" and ( "); SQL.Add(" XLXSJGBXHDZB_XXJGID=isnull(XLGGB_XXJGID,' ') or XLXSJGBXHDZB_XXJGID=' ' "); SQL.Add(" )"); #endregion SQL.Add(" and b.XLXSJGBMX_SYXH = 0 "); SQL.ParamByName("pJGBID").Value = sJGBID; return dberp.OpenDataSet(SQL); } //3|表价(现行价)=基价(出厂价+材料价价差)&调价----按型号加点对照表扩充 public static void DoXHJDDZKC(TDatabase dberp, TSQL SQL, string sJGBID, string sJSBLFS, string sBJU002, string sWHR, string sWHRID, ref string sDXKCMessage, ref string sXHJDKCMessage, string sXLJGU007) { int maxXH = 1; int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-删除记录-Begin")); #region 删除记录 SQL.Clear(); SQL.Add(" delete from XLXSJGBMX where XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_SYXH>0"); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); #endregion Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-删除记录-End")); SQL.Clear(); SQL.Add("select max(XLXSJGBMX_XH) as maxXH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("")) { maxXH = 1; } else { maxXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0][0].ToString().Trim()); } } #region 新增记录 SQL.Clear(); SQL.Add(" insert into XLXSJGBMX "); SQL.Add(" ( "); SQL.Add(" XLXSJGBMX_JGBID, "); SQL.Add(" XLXSJGBMX_XH, "); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ, "); SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); SQL.Add(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJM,XLXSJGBMX_HSJJM, "); SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM, "); SQL.Add(" XLXSJGBMX_BZ, XLXSJGBMX_SYXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_JLDW, "); SQL.Add(" XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ "); SQL.Add(" ) "); SQL.Add(" select XLXSJGBMX_JGBID,:maxXH + row_number()over(order by XLXSJGBMX_JGBID,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLDYDJB_XH,DYDJID)as XH,");//distinct是因为XLGGB里存在芯线结构不同的数据,如4×6的芯线结构有2×2和4两种 SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,"); SQL.Add(" DYDJID,"); SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM,WSBJ,HSBJ,WSBJM,HSBJM,BZ,XLXSJGBMX_XH,YSJDZ,CLCBYSJDZ,XLXSJGBMX_JLDW,:pWHRID,:pWHR,:pWHSJ"); SQL.Add(" from ( "); SQL.Add(" select DISTINCT XLXSJGBMX_JGBID,XLDYDJB_XH,");//distinct是因为可能会扩充出相同四要素数据 SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,"); SQL.Add(" (case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else isnull(XLXSJGBMX_DYDJID,' ') end ) as DYDJID,"); SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM,"); if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) { SQL.Add(" CEILING(RoundFix(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(string.Format(" )*XLXSJGBMX_WSBJ*{0},8))/{0} ", Math.Pow(10.0, iXSWS))); SQL.Add(" as WSBJ, "); SQL.Add(" CEILING(RoundFix(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(string.Format(" )*XLXSJGBMX_HSBJ*{0},8))/{0} ", Math.Pow(10.0, iXSWS))); SQL.Add(" as HSBJ, "); SQL.Add(" RoundFix(("); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end ) "); SQL.Add(" * XLXSJGBMX_WSBJM ,6) as WSBJM,"); SQL.Add(" RoundFix(("); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end ) "); SQL.Add(" * XLXSJGBMX_HSBJM ,6) as HSBJM,"); } else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 { SQL.Add(" CEILING(RoundFix(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_WSBJ," + iXSWS.ToString().Trim() + ")/10)*10 "); SQL.Add(" as WSBJ, "); SQL.Add(" CEILING(RoundFix(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_HSBJ," + iXSWS.ToString().Trim() + ")/10)*10 "); SQL.Add(" as HSBJ, "); SQL.Add(" RoundFix(("); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end ) "); SQL.Add(" * XLXSJGBMX_WSBJM ,6) as WSBJM,"); SQL.Add(" RoundFix(("); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end ) "); SQL.Add(" * XLXSJGBMX_HSBJM ,6) as HSBJM,"); } else { SQL.Add(" ROUNDFIX(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_WSBJ, " + iXSWS + ") "); SQL.Add(" as WSBJ, "); SQL.Add(" ROUNDFIX(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_HSBJ, " + iXSWS + ") "); SQL.Add(" as HSBJ, "); SQL.Add(" ROUNDFIX(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_WSBJM,6) "); SQL.Add(" as WSBJM, "); SQL.Add(" ROUNDFIX(( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); SQL.Add(" else 0 end "); SQL.Add(" )*XLXSJGBMX_HSBJM, 6) "); SQL.Add(" as HSBJM, "); } //按型号加点对照表扩充,加点值临时使用备注字段记录,报价时需要获取 SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then '按型号加点对照表扩充,加点:'||rtrim(convert(char,XLXSJGBXHDZB_YZZ)) "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ') <> ' ' then '按型号加点对照表扩充,加点:'||rtrim(convert(char,XLXSJGBXHDZB_YZZ)) "); SQL.Add(" else '按型号加点对照表扩充,加点:0' end as BZ, "); SQL.Add(" XLXSJGBMX_XH,XLXSJGBXHDZB_YZZ as YSJDZ,XLXSJGBXHDZB_CLCBYSJDZ as CLCBYSJDZ,XLXSJGBMX_JLDW "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX on XLXSBJXLGGTHB_MX.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_MX.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); SQL.Add(" left join XLXSJGBXHDZB on XLXSJGBXHDZB_JGBXLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=(case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else isnull(XLXSJGBMX_DYDJID,' ') end )"); SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID"); // 电压等级 SQL.Add(" and ( "); SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then 1 "); SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then 2 "); SQL.Add(" else -999 end "); SQL.Add(" ) <> -999 "); // 主芯截面区间 SQL.Add(" and XLXSJGBXHDZB_ZXJMXX<= isnull(XLDTJMZHB_DTJM1,0) and ((XLXSJGBXHDZB_ZXJMSX<>0 and XLXSJGBXHDZB_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or XLXSJGBXHDZB_ZXJMSX=0)"); // 芯线结构 SQL.Add(" and (XLXSJGBXHDZB_XXJGID=isnull(XLGGB_XXJGID,' ') or XLXSJGBXHDZB_XXJGID=' ')"); SQL.Add(" ) KCJGB WHERE 1=1 "); SQL.ParamByName("maxXH").Value = maxXH; SQL.ParamByName("pWHRID").Value = sWHRID; SQL.ParamByName("pWHR").Value = sWHR; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pJGBID").Value = sJGBID; Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-新增记录-Begin")); dberp.ExecSQL(SQL); Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-新增记录-End")); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, CMISproSessionManager.GetCurrentSession(), sJGBID); SQL.Clear(); SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10) "); SQL.Add(" select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10 "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID= XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_SYXH "); SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_SYXH>0 "); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); #endregion #region 校验重复产品 SQL.Clear(); SQL.Add(@"select top 1 XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID having (count(1)>1)"); SQL.ParamByName("pJGBID").Value = sJGBID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sXLXHID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(); string sXLGGID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sXLBZID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(); string sDYDJID = ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim(); sXHJDKCMessage = String.Format("扩充后将产生重复产品{0}、{1}、{2}、{3}!", sXLXHID, sXLGGID, sXLBZID, sDYDJID); SQL.Clear(); SQL.Add("delete from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_SYXH>0 "); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); return; } #endregion #region 等芯扩充 if (CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSJGBDXKCB_XLXHID from XLXSJGBDXKCB where 1=1 ")) { Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-CheckDXKC-Begin")); DataSet dsJGBMX = CheckDXKC(sJGBID, sXLJGU007); Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-CheckDXKC-End")); if (dsJGBMX.Tables[0].Rows.Count > 0) { sDXKCMessage = String.Format("按等芯扩充后将会产生重复产品,比如:{0}、{1}、{2}、{3},操作终止!", dsJGBMX.Tables[0].Rows[0]["NewXLXHID"].ToString().Trim(), dsJGBMX.Tables[0].Rows[0]["NewXLGGID"].ToString().Trim(), dsJGBMX.Tables[0].Rows[0]["NewXLBZID"].ToString().Trim(), dsJGBMX.Tables[0].Rows[0]["NewDYDJID"].ToString().Trim()); return; } Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-等芯扩充-Begin")); DODXKC(dberp, SQL, sJGBID, sWHR, sWHRID, sJSBLFS, sBJU002, sXLJGU007); Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-等芯扩充-End")); } #endregion //排序方式 JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, ""); } public static void XHJDDZKC_TJYS1(TDatabase dberp, TSQL SQL, string sJGBID, string sJSBLFS, string sBJU002, string sWHR, string sWHRID, ref string sMessage,string sXLJGU007) { string sDXKCMessage = ""; string sXHJDKCMessage = ""; DoXHJDDZKC(dberp,SQL,sJGBID,sJSBLFS,sBJU002, sWHR, sWHRID,ref sDXKCMessage,ref sXHJDKCMessage,sXLJGU007); if (!string.IsNullOrEmpty(sXHJDKCMessage)) sMessage = "但按型号加点对照表扩充失败!原因如下:\r\n" + sXHJDKCMessage; else { if (!string.IsNullOrEmpty(sDXKCMessage)) sMessage = "但按等芯扩充表扩充失败!原因如下:\r\n" + sDXKCMessage; } } public static DataSet CheckDXKC(string sJGBID, string sXLJGU007) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(" select top 1 XLXSJGBMX_XLXHID as NewXLXHID, "); SQL.Add(" case when isnull(XLXSJGBDXKCB_KCHXXJGID,' ') = ' ' then XLXSJGBMX_XLGGID else "); if(sXLJGU007.Equals("A")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '×',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '×') end as NewXLGGID , "); else if (sXLJGU007.Equals("B")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '*',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '*') end as NewXLGGID , "); SQL.Add(@" XLXSJGBMX_XLBZID as NewXLBZID,XLXSJGBMX_DYDJID as NewDYDJID from XLXSJGBMX left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID left join XLXSBJXLGGTHB XLXSBJXLGGTHB_DXKC on XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') left join XLXSJGBDXKCB on XLXSJGBMX_XLXHID = XLXSJGBDXKCB_XLXHID and XLGGB_XXJGID = XLXSJGBDXKCB_XXJGID left join XLDYDJB on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID where XLXSJGBMX_JGBID = :pJGBID group by XLXSJGBMX_XLXHID, case when isnull(XLXSJGBDXKCB_KCHXXJGID,' ') = ' ' then XLXSJGBMX_XLGGID else "); if(sXLJGU007.Equals("A")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID)|| '×',rtrim(XLXSJGBDXKCB_KCHXXJGID)|| '×') end, "); else if (sXLJGU007.Equals("B")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID)|| '*',rtrim(XLXSJGBDXKCB_KCHXXJGID)|| '*') end, "); SQL.Add(@" XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID having (count(1)>1) "); SQL.ParamByName("pJGBID").Value = sJGBID; return dberp.OpenDataSet(SQL); } public static void DODXKC(TDatabase dberp, TSQL SQL, string sJGBID, string sWHR, string sWHRID, string sJSBLFS, string sBJU002, string sXLJGU007) { int maxXH = 1; int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; SQL.Clear(); SQL.Add("select max(XLXSJGBMX_XH) as maxXH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("")) { maxXH = 1; } else { maxXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0][0].ToString().Trim()); } } SQL.Clear(); SQL.Add(" insert into XLXSJGBMX "); SQL.Add(" ( "); SQL.Add(" XLXSJGBMX_JGBID, "); SQL.Add(" XLXSJGBMX_XH, "); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ, "); SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); SQL.Add(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJM,XLXSJGBMX_HSJJM, "); SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM, "); SQL.Add(" XLXSJGBMX_BZ, XLXSJGBMX_SYXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_JLDW, "); SQL.Add(" XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ "); SQL.Add(" ) "); SQL.Add(" select XLXSJGBMX_JGBID,:maxXH + row_number()over(order by XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLDYDJB_XH,XLXSJGBMX_DYDJID)as XH,"); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_XLXHID,"); if(sXLJGU007.Equals("A")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '×',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '×') as NewXLGGID ,"); else if (sXLJGU007.Equals("B")) SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '*',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '*') as NewXLGGID ,"); SQL.Add(" XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_WSJJ else XLXSJGBMX_WSBJ end as WSJJ,"); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_HSJJ else XLXSJGBMX_HSBJ end as HSJJ,"); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_WSJJM else XLXSJGBMX_WSBJM end as WSJJM,"); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_HSJJM else XLXSJGBMX_HSBJM end as HSJJM,"); if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) { SQL.Add(" CEILING( ROUNDFIX( "); SQL.Add(string.Format(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS*{0},8))/{0} as WSBJ, ", Math.Pow(10.0, iXSWS))); SQL.Add(" CEILING( ROUNDFIX( "); SQL.Add(string.Format(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS*{0},8))/{0} as HSBJ, ", Math.Pow(10.0, iXSWS))); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); } else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 { SQL.Add(" CEILING(RoundFix( "); SQL.Add(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS," + iXSWS.ToString().Trim() + ")/10)*10 as WSBJ, "); SQL.Add(" CEILING(RoundFix( "); SQL.Add(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS," + iXSWS.ToString().Trim() + ")/10)*10 as HSBJ, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); } else { SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS, " + iXSWS + ")as WSBJ, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS ," + iXSWS + ") as HSBJ, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); SQL.Add(" ROUNDFIX( "); SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); } SQL.Add(" case when XLXSJGBMX_SYXH > 0 then rtrim(XLXSJGBMX_BZ) || '按等芯扩充表扩充,加点:' || CONVERT(CHAR,XLXSJGBDXKCB_KCXS) "); SQL.Add(" else '按等芯扩充表扩充,加点:' || CONVERT(CHAR,XLXSJGBDXKCB_KCXS) end as BZ, "); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_SYXH else XLXSJGBMX_XH end as SYXH, "); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_YSJDZ * XLXSJGBDXKCB_KCXS else XLXSJGBDXKCB_KCXS end as YSJDZ, "); SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_CLCBYSJDZ * XLXSJGBDXKCB_KCXS else XLXSJGBDXKCB_KCXS end as CLCBYSJDZ, "); SQL.Add(" XLXSJGBMX_JLDW,:pWHRID,:pWHR,:pWHSJ "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_DXKC on XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); SQL.Add(" left join XLXSJGBDXKCB on XLXSJGBDXKCB_XLXHID = XLXSJGBMX_XLXHID and XLGGB_XXJGID = XLXSJGBDXKCB_XXJGID "); SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID "); SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID and isnull(XLXSJGBDXKCB_KCHXXJGID,' ') <> ' ' "); SQL.ParamByName("maxXH").Value = maxXH; SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pWHRID").Value = sWHRID; SQL.ParamByName("pWHR").Value = sWHR; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, CMISproSessionManager.GetCurrentSession(), sJGBID); } private string GetJGBTJYS(string sJGBID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSJGB_TJYS from XLXSJGB where XLXSJGB_MXBH = 'JGB' and XLXSJGB_JGBID = :pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) return ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); else return ""; } //同步出厂价为基价 public static void TBCLCB_CCJasJJ(TDatabase dberp, CMISproSession tSession, string sJGBID, string sJGBIDS) { Dictionary dicJGBIDS = new Dictionary(); if (!sJGBIDS.Equals("")) { string[] arrJGBIDS = sJGBIDS.Split(','); for (int i = arrJGBIDS.Length - 1; i >= 0; i--) { string stJGBID = arrJGBIDS[i]; if (!dicJGBIDS.ContainsKey(stJGBID)) dicJGBIDS.Add(stJGBID, stJGBID); } } if (dicJGBIDS.Count > 0) { /* 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……) */ TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" merge into XLXSJGBMX tar "); SQL.Add(" using "); SQL.Add(" (select b.XLXSJGBMX_XLXHID,b.XLXSJGBMX_XLGGID,b.XLXSJGBMX_XLBZID,b.XLXSJGBMX_DYDJID, b.XLXSJGBMX_WSBJ,b.XLXSJGBMX_HSBJ,"); SQL.Add(" b.XLXSJGBMX_WSBJM,b.XLXSJGBMX_HSBJM,b.XLXSJGBMX_JLDW from XLXSJGBMX b where 1 = 1 "); SQL.Add(" and b.XLXSJGBMX_JGBID = :pKey "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSJGBMX_JGBID=:pJGBID "); SQL.Add(" and tar.XLXSJGBMX_XLXHID=sor.XLXSJGBMX_XLXHID "); SQL.Add(" and tar.XLXSJGBMX_XLGGID=sor.XLXSJGBMX_XLGGID "); SQL.Add(" and tar.XLXSJGBMX_XLBZID=sor.XLXSJGBMX_XLBZID "); SQL.Add(" and tar.XLXSJGBMX_DYDJID=sor.XLXSJGBMX_DYDJID "); SQL.Add(" ) "); SQL.Add(" when matched then update set tar.XLXSJGBMX_WSJJ = sor.XLXSJGBMX_WSBJ, tar.XLXSJGBMX_HSJJ = sor.XLXSJGBMX_HSBJ, "); SQL.Add(" tar.XLXSJGBMX_WSBJ = sor.XLXSJGBMX_WSBJ, tar.XLXSJGBMX_HSBJ = sor.XLXSJGBMX_HSBJ,"); SQL.Add(" tar.XLXSJGBMX_WSJJM = sor.XLXSJGBMX_WSBJM, tar.XLXSJGBMX_HSJJM=sor.XLXSJGBMX_HSBJM,"); SQL.Add(" tar.XLXSJGBMX_WSBJM = sor.XLXSJGBMX_WSBJM, tar.XLXSJGBMX_HSBJM=sor.XLXSJGBMX_HSBJM,"); SQL.Add(" tar.XLXSJGBMX_JLDW = sor.XLXSJGBMX_JLDW,tar.XLXSJGBMX_WHR = :XLXSJGBMX_WHR, tar.XLXSJGBMX_WHRID = :XLXSJGBMX_WHRID, tar.XLXSJGBMX_WHSJ=:XLXSJGBMX_WHSJ "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; SQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; SQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); foreach (string sKey in dicJGBIDS.Keys) { Mac.MacLog.TraceFormat(String.Format("TBCLCB_CCJasJJ-Merge-Begin")); SQL.ParamByName("pKey").Value = sKey; dberp.ExecSQL(SQL); Mac.MacLog.TraceFormat(String.Format("TBCLCB_CCJasJJ-Merge-End")); } XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID); } } //导入出厂价为基价 public static void InsertCLCB_CCJasJJ(TDatabase dberp, CMISproSession tSession, string sJGBID, string sJGBIDS) { Dictionary dicJGBIDS = new Dictionary(); if (!sJGBIDS.Equals("")) { string[] arrJGBIDS = sJGBIDS.Split(','); for (int i = 0; i < arrJGBIDS.Length; i++) { string stJGBID = arrJGBIDS[i]; if (!dicJGBIDS.ContainsKey(stJGBID)) dicJGBIDS.Add(stJGBID, stJGBID); } } if (dicJGBIDS.Count > 0) { TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" insert into XLXSJGBMX( XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_XH, "); SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_JLDW, XLXSJGBMX_WHR, XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ, "); SQL.Add(" XLXSJGBMX_HSJJ, XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ, XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM) "); SQL.Add(" select :pXLXSJGBMX_JGBID,a.XLXSJGBMX_XLXHID,a.XLXSJGBMX_XLGGID,a.XLXSJGBMX_XLBZID,a.XLXSJGBMX_DYDJID, "); SQL.Add(" :pMaxXH + row_number() over(order by a.XLXSJGBMX_XH) as XH,"); SQL.Add(" a.XLXSJGBMX_YXQS,a.XLXSJGBMX_YXQZ,a.XLXSJGBMX_JLDW, :XLXSJGBMX_WHR, :XLXSJGBMX_WHRID, :XLXSJGBMX_WHSJ, "); SQL.Add(" a.XLXSJGBMX_HSBJ, a.XLXSJGBMX_WSBJ,a.XLXSJGBMX_HSBJ, a.XLXSJGBMX_WSBJ,a.XLXSJGBMX_HSBJM,a.XLXSJGBMX_HSBJM,a.XLXSJGBMX_WSBJM,a.XLXSJGBMX_WSBJM"); SQL.Add(" from XLXSJGBMX a "); SQL.Add(" left join XLXSJGBMX b "); SQL.Add(" on b.XLXSJGBMX_JGBID= :pXLXSJGBMX_JGBID "); SQL.Add(" and b.XLXSJGBMX_XLXHID=a.XLXSJGBMX_XLXHID "); SQL.Add(" and b.XLXSJGBMX_XLGGID=a.XLXSJGBMX_XLGGID "); SQL.Add(" and b.XLXSJGBMX_XLBZID=a.XLXSJGBMX_XLBZID "); SQL.Add(" and b.XLXSJGBMX_DYDJID=a.XLXSJGBMX_DYDJID "); SQL.Add(" where 1 = 1 "); SQL.Add(" and a.XLXSJGBMX_JGBID = :pJGBID and b.XLXSJGBMX_JGBID is null "); SQL.ParamByName("pXLXSJGBMX_JGBID").Value = sJGBID; SQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName; SQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId; SQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); TSQL sSQL = new TSQL(dberp); foreach (string sKey in dicJGBIDS.Keys) { sSQL.Clear(); sSQL.Add("select isnull(max(XLXSJGBMX_XH),0.0) from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID"); sSQL.ParamByName("pJGBID").Value = sJGBID; DataSet dsJGB = dberp.OpenDataSet(sSQL); double MaxXH = 0.0; if (dsJGB.Tables[0].Rows.Count > 0) { MaxXH = CMISproConvert.StrToFloat(dsJGB.Tables[0].Rows[0][0].ToString(), 0); } SQL.ParamByName("pMaxXH").Value = MaxXH; SQL.ParamByName("pJGBID").Value = sKey; Mac.MacLog.TraceFormat(String.Format("InsertCLCB_CCJasJJ-MaxXH:{0}-Begin", MaxXH)); dberp.ExecSQL(SQL); Mac.MacLog.TraceFormat(String.Format("InsertCLCB_CCJasJJ-MaxXH:{0}-End", MaxXH)); } XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID); } } //清零价格表明细价格 public static void TBCLCB_ClearJG(TDatabase dberp, string sJGBID) { TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" update XLXSJGBMX set XLXSJGBMX_WSJJ = 0,XLXSJGBMX_HSJJ = 0,XLXSJGBMX_WSBJ = 0,XLXSJGBMX_HSBJ = 0, "); SQL.Add(" XLXSJGBMX_WSJJM = 0,XLXSJGBMX_HSJJM = 0,XLXSJGBMX_WSBJM = 0,XLXSJGBMX_HSBJM = 0 "); SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_SYXH=0 "); SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); } private string GetJGBIDS(string sJGBID, string sMXBH) { string sJGBIDS = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSJGB_JGBIDS from XLXSJGB where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH = :pMXBH "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); return sJGBIDS; } //判断模块是否存在并且是否有权限 private bool CheckModule(string sUMID) { int iUMID = CMISproConvert.StrToInt(sUMID); UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); } private void SetBtnVisble() { if (CheckModule("100860091")) btnJGBBD.Visible = true; else btnJGBBD.Visible = false; if (CheckModule("100860097")) btnBJCPXD.Visible = true; else btnBJCPXD.Visible = false; } private double GetHSBL(string sSource, string sTarget) { double dHSBL = 0; if (sSource.Equals("米")) sSource = "M"; if (sSource.Equals("千米")) sSource = "Km"; if (sTarget.Equals("米")) sTarget = "M"; if (sTarget.Equals("千米")) sTarget = "Km"; if (sSource.Equals("吨")) sSource = "T"; if (sSource.Equals("千克") || sSource.Equals("公斤")) sSource = "Kg"; if (sTarget.Equals("吨")) sTarget = "T"; if (sTarget.Equals("千克") || sTarget.Equals("公斤")) sTarget = "Kg"; if (sSource.Equals("M") && sTarget.Equals("Km")) { dHSBL = 1000; } if (sSource.Equals("Km") && sTarget.Equals("M")) { dHSBL = 0.001; } if (sSource.Equals("Kg") && sTarget.Equals("T")) { dHSBL = 1000; } if (sSource.Equals("T") && sTarget.Equals("Kg")) { dHSBL = 0.001; } if (sSource.Equals("卷") && sTarget.Equals("M")) { dHSBL = 0.01; } if (sSource.Equals("M") && sTarget.Equals("卷")) { dHSBL = 100; } if (sSource.Equals("Km") && sTarget.Equals("卷")) { dHSBL = 0.1; } if (sSource.Equals("卷") && sTarget.Equals("Km")) { dHSBL = 10; } if (sSource.Equals(sTarget)) { dHSBL = 1; } return dHSBL; } #endregion #region 控件事件 protected void btnBJCPXD_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); dberp.BeginTrans(); try { sSql.Clear(); sSql.Add(@"merge into XLXSJGBMX tar using (select XLXSBJYLZDMX_BJDXLXHID as BJDXLXHID,XLXSBJYLZDMX_BJDXLGGID as BJDXLGGID, XLXSBJYLZDMX_BJDXLBZID as BJDXLBZID,XLXSBJYLZDMX_BJDDYDJID as BJDDYDJID, XLXSBJYLZDMX_XLXHID as XLXHID,XLXSBJYLZDMX_XLGGID as XLGGID, XLXSBJYLZDMX_XLBZID as XLBZID,XLXSBJYLZDMX_DYDJID as DYDJID from XLXSBJYLZDMX where XLXSBJYLZDMX_SQDH='0000000000' )sor on ( tar.XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=sor.BJDXLXHID and XLXSJGBMX_XLGGID=sor.BJDXLGGID and XLXSJGBMX_DYDJID=sor.BJDDYDJID and XLXSJGBMX_XLBZID=sor.BJDXLBZID ) when matched then update set XLXSJGBMX_XLXHID=sor.XLXHID,XLXSJGBMX_XLGGID=sor.XLGGID,XLXSJGBMX_DYDJID=sor.DYDJID,XLXSJGBMX_XLBZID=sor.XLBZID"); sSql.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(sSql); #region 校验重复产品 sSql.Clear(); sSql.Add(@"select top 1 XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID having (count(1)>1)"); sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { string sXLXHID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(); string sXLGGID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sXLBZID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(); string sDYDJID = ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim(); throw new Exception(String.Format("修订后将产生重复产品{0}、{1}、{2}、{3}!", sXLXHID, sXLGGID, sXLBZID, sDYDJID)); } #endregion XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID); dberp.CommitTrans(); ShowMessage("报价产品修订成功!"); btnRefresh_Click(null,null); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } } protected void btnJGBBD_Click(object sender, EventArgs e) { base.InitEntityByCondition(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLXSJGBBDList.aspx"; string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sMXBH = PageParam.GetRTrimString("MXBH"); } pageParams.AddString("MXBH", sMXBH); pageParams.AddString("JGBID", sJGBID); OpenModuleDialog(100860091, pageParams); } protected void btnPLSZ_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_JSBLFS as JSBLFS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_PLSZList.aspx"; pageParams.AddString("XLXSJGBMX_JGBID", sJGBID); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); pageParams.AddString("btnRefresh1CID", btnRefresh.ClientID); OpenDialog(pageParams); } } protected void btnPLSZ_OnDropDown(object sender, EventArgs e) { string sXLJGBID = txtJGBID.Value.Trim(); if (sXLJGBID.Equals("")) { base.InitEntityByCondition(); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); } sXLJGBID = sJGBID; } if (sXLJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } btnPLSZ.Nodes.Clear(); List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sXLJGBID); foreach (TZYZXX yzxx in yzxx_List) { if (string.IsNullOrEmpty(yzxx.XLXSTZYZ_TJYS)) continue; string sTJYS = yzxx.XLXSTZYZ_TJYS.Trim(); string sJGBID = yzxx.XLXSTZYZ_JGBID.Trim(); string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim(); string sJJFS = yzxx.XLXSTZYZ_JJFS.Trim(); string sYZID = yzxx.XLXSTZYZ_YZID.Trim(); string sJJFSMC = ""; switch (sJJFS) { case "JD": sJJFSMC = "(%)"; break; case "JJ": sJJFSMC = "(元)"; break; case "KD": sJJFSMC = "(%)"; break; case "SX": sJJFSMC = "(%)"; break; default: break; } btnPLSZ.Nodes.Add(new gtTreeNode(sTJYS + "," + sJGBID + "," + sYZMC + sJJFSMC+ "," +sYZID, sYZMC + sJJFSMC)); } MenuAreaUpdate(); } protected void btnPLSZ_MenuItemClick(object sender, string ItemIndex) { string sTJYSJGBID = ItemIndex; string sTJYS = sTJYSJGBID.Split(',')[0]; string sJGBID = sTJYSJGBID.Split(',')[1]; string sTJYZMC = sTJYSJGBID.Split(',')[2]; string sYZID = sTJYSJGBID.Split(',')[3]; if (sTJYS.Equals("1"))//型号&规格&电压&标准 { TPageParams tpp = new TPageParams(); tpp.UrlPath = "CLQDYZList.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("XLJGBID", txtJGBID.Value.Trim()); tpp.AddString("XLJGBMC", txtJGBID.Value.Trim() + "|" + txtJGBMC.Value.Trim()); tpp.AddString("XLJGBTJYZMC", sTJYZMC); tpp.AddString("TJYZID", sYZID); tpp.AddString("btnRefreshTBCID", btnRefreshTB.ClientID); OpenFuncModuleDialog(100860017, tpp); } else if (sTJYS.Equals("3")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZJJ3List.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("XLJGBID", txtJGBID.Value.Trim()); tpp.AddString("XLJGBMC", txtJGBID.Value.Trim() + "|" + txtJGBMC.Value.Trim()); tpp.AddString("XLJGBTJYZMC", sTJYZMC); tpp.AddString("TJYZID", sYZID); tpp.AddString("btnRefreshTBCID", btnRefreshTB.ClientID); OpenFuncModuleDialog(100860026, tpp); } else if (sTJYS.Equals("4")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZJJ4List.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("XLJGBID", txtJGBID.Value.Trim()); tpp.AddString("XLJGBMC", txtJGBID.Value.Trim() + "|" + txtJGBMC.Value.Trim()); tpp.AddString("XLJGBTJYZMC", sTJYZMC); tpp.AddString("TJYZID", sYZID); tpp.AddString("btnRefreshTBCID", btnRefreshTB.ClientID); OpenFuncModuleDialog(100860047, tpp); } else if (sTJYS.Equals("5")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZJJ5List.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("XLJGBID", txtJGBID.Value.Trim()); tpp.AddString("XLJGBMC", txtJGBID.Value.Trim() + "|" + txtJGBMC.Value.Trim()); tpp.AddString("XLJGBTJYZMC", sTJYZMC); tpp.AddString("TJYZID", sYZID); tpp.AddString("btnRefreshTBCID", btnRefreshTB.ClientID); OpenFuncModuleDialog(100860058, tpp); } else if (sTJYS.Equals("8")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZJJ8List.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("XLJGBID", txtJGBID.Value.Trim()); tpp.AddString("XLJGBMC", txtJGBID.Value.Trim() + "|" + txtJGBMC.Value.Trim()); tpp.AddString("XLJGBTJYZMC", sTJYZMC); tpp.AddString("TJYZID", sYZID); tpp.AddString("btnRefreshTBCID", btnRefreshTB.ClientID); OpenFuncModuleDialog(100860096, tpp); } } protected void btnCLJJ_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 1: btnTB_Click(sender, null); break; case 2: btnDR_Click(sender, null); break; case 3: CheckCPJJ();//检查区域价基价!=出厂价表价的记录 break; case 4: btnACZBTD_Click(sender, null); break; case 5: btnSYSDC_Click(sender, null); break; } } protected void btnSYSDC_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } if (sBJLY.Equals("D")) { ShowMessage("直接导入类型的价格表不允许导入!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JSBLFS as JSBLFS,XLXSJGB_JJLY from XLXSJGB "); sSql.Add(" where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { string sJJLY = ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim(); string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); string sYXQS = ds.Tables[0].Rows[0]["XLXSJGB_YXQS"].ToString().Trim(); string sYXQZ = ds.Tables[0].Rows[0]["XLXSJGB_YXQZ"].ToString().Trim(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_SYSDR.aspx"; pageParams.AddString("MXBH", sMXBH); pageParams.AddString("JGBID", sJGBID); pageParams.AddString("TJYS", ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim()); pageParams.AddString("YXQS", sYXQS); pageParams.AddString("YXQZ", sYXQZ); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); OpenDialogClickBtn(pageParams, btnRefresh.ClientID); } } protected void btnTZJLDW_Click(object sender, EventArgs e) { TPageParams param = new TPageParams(); param.UrlPath = "JGBML_YJFZInfo.aspx"; param.AddString("FromJGBMX", "Y"); string sXHList = string.Empty; if (this.ContentGrid.CheckBox && !String.IsNullOrEmpty(this.ContentGrid.CheckedRowIndexs)) { param.AddString("PLSZAll", "N"); string[] RowsArry = this.ContentGrid.CheckedRowIndexs.Split(new char[] { ',' }); foreach (string sRowIndex in RowsArry) { int iRowIndex = CMISproConvert.StrToInt(sRowIndex.Trim()); sXHList += ContentGrid.DataKeys[iRowIndex]["XLXSJGBMX_XH"].ToString().Trim()+","; } } else { param.AddString("PLSZAll", "Y"); } sXHList = sXHList.TrimEnd(','); param.AddString("XHs", sXHList); param.AddString("JGBID", txtJGBID.Value.Trim()); OpenDialog(param); } #region 基价按钮点击以及内容 //当查询价格表其XLXSJGB_TJYS='0'、'1'时,“基价”等同当下的“材料行情”; //当查询价格表其XLXSJGB_TJYS='2'时,“基价”即查看区域价所依的出厂价,即调用模块“100860009|销售价格表查询”。 protected void btnCLJJ_OnClick(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_JSBLFS as JSBLFS,XLXSJGB_JJLY "); sSql.Add(" from XLXSJGB "); sSql.Add(" where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3")) { if (!ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim().Equals("D")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_CLJGTZList.aspx"; pageParams.Title = "价格表材料行情"; pageParams.AddString("MXBH", sMXBH); pageParams.AddString("BJLY", sBJLY); pageParams.AddString("TJYS", ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim()); pageParams.AddString("XLXSJGBMX_JGBIDS", ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim()); pageParams.AddString("XLXSJGBMX_JGBID", sJGBID); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); pageParams.AddString("btnRefreshCID", btnRefresh.ClientID); OpenDialog(pageParams); } else { ShowMessage("“基价来源”为“D|直接导入”不允许调整价格表行情!"); return; } } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "CX_JGBMXList.aspx"; pageParams.AddString("JGBIDS", ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim()); pageParams.AddString("XLJGB_JGBMXList_JJ", "XLJGB_JGBMXList_JJ"); OpenDialog(pageParams); } else { ShowMessage("无可查看记录!"); } } else { ShowMessage("无可查看记录!"); } } //当查询价格表其XLXSJGB_TJYS=‘0’、'1'时,“同步”等同当下的“同步材料成本”; //当查询价格表其XLXSJGB_TJYS='2'时,“同步”即将区域价所依出厂价的无税表价、含税表价更新区域价的无税基价、含税基价, //当查询价格表其XLXSJGB_TJYS='2'时,同步即先根据当前行情依照因素1计算出基价,表价(基价=表价),再执行 因素3表价 =因素3表价-因素1基价+因素1表价 //同步前先行检查同一型号、规格、电压等级及执行标准是否出现超过一次,无则更新,有则不同步,并调用模块“100860009|销售价格表查询”显示超过一次的。 protected void btnTB_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); string sJGCZBID = txtJGCZBID.Value.Trim(); string sJGCZBBBID = txtJGCZBBBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; sJGCZBID = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; sJGCZBBBID = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_JGBID = '{0}' and XLXSJGB_MXBH ='{1}' and (isnull(XLXSJGB_TJZT,' ') = 'W' or isnull(XLXSJGB_TJZT,' ') = 'J') ", sJGBID, sMXBH))) { ShowMessage("正在同步,无需重复执行!"); return; } if (sBJLY.Equals("D")) { ShowMessage("直接导入类型的价格表不允许同步!"); return; } int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_JSBLFS as JSBLFS,XLXSJGB_JJLY from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { string sJJLY = ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim(); string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) { Mac.MacLog.TraceFormat(String.Format("TBCLCB_1-Begin")); TBCLCB_1(sMXBH, sJGBID, sJGCZBID, sJGCZBBBID, iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim(), sJJLY, sJGBIDS);//考虑到同步速度问题,支持分尺重表同步 Mac.MacLog.TraceFormat(String.Format("TBCLCB_1-End")); if (sJJLY.Equals("D") && !sJGBIDS.Equals("") && !sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) { TBCLCB_2(dberp, sMXBH, sJGBID, sJGBIDS, "TB", iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); if (sJJLY.Equals("D") && !sJGBIDS.Equals("") && !sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3")) { TBCLCB_3(dberp, sMXBH, sJGBID, sJGBIDS, "TB", iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); if (sJJLY.Equals("D") && !sJGBIDS.Equals("") && !sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } else { ShowMessage("无可查看记录!"); } } else { ShowMessage("无可查看记录!"); } } //当查询价格表其XLXSJGB_TJYS='0'时,“导入”等同当下的“从材料清单导入”。 //当查询价格表其XLXSJGB_TJYS='1',且XLXSJGB_JJLY='D'时判断价格表是否有所依价格表,如果没有所依价格表则打开导入excel文件页面(“导入”等同当下的“从材料清单导入”); //如果存在所依价格表,则将所依价格表中不存在与当前价格表的产品的表价作为基价插入当前价格表中。 //当查询价格表其XLXSJGB_TJYS='2'时,“导入”即将区域价所依的出厂价作为无税基价、含税基价导入区域价, //当查询价格表其XLXSJGB_TJYS='3'时,将所依出厂价价格表的明细记录导入,并将出厂价价格表的“表价”作为现行价价格表的“基价”,再用“基价+(现行价材料价-所依出厂价“基价”)”计算出现行价价格表“表价” //导入前先行检查同一型号、规格、电压等级及执行标准是否出现超过一次,无则导入,有则不导入,并调用模块“100860009|销售价格表查询”显示超过一次的。 protected void btnDR_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } if (sBJLY.Equals("D")) { ShowMessage("直接导入类型的价格表不允许导入!"); return; } int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JSBLFS as JSBLFS,XLXSJGB_JJLY from XLXSJGB "); sSql.Add(" where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { string sJJLY = ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim(); string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) { string sYXQS = ds.Tables[0].Rows[0]["XLXSJGB_YXQS"].ToString().Trim(); string sYXQZ = ds.Tables[0].Rows[0]["XLXSJGB_YXQZ"].ToString().Trim(); if (sJJLY.Equals("D")) { if (sJGBIDS.Equals("")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_DRInfo.aspx"; pageParams.Title = "导入Excel文件"; pageParams.AddString("JJLY", sJJLY); pageParams.AddString("BJLY", sBJLY); pageParams.AddString("YXQS", sYXQS); pageParams.AddString("YXQZ", sYXQZ); pageParams.AddString("MXBH", sMXBH); pageParams.AddString("iXSWS", iXSWS.ToString().Trim()); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); pageParams.AddString("BJU003", GetOption("BJU003")); pageParams.AddString("sDefaultXLBZID", XLBJDUtils.GetDefaultXLBZID()); pageParams.AddString("XLXSJGBMX_JGBID", sJGBID); pageParams.AddString("XLXSJGBMX_JGBMC", txtJGBMC.Value.Trim()); pageParams.AddString("btnRefreshCID", btnRefresh.ClientID); OpenDialog(pageParams); } else { Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-Begin")); DRCLCB_1(dberp, sMXBH, sJGBID, sJGBIDS, iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); Mac.MacLog.TraceFormat(String.Format("DRCLCB_1-End")); if (!sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } } else { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_PLDRList.aspx"; pageParams.AddString("MXBH", sMXBH); pageParams.AddString("JGBID", sJGBID); pageParams.AddString("TJYS", ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim()); pageParams.AddString("YXQS", sYXQS); pageParams.AddString("YXQZ", sYXQZ); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); OpenDialogClickBtn(pageParams, btnRefresh.ClientID); } } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) { TBCLCB_2(dberp, sMXBH, sJGBID, sJGBIDS, "DR", iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); if (sJJLY.Equals("D") && !sJGBIDS.Equals("") && !sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3")) { TBCLCB_3(dberp, sMXBH, sJGBID, sJGBIDS, "DR", iXSWS, ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); if (sJJLY.Equals("D") && !sJGBIDS.Equals("") && !sJGBIDS.Contains(",")) TBXLXSCLHQ(dberp, sJGBID, sJGBIDS); } else { ShowMessage("无可查看记录!"); } } else { ShowMessage("无可查看记录!"); } } private void CheckCPJJ() { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } if (sBJLY.Equals("D")) { ShowMessage("直接导入类型的价格表无所依价格表,不用检查!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_YXQS,XLXSJGB_YXQZ from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) { sSql.Clear(); sSql.Add("select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID,XLXSJGBMX_XLBZID from XLXSJGBMX a"); sSql.Add(" where a.XLXSJGBMX_JGBID=:pJGBID"); sSql.Add(" and exists(select 1 from XLXSJGBMX b where " + CMISproDataBase.GetWhereEqual("b.XLXSJGBMX_JGBID", ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim())); sSql.Add(" and b.XLXSJGBMX_XLXHID=a.XLXSJGBMX_XLXHID and b.XLXSJGBMX_XLGGID=a.XLXSJGBMX_XLGGID and b.XLXSJGBMX_XLBZID=a.XLXSJGBMX_XLBZID"); sSql.Add(" and b.XLXSJGBMX_DYDJID=a.XLXSJGBMX_DYDJID and b.XLXSJGBMX_HSBJ<>a.XLXSJGBMX_HSJJ "); sSql.Add(" )"); sSql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); sSql.ParamByName("pJGBID").Value = sJGBID; DataSet dsJC = dberp.OpenDataSet(sSql); if (dsJC.Tables[0].Rows.Count > 0) { ShowMessage(string.Format("存在基价与所依价格表表价的记录,比如:" + dsJC.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim() + "," + dsJC.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim() + "," + dsJC.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim() + "," + dsJC.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim())); } else ShowMessage("基价与所依价格表表价一致,检查完毕!"); } else ShowMessage("无所依价格表,不用检查!"); } else { ShowMessage("无可查看记录!"); } } //基价按钮下----按尺重表导入 protected void btnACZBTD_Click(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); string sJGCZBID = txtJGCZBID.Value.Trim(); string sJGCZBBBID = txtJGCZBBBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; sJGCZBID = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; sJGCZBBBID = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } if (sBJLY.Equals("D")) { ShowMessage("直接导入类型的价格表不允许同步!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_JSBLFS as JSBLFS,XLXSJGB_JJLY from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = sMXBH; sSql.ParamByName("pJGBID").Value = sJGBID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_ACZBTDList.aspx"; pageParams.AddString("MXBH", sMXBH); pageParams.AddString("JGBID", sJGBID); pageParams.AddString("JSBLFS", ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim()); pageParams.AddString("JJLY", ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim()); pageParams.AddString("btnRefreshCID", btnRefresh.ClientID); OpenDialog(pageParams); } } #endregion #region 3|表价(现行价)=基价(出厂价+材料价价差)&调价----按型号加点对照表扩充 //3|表价(现行价)=基价(出厂价+材料价价差)&调价----按型号加点对照表扩充 protected void btnXHJDDZKC_Click(object sender, EventArgs e) { //先校验“所依价格表明细中是否已包含XLXSJGBXHDZB_BJDXLXHID的记录”,若包含则终止操作并提示“型号??已经在所依价格表【20100001】中存在,操作终止!” string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); string sBJLY = txtBJLY.Value.Trim(); string sJGCZBID = txtJGCZBID.Value.Trim(); string sJGCZBBBID = txtJGCZBBBID.Value.Trim(); if (sJGBID.Equals("")) { base.InitEntityByCondition(); string sQRJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sQRMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sQRJGBID = PageParam.GetRTrimString("JGBID"); sQRMXBH = PageParam.GetRTrimString("MXBH"); } sMXBH = sQRMXBH; sJGBID = sQRJGBID; sJGCZBID = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; sJGCZBBBID = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); } if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sJGBIDS = ""; string sJSBLFS = ""; string sTJYS = ""; SQL.Clear(); SQL.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_JSBLFS as JSBLFS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); sJSBLFS = ds.Tables[0].Rows[0]["JSBLFS"].ToString().Trim(); sTJYS = ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); if (Confirm.GetValue("ask").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("ask").Trim().Equals("Y")) { Confirm.Clear(); try { dberp.BeginTrans(); string sDXKCMessage = string.Empty; string sXHJDKCMessage = string.Empty; Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-Begin")); DoXHJDDZKC(dberp, SQL, sJGBID, sJSBLFS, GetOption("BJU002"), tSession.UserName, tSession.UserId, ref sDXKCMessage, ref sXHJDKCMessage, GetOption(102579000, "XLJGU007")); Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-End")); if (!string.IsNullOrEmpty(sXHJDKCMessage)) { if (sTBBZ.Equals("Y")) ShowMessage("同步完成!但按型号加点对照表扩充失败!原因如下:\r\n" + sXHJDKCMessage); else if (sTBBZ.Equals("D")) ShowMessage("导入完成!但按型号加点对照表扩充失败!原因如下:\r\n" + sXHJDKCMessage); else ShowMessage("扩充失败!原因如下:" + sXHJDKCMessage); } else { if (!string.IsNullOrEmpty(sDXKCMessage)) sDXKCMessage = "但按等芯扩充表扩充失败!原因如下:\r\n" + sDXKCMessage; if (sTBBZ.Equals("Y")) ShowMessage("同步完成!" + sDXKCMessage); else if (sTBBZ.Equals("D")) ShowMessage("导入并扩充完成!" + sDXKCMessage); else ShowMessage("扩充成功!" + sDXKCMessage); } btnRefresh_Click(null, null); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); if (sTBBZ.Equals("Y")) ShowMessage("同步完成!但按型号加点对照表导入出现异常:" + ex.Message); else if (sTBBZ.Equals("D")) ShowMessage("导入完成!但按型号加点对照表导入出现异常:" + ex.Message); else ShowMessage("按型号加点对照表导入出现异常:" + ex.Message); return; } } else if (Confirm.GetValue("ask").Trim().Equals("")) { if (!sJGBIDS.Equals("") && !sTJYS.Equals("1")) { Confirm.Register("ask", "将按型号加点对照表扩充价格表明细产品,是否继续?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("ask").Trim().Equals("")) { Confirm.Ask("ask"); return; } } else { try { dberp.BeginTrans(); string sDXKCMessage = string.Empty; string sXHJDKCMessage = string.Empty; Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-Begin")); DoXHJDDZKC(dberp, SQL, sJGBID, sJSBLFS, GetOption("BJU002"), tSession.UserName, tSession.UserId, ref sDXKCMessage, ref sXHJDKCMessage, GetOption(102579000, "XLJGU007")); Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-End")); if (!string.IsNullOrEmpty(sXHJDKCMessage)) { if (sTBBZ.Equals("Y")) ShowMessage("同步完成!但按型号加点对照表扩充失败!原因如下:\r\n" + sXHJDKCMessage); else if (sTBBZ.Equals("D")) ShowMessage("导入完成!但按型号加点对照表扩充失败!原因如下:\r\n" + sXHJDKCMessage); else ShowMessage("扩充失败!原因如下:" + sXHJDKCMessage); } else { if (!string.IsNullOrEmpty(sDXKCMessage)) sDXKCMessage = "但按等芯扩充表扩充失败!原因如下:\r\n" + sDXKCMessage; if (sTBBZ.Equals("Y")) ShowMessage("同步完成!" + sDXKCMessage); else if (sTBBZ.Equals("D")) ShowMessage("导入并扩充完成!" + sDXKCMessage); else ShowMessage("扩充成功!" + sDXKCMessage); } btnRefresh_Click(null, null); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); if (sTBBZ.Equals("Y")) ShowMessage("同步完成!但按型号加点对照表导入出现异常:" + ex.Message); else if (sTBBZ.Equals("D")) ShowMessage("导入完成!但按型号加点对照表导入出现异常:" + ex.Message); else ShowMessage("按型号加点对照表导入出现异常:" + ex.Message); return; } } } } else { return; } } #endregion #region 各种导入按钮操作 protected void btnDR_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: DR_FZNR(); break; case 1: DR_Excel(); break; } } protected void btnDR_DropDown(object sender, EventArgs e) { btnDR.Nodes.Clear(); btnDR.Nodes.Add(new gtTreeNode("0", "按复制内容导入")); btnDR.Nodes.Add(new gtTreeNode("1", "按Excel文件导入")); MenuAreaUpdate(); } protected void btnRefresh_Click(object sender, EventArgs e) { moduleGV_PageIndexChanging(null, null); } protected void btnRefreshTB_Click(object sender, EventArgs e) { string sBJU003 = GetOption(100860000, "BJU003"); int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; string sJSBLFS = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select XLXSJGB_JSBLFS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID "); sSql.ParamByName("pMXBH").Value = txtMXBH.Value.Trim(); sSql.ParamByName("pJGBID").Value = txtJGBID.Value.Trim(); DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { sJSBLFS = ds.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); } try { dberp.BeginTrans(); XLJGB_CLJGTZList.DoCPJJ(dberp, txtMXBH.Value.Trim(), txtJGBID.Value.Trim(), false, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sBJU003); ShowMessage("同步完成!"); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); } moduleGV_PageIndexChanging(null, null); } #endregion #region 导出数据 protected void btnSJDC_Click(object sender, EventArgs e) { base.InitEntityByCondition(); int iNumberDecimal = XLBJDUtils.BJCLPriceDecimal; string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sMXBH = PageParam.GetRTrimString("MXBH"); } if (sJGBID.Equals("")) { ShowMessage("请先查询数据!"); return; } string sFileName = ""; sFileName = txtJGBID.Value.Trim() + "价格表明细"; string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); #region 构建打印栏目 Dictionary dicColumns = new Dictionary(); dicColumns.Clear(); if (txtBJLY.Value.Equals("C"))//组合产品目录价格表 { ContentGrid.FindColumnByFieldName("JGBXX").Visible = false; dicColumns.Add("JGBXX", "基价价格表"); } dicColumns.Add("XLXSJGBMX_XH", "序号"); dicColumns.Add("XLXSJGBMX_XLXHID", "型号"); dicColumns.Add("XLXSJGBMX_XLGGID", "规格"); dicColumns.Add("XLBZ", "标准"); dicColumns.Add("XLXSJGBMX_DYDJID", "电压等级"); dicColumns.Add("JLDW", "计量单位"); dicColumns.Add("XLXSJGBMX_YXQS", "有效期始"); dicColumns.Add("XLXSJGBMX_YXQZ", "有效期止"); dicColumns.Add("XLXSJGBMX_WSJJ", "无税基价"); dicColumns.Add("XLXSJGBMX_HSJJ", "含税基价"); dicColumns.Add("SCRGF", "生产人工费"); List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); foreach (TZYZXX yzxx in yzxx_List) { if (yzxx.XLXSTZYZ_JJFS.Trim().Equals("JJ")) dicColumns.Add("TZYZ_" + yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim() + "(元)"); else dicColumns.Add("TZYZ_" + yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim() + "(%)"); } dicColumns.Add("XLXSJGBMX_WSBJ", "无税表价"); dicColumns.Add("XLXSJGBMX_HSBJ", "含税表价"); dicColumns.Add("XLXSJGBMX_CJ", "厂价"); dicColumns.Add("XLXSJGBMX_BZ", "备注"); dicColumns.Add("XLXSJGBMX_WHR", "维护人"); dicColumns.Add("XLXSJGBMX_WHSJ", "维护时间"); #endregion #region 查询打印数据集 string sBJU018 = GetOption(100860000, "BJU018"); int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; SQL.Clear(); SQL.Add(" select isnull(XLXSJGB_YXQS, convert(datetime,'1900-01-01')) as XLXSJGB_YXQS,isnull(XLXSJGB_YXQZ, convert(datetime,'1900-01-01')) as XLXSJGB_YXQZ from XLXSJGB where 1=1 AND XLXSJGB_MXBH=:pMXBH "); if (txtBJLY.Value.Equals("C"))//组合产品目录价格表 { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGB_JGBID", txtJGCIDS.Value.Trim())); SQL.ParamByName("pMXBH").Value = "JGC"; } else { SQL.Add(" and XLXSJGB_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; } DataSet dsYXQ = dberp.OpenDataSet(SQL); string sYXQS = "1900-01-01"; string sYXQZ = "1900-01-01"; if ( dsYXQ.Tables[0].Rows.Count > 0) { DataRow dr = dsYXQ.Tables[0].Rows[0]; sYXQS = Convert.ToDateTime(dr["XLXSJGB_YXQS"]).ToString("yyyy-MM-dd"); sYXQZ = Convert.ToDateTime(dr["XLXSJGB_YXQZ"]).ToString("yyyy-MM-dd"); } SQL.Clear(); SQL.Add(" select rtrim(XLXSJGBMX_JGBID)||'|'||XLXSJGB_JGBMC as JGBXX,XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,RTRIM(XLXSJGBMX_XLBZID)||'|'||XLBZ_XLBZLXMC as XLBZ,XLXSJGBMX_DYDJID,"); SQL.Add(" XLXSJGBMX_JLDW as JLDW,"); SQL.Add(" :pYXQS as XLXSJGBMX_YXQS,"); SQL.Add(" :pYXQZ as XLXSJGBMX_YXQZ, "); SQL.Add(" round(XLXSJGBYZZ0_YZZ01*100*100/81.2655989526499/71.3980341706337,6) as SCRGF,XLXSJGBYZZ0_YZZ01 as TZYZ_JZ01,XLXSJGBYZZ0_YZZ02 as TZYZ_JZ02,XLXSJGBYZZ0_YZZ03 as TZYZ_JZ03,XLXSJGBYZZ0_YZZ04 as TZYZ_JZ04,XLXSJGBYZZ0_YZZ05 as TZYZ_JZ05 "); SQL.Add(" ,XLXSJGBYZZ0_YZZ06 as TZYZ_JZ06,XLXSJGBYZZ0_YZZ07 as TZYZ_JZ07,XLXSJGBYZZ0_YZZ08 as TZYZ_JZ08,XLXSJGBYZZ0_YZZ09 as TZYZ_JZ09,XLXSJGBYZZ0_YZZ10 as TZYZ_JZ10, "); if (sBJU018.Equals("Y")) { SQL.Add(" case when XLXSJGBMX_WSJJM <> 0 then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end as XLXSJGBMX_WSJJ,"); SQL.Add(" case when XLXSJGBMX_HSJJM <> 0 then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end as XLXSJGBMX_HSJJ, "); SQL.Add(" case when XLXSJGBMX_HSBJM <> 0 then RoundFix(XLXSJGBMX_HSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_HSBJ end as XLXSJGBMX_HSBJ,"); SQL.Add(" case when XLXSJGBMX_WSBJM <> 0 then RoundFix(XLXSJGBMX_WSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_WSBJ end as XLXSJGBMX_WSBJ, "); } else SQL.Add(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_CJ,XLXSJGBMX_WSBJ, "); SQL.Add(" XLXSJGBMX_SYXH,XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,XLXSJGB_TJYS"); SQL.Add(" from XLXSJGBMX "); SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_Q2 on XLXSBJXLGGTHB_Q2.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { SQL.Add(" left join XLXHB on XLXHB_XLXHID = XLXSJGBMX_XLXHID "); } SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID "); SQL.Add(" left join XLXSJGB on XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=XLXSJGBMX_JGBID "); SQL.Add("where 1=1 "); if (txtBJLY.Value.Equals("C"))//组合产品目录价格表 { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", txtJGCIDS.Value.Trim())); SQL.ParamByName("pMXBH").Value = "JGC"; } else { SQL.Add(" and XLXSJGBMX_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID "); SQL.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); SQL.ParamByName("pJGCZBBBID").Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID2 "); SQL.ParamByName("pJGCZBID2").Value = CurQueryEntity.FieldByName("JGCZBID2").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WCLQD").Value.Trim())) { if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("1")) { SQL.Add("\r\n and exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("2")) { SQL.Add("\r\n and NOT exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } } //外购产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WGCP").Value.Trim())) { if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("1")) { SQL.Add("\r\n and exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("2")) { SQL.Add("\r\n and NOT exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } } //线缆产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLCP").Value.Trim())) { if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("1")) { SQL.Add("\r\n and exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("2")) { SQL.Add("\r\n and NOT exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WJGBYS1").Value.Trim())) { SQL.Add("\r\n and NOT exists(SELECT 1 FROM XLXSJGBYZZ1 WHERE XLXSJGBYZZ1_YZID=:pYZID AND XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID AND XLXSJGBYZZ1_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID) "); SQL.ParamByName("pYZID").Value = CurQueryEntity.FieldByName("WJGBYS1").Value.Trim(); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { SQL.Add(" \r\n and XLXSJGBMX_XLXHID like :pXLXHID "); SQL.ParamByName("pXLXHID").Value = "%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%"; } } else { string sXLXHID = CurQueryEntity.FieldByName("XLXHID").Value.Trim(); if (!string.IsNullOrEmpty(sXLXHID)) { string[] sTemp = sXLXHID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { SQL.Add(" \r\n and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHID)); } else { SQL.Add(" \r\n and XLXSJGBMX_XLXHID = :pXLXHID "); SQL.ParamByName("pXLXHID").Value = sXLXHID; } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { SQL.Add(" \r\n and XLXHB_DTCLID = :pDTCLID "); SQL.ParamByName("pDTCLID").Value = CurQueryEntity.FieldByName("DTCLID").Value.Trim(); } //规格模糊 if (!CurQueryEntity.FieldByName("XLGGIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim())) { SQL.Add(" and XLXSBJXLGGTHB_Q2.XLXSBJXLGGTHB_XLGGIDCH like :pXLGGID "); SQL.ParamByName("pXLGGID").Value = "%" + 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) { SQL.Add(" and " + CMISproDataBase.GetWhereEqual(" XLXSBJXLGGTHB_Q2.XLXSBJXLGGTHB_XLGGIDCH", sXLGGID.Replace('*', '×'))); } else { SQL.Add(" and XLXSBJXLGGTHB_Q2.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); SQL.ParamByName("pXLGGID").Value = CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×"); } } } SQL.ParamByName("pYXQS").Value = sYXQS; SQL.ParamByName("pYXQZ").Value = sYXQZ; if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim())) { SQL.Add(" and XLXSJGBMX_XLBZID = :pST "); SQL.ParamByName("pST").Value = CurQueryEntity.FieldByName("ST").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { SQL.Add(" and XLXSJGBMX_DYDJID = :pDYDJ "); SQL.ParamByName("pDYDJ").Value = CurQueryEntity.FieldByName("DYDJ").Value.Trim(); } //价格核查 //空、1-表价<0、2-表价<基价、3-表价=基价、4-表价>基价 if (!CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("")) { if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("1")) { SQL.Add(" and (XLXSJGBMX_WSBJ < 0 or XLXSJGBMX_HSBJ < 0)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("2")) { SQL.Add(" and (XLXSJGBMX_WSBJ < XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ < XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("3")) { SQL.Add(" and (XLXSJGBMX_WSBJ = XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ = XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("4")) { SQL.Add(" and (XLXSJGBMX_WSBJ > XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ > XLXSJGBMX_HSJJ)"); } } //4、若“零值因子”选中‘JZ01’,则查询时限制isnull(XLXSJGBYZZ0_YZZ01,0)=0 if (!CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Equals("")) { string sTmpJZ = CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Replace("JZ", ""); SQL.Add(" and isnull(XLXSJGBYZZ0_YZZ" + sTmpJZ + ",0)=0"); } SQL.Add("order by XLXSJGBMX_JGBID, XLXSJGBMX_XSXH"); DataSet dsJGBMX = dberp.OpenDataSet(SQL); #endregion string sColName = ""; //循环固定列,进行赋值 for (int i = 0; i < dsJGBMX.Tables[0].Columns.Count; i++) { if (dicColumns.ContainsKey(dsJGBMX.Tables[0].Columns[i].ColumnName)) { sColName = dsJGBMX.Tables[0].Columns[i].ColumnName; dsJGBMX.Tables[0].Columns[i].Caption = "待处理列&_" + dicColumns[sColName]; } } //循环,删除列 for (int i = dsJGBMX.Tables[0].Columns.Count - 1; i >= 0; i--) { if (dsJGBMX.Tables[0].Columns[i].Caption.StartsWith("待处理列&_")) { dsJGBMX.Tables[0].Columns[i].Caption = dsJGBMX.Tables[0].Columns[i].Caption.Replace("待处理列&_", ""); } else { dsJGBMX.Tables[0].Columns.RemoveAt(i); } } if (dsJGBMX.Tables[0].Rows.Count > 0) { string smessage = ""; string sLet = ""; // NpoiSheetData sd = new NpoiSheetData(); sd.ColumnStyle = new System.Collections.Generic.Dictionary(); NpoiColumnStyle ct = new NpoiColumnStyle(); ct.DataFormat = "@"; sd.ColumnStyle.Add("B", ct); sd.ColumnType = new System.Collections.Generic.Dictionary(); for (int k = 0; k < dicColumns.Count; k++) { if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_XH")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_WSJJ")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_HSJJ")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("SCRGF"))//因子值要设为数值型 { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("TZYZ_JZ"))//因子值要设为数值型 { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_WSBJ")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_HSBJ")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } else if (dsJGBMX.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_CJ")) { sLet = TExcelData.ColIndexToReference(k); sd.ColumnType.Add(sLet, NpoiColumnType.Double); } } TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, dsJGBMX, true, null, sd, ref smessage); if (smessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AJAXRunScript(this, "OPENJLDC", jsript); } else { ShowMessage(smessage); } } else { ShowMessage("无记录可以导出!"); } } // 预处理阶段:构建索引字典 Dictionary> indexXLXHID = new Dictionary>(); Dictionary> indexXLGGID = new Dictionary>(); Dictionary> indexDYDJID = new Dictionary>(); // 查询方法 // 查询方法(添加参数标准化) // 查询方法 public DataRow[] FastSelect( string sXQXLXHID, string sXQXLGGID, string sXQDYDJID, Dictionary> indexXLXHID, Dictionary> indexXLGGID, Dictionary> indexDYDJID) { List result = new List(); // 1. 基础过滤(必选条件) if (indexXLXHID.ContainsKey(sXQXLXHID)) { result.AddRange(indexXLXHID[sXQXLXHID]); } else { return new DataRow[0]; } // 2. 二级过滤(可选条件) if (sXQXLGGID != string.Empty) { List temp = new List(); foreach (DataRow row in result) { if (row["XLXSJGBMX_XLGGID"].ToString().Trim() == sXQXLGGID.Trim()) { temp.Add(row); } } result = temp; } // 3. 三级过滤(可选条件) if (sXQDYDJID != string.Empty) { List temp = new List(); foreach (DataRow row in result) { if (row["XLXSJGBMX_DYDJID"].ToString().Trim() == sXQDYDJID.Trim()) { temp.Add(row); } } result = temp; } return result.ToArray(); } protected void btnPDFDC_Click(object sender, EventArgs e) { base.InitEntityByCondition(); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); string sMXBH = CurQueryEntity.FieldByName("MXBH").Value.Trim(); bool bQYXHMLXQ = false; if (CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSBJXHMLXQ_XLXHID from XLXSBJXHMLXQ ")) bQYXHMLXQ = true; if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGBID"))) { sJGBID = PageParam.GetRTrimString("JGBID"); sMXBH = PageParam.GetRTrimString("MXBH"); } if (sJGBID.Equals("")) { ShowMessage("请先查询数据!"); return; } string sFileName = ""; sFileName = txtJGBID.Value.Trim() + "价格表明细"; string m_tmpFilePath = FileService.CombineTempPath(Guid.NewGuid().ToString() + ".pdf"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); DataSet dsXLXSBJXHML, dsXLXSCPML, dsJGBMX,dsXLXSBJXHMLXQ=new DataSet(); #region 组织数据集 string sBJU018 = GetOption(100860000, "BJU018"); int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; SQL.Clear(); SQL.Add(" SELECT XLXSCPML_CPMLID,XLXSCPML_CPMLMC,XLXSCPML_CPMLLX,XLXSCPML_CPMLIDS,XLXSCPML_XSXH "); SQL.Add(" FROM XLXSCPML where isnull(XLXSCPML_TYBZ,'N')<>'Y' order by XLXSCPML_CPMLLX desc,XLXSCPML_XSXH,XLXSCPML_CPMLID "); dsXLXSCPML = dberp.OpenDataSet(SQL); SQL.Clear(); SQL.Add(" select XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID,XLXSBJXHML_CPMLID,XLXSBJXHML_ZSXH,XLXSCPML_CPMLMC "); SQL.Add(" from XLXSBJXHML "); SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = isnull(XLXSBJXHML_CPMLID,' ') "); SQL.Add(" order by XLXSBJXHML_ZSXH,XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID "); dsXLXSBJXHML = dberp.OpenDataSet(SQL); if (bQYXHMLXQ) { SQL.Clear(); SQL.Add(" select XLXSBJXHMLXQ_MLXLXHID,XLXSBJXHMLXQ_MLDYDJID,XLXSBJXHMLXQ_XLXHID,XLXSBJXHMLXQ_DYDJID,XLXSBJXHMLXQ_XLGGID,XLXSBJXHMLXQ_JLDW, "); SQL.Add(" case when ( XLXSBJXHMLXQ_DYDJID='' and XLXSBJXHMLXQ_XLGGID='' ) then 1 when ( XLXSBJXHMLXQ_DYDJID<>'' and XLXSBJXHMLXQ_XLGGID='' ) then 2 when ( XLXSBJXHMLXQ_DYDJID='' and XLXSBJXHMLXQ_XLGGID<>'' ) then 3 else 4 end as PX "); SQL.Add(" from XLXSBJXHMLXQ "); SQL.Add(" order by XLXSBJXHMLXQ_MLXLXHID,XLXSBJXHMLXQ_MLDYDJID,XLXSBJXHMLXQ_XSXH,XLXSBJXHMLXQ_XLXHID,PX "); dsXLXSBJXHMLXQ = dberp.OpenDataSet(SQL); } SQL.Clear(); SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID,XLXSJGBMX_JLDW, "); if (bQYXHMLXQ) { SQL.Add(" XLXSJGBMX_JLDW as MLJLDW,0 as px,"); } if (sBJU018.Equals("Y")) { SQL.Add(" case when XLXSJGBMX_HSBJM <> 0 then RoundFix(XLXSJGBMX_HSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_HSBJ end as XLXSJGBMX_HSBJ,"); SQL.Add(" case when XLXSJGBMX_WSBJM <> 0 then RoundFix(XLXSJGBMX_WSBJM," + iXSWS.ToString().Trim() + ") else XLXSJGBMX_WSBJ end as XLXSJGBMX_WSBJ "); } else SQL.Add(" XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_Q3 on XLXSBJXLGGTHB_Q3.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()) || !string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { SQL.Add(" left join XLXHB on XLXHB_XLXHID = XLXSJGBMX_XLXHID "); } SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID "); SQL.Add(" left join XLXSJGB on XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=XLXSJGBMX_JGBID "); SQL.Add("where 1=1 "); if (txtBJLY.Value.Equals("C"))//组合产品目录价格表 { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", txtJGCIDS.Value.Trim())); SQL.ParamByName("pMXBH").Value = "JGC"; } else { SQL.Add(" and XLXSJGBMX_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID "); SQL.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]; } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); SQL.ParamByName("pJGCZBBBID").Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID2").Value.Trim())) { SQL.Add("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID2 "); SQL.ParamByName("pJGCZBID2").Value = CurQueryEntity.FieldByName("JGCZBID2").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WCLQD").Value.Trim())) { if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("1")) { //SQL语句自测 黄文波 2024-10-17 09:43:33 SQL.Add("\r\n and exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WCLQD").Value.Trim().Equals("2")) { //SQL语句自测 黄文波 2024-10-17 09:43:43 SQL.Add("\r\n and NOT exists(select 1 from XLXSCLQD XLXSCLQDA WHERE XLXSCLQDA.XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQDA.XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID AND XLXSCLQDA.XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSCLQDA.XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID) "); } } //外购产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WGCP").Value.Trim())) { if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("1")) { //SQL语句自测 黄文波 2024-10-17 09:43:47 SQL.Add("\r\n and exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("WGCP").Value.Trim().Equals("2")) { //SQL语句自测 黄文波 2024-10-17 09:43:53 SQL.Add("\r\n and NOT exists(select 1 from XLWGCP WHERE XLWGCP_XLXHID=XLXSJGBMX_XLXHID and XLWGCP_XLGGID=XLXSJGBMX_XLGGID AND XLWGCP_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLWGCP_DYDJID=XLXSJGBMX_DYDJID) "); } } //线缆产品 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLCP").Value.Trim())) { if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("1")) { //SQL语句自测 黄文波 2024-10-17 09:44:53 SQL.Add("\r\n and exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } else if (CurQueryEntity.FieldByName("XLCP").Value.Trim().Equals("2")) { //SQL语句自测 黄文波 2024-10-17 09:44:58 SQL.Add("\r\n and NOT exists(select 1 from XLXLB WHERE XLXLB_XLXHID=XLXSJGBMX_XLXHID and XLXLB_XLGGID=XLXSJGBMX_XLGGID AND XLXLB_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXLB_DYDJID=XLXSJGBMX_DYDJID) "); } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WJGBYS1").Value.Trim())) { //SQL语句自测 黄文波 2024-10-17 09:45:18 SQL.Add("\r\n and NOT exists(SELECT 1 FROM XLXSJGBYZZ1 WHERE XLXSJGBYZZ1_YZID=:pYZID AND XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID AND XLXSJGBYZZ1_XLBZID=XLXSJGBMX_XLBZID "); SQL.Add("\r\n AND XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID) "); SQL.ParamByName("pYZID").Value = CurQueryEntity.FieldByName("WJGBYS1").Value.Trim(); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { //SQL语句自测 黄文波 2024-10-17 09:45:28 if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { SQL.Add(" \r\n and XLXSJGBMX_XLXHID like :pXLXHID "); SQL.ParamByName("pXLXHID").Value = "%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%"; } } else { string sXLXHID = CurQueryEntity.FieldByName("XLXHID").Value.Trim(); if (!string.IsNullOrEmpty(sXLXHID)) { string[] sTemp = sXLXHID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { SQL.Add(" \r\n and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_XLXHID", sXLXHID)); } else { SQL.Add(" \r\n and XLXSJGBMX_XLXHID = :pXLXHID "); SQL.ParamByName("pXLXHID").Value = sXLXHID; } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DTCLID").Value.Trim())) { SQL.Add(" \r\n and XLXHB_DTCLID = :pDTCLID "); SQL.ParamByName("pDTCLID").Value = CurQueryEntity.FieldByName("DTCLID").Value.Trim(); } //规格模糊 if (!CurQueryEntity.FieldByName("XLGGIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim())) { SQL.Add(" and XLXSBJXLGGTHB_Q3.XLXSBJXLGGTHB_XLGGIDCH like :pXLGGID "); SQL.ParamByName("pXLGGID").Value = "%" + 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) { SQL.Add(" and " + CMISproDataBase.GetWhereEqual(" XLXSBJXLGGTHB_Q3.XLXSBJXLGGTHB_XLGGIDCH", sXLGGID.Replace('*', '×'))); } else { SQL.Add(" and XLXSBJXLGGTHB_Q3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); SQL.ParamByName("pXLGGID").Value = CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×"); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim())) { SQL.Add(" and XLXSJGBMX_XLBZID = :pST "); SQL.ParamByName("pST").Value = CurQueryEntity.FieldByName("ST").Value.Trim(); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { SQL.Add(" and XLXSJGBMX_DYDJID = :pDYDJ "); SQL.ParamByName("pDYDJ").Value = CurQueryEntity.FieldByName("DYDJ").Value.Trim(); } //价格核查 //空、1-表价<0、2-表价<基价、3-表价=基价、4-表价>基价 if (!CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("")) { if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("1")) { SQL.Add(" and (XLXSJGBMX_WSBJ < 0 or XLXSJGBMX_HSBJ < 0)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("2")) { SQL.Add(" and (XLXSJGBMX_WSBJ < XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ < XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("3")) { SQL.Add(" and (XLXSJGBMX_WSBJ = XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ = XLXSJGBMX_HSJJ)"); } else if (CurQueryEntity.FieldByName("JGHC").Value.ToString().Trim().Equals("4")) { SQL.Add(" and (XLXSJGBMX_WSBJ > XLXSJGBMX_WSJJ or XLXSJGBMX_HSBJ > XLXSJGBMX_HSJJ)"); } } //4、若“零值因子”选中‘JZ01’,则查询时限制isnull(XLXSJGBYZZ0_YZZ01,0)=0 if (!CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Equals("")) { string sTmpJZ = CurQueryEntity.FieldByName("LZYZ").Value.ToString().Trim().Replace("JZ", ""); SQL.Add(" and isnull(XLXSJGBYZZ0_YZZ" + sTmpJZ + ",0)=0"); } SQL.Add("order by XLXSJGBMX_JGBID, XLXSJGBMX_XSXH"); dsJGBMX = dberp.OpenDataSet(SQL); // 构建索引 foreach (DataRow row in dsJGBMX.Tables[0].Rows) { // XLXHID索引 string xlxhid = row["XLXSJGBMX_XLXHID"].ToString().Trim(); if (!indexXLXHID.ContainsKey(xlxhid)) { indexXLXHID[xlxhid] = new List(); } indexXLXHID[xlxhid].Add(row); // XLGGID索引 string xlggid = row["XLXSJGBMX_XLGGID"].ToString().Trim(); if (!indexXLGGID.ContainsKey(xlggid)) { indexXLGGID[xlggid] = new List(); } indexXLGGID[xlggid].Add(row); // DYDJID索引 string dydjid = row["XLXSJGBMX_DYDJID"].ToString().Trim(); if (!indexDYDJID.ContainsKey(dydjid)) { indexDYDJID[dydjid] = new List(); } indexDYDJID[dydjid].Add(row); } #endregion if (dsXLXSCPML.Tables[0].Rows.Count > 0) { try { string ZHCPML = ","; PdfDocument document = new PdfDocument(); XStringFormat format = new XStringFormat(); format.LineAlignment = XLineAlignment.Center; format.Alignment = XStringAlignment.Center; XStringFormat formatLeft = new XStringFormat(); formatLeft.LineAlignment = XLineAlignment.Center; formatLeft.Alignment = XStringAlignment.Near; PrivateFontCollection pfcFontsBold = new System.Drawing.Text.PrivateFontCollection(); string strFontPathBold = System.AppDomain.CurrentDomain.BaseDirectory + "\\Components\\N_XLXSBJ\\images\\msyhBold.ttf"; pfcFontsBold.AddFontFile(strFontPathBold); XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode); XFont fontParagraphBold = new XFont(pfcFontsBold.Families[0], 10, XFontStyle.Bold, options); PrivateFontCollection pfcFonts = new System.Drawing.Text.PrivateFontCollection(); string strFontPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\Components\\N_XLXSBJ\\images\\msyh.ttf"; pfcFonts.AddFontFile(strFontPath); XFont fontParagraph = new XFont(pfcFonts.Families[0], 10, XFontStyle.Regular, options); int el1_width = 190; int el2_width = 50; int el3_width = 80; int el4_width = 80; int marginLeft = 35; int marginTop = 65; int el_height = 25; XSolidBrush rect_style1 = new XSolidBrush(XColors.Transparent); XSolidBrush rect_style2 = new XSolidBrush(XColors.Orange); XPen pen = new XPen(XColors.Black, 1.0); for (int i = 0; i < dsXLXSCPML.Tables[0].Rows.Count; i++) { string sXLXSCPMLID = dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim(); string sXLXSCPMLMC = dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(); if (dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLLX"].ToString().Trim().Equals("Y")) { PdfOutline ZHCPMLOutline = new PdfOutline(); bool bExistZHCPML = false; if (!dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLIDS"].ToString().Trim().Equals("")) { //string[] ZHCPMLIDList = dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLIDS"].ToString().Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); SQL.Clear(); SQL.Add(" SELECT XLXSCPML_CPMLID "); SQL.Add(" FROM XLXSCPML where isnull(XLXSCPML_TYBZ,'N')<>'Y' and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", dsXLXSCPML.Tables[0].Rows[i]["XLXSCPML_CPMLIDS"].ToString().Trim())); SQL.Add(" order by XLXSCPML_XSXH,XLXSCPML_CPMLID "); DataSet dsChildCPML = dberp.OpenDataSet(SQL); string sZHCPMLIDList = string.Empty; for (int z = 0; z < dsChildCPML.Tables[0].Rows.Count; z++) { sZHCPMLIDList += dsChildCPML.Tables[0].Rows[z][0].ToString().Trim() + ","; } string[] ZHCPMLIDList =sZHCPMLIDList.TrimEnd(',').Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (ZHCPMLIDList.Length > 0) { for (int j = 0; j < ZHCPMLIDList.Length; j++) { PdfOutline outline = new PdfOutline(); bool bExistCPML = false; ZHCPML += ZHCPMLIDList[j].Trim() + ","; DataRow[] drXLXSBJXHML = dsXLXSBJXHML.Tables[0].Select(" XLXSBJXHML_CPMLID = '" + ZHCPMLIDList[j].Trim() + "' "); for (int k = 0; k < drXLXSBJXHML.Length; k++) { string sXLXHID = drXLXSBJXHML[k]["XLXSBJXHML_XLXHID"].ToString().Trim(); string sDYDJID = drXLXSBJXHML[k]["XLXSBJXHML_DYDJID"].ToString().Trim(); string sCPMLMC = drXLXSBJXHML[k]["XLXSCPML_CPMLMC"].ToString().Trim(); if (bQYXHMLXQ) { el_height = 33; #region 启用型号目录详情 //先循环一遍给目录计量单位、表价、px赋值,再循环一遍绘制 for (int px = 1; px <= 4; px++) { DataRow[] drXHMLXQ; drXHMLXQ = dsXLXSBJXHMLXQ.Tables[0].Select("XLXSBJXHMLXQ_MLXLXHID='" + sXLXHID + "' and XLXSBJXHMLXQ_MLDYDJID = '" + sDYDJID + "' and PX=" + px.ToString()); if (drXHMLXQ.Length > 0) { foreach (DataRow row in drXHMLXQ) { string sXQXLXHID = row["XLXSBJXHMLXQ_XLXHID"].ToString().Trim(); string sXQDYDJID = row["XLXSBJXHMLXQ_DYDJID"].ToString().Trim(); string sXQXLGGID = row["XLXSBJXHMLXQ_XLGGID"].ToString().Trim(); string sXQJLDW = row["XLXSBJXHMLXQ_JLDW"].ToString().Trim(); DataRow[] drJGBMX; drJGBMX = FastSelect( sXQXLXHID, sXQXLGGID, sXQDYDJID, indexXLXHID, indexXLGGID, indexDYDJID ); foreach (DataRow rowJGBMX in drJGBMX) { rowJGBMX["MLJLDW"] = sXQJLDW; rowJGBMX["px"] = px; } } } } int iCount = 100; PdfPage pdfPage = new PdfPage(); XGraphics graph; bool bExistJGBOutline = false; if (!bExistZHCPML) { ZHCPMLOutline = document.Outlines.Add(sXLXSCPMLMC, null); bExistZHCPML = true; } if (!bExistCPML) { outline = ZHCPMLOutline.Outlines.Add(sCPMLMC, null); bExistCPML = true; } bool bfirst = true; pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.Dispose(); DataRow[] drXHMLXQ2 = dsXLXSBJXHMLXQ.Tables[0].Select("XLXSBJXHMLXQ_MLXLXHID='" + sXLXHID + "' and XLXSBJXHMLXQ_MLDYDJID = '" + sDYDJID + "' "); if (drXHMLXQ2.Length > 0) { foreach (DataRow row in drXHMLXQ2) { string sXQXLXHID = row["XLXSBJXHMLXQ_XLXHID"].ToString().Trim(); string sXQDYDJID = row["XLXSBJXHMLXQ_DYDJID"].ToString().Trim(); string sXQXLGGID = row["XLXSBJXHMLXQ_XLGGID"].ToString().Trim(); string sXQJLDW = row["XLXSBJXHMLXQ_JLDW"].ToString().Trim(); string sPX = row["PX"].ToString().Trim(); DataRow[] drJGBMX; drJGBMX = FastSelect( sXQXLXHID, sXQXLGGID, sXQDYDJID, indexXLXHID, indexXLGGID, indexDYDJID ); for (int m = 0; m < drJGBMX.Length; m++) { string sJGBXHID = drJGBMX[m]["XLXSJGBMX_XLXHID"].ToString().Trim(); string sXLGGID = drJGBMX[m]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sMXDYDJID = drJGBMX[m]["XLXSJGBMX_DYDJID"].ToString().Trim(); string sJLDW = drJGBMX[m]["XLXSJGBMX_JLDW"].ToString().Trim(); string sHSBJ = drJGBMX[m]["XLXSJGBMX_HSBJ"].ToString().Trim(); string sWSBJ = drJGBMX[m]["XLXSJGBMX_WSBJ"].ToString().Trim(); string sMLJLDW = drJGBMX[m]["MLJLDW"].ToString().Trim(); double dHSBL = GetHSBL(sJLDW, sMLJLDW); sJLDW = sMLJLDW; double dHSBJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sHSBJ) * dHSBL, iXSWS); double dWSBJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSBJ) * dHSBL, iXSWS); sHSBJ = dHSBJ.ToString(); sWSBJ = dWSBJ.ToString(); if (iCount == 100) { iCount = 0; if (!bfirst) { pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.Dispose(); } graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sJGBXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); bfirst = false; } else { graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sJGBXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } iCount++; } } } #endregion } else { #region 不启用 DataRow[] drJGBMX; if (sDYDJID.Trim().Equals("")) drJGBMX = dsJGBMX.Tables[0].Select(" XLXSJGBMX_XLXHID = '" + sXLXHID + "' "); else drJGBMX = dsJGBMX.Tables[0].Select(" XLXSJGBMX_XLXHID = '" + sXLXHID + "' and XLXSJGBMX_DYDJID = '" + sDYDJID + "' "); if (drJGBMX.Length > 0) { if (!bExistZHCPML) { ZHCPMLOutline = document.Outlines.Add(sXLXSCPMLMC, null); bExistZHCPML = true; } if (!bExistCPML) { outline = ZHCPMLOutline.Outlines.Add(sCPMLMC, null); bExistCPML = true; } int iCount = 133; PdfPage pdfPage = new PdfPage(); XGraphics graph; bool bExistJGBOutline = false; for (int m = 0; m < drJGBMX.Length; m++) { string sXLGGID = drJGBMX[m]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sMXDYDJID = drJGBMX[m]["XLXSJGBMX_DYDJID"].ToString().Trim(); string sJLDW = drJGBMX[m]["XLXSJGBMX_JLDW"].ToString().Trim(); string sHSBJ = drJGBMX[m]["XLXSJGBMX_HSBJ"].ToString().Trim(); string sWSBJ = drJGBMX[m]["XLXSJGBMX_WSBJ"].ToString().Trim(); if (iCount == 133) { iCount = 0; pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } else { graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } iCount++; } } #endregion } } } } } } else { PdfOutline outline = new PdfOutline(); bool bExistCPML = false; if (!ZHCPML.Contains("," + sXLXSCPMLID + ",")) { DataRow[] drXLXSBJXHML = dsXLXSBJXHML.Tables[0].Select(" XLXSBJXHML_CPMLID = '" + sXLXSCPMLID + "' "); for (int k = 0; k < drXLXSBJXHML.Length; k++) { string sXLXHID = drXLXSBJXHML[k]["XLXSBJXHML_XLXHID"].ToString().Trim(); string sDYDJID = drXLXSBJXHML[k]["XLXSBJXHML_DYDJID"].ToString().Trim(); string sCPMLMC = drXLXSBJXHML[k]["XLXSCPML_CPMLMC"].ToString().Trim(); if (bQYXHMLXQ) { el_height = 33; #region 启用型号目录详情 //先循环一遍给目录计量单位、表价、px赋值,再循环一遍绘制 for (int px = 1; px <= 4; px++) { DataRow[] drXHMLXQ; drXHMLXQ = dsXLXSBJXHMLXQ.Tables[0].Select("XLXSBJXHMLXQ_MLXLXHID='" + sXLXHID + "' and XLXSBJXHMLXQ_MLDYDJID = '" + sDYDJID + "' and PX=" + px.ToString()); if (drXHMLXQ.Length > 0) { foreach (DataRow row in drXHMLXQ) { string sXQXLXHID = row["XLXSBJXHMLXQ_XLXHID"].ToString().Trim(); string sXQDYDJID = row["XLXSBJXHMLXQ_DYDJID"].ToString().Trim(); string sXQXLGGID = row["XLXSBJXHMLXQ_XLGGID"].ToString().Trim(); string sXQJLDW = row["XLXSBJXHMLXQ_JLDW"].ToString().Trim(); DataRow[] drJGBMX; drJGBMX = FastSelect( sXQXLXHID, sXQXLGGID, sXQDYDJID, indexXLXHID, indexXLGGID, indexDYDJID ); foreach (DataRow rowJGBMX in drJGBMX) { rowJGBMX["MLJLDW"] = sXQJLDW; rowJGBMX["px"] = px; } } } } int iCount = 100; PdfPage pdfPage = new PdfPage(); XGraphics graph; bool bExistJGBOutline = false; if (!bExistCPML) { outline = document.Outlines.Add(sXLXSCPMLMC, null); bExistCPML = true; } bool bfirst = true; pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.Dispose(); DataRow[] drXHMLXQ2 = dsXLXSBJXHMLXQ.Tables[0].Select("XLXSBJXHMLXQ_MLXLXHID='" + sXLXHID + "' and XLXSBJXHMLXQ_MLDYDJID = '" + sDYDJID + "' "); if (drXHMLXQ2.Length > 0) { foreach (DataRow row in drXHMLXQ2) { string sXQXLXHID = row["XLXSBJXHMLXQ_XLXHID"].ToString().Trim(); string sXQDYDJID = row["XLXSBJXHMLXQ_DYDJID"].ToString().Trim(); string sXQXLGGID = row["XLXSBJXHMLXQ_XLGGID"].ToString().Trim(); string sXQJLDW = row["XLXSBJXHMLXQ_JLDW"].ToString().Trim(); string sPX = row["PX"].ToString().Trim(); DataRow[] drJGBMX; drJGBMX = FastSelect( sXQXLXHID, sXQXLGGID, sXQDYDJID, indexXLXHID, indexXLGGID, indexDYDJID ); for (int m = 0; m < drJGBMX.Length; m++) { string sJGBXHID = drJGBMX[m]["XLXSJGBMX_XLXHID"].ToString().Trim(); string sXLGGID = drJGBMX[m]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sMXDYDJID = drJGBMX[m]["XLXSJGBMX_DYDJID"].ToString().Trim(); string sJLDW = drJGBMX[m]["XLXSJGBMX_JLDW"].ToString().Trim(); string sHSBJ = drJGBMX[m]["XLXSJGBMX_HSBJ"].ToString().Trim(); string sWSBJ = drJGBMX[m]["XLXSJGBMX_WSBJ"].ToString().Trim(); string sMLJLDW = drJGBMX[m]["MLJLDW"].ToString().Trim(); double dHSBL = GetHSBL(sJLDW, sMLJLDW); sJLDW = sMLJLDW; double dHSBJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sHSBJ) * dHSBL, iXSWS); double dWSBJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sWSBJ) * dHSBL, iXSWS); sHSBJ = dHSBJ.ToString(); sWSBJ = dWSBJ.ToString(); if (iCount == 100) { iCount = 0; if (!bfirst) { pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.Dispose(); } graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sJGBXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); bfirst = false; } else { graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sJGBXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } iCount++; } } } #endregion } else { #region 不启用 DataRow[] drJGBMX; if (sDYDJID.Trim().Equals("")) drJGBMX = dsJGBMX.Tables[0].Select(" XLXSJGBMX_XLXHID = '" + sXLXHID + "' "); else drJGBMX = dsJGBMX.Tables[0].Select(" XLXSJGBMX_XLXHID = '" + sXLXHID + "' and XLXSJGBMX_DYDJID = '" + sDYDJID + "' "); if (drJGBMX.Length > 0) { if (!bExistCPML) { outline = document.Outlines.Add(sXLXSCPMLMC, null); bExistCPML = true; } int iCount = 133; PdfPage pdfPage = new PdfPage(); XGraphics graph; bool bExistJGBOutline = false; for (int m = 0; m < drJGBMX.Length; m++) { string sXLGGID = drJGBMX[m]["XLXSJGBMX_XLGGID"].ToString().Trim(); string sMXDYDJID = drJGBMX[m]["XLXSJGBMX_DYDJID"].ToString().Trim(); string sJLDW = drJGBMX[m]["XLXSJGBMX_JLDW"].ToString().Trim(); string sHSBJ = drJGBMX[m]["XLXSJGBMX_HSBJ"].ToString().Trim(); string sWSBJ = drJGBMX[m]["XLXSJGBMX_WSBJ"].ToString().Trim(); if (iCount == 133) { iCount = 0; pdfPage = document.AddPage(); if (!bExistJGBOutline) { if (sDYDJID.Trim().Equals("") || sDYDJID.Trim().Equals("--")) outline.Outlines.Add(sXLXHID, pdfPage); else outline.Outlines.Add(sXLXHID + "-" + sDYDJID, pdfPage); bExistJGBOutline = true; } pdfPage.Size = PageSize.RA0; graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(pen, rect_style2, marginLeft, marginTop, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop, marginLeft + el1_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop, marginLeft + el1_width + el2_width, el_height + marginTop); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop); graph.DrawString("规格型号", fontParagraphBold, XBrushes.Black, new XRect(marginLeft, marginTop, el1_width, el_height), format); graph.DrawString("计量单位 ", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop, el2_width, el_height), format); graph.DrawString("含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop, el3_width, el_height), format); graph.DrawString("暂不含税价", fontParagraphBold, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop, el4_width, el_height), format); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } else { graph = XGraphics.FromPdfPage(pdfPage); graph.DrawRectangle(rect_style2, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height); graph.DrawRectangle(pen, rect_style1, marginLeft, marginTop + (iCount + 1) * el_height, el1_width + el2_width + el3_width + el4_width, el_height); graph.DrawLine(pen, marginLeft + el1_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawLine(pen, marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, marginLeft + el1_width + el2_width + el3_width, el_height + marginTop + (iCount + 1) * el_height); graph.DrawString(XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sMXDYDJID), fontParagraph, XBrushes.Black, new XRect(marginLeft, marginTop + (iCount + 1) * el_height, el1_width, el_height), formatLeft); graph.DrawString(sJLDW, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width, marginTop + (iCount + 1) * el_height, el2_width, el_height), format); graph.DrawString(sHSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width, marginTop + (iCount + 1) * el_height, el3_width, el_height), format); graph.DrawString(sWSBJ, fontParagraph, XBrushes.Black, new XRect(marginLeft + el1_width + el2_width + el3_width, marginTop + (iCount + 1) * el_height, el4_width, el_height), format); graph.Dispose(); } iCount++; } } #endregion } } } } } if (document.PageCount > 0) { document.Save(m_tmpFilePath); document.Dispose(); System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; string jsript = @"var PDFDCDiv = document.createElement('div');PDFDCDiv.style.width=0;PDFDCDiv.style.height=0;PDFDCDiv.id = 'PDFDCDivifrDownLoad';" + " var PDFele=document.documentElement||document.body;PDFele.appendChild(PDFDCDiv);var iPDFDCfrm = document.createElement('iframe');iPDFDCfrm.id = 'iPDFDCfrmDownLoad';" + " iPDFDCfrm.src = '" + URL + "';" + "iPDFDCfrm.style.width = 0;iPDFDCfrm.style.height = 0; PDFDCDiv.appendChild(iPDFDCfrm);"; AJAXRunScript(this, "OPENPDFDC", jsript); } else { document.Dispose(); ShowMessage("无记录可以导出。"); } } catch (Exception ex) { ShowMessage(ex.Message); } } else { ShowMessage("无记录可以导出!"); } } #endregion #region 排序方式 protected void btnPXFS_DropDown(object sender, EventArgs e) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSJGB_MXPXFS,XLXSJGB_JJLY,XLXSJGB_BJLY,XLXSJGB_JGBIDS from XLXSJGB where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH = :pMXBH "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sMXPXFS = ds.Tables[0].Rows[0]["XLXSJGB_MXPXFS"].ToString().Trim(); string sJJLY = ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim(); string sBJLY = ds.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); btnPXFS.Nodes.Clear(); if (sMXPXFS.Equals("A")) btnPXFS.Nodes.Add(new gtTreeNode("A", "序号√")); else btnPXFS.Nodes.Add(new gtTreeNode("A", "序号")); if ((!sJJLY.Equals("D") || !sJGBIDS.Equals("")) && !sBJLY.Equals("D")) { if (sMXPXFS.Equals("B")) btnPXFS.Nodes.Add(new gtTreeNode("B", "型号+标准+规格序号+电压等级√")); else btnPXFS.Nodes.Add(new gtTreeNode("B", "型号+标准+规格序号+电压等级")); if (sMXPXFS.Equals("C")) btnPXFS.Nodes.Add(new gtTreeNode("C", "型号+电压等级+规格序号+标准√")); else btnPXFS.Nodes.Add(new gtTreeNode("C", "型号+电压等级+规格序号+标准")); if (sMXPXFS.Equals("D")) btnPXFS.Nodes.Add(new gtTreeNode("D", "标准+型号+规格序号+电压等级√")); else btnPXFS.Nodes.Add(new gtTreeNode("D", "标准+型号+规格序号+电压等级")); if (sMXPXFS.Equals("E")) btnPXFS.Nodes.Add(new gtTreeNode("E", "型号+电压等级+标准+规格√")); else btnPXFS.Nodes.Add(new gtTreeNode("E", "型号+电压等级+标准+规格")); if (sMXPXFS.Equals("F")) btnPXFS.Nodes.Add(new gtTreeNode("F", "型号+电压等级+芯数截面√")); else btnPXFS.Nodes.Add(new gtTreeNode("F", "型号+电压等级+芯数截面")); } MenuAreaUpdate(); } } protected void btnPXFS_MenuItemClick(object sender, string value) { string sMXBH = txtMXBH.Value.Trim(); string sJGBID = txtJGBID.Value.Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, sMXBH, value); Master_OnStandardQuery(null, null); FormAreaUpdate(); } #endregion protected void btnBJZSDC_Click(object sender, EventArgs e) { base.InitEntityByCondition(); string sJGBID = CurQueryEntity.FieldByName("JGBID").Value.Trim(); if (sJGBID.Equals("")) { ShowMessage("请先查询价格表!"); return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLJGB_BJZSDCList.aspx"; pageParams.AddString("JGBID", sJGBID); OpenDialog(pageParams); } #endregion #region GridView增加列 /// /// 设置etCheckBox列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, TEditType CheckBox) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; ContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etCheckBox; ContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etString列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; ContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etString; ColumnEx.ShowHint = true; ContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; ContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; ContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etDateTime列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); ContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etDateTime; ColumnEx.DateTimeEditKins = DateTimeKind; ContentGrid.ColumnsEx.Insert(0, ColumnEx); } #endregion } }