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 System.Data.Common; using GThinking.N_CONTROL; using GThinking.N_WORKFLOW; using GThinking.N_PUBLIC; using GThinking.N_MODEL.Dialog; using GThinking.N_MISPRO.Utility; using System.Reflection; using System.Web.Script; using System.Text; using GThinking.N_PUBLIC2; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; using System.Text.RegularExpressions; using GThinking.N_MISPRO.TableCache; using GThinking.N_MISPROAS.SysData; namespace GThinking.N_XLXSBJ { public partial class XLBJD_MXOper : OperationBase { XLBJD_MX entity = new XLBJD_MX(); //当前的aspx页面,固定写出的列数 private int sConColumnsCount = 16; //除因子栏目外动态增加的列数_sAddColumnsCount private int sAddColumnsCount = 31; //XLXSBJXHML对应的产品目录 Dictionary dicCPML = new Dictionary(); protected void Page_Load(object sender, EventArgs e) { //研发自测:王正阳 2026/04/30 21:03:25 base.UMID = 100860000; base.UMName = "线缆销售报价单"; base.Tabs = Tab; base.CurMaster = Master; this.PageWidth = 1300; this.PageHeight = 600; AddListSetMap(new ListSet(BJDMX.ID, null, QueryGrid, entity, UPXQXX)); if (!IsPostBack) { //分页模式下,初始化翻页控件 if (CurSession.DbId != "") { TGtPager.LoadPageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJD_MXOper.aspx", pgBar); pgBar.MaxPageSize = 800; if (pgBar.PageSize > 800) pgBar.PageSize = 800; } } base.CustomPageSize = 800; int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; InitGrid(iXSWS, PageParam.GetRTrimString("CPBJMRXSWS"), PageParam.GetRTrimString("BJDYZ"), PageParam.GetRTrimString("YZWPIDList"), PageParam.GetRTrimString("ReadOnlyYZ"),PageParam.GetRTrimString("BJFLID")); QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").NumberDecimalPlace = iXSWS; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").NumberDecimalPlace = iXSWS; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").NumberDecimalPlace = iXSWS; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace = iXSWS; int iBJU030 = CMISproConvert.StrToInt(GetOption("BJU030")); if (iBJU030 >= 0) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberIsQuantity = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberDecimalPlace = iBJU030; } base.InitPage(); Master.BtnOK.Visible = false; Master.BtnQueryVisible = false; Master.BtnCancel.Visible = false; Master.BtnReportVisible = false; Master.PnlQuery.Visible = false; //Master.PnlBill.Visible = false; QueryGrid.EnabledToolBar = false; QueryGrid.ReadOnly = false; //entity.QueryEntity = queryEntity; //树节点按产品目录展开不启用右键菜单 if(XLBJDUtils.ExistXSCPML()) LeftQueryTree.UseContextMenu = false; //N_JXS-101363007|经销商库存查询 if (CheckModule("101363007")) { btnJXSKCCX.Visible = true; //取功能模型的模块名称 string sOrgName = OrgModelUtils.GetModuleName("N", UserUtils.GetUser(CurSession.UserId).Sydwid, 101363007); if (sOrgName.Equals("")) { ActiveModule activeModule = ActiveModuleUtils.GetActiveModule(101363007); if (activeModule != null) { sOrgName = activeModule.Name; } } byte[] byteArray = System.Text.ASCIIEncoding.Default.GetBytes(sOrgName); btnJXSKCCX.Caption = sOrgName; if (byteArray.Length >= 6) { btnJXSKCCX.Width = (byteArray.Length - 6) * 6 + 58; } else { btnJXSKCCX.Width = 58; } } else { btnJXSKCCX.Visible = false; } btnSXSJD.Caption = "刷新产品用途"; if (XLBJDUtils.ExistXSCPML()) btnSXSJD.Caption = "刷新产品目录"; if (!IsPostBack) { InitQueryTreeView(); InitControl(); txtCURMX.Value = "Y"; txtCURMXPX.Value = ""; QueryGrid_OnQuery(); } if (chkSELDR.Checked) { QueryGrid.FindColumnByFieldName("SELDR").Visible = true; QueryGrid.CheckBox = false; btnPLLR.Visible = false; btnPLSXXX.Visible = false; MenuAreaUpdate(); } else { QueryGrid.FindColumnByFieldName("SELDR").Visible = false; QueryGrid.CheckBox = true; btnPLLR.Visible = true; btnPLSXXX.Visible = true; MenuAreaUpdate(); } //分页模式下,创建翻页控件的委托事件 pgBar.PageChanged += new EventHandler(pgBar_PageChanged); pgBar.PageSizeChanged += new EventHandler(pgBar_PageSizeChanged); } protected void QueryGrid_OnQuery() { entity.BJDID = PageParam.GetRTrimString("BJDID"); entity.JGBID = PageParam.GetRTrimString("JGBID"); entity.JGCIDS = PageParam.GetRTrimString("JGCIDS"); entity.JGFID = PageParam.GetRTrimString("JGFID"); entity.sBJU002 = GetOption("BJU002"); entity.sBJU003 = GetOption("BJU003"); entity.sCurMX = txtCURMX.Value.Trim(); entity.sCurMXPX = txtCURMXPX.Value.Trim(); entity.sXLXH = txtXLXH.Text.Trim(); entity.sXHJQ = chkXHJQ.Checked ? "Y" : "N"; entity.sXLGG = txtXLGG.Text.Trim(); entity.sGGJQ = chkGGJQ.Checked ? "Y" : "N"; entity.sDYDJ = cbxDYDJID.SelectedValue.Trim(); entity.sXXJGID = txtXXJGID.Text.Trim(); entity.sZJM = txtZJM.Text.Trim(); entity.sTreeXLXH = txtSelXHID.Value.Trim(); entity.bHSBZ = txtHSBZ.Text.Trim().Equals("Y"); entity.bCKC = chkCKC.Checked; entity.sXLBZID = cbxXLBZID.SelectedValue.Trim(); entity.sDZBZYQ = cbxDZBZYQ.SelectedValue.Trim(); entity.JGFCX = txtJGFCX.Value.Trim(); entity.CODESQL = GetCODESQL(); entity.sJXSU004 = GetOption(101363007, "JXSU004"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); DataSet ds = dberp.OpenDataSet(entity.SetQuerySql()); pgBar.RecordCount = ds.Tables[0].Rows.Count; //查询后最后一页是否要变为上一页 if (pgBar.CurrentPageIndex != 1 && (pgBar.CurrentPageIndex - 1) * pgBar.PageSize >= ds.Tables[0].Rows.Count) { pgBar.CurrentPageIndex = pgBar.CurrentPageIndex - 1; } //取当前页数据给QueryGrid if (ds.Tables[0].Rows.Count > pgBar.PageSize) { DataSet dsCopy = ds.Clone();//仅复制结构 int minRowNum = pgBar.PageSize * (pgBar.CurrentPageIndex - 1) + 1; int maxRowNum = pgBar.PageSize * pgBar.CurrentPageIndex; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { int rowNum = i + 1; if (rowNum >= minRowNum && rowNum <= maxRowNum) { dsCopy.Tables[0].ImportRow(ds.Tables[0].Rows[i]); } } QueryGrid.DataSource = dsCopy; QueryGrid.DataBind(); FormAreaUpdate(); } else { QueryGrid.DataSource = ds; QueryGrid.DataBind(); FormAreaUpdate(); } } protected override void Master_OnQuery() { //entity.BJDID = PageParam.GetRTrimString("BJDID"); //entity.JGBID = PageParam.GetRTrimString("JGBID"); //entity.JGCIDS = PageParam.GetRTrimString("JGCIDS"); //entity.JGFID = PageParam.GetRTrimString("JGFID"); //entity.sBJU002 = GetOption("BJU002"); //entity.sBJU003 = GetOption("BJU003"); //entity.sCurMX = txtCURMX.Value.Trim(); //entity.sCurMXPX = txtCURMXPX.Value.Trim(); //entity.sXLXH = txtXLXH.Text.Trim(); //entity.sXHJQ = chkXHJQ.Checked ? "Y" : "N"; //entity.sXLGG = txtXLGG.Text.Trim(); //entity.sGGJQ = chkGGJQ.Checked ? "Y" : "N"; //entity.sDYDJ = cbxDYDJID.SelectedValue.Trim(); //entity.sXXJGID = txtXXJGID.Text.Trim(); //entity.sZJM = txtZJM.Text.Trim(); //entity.sTreeXLXH = txtSelXHID.Value.Trim(); //entity.bHSBZ = txtHSBZ.Text.Trim().Equals("Y"); //entity.bCKC = chkCKC.Checked; //entity.sXLBZID = cbxXLBZID.SelectedValue.Trim(); //entity.CODESQL = GetCODESQL(); //entity.sJXSU004 = GetOption(101363007, "JXSU004"); base.Master_OnQuery(); } protected override void OnPreRender(EventArgs e) { //分页模式下,设置翻页控件 pgBar.ShowPublicOpt = base.isSupervisorUser; pgBar.IsPublic = false; base.OnPreRender(e); SetQueryTreeDispaly(); string script = "window.setTimeout('SetScrollTop();', 100);window.setTimeout('TdClick();', 300);"; AjaxRunScript("SetScrollTop", script); } private void InitControl() { TComboBox.SetComboBox("DBERP", cbxDYDJID, "select XLDYDJB_DYDJID as ID,XLDYDJB_DYDJID as Name,XLDYDJB_XH from XLDYDJB where 1=1 order by XLDYDJB_XH", true); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select XLXSBJD_JZBJHS from XLXSBJD where XLXSBJD_BJDID=:pBJDID"); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtHSBZ.Text = ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim(); } else { txtHSBZ.Text = "Y"; } SQL.Clear(); SQL.Add("select XLXSBJFL_MRCKC from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); SQL.ParamByName("pBJFLID").Value = PageParam.GetRTrimString("BJFLID"); DataSet dsFL = dberp.OpenDataSet(SQL); if (dsFL.Tables[0].Rows.Count > 0) { chkCKC.Checked = dsFL.Tables[0].Rows[0]["XLXSBJFL_MRCKC"].ToString().Trim().Equals("Y"); } SQL.Clear(); SQL.Add(" SELECT XLBZ_XLBZID as ID,XLBZ_XLBZLXMC as CODE,XLBZ_PX FROM XLBZ "); SQL.Add(" WHERE 1 = 1 "); SQL.Add(" order by XLBZ_DZSC,XLBZ_PX,ID "); ds = dberp.OpenDataSet(SQL); cbxXLBZID.ClearItems(); cbxXLBZID.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxXLBZID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["CODE"].ToString().Trim(), ds.Tables[0].Rows[i]["ID"].ToString().Trim())); } } //定制标准要求 Dictionary dicXLCPZLID = new Dictionary(); dicXLCPZLID.Clear(); dicXLCPZLID.Add("DTCP", "导体产品"); dicXLCPZLID.Add("XXCP", "线芯产品"); dicXLCPZLID.Add("LXCP", "缆芯产品"); dicXLCPZLID.Add("XLCP", "线缆产品"); cbxDZBZYQ.ClearItems(); SQL.Clear(); SQL.Add(" select distinct XLDZBZ_XLCPZLID,XLDZBZ_DZSCXM,XLDZBZ_DZSCYQ, "); SQL.Add(" case when (XLDZBZ_DZSCXM='导体材料' and isnull(XLDZBZ_XLCPZLID,' ')<>' ') then XLDTCLB_WLMC else XLDZBZ_DZSCYQ end as DZSCYQ "); SQL.Add(" from XLDZBZ "); SQL.Add(" left join XLDTCLB on XLDTCLB_WLID=' ' and XLDTCLB_DTCLID=XLDZBZ_DZSCYQ "); SQL.Add(" order by XLDZBZ_XLCPZLID,XLDZBZ_DZSCXM,XLDZBZ_DZSCYQ "); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { lblDZBZYQ.Visible = true; cbxDZBZYQ.Visible = true; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXLCPZLID = ds.Tables[0].Rows[i]["XLDZBZ_XLCPZLID"].ToString().Trim(); string sDZSCXM = ds.Tables[0].Rows[i]["XLDZBZ_DZSCXM"].ToString().Trim(); string sXLDZBZ_DZSCYQ = ds.Tables[0].Rows[i]["XLDZBZ_DZSCYQ"].ToString().Trim(); string sDZSCYQ = ds.Tables[0].Rows[i]["DZSCYQ"].ToString().Trim(); string sValue = sXLCPZLID + "|" + sDZSCXM + "|" + sXLDZBZ_DZSCYQ; string sText = string.Empty; if (dicXLCPZLID.ContainsKey(sXLCPZLID)) sText = dicXLCPZLID[sXLCPZLID] + "|" + sDZSCXM + "|" + sDZSCYQ; else sText = sDZSCXM + "|" + sDZSCYQ; cbxDZBZYQ.Items.Add(new ListItem(sText, sValue)); } } else { lblDZBZYQ.Visible = false; cbxDZBZYQ.Visible = false; } XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); chkXHJQ.Checked = true; chkGGJQ.Checked = true; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MDID)) { if (pzxx.XLXSBJPZ_XHJQSX != "Y") chkXHJQ.Checked = false; if (pzxx.XLXSBJPZ_GGJQSX != "Y") chkGGJQ.Checked = false; if (pzxx.XLXSBJPZ_MRGXLR != "Y") chkSELDR.Checked = false; else chkSELDR.Checked = true; } } protected void QueryGrid_CalculateField(object sender, CalculateFieldEventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJU003 = GetOption("BJU003"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sPJLX = PageParam.GetRTrimString("PJLX"); string sFKQXNR = PageParam.GetRTrimString("FKQXNR"); string sSYDWID = PageParam.GetRTrimString("SYDWID"); string sBJDID = PageParam.GetRTrimString("BJDID"); int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS"); string sorYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); string sorYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); string sorYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); string sorYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); string sorYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); string sorYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); string sorYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); string sorYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); string sorYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); string sorYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); string sorYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); string sorYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); string sorYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); string sorYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); string sorYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); string sorYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); string sorYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); string sorYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); string sorYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); string sorYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); string sorTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); bool bNeedUpdateXLXSBJD = false;//标记是否需要同步更新主表 int iNewXH = 0; Dictionary dicChangedField = new Dictionary(); AddChangedField(dicChangedField, e.EventFieldName, e.EventFieldValue); #region 勾选录入 if (e.EventFieldName.Trim().Equals("SELDR")) { if (e.EventFieldValue.Equals("Y")) { if (!e.RowData["XLXSBJDMX_BJSL"].Trim().Equals("") && !e.RowData["XLXSBJDMX_BJSL"].Trim().Equals("0")) return; double dBJSL = 1; e.ResultPairs.Add("XLXSBJDMX_BJSL", dBJSL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJSL", dBJSL.ToString()); Dictionary dicYZZValue = new Dictionary(); for (int i = sConColumnsCount; i < QueryGrid.Columns.Count; i++) { if (QueryGrid.Columns[i].DataField.StartsWith("TZYZ_" + "BJ")) { dicYZZValue.Add(QueryGrid.Columns[i].DataField, e.RowData[QueryGrid.Columns[i].DataField]); } } Dictionary dicResultPairs = new Dictionary(); string sMRJLDW = XLBJDInfo.GetMRJLDWByJBXH(e.RowData["XLXHID"].ToString().Trim()); string sJLDW=e.RowData["JLDW"].ToString().Trim().Split('|')[0].Trim(); if(!sMRJLDW.Equals("")) sJLDW=sMRJLDW; AddMXByBJSL(dberp, SQL, dBJSL, sJLDW, e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim(), e.RowData["XLYSID"].ToString().Trim(), sBJFLID, sPJLX, sFKQXNR, sSYDWID, tmpXSWS, sCPBJMRXSWS, e.RowData["XLXSBJDMX_XH"].ToString().Trim(), dicYZZValue, dicResultPairs, dicChangedField, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()), e.RowData["XLXSBJDMX_BJCP"].ToString().Trim(), e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim(), e.MasterDataSet["txtHSBZ"].Trim().Equals("Y"), e.RowData["XLXSBJDMX_BZ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, sorTZZDXJ, ref iNewXH, ref bNeedUpdateXLXSBJD, e.RowData["XLXSBJDMX_JGFBZ"].ToString().Trim(), sBJDID); foreach (string tmpKey in dicResultPairs.Keys) { e.ResultPairs.Add(tmpKey, dicResultPairs[tmpKey]); } } else { e.ResultPairs.Add("XLXSBJDMX_BJSL", "0"); if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { SQL.Clear(); SQL.Add(" SELECT XLXSBJDMX_XSSX FROM XLXSBJDMX WHERE XLXSBJDMX_BJDID = :pBJDID AND XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_XSSX = XLXSBJDMX_XSSX- 1 where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XSSX >:pXSSX "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXSSX").Value = ds.Tables[0].Rows[0][0].ToString().Trim(); dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add("delete from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; SQL.Clear(); SQL.Add("delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { e.ResultPairs.Add("TZYZ_" + QueryGrid.Columns[i].DataField.Substring(5), "0"); AddChangedField(dicChangedField, "TZYZ_" + QueryGrid.Columns[i].DataField.Substring(5), "0"); } } e.ResultPairs.Add("XLXSBJDMX_XH", "0"); e.ResultPairs.Add("XLXSBJDMX_BZ", ""); //e.ResultPairs.Add("XLXSBJDMX_XSSX", "0");显示顺序是连续的,显示出来不能在取消报价数量时同步显示连续,故放出来不显示 e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", "0"); e.ResultPairs.Add("XLXSBJDMX_TZBJJE", "0"); e.ResultPairs.Add("XLXSBJDMX_BJJE", "0"); e.ResultPairs.Add("TZHDJ", "0"); e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_CPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", "0"); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); } } #endregion #region 数量 if (e.EventFieldName == "XLXSBJDMX_BJSL") { #region 数量 if (!e.EventFieldValue.Equals("") && !e.EventFieldValue.Equals("0")) { Dictionary dicYZZValue = new Dictionary(); for (int i = sConColumnsCount; i < QueryGrid.Columns.Count; i++) { if (QueryGrid.Columns[i].DataField.StartsWith("TZYZ_" + "BJ")) { dicYZZValue.Add(QueryGrid.Columns[i].DataField, e.RowData[QueryGrid.Columns[i].DataField]); } } Dictionary dicResultPairs = new Dictionary(); string sMRJLDW = XLBJDInfo.GetMRJLDWByJBXH(e.RowData["XLXHID"].ToString().Trim()); string sJLDW = e.RowData["JLDW"].ToString().Trim().Split('|')[0].Trim(); if (!sMRJLDW.Equals("")) sJLDW = sMRJLDW; AddMXByBJSL(dberp, SQL, CMISproConvert.StrToFloat(e.EventFieldValue), sJLDW, e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim(), e.RowData["XLYSID"].ToString().Trim(), sBJFLID, sPJLX, sFKQXNR, sSYDWID, tmpXSWS, sCPBJMRXSWS, e.RowData["XLXSBJDMX_XH"].ToString().Trim(), dicYZZValue, dicResultPairs, dicChangedField, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()), e.RowData["XLXSBJDMX_BJCP"].ToString().Trim(), e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim(), e.MasterDataSet["txtHSBZ"].Trim().Equals("Y"), e.RowData["XLXSBJDMX_BZ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, sorTZZDXJ, ref iNewXH, ref bNeedUpdateXLXSBJD, e.RowData["XLXSBJDMX_JGFBZ"].ToString().Trim(), sBJDID); foreach (string tmpKey in dicResultPairs.Keys) { e.ResultPairs.Add(tmpKey, dicResultPairs[tmpKey]); } } #endregion else { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { SQL.Clear(); SQL.Add(" SELECT XLXSBJDMX_XSSX FROM XLXSBJDMX WHERE XLXSBJDMX_BJDID = :pBJDID AND XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_XSSX = XLXSBJDMX_XSSX- 1 where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XSSX >:pXSSX "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXSSX").Value = ds.Tables[0].Rows[0][0].ToString().Trim(); dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add("delete from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; SQL.Clear(); SQL.Add("delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH = :pXH "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { e.ResultPairs.Add("TZYZ_" + QueryGrid.Columns[i].DataField.Substring(5), "0"); AddChangedField(dicChangedField, "TZYZ_" + QueryGrid.Columns[i].DataField.Substring(5), "0"); } } e.ResultPairs.Add("XLXSBJDMX_XH", "0"); e.ResultPairs.Add("XLXSBJDMX_BZ", ""); //e.ResultPairs.Add("XLXSBJDMX_XSSX", "0");显示顺序是连续的,显示出来不能在取消报价数量时同步显示连续,故放出来不显示 e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", "0"); e.ResultPairs.Add("XLXSBJDMX_TZBJJE", "0"); e.ResultPairs.Add("XLXSBJDMX_BJJE", "0"); e.ResultPairs.Add("TZHDJ", "0"); e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_CPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", "0"); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", "0"); e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); } } #endregion #region 因子 else if (e.EventFieldName.IndexOf("TZYZ_") != -1 || e.EventFieldName == "XLXSBJDMX_TZZDXJ" || e.EventFieldName == "XLXSBJDMX_ZDXJ"|| e.EventFieldName == "JLDW") { if (e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ")) { e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", e.EventFieldValue.Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", e.EventFieldValue.Trim()); } string sJLDW = e.RowData["JLDW"].ToString().Trim().Split('|')[0].Trim(); if (e.EventFieldName == "JLDW") sJLDW = e.EventFieldValue.Split('|')[0].Trim(); string sMRJLDW = XLBJDInfo.GetMRJLDWByJBXH(e.RowData["XLXHID"].ToString().Trim()); if (!sMRJLDW.Equals("")) sJLDW = sMRJLDW; double dHSBL = XLBJDUtils.GetHSBL(sJLDW, sBJU003, e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim()); string sMinYZZ = XLBJDUtils.GetMinYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 string sMaxYZZ = XLBJDUtils.GetMaxYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 if (XLBJDUtils.GetYZXXByYZID(e.EventFieldName.Replace("TZYZ_", "")).XLXSTZYZ_TJYS == "B") { sMinYZZ = XLBJDUtils.GetMinYZZB(sSYDWID, e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZB(sSYDWID, e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 } string ReChangeYZID = "";//维护因子时,是否自动change为其最值 string ReChangYZZ = ""; if (!sMinYZZ.Equals(""))//若设置了最值 { //小于最小值按最小值计算 if (CMISproConvert.StrToFloat(e.EventFieldValue) < CMISproConvert.StrToFloat(sMinYZZ, 0)) { e.ResultPairs.Add(e.EventFieldName, sMinYZZ); AddChangedField(dicChangedField, e.EventFieldName, sMinYZZ); ReChangeYZID = e.EventFieldName.Replace("TZYZ_", ""); ReChangYZZ = sMinYZZ; } } if (!sMaxYZZ.Equals(""))//若设置了最值 { //大于最大值按最大值计算 if (CMISproConvert.StrToFloat(e.EventFieldValue) > CMISproConvert.StrToFloat(sMaxYZZ, 0)) { e.ResultPairs.Add(e.EventFieldName, sMaxYZZ); AddChangedField(dicChangedField, e.EventFieldName, sMaxYZZ); ReChangeYZID = e.EventFieldName.Replace("TZYZ_", ""); ReChangYZZ = sMaxYZZ; } } if (e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); string stZDXJ = e.EventFieldValue.Trim(); double dZDXJ = CMISproConvert.StrToFloat(stZDXJ); double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJ); string stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); if (dTZQZDXJ != 0) stTZZDXJ = NumberUtils.RoundX((dZDXJ / dTZQZDXJ - 1) * 100, 15).ToString(); e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", stTZZDXJ); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", stTZZDXJ); e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJ); AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJ); e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJ); sorTZZDXJ = stTZZDXJ; } if (!e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") && !e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZZDXJ != "Y") { e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", "0"); sorTZZDXJ = "0"; } } //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); //将“2|调因子值”的因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) { dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(ReChangYZZ, 0)); } else { dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); } } else { if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) { dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(ReChangYZZ, 0); } else { dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } } } } //将所有的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicTJYZID.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = 0; if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) { tmpYZZ = CMISproConvert.StrToFloat(ReChangYZZ, 0); } else { tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } string tmpTYZZYZID = ""; if (dicTYZZYZID.ContainsKey(sFieldName.Substring(5))) { tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; } if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } } } if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()); double dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()); double dNEWJGBBJ = dCPBJ; double dNEWCLCB = dCLCB; double dNEWBJDHQCLCB = dBJDHQCLCB; if (e.EventFieldName == "JLDW") { dCPBJ = NumberUtils.RoundX(dCPBJ * XLBJDUtils.GetHSBL(e.EventFieldValue.Split('|')[0], e.RowData["OLDJLDW"].ToString().Split('|')[0], e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim()), 5); dCLCB = NumberUtils.RoundX(dCLCB * XLBJDUtils.GetHSBL(e.EventFieldValue.Split('|')[0], e.RowData["OLDJLDW"].ToString().Split('|')[0], e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim()), 5); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB * XLBJDUtils.GetHSBL(e.EventFieldValue.Split('|')[0], e.RowData["OLDJLDW"].ToString().Split('|')[0], e.RowData["XLXHID"].ToString().Trim(), e.RowData["XLGGID"].ToString().Trim(), e.RowData["XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["DYDJID"].ToString().Trim()), 5); dNEWJGBBJ = dCPBJ; dNEWCLCB = dCLCB; dNEWBJDHQCLCB = dBJDHQCLCB; e.ResultPairs.Add("OLDJLDW", e.EventFieldValue.Split('|')[0]); e.ResultPairs.Add("XLXSBJDMX_JGBBJ", dCPBJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCB", dCLCB.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCB", dCLCB.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); } string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(dCPBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); } else { if (dCPBJ != 0) { //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) dTZYZ_JJ += CMISproConvert.StrToFloat(ReChangYZZ, 0); else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]/100); } //MX乘以/DX除以-系数 else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = PageParam.GetRTrimString("BTYZ"); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = dicTJYZIDValue[stBTYZ]; if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 //二次调价 double dTZQCPBJ = dCPBJ; e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); //调整报价单调整因子,调整报价置为0 double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); if (!e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") && !e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZBJ != "Y") { dTZJG = 0.0; e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", "0"); } } dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()); double dBJJE = dTZQBJJE + dTZJE; e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dNEWJGBBJ * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(dNEWJGBBJ * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dNEWJGBBJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dNEWJGBBJ * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = dNEWJGBBJ * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - dNEWJGBBJ * dBJSL; double dtmpCPJE = dNEWJGBBJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dNEWJGBBJ * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZQCPBJ=:pTZQCPBJ,XLXSBJDMX_TZCPBJ = :pTZCPBJ,XLXSBJDMX_CPBJ = :pCPBJ,XLXSBJDMX_BJTJCZ='TJYZJS',XLXSBJDMX_TZQBJJE=:pTZQBJJE,XLXSBJDMX_BJJE=:pBJJE,XLXSBJDMX_JGBBJJCL=:pLRL,XLXSBJDMX_JGBBJJCE=:pLRE, "); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0,XLXSBJDMX_JLDW = :XLXSBJDMX_JLDW,XLXSBJDMX_CLCB=:XLXSBJDMX_CLCB,XLXSBJDMX_BJDHQCLCB=:XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_JGBBJ=:XLXSBJDMX_JGBBJ, "); SQL.Add(" XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N' "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH"); SQL.ParamByName("pTZQCPBJ").Value = dTZQCPBJ; SQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; SQL.ParamByName("pTZCPBJ").Value = dTZJG; SQL.ParamByName("pCPBJ").Value = dCPBJ; SQL.ParamByName("XLXSBJDMX_CLCB").Value = dNEWCLCB; SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dNEWBJDHQCLCB; SQL.ParamByName("XLXSBJDMX_JGBBJ").Value = dNEWJGBBJ; SQL.ParamByName("pTZQBJJE").Value = dTZQBJJE; SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; if (e.EventFieldName != "XLXSBJDMX_TZZDXJ" && e.EventFieldName != "XLXSBJDMX_ZDXJ" && e.EventFieldName != "JLDW") { if (!ReChangeYZID.Equals("")) dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", e.EventFieldName.Substring(5).Trim().Replace("BJ", ""), CMISproConvert.StrToFloat(ReChangYZZ, 0), PageParam.GetRTrimString("BJDID"), e.RowData["XLXSBJDMX_XH"].ToString().Trim())); else dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", e.EventFieldName.Substring(5).Trim().Replace("BJ", ""), CMISproConvert.StrToFloat(e.EventFieldValue, 0), PageParam.GetRTrimString("BJDID"), e.RowData["XLXSBJDMX_XH"].ToString().Trim())); } } } #endregion #region 备注 else if (e.EventFieldName == "XLXSBJDMX_BZ") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BZ = :pBZ where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBZ").Value = e.RowData["XLXSBJDMX_BZ"].ToString().Trim(); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); } } #endregion #region 报价产品 else if (e.EventFieldName == "XLXSBJDMX_BJCP") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJCP = :pBJCP where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJCP").Value = e.RowData["XLXSBJDMX_BJCP"].ToString().Trim(); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); } } #endregion #region 调整报价金额 else if (e.EventFieldName == "XLXSBJDMX_TZBJJE") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { double dTZQBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQBJJE"].ToString().Trim()); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()); double dBJJE = dTZQBJJE + dTZJE; double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim())), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZBJJE=:pTZJE,XLXSBJDMX_BJJE=:pBJJE,XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL,"); SQL.Add(" XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N' "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pTZJE").Value = dTZJE; SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } } #endregion #region 报价金额 else if (e.EventFieldName == "XLXSBJDMX_BJJE") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim()); double dTZQBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQBJJE"].ToString().Trim()); double dTZJE = dBJJE - dTZQBJJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()), 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 /( CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim())), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZBJJE=:pTZJE,XLXSBJDMX_BJJE=:pBJJE,XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL,"); SQL.Add(" XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N' "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pTZJE").Value = dTZJE; SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_TZBJJE", dTZJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZBJJE", dTZJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); } } #endregion #region 产品报价 else if (e.EventFieldName == "XLXSBJDMX_CPBJ") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { double dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim()); double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim()); double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString()); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZQBJJE=:pTZQBJJE,XLXSBJDMX_BJJE = :pBJJE,XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL,"); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_TZCPBJ=:pTZJG,XLXSBJDMX_CPBJ=:pCPBJ,XLXSBJDMX_BJTJCZ='SSBJ',XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N' "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pTZJG").Value = dTZJG; SQL.ParamByName("pCPBJ").Value = dCPBJ; SQL.ParamByName("pTZQBJJE").Value = dTZQBJJE; SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } } #endregion #region 调整产品报价 else if (e.EventFieldName == "XLXSBJDMX_TZCPBJ") { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim()); double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim()); double dCPBJ = XLBJDUtils.RoundSZ(dTZQCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); double dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim()); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZQBJJE=:pTZQBJJE,XLXSBJDMX_BJJE = :pBJJE,XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL,"); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_TZCPBJ=:pTZJG,XLXSBJDMX_CPBJ=:pCPBJ,XLXSBJDMX_BJTJCZ='SSBJ',XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N'"); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pTZJG").Value = dTZJG; SQL.ParamByName("pCPBJ").Value = dCPBJ; SQL.ParamByName("pTZQBJJE").Value = dTZQBJJE; SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } } #endregion #region 报价单行情料价 else if (e.EventFieldName.Equals("XLXSBJDMX_BJDHQCLCB")) { if (!e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("") && !e.RowData["XLXSBJDMX_XH"].ToString().Trim().Equals("0")) { bool bCLCBJCL = false; bool bJGBBJLJJCL = false; double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRL = 0.0; double dJGBBJLJJCL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); bCLCBJCL = true; e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); bCLCBJCL = true; e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); bCLCBJCL = true; e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } if (PageParam.GetRTrimString("BJLJJCLLX").Equals("1")) { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dJGBBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); if (dBJSL * dJGBBJ != 0) dJGBBJLJJCL = NumberUtils.RoundX((dBJSL * dJGBBJ - dBJSL * dBJDHQCLCB) / (dBJSL * dJGBBJ) * 100, 2); bJGBBJLJJCL = true; e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); } SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_BJDHQCLCB=:XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ = 'Y' "); if (bCLCBJCL) { SQL.Add(" ,XLXSBJDMX_CLCBJCL=:XLXSBJDMX_CLCBJCL "); SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL; } if (bJGBBJLJJCL) { SQL.Add(" ,XLXSBJDMX_JGBBJLJJCL=:XLXSBJDMX_JGBBJLJJCL "); SQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = dJGBBJLJJCL; } SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dBJDHQCLCB; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCBTZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCBTZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB ", dBJDHQCLCB.ToString()); } } #endregion #region 料价价差率 else if (e.EventFieldName == "XLXSBJDMX_CLCBJCL")//料价价差率变化,重算报价金额、报价、调整报价(%) { //这里程序做了制约:不变调整金额,变调整报价(%) double dCLCBLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); if (dBJSL != 0) { double dBJJE = 0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1"))//1|(调整后报价金额-价格表行情料价金额)/调整后报价金额*100 { double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); if (dCLCBLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCLCB / (1 - dCLCBLRL / 100), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dCLCBLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100 { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4"))//4|(报价单行情料价金额)/调整后报价金额*100 { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dCLCBLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (dCLCBLRL / 100), 2); } double dTZQBJJE = dBJJE - dTZJE; double dCPBJ = dTZQBJJE / dBJSL; dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); dBJJE = dTZQBJJE + dTZJE; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; //重算表价价差率 double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJJE = :pBJJE,XLXSBJDMX_TZQBJJE=:pTZQBJJE,"); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_TZCPBJ=:pTZJG,XLXSBJDMX_CPBJ=:pCPBJ,XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='Y',XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL,XLXSBJDMX_BJTJCZ='LJJCLTZ'"); if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { SQL.Add(",XLXSBJDMX_BJLY = 'JGBHQLJ' "); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2") || PageParam.GetRTrimString("LJJCLLX").Equals("3") || PageParam.GetRTrimString("LJJCLLX").Equals("4")) { SQL.Add(",XLXSBJDMX_BJLY = 'BJDHQLJ' "); } SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pTZQBJJE").Value = dTZQBJJE; SQL.ParamByName("pTZJG").Value = dTZJG; SQL.ParamByName("pCPBJ").Value = dCPBJ; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); } } #endregion #region 表价价差率 if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJJCL"))//表价价差率变化,重算报价金额、报价、调整报价(%) { //这里程序做了制约:不变调整金额,变调整报价(%) double dLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJJCL"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dBJSL != 0) { //表价价差率公式 double dBJJE = 0; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//1|(调整后报价金额-表价金额)/调整后报价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (1 - dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJJE /100, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2"))//2|(表价金额-调整后报价金额)/表价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 - dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ /100, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3"))//3|表价金额/调整后报价金额*100 { if (dLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (dLRL / 100), 2); dLRE =0; } else if (PageParam.GetRTrimString("JCLLX").Equals("4"))//4|(调整后报价金额-表价金额)/表价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 + dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ / 100, 2); } double dTZQBJJE = dBJJE - dTZJE; double dCPBJ = dTZQBJJE / dBJSL; dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); dBJJE = dTZQBJJE + dTZJE; dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; //重算料价价差率 double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJJE = :pBJJE,XLXSBJDMX_TZQBJJE=:pTZQBJJE,"); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_TZCPBJ=:pTZJG,XLXSBJDMX_CPBJ=:pCPBJ,XLXSBJDMX_BJTJCZ='BJJCLTZ',XLXSBJDMX_CLCBJCL=:pCLCBLRL,XLXSBJDMX_CLCBJCLSDBZ='N',XLXSBJDMX_JGBBJJCE=:pLRE,XLXSBJDMX_JGBBJJCL=:pLRL"); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pBJJE").Value = dBJJE; SQL.ParamByName("pTZQBJJE").Value = dTZQBJJE; SQL.ParamByName("pTZJG").Value = dTZJG; SQL.ParamByName("pCPBJ").Value = dCPBJ; SQL.ParamByName("pLRE").Value = dLRE; SQL.ParamByName("pLRL").Value = dLRL; SQL.ParamByName("pCLCBLRL").Value = dCLCBLRL; SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = e.RowData["XLXSBJDMX_XH"].ToString().Trim(); dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } } #endregion #region 最低限价、最低限价价差率 bool NeedUpdateZDXJ =false; if (e.EventFieldName == "XLXSBJDMX_BJSL") { if (!e.EventFieldValue.Equals("") && !e.EventFieldValue.Equals("0")) NeedUpdateZDXJ = true; } else if (e.EventFieldName == "SELDR") { if (e.EventFieldValue.Equals("Y")) NeedUpdateZDXJ = true; } else if (e.EventFieldName == "XLXSBJDMX_TZZDXJ" || e.EventFieldName == "XLXSBJDMX_ZDXJ") { NeedUpdateZDXJ = true; } else { double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJSL != 0) NeedUpdateZDXJ = true; } if (NeedUpdateZDXJ) { string stCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CLCB")) stCLCB = dicChangedField["XLXSBJDMX_CLCB"]; else stCLCB = e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(); string stBJDHQCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJDHQCLCB")) stBJDHQCLCB = dicChangedField["XLXSBJDMX_BJDHQCLCB"]; else stBJDHQCLCB = e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); string stJGBJJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBJJ")) stJGBJJ = dicChangedField["XLXSBJDMX_JGBJJ"]; else stJGBJJ = e.RowData["XLXSBJDMX_JGBJJ"].ToString().Trim(); string stJGBBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBBJ")) stJGBBJ = dicChangedField["XLXSBJDMX_JGBBJ"]; else stJGBBJ = e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(); string stCPBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CPBJ")) stCPBJ = dicChangedField["XLXSBJDMX_CPBJ"]; else stCPBJ = e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(); string stYZZ01 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ01")) stYZZ01 = dicChangedField["TZYZ_BJ01"]; else stYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); string stYZZ02 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ02")) stYZZ02 = dicChangedField["TZYZ_BJ02"]; else stYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); string stYZZ03 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ03")) stYZZ03 = dicChangedField["TZYZ_BJ03"]; else stYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); string stYZZ04 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ04")) stYZZ04 = dicChangedField["TZYZ_BJ04"]; else stYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); string stYZZ05 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ05")) stYZZ05 = dicChangedField["TZYZ_BJ05"]; else stYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); string stYZZ06 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ06")) stYZZ06 = dicChangedField["TZYZ_BJ06"]; else stYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); string stYZZ07 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ07")) stYZZ07 = dicChangedField["TZYZ_BJ07"]; else stYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); string stYZZ08 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ08")) stYZZ08 = dicChangedField["TZYZ_BJ08"]; else stYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); string stYZZ09 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ09")) stYZZ09 = dicChangedField["TZYZ_BJ09"]; else stYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); string stYZZ10 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ10")) stYZZ10 = dicChangedField["TZYZ_BJ10"]; else stYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); string stYZZ11 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ11")) stYZZ11 = dicChangedField["TZYZ_BJ11"]; else stYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); string stYZZ12 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ12")) stYZZ12 = dicChangedField["TZYZ_BJ12"]; else stYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); string stYZZ13 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ13")) stYZZ13 = dicChangedField["TZYZ_BJ13"]; else stYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); string stYZZ14 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ14")) stYZZ14 = dicChangedField["TZYZ_BJ14"]; else stYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); string stYZZ15 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ15")) stYZZ15 = dicChangedField["TZYZ_BJ15"]; else stYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); string stYZZ16 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ16")) stYZZ16 = dicChangedField["TZYZ_BJ16"]; else stYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); string stYZZ17 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ17")) stYZZ17 = dicChangedField["TZYZ_BJ17"]; else stYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); string stYZZ18 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ18")) stYZZ18 = dicChangedField["TZYZ_BJ18"]; else stYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); string stYZZ19 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ19")) stYZZ19 = dicChangedField["TZYZ_BJ19"]; else stYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); string stYZZ20 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ20")) stYZZ20 = dicChangedField["TZYZ_BJ20"]; else stYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); string stZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_ZDXJ")) stZDXJ = dicChangedField["XLXSBJDMX_ZDXJ"]; else stZDXJ = e.RowData["XLXSBJDMX_ZDXJ"].ToString().Trim(); string sJSJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JSJG")) sJSJ = dicChangedField["XLXSBJDMX_JSJG"]; else sJSJ = e.RowData["XLXSBJDMX_JSJG"].ToString().Trim(); string stBJSL = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJSL")) stBJSL = dicChangedField["XLXSBJDMX_BJSL"]; else stBJSL = e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(); string stBJJE = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJJE")) stBJJE = dicChangedField["XLXSBJDMX_BJJE"]; else stBJJE = e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(); string stTZZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) stTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; else stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); string sXH = iNewXH == 0 ? e.RowData["XLXSBJDMX_XH"].ToString().Trim() : iNewXH.ToString(); string sUpdJJYZList = GetUpdJJYZList(PageParam.GetRTrimString("BJDID"), CMISproConvert.StrToInt(sXH)); if (!e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { double dTZQZDXJ = CMISproConvert.StrToFloat(stZDXJ); sTZQZDXJ = XLBJDUtils.GetZDXJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sTZQZDXJ, sBJFLID, 8, e.RowData["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), tmpXSWS).ToString(); if(CMISproConvert.StrToFloat(stZDXJ)!=dTZQZDXJ) AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJ); e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJ); e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJ); } sJSJ = XLBJDUtils.GetJSJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stZDXJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sJSJ, sBJFLID, 8, sUpdJJYZList); e.ResultPairs.Add("XLXSBJDMX_JSJG", sJSJ); string stZDXJJCL = XLBJDUtils.GetZDXJJCL(PageParam.GetRTrimString("ZDXJJCLLX"), stZDXJ, stBJSL, stBJJE, stBJDHQCLCB, stJGBBJ); SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_ZDXJ = :pZDXJ,XLXSBJDMX_JSJG = :pJSJ,XLXSBJDMX_ZDXJJCL=:pZDXJJCL,XLXSBJDMX_TZZDXJ = :pTZZDXJ,XLXSBJDMX_TZQZDXJ = :pTZQZDXJ "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH and isnull(XLXSBJDMX_ZDXJBJDID,' ') = ' ' "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = iNewXH == 0 ? e.RowData["XLXSBJDMX_XH"].ToString().Trim() : iNewXH.ToString(); SQL.ParamByName("pZDXJ").Value = stZDXJ; SQL.ParamByName("pJSJ").Value = sJSJ; SQL.ParamByName("pZDXJJCL").Value = stZDXJJCL; SQL.ParamByName("pTZZDXJ").Value = stTZZDXJ; SQL.ParamByName("pTZQZDXJ").Value = sTZQZDXJ; dberp.ExecSQL(SQL); e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", stZDXJJCL); } else { e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", "0"); e.ResultPairs.Add("XLXSBJDMX_ZDXJ", "0"); e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", "0"); } #endregion if (bNeedUpdateXLXSBJD) { XLBJDUtils.UpdateXLXSBJD(dberp, SQL, PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("JCLLX"), PageParam.GetRTrimString("LJJCLLX"), PageParam.GetRTrimString("ZDXJJCLLX"), PageParam.GetRTrimString("JYF"), PageParam.GetRTrimString("YSJDID"), PageParam.GetRTrimString("GYSID"), PageParam.GetRTrimString("YFWLID"), PageParam.GetRTrimString("BJHYF")); //根据报价分类计算最低限价 //XLBJDUtils.UpdateZDXJGS(PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJFLID"), GetOption("BJU002")); } } protected void grdXLBJDMX_GetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) { List lstValue = new List(); if (e.EventFieldName == "JLDW") { lstValue.Clear(); e.DropDownItems.Clear(); string sJLDWList = XLBJDUtils.GetJLDWS(); string[] sTempJCJLDW = sJLDWList.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTempJCJLDW.Length; m++) { lstValue.Add(sTempJCJLDW[m]); } if (lstValue.Contains("M")) { e.DropDownItems.Add(new ListItem("M")); } if (lstValue.Contains("Km")) { e.DropDownItems.Add(new ListItem("Km")); } if (lstValue.Contains("米")) { e.DropDownItems.Add(new ListItem("米")); } if (lstValue.Contains("千米")) { e.DropDownItems.Add(new ListItem("千米")); } foreach (string sJLDW in lstValue) { if (!sJLDW.Equals("M") && !sJLDW.Equals("Km") && !sJLDW.Equals("米") && !sJLDW.Equals("千米")) { e.DropDownItems.Add(new ListItem(sJLDW)); } } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" select distinct XLXSJGBMX_JLDW from XLXSJGBMX "); sql.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID"); sql.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID"); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJLDW = ds.Tables[0].Rows[i]["XLXSJGBMX_JLDW"].ToString().Trim(); if (lstValue.Contains(sJLDW)) { continue; } else { e.DropDownItems.Add(new ListItem(sJLDW)); } } } } } private void InitGrid(int iXSWS, string sCPBJMRXSWS, string sBJDYZText, string sYZWPIDList, string sReadOnlyYZ, string sBJFLID) { if (sBJDYZText.Equals("")) return; if (QueryGrid.Columns.Count > sConColumnsCount)//如果列数大于固定栏目数量15,说明已经执行过InitGrid,无需重复执行 return; QueryGrid.ShowPager = false; QueryGrid.EnabledToolBar = false; //显示报价单行情料价栏目 if (PageParam.GetRTrimString("XSBJDHQLJ").Equals("Y")) QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; else QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; //显示价格表行情料价栏目 if (PageParam.GetRTrimString("XSLJ").Equals("Y")) QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; else QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; //显示价格表基价栏目 if (PageParam.GetRTrimString("XSJJ").Equals("Y")) QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true; else QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; #region 因子栏目 string[] sBJDYZ = sBJDYZText.Split(','); string[] sReadOnly = sReadOnlyYZ.Split(','); for (int i = 0; i < sBJDYZ.Length; i++) { gtAjaxGridViewColumn _gtAjaxGridViewColumnTZYZ = new gtAjaxGridViewColumn(); if (XLBJDUtils.GetYZXXByYZID(sBJDYZ[i].Split('|')[0].Trim()).XLXSTZYZ_TJLX == "1") _gtAjaxGridViewColumnTZYZ.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(DD)", "(%)").Replace("(XX)", "(不参与调价)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); else _gtAjaxGridViewColumnTZYZ.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "").Replace("(KD)", "(%)").Replace("(MP)", "(%)"); _gtAjaxGridViewColumnTZYZ.DataField = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); if (_gtAjaxGridViewColumnTZYZ.HeaderText.Length < 8) { _gtAjaxGridViewColumnTZYZ.Width = Unit.Pixel(80); } else { _gtAjaxGridViewColumnTZYZ.Width = Unit.Pixel(_gtAjaxGridViewColumnTZYZ.HeaderText.Length * 10 + 20); } _gtAjaxGridViewColumnTZYZ.EditType = TEditType.etNumber; if (sBJDYZ[i].Trim().EndsWith("(MX)") || sBJDYZ[i].Trim().EndsWith("(DX)")) { _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 4; } else if (sBJDYZ[i].Trim().EndsWith("(JJ)")) { _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 6; } else { _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 2; } //分类选中的 //BJ01|因子01(MX) //BJ02|因子02() //BJ03|因子03 if (!sBJDYZ[i].Trim().EndsWith("()")) { _gtAjaxGridViewColumnTZYZ.Visible = true; _gtAjaxGridViewColumnTZYZ.CalculateField = true; if (sBJDYZ[i].Trim().EndsWith("(XX)")) _gtAjaxGridViewColumnTZYZ.CalculateField = false; if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) _gtAjaxGridViewColumnTZYZ.ReadOnly = true; } else { _gtAjaxGridViewColumnTZYZ.Visible = false; } QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZYZ); } //根据适用工作流事务隐藏因子栏目 string[] sYZWPIDs = sYZWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); //string sFirstWPID = "";//新建时流程状态按sFirstWPID算 //ListItemCollection listItems = new ListItemCollection(); //WorkFlowUtils.SetListItemCollection_WFYWSW("XLXSBJ_BJD", listItems, false); //if (listItems.Count > 0) //{ // sFirstWPID = listItems[0].Value.Trim(); //} for (int i = 0; i < sYZWPIDs.Length; i++) { string tmpYZID = sYZWPIDs[i].Split('|')[0].Trim(); string tmpWPIDs = "," + sYZWPIDs[i].Split('|')[1].Trim() + ","; string curWPID = PageParam.GetRTrimString("WPID"); if (!tmpWPIDs.Contains("," + curWPID + ",")) { QueryGrid.FindColumnByFieldName("TZYZ_" + tmpYZID).Visible = false; } } #endregion #region 添加栏目 gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQCPBJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZQCPBJ.HeaderText = "调整前报价"; _gtAjaxGridViewColumnTZQCPBJ.DataField = "XLXSBJDMX_TZQCPBJ"; _gtAjaxGridViewColumnTZQCPBJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZQCPBJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZQCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS;//保留精度高的 _gtAjaxGridViewColumnTZQCPBJ.ReadOnly = true; _gtAjaxGridViewColumnTZQCPBJ.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZQCPBJ); gtAjaxGridViewColumn _gtAjaxGridViewColumnTZJG = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZJG.HeaderText = "调整报价(%)"; _gtAjaxGridViewColumnTZJG.DataField = "XLXSBJDMX_TZCPBJ"; _gtAjaxGridViewColumnTZJG.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZJG.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZJG.NumberDecimalPlace = 6; _gtAjaxGridViewColumnTZJG.CalculateField = true; if (PageParam.GetRawString("XSTZJG").Equals("Y")) _gtAjaxGridViewColumnTZJG.Visible = true; else _gtAjaxGridViewColumnTZJG.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZJG); //添加线缆产品报价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnCPBJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCPBJ.HeaderText = "报价"; _gtAjaxGridViewColumnCPBJ.DataField = "XLXSBJDMX_CPBJ"; _gtAjaxGridViewColumnCPBJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnCPBJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS;//保留精度高的 _gtAjaxGridViewColumnCPBJ.CalculateField = true; //_gtAjaxGridViewColumnCPBJ.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnCPBJ); //添加报价金额列 gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQBJJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZQBJJE.HeaderText = "报价金额"; _gtAjaxGridViewColumnTZQBJJE.DataField = "XLXSBJDMX_TZQBJJE"; _gtAjaxGridViewColumnTZQBJJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZQBJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZQBJJE.NumberDecimalPlace = 2; _gtAjaxGridViewColumnTZQBJJE.ReadOnly = true; if (PageParam.GetRawString("XSTZJE").Equals("Y")) _gtAjaxGridViewColumnTZQBJJE.Visible = true; else _gtAjaxGridViewColumnTZQBJJE.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZQBJJE); gtAjaxGridViewColumn _gtAjaxGridViewColumnTZJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZJE.HeaderText = "调整金额(元)"; _gtAjaxGridViewColumnTZJE.DataField = "XLXSBJDMX_TZBJJE"; _gtAjaxGridViewColumnTZJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZJE.NumberDecimalPlace = 2; _gtAjaxGridViewColumnTZJE.CalculateField = true; if (PageParam.GetRawString("XSTZJE").Equals("Y")) _gtAjaxGridViewColumnTZJE.Visible = true; else _gtAjaxGridViewColumnTZJE.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZJE); gtAjaxGridViewColumn _gtAjaxGridViewColumnBJJE = new gtAjaxGridViewColumn(); if (PageParam.GetRawString("XSTZJE").Equals("Y")) _gtAjaxGridViewColumnBJJE.HeaderText = "调整后报价金额"; else _gtAjaxGridViewColumnBJJE.HeaderText = "报价金额"; _gtAjaxGridViewColumnBJJE.DataField = "XLXSBJDMX_BJJE"; _gtAjaxGridViewColumnBJJE.Width = Unit.Pixel(90); _gtAjaxGridViewColumnBJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJJE.NumberDecimalPlace = 2; //_gtAjaxGridViewColumnBJJE.CalculateField = true; _gtAjaxGridViewColumnBJJE.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnBJJE); gtAjaxGridViewColumn _gtAjaxGridViewColumnTZHDJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZHDJ.HeaderText = "调整后单价"; _gtAjaxGridViewColumnTZHDJ.DataField = "TZHDJ"; _gtAjaxGridViewColumnTZHDJ.Width = Unit.Pixel(90); _gtAjaxGridViewColumnTZHDJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZHDJ.NumberDecimalPlace = iXSWS; _gtAjaxGridViewColumnTZHDJ.ReadOnly = true; if (PageParam.GetRawString("XSTZJE").Equals("Y")) _gtAjaxGridViewColumnTZHDJ.Visible = true; else _gtAjaxGridViewColumnTZHDJ.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZHDJ); gtAjaxGridViewColumn _gtAjaxGridViewColumnCLZL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLZL.HeaderText = "材料重量"; _gtAjaxGridViewColumnCLZL.DataField = "XLXSBJDMX_CLZL"; _gtAjaxGridViewColumnCLZL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnCLZL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCLZL.NumberDecimalPlace = 3; _gtAjaxGridViewColumnCLZL.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnCLZL); gtAjaxGridViewColumn _gtAjaxGridViewColumnBJLJJCL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJLJJCL.HeaderText = "表价料价价差率(%)"; _gtAjaxGridViewColumnBJLJJCL.DataField = "XLXSBJDMX_JGBBJLJJCL"; _gtAjaxGridViewColumnBJLJJCL.Width = Unit.Pixel(100); _gtAjaxGridViewColumnBJLJJCL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJLJJCL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnBJLJJCL.ReadOnly = true; if (PageParam.GetRTrimString("XSBJLJJCL").Equals("Y")) _gtAjaxGridViewColumnBJLJJCL.Visible = true; else _gtAjaxGridViewColumnBJLJJCL.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnBJLJJCL); gtAjaxGridViewColumn _gtAjaxGridViewColumnCLCBLRL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLCBLRL.HeaderText = "料价价差率(%)"; _gtAjaxGridViewColumnCLCBLRL.DataField = "XLXSBJDMX_CLCBJCL"; _gtAjaxGridViewColumnCLCBLRL.Width = Unit.Pixel(90); _gtAjaxGridViewColumnCLCBLRL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCLCBLRL.NumberDecimalPlace = 2; if (PageParam.GetRTrimString("XSTZJG").Equals("Y"))//仅显示调整报价(%)栏目时可以修改料价价差率 _gtAjaxGridViewColumnCLCBLRL.CalculateField = true; else _gtAjaxGridViewColumnCLCBLRL.ReadOnly = true; if (PageParam.GetRTrimString("XSLJJCL").Equals("Y")) _gtAjaxGridViewColumnCLCBLRL.Visible = true; else _gtAjaxGridViewColumnCLCBLRL.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnCLCBLRL); //添加利润率%列 gtAjaxGridViewColumn _gtAjaxGridViewColumnLRL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnLRL.HeaderText = "表价价差率(%)"; _gtAjaxGridViewColumnLRL.DataField = "XLXSBJDMX_JGBBJJCL"; _gtAjaxGridViewColumnLRL.Width = Unit.Pixel(90); _gtAjaxGridViewColumnLRL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnLRL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnLRL.CalculateField = true; if (PageParam.GetRTrimString("XSTZJG").Trim().Equals("Y"))//仅显示调整报价(%)栏目时可以修改表价价差率 _gtAjaxGridViewColumnLRL.ReadOnly = false; else _gtAjaxGridViewColumnLRL.ReadOnly = true; if (PageParam.GetRTrimString("XSJCL").Equals("Y")) _gtAjaxGridViewColumnLRL.Visible = true; else _gtAjaxGridViewColumnLRL.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnLRL); //添加利润额列 gtAjaxGridViewColumn _gtAjaxGridViewColumnLRE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnLRE.HeaderText = "表价价差额"; _gtAjaxGridViewColumnLRE.DataField = "XLXSBJDMX_JGBBJJCE"; _gtAjaxGridViewColumnLRE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnLRE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnLRE.NumberDecimalPlace = 2; _gtAjaxGridViewColumnLRE.ReadOnly = true; if (PageParam.GetRawString("XSJGBBJJCE").Equals("Y")) { _gtAjaxGridViewColumnLRE.Visible = true; } else { _gtAjaxGridViewColumnLRE.Visible = false; } QueryGrid.Columns.Add(_gtAjaxGridViewColumnLRE); //调整前最低限价 gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQZDXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZQZDXJ.HeaderText = "调整前最低限价"; _gtAjaxGridViewColumnTZQZDXJ.DataField = "XLXSBJDMX_TZQZDXJ"; _gtAjaxGridViewColumnTZQZDXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZQZDXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZQZDXJ.NumberDecimalPlace = 8;//保留精度高的 _gtAjaxGridViewColumnTZQZDXJ.ReadOnly = true; _gtAjaxGridViewColumnTZQZDXJ.Visible = false; _gtAjaxGridViewColumnTZQZDXJ.FilterColumn = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZQZDXJ); //调整最低限价 gtAjaxGridViewColumn _gtAjaxGridViewColumnTZZDXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZZDXJ.HeaderText = "调整最低限价(%)"; _gtAjaxGridViewColumnTZZDXJ.DataField = "XLXSBJDMX_TZZDXJ"; _gtAjaxGridViewColumnTZZDXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZZDXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZZDXJ.NumberDecimalPlace = 6; _gtAjaxGridViewColumnTZZDXJ.CalculateField = true; if (PageParam.GetRTrimString("XSTZZDXJ").Trim().Equals("Y")) _gtAjaxGridViewColumnTZZDXJ.Visible = true; else _gtAjaxGridViewColumnTZZDXJ.Visible = false; _gtAjaxGridViewColumnTZZDXJ.FilterColumn = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnTZZDXJ); //添加最低限价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJ.HeaderText = "最低限价"; _gtAjaxGridViewColumnZDXJ.DataField = "XLXSBJDMX_ZDXJ"; _gtAjaxGridViewColumnZDXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZDXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZDXJ.NumberDecimalPlace = iXSWS; //_gtAjaxGridViewColumnLRE.CalculateField = true; if (PageParam.GetRTrimString("XSZDXJ").Trim().Equals("Y")) { _gtAjaxGridViewColumnZDXJ.Visible = true; } else { _gtAjaxGridViewColumnZDXJ.Visible = false; } if (PageParam.GetRTrimString("XSTZZDXJ").Trim().Equals("Y")) { _gtAjaxGridViewColumnZDXJ.CalculateField = true; } else { _gtAjaxGridViewColumnZDXJ.ReadOnly = true; } QueryGrid.Columns.Add(_gtAjaxGridViewColumnZDXJ); //添加最低限价价差率%列 gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJJCL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJJCL.HeaderText = "最低限价价差率(%)"; _gtAjaxGridViewColumnZDXJJCL.DataField = "XLXSBJDMX_ZDXJJCL"; _gtAjaxGridViewColumnZDXJJCL.Width = Unit.Pixel(120); _gtAjaxGridViewColumnZDXJJCL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZDXJJCL.NumberDecimalPlace = CMISproConvert.StrToInt(GetOption("BJU054")); _gtAjaxGridViewColumnZDXJJCL.CalculateField = true; if (PageParam.GetRTrimString("XSZDXJ").Trim().Equals("Y") && !PageParam.GetRTrimString("ZDXJJCLLX").Equals("")) _gtAjaxGridViewColumnZDXJJCL.Visible = true; else _gtAjaxGridViewColumnZDXJJCL.Visible = false; _gtAjaxGridViewColumnZDXJJCL.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnZDXJJCL); //添加结算价价列 BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJ = new gtAjaxGridViewColumn(); if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM.Trim())) { _gtAjaxGridViewColumnJSJ.HeaderText = bjflxx.XLXSBJFL_JSJBM; } else _gtAjaxGridViewColumnJSJ.HeaderText = "结算价"; _gtAjaxGridViewColumnJSJ.DataField = "XLXSBJDMX_JSJG"; _gtAjaxGridViewColumnJSJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnJSJ.EditType = TEditType.etNumber; if (!bjflxx.XLXSBJFL_JSJXSWS.Equals("0") && !bjflxx.XLXSBJFL_JSJXSWS.Equals("")) { int iJSJXSWS = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_JSJXSWS); _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = iJSJXSWS; } else _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = iXSWS; //_gtAjaxGridViewColumnLRE.CalculateField = true; if (PageParam.GetRTrimString("XSJSJ").Trim().Equals("Y")) { _gtAjaxGridViewColumnJSJ.Visible = true; } else { _gtAjaxGridViewColumnJSJ.Visible = false; } _gtAjaxGridViewColumnJSJ.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnJSJ); //添加备注列 gtAjaxGridViewColumn _gtAjaxGridViewColumnBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBZ.HeaderText = "备注"; _gtAjaxGridViewColumnBZ.DataField = "XLXSBJDMX_BZ"; _gtAjaxGridViewColumnBZ.Width = Unit.Pixel(200); _gtAjaxGridViewColumnBZ.EditType = TEditType.etString; _gtAjaxGridViewColumnBZ.CalculateField = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnBZ); //添加维护人工号列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHRID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHRID.HeaderText = "维护人工号"; _gtAjaxGridViewColumnWHRID.DataField = "XLXSBJDMX_WHRID"; _gtAjaxGridViewColumnWHRID.Width = Unit.Pixel(70); _gtAjaxGridViewColumnWHRID.EditType = TEditType.etString; _gtAjaxGridViewColumnWHRID.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnWHRID); //添加维护人列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHR = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHR.HeaderText = "维护人"; _gtAjaxGridViewColumnWHR.DataField = "XLXSBJDMX_WHR"; _gtAjaxGridViewColumnWHR.Width = Unit.Pixel(72); _gtAjaxGridViewColumnWHR.EditType = TEditType.etString; _gtAjaxGridViewColumnWHR.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnWHR); //添加维护时间列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHSJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHSJ.HeaderText = "维护时间"; _gtAjaxGridViewColumnWHSJ.DataField = "XLXSBJDMX_WHSJ"; _gtAjaxGridViewColumnWHSJ.Width = Unit.Pixel(125); _gtAjaxGridViewColumnWHSJ.EditType = TEditType.etDateTime; _gtAjaxGridViewColumnWHSJ.DateTimeEditKind = TDateTimeEditKinds.dtDateTime; _gtAjaxGridViewColumnWHSJ.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnWHSJ); //添加报价单序号 gtAjaxGridViewColumn _gtAjaxGridViewColumnXH = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnXH.HeaderText = "序号"; _gtAjaxGridViewColumnXH.DataField = "XLXSBJDMX_XH"; _gtAjaxGridViewColumnXH.Width = Unit.Pixel(80); _gtAjaxGridViewColumnXH.EditType = TEditType.etNumber; _gtAjaxGridViewColumnXH.NumberDecimalPlace = 0; _gtAjaxGridViewColumnXH.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnXH); //添加物料编码列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWLID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWLID.HeaderText = "物料编码"; _gtAjaxGridViewColumnWLID.DataField = "WLID"; _gtAjaxGridViewColumnWLID.Width = Unit.Pixel(80); _gtAjaxGridViewColumnWLID.EditType = TEditType.etString; _gtAjaxGridViewColumnWLID.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnWLID); //添加物料名称列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWLMC = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWLMC.HeaderText = "物料名称"; _gtAjaxGridViewColumnWLMC.DataField = "WL_MC"; _gtAjaxGridViewColumnWLMC.Width = Unit.Pixel(200); _gtAjaxGridViewColumnWLMC.EditType = TEditType.etString; _gtAjaxGridViewColumnWLMC.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnWLMC); //可用最大库存数量 gtAjaxGridViewColumn _gtAjaxGridViewColumnMaxKYKCSL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnMaxKYKCSL.HeaderText = "最大可用库存"; _gtAjaxGridViewColumnMaxKYKCSL.DataField = "MAXKYSL"; _gtAjaxGridViewColumnMaxKYKCSL.Width = Unit.Pixel(90); _gtAjaxGridViewColumnMaxKYKCSL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnMaxKYKCSL.NumberDecimalPlace = 3; _gtAjaxGridViewColumnMaxKYKCSL.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnMaxKYKCSL); //可用总库存数量 gtAjaxGridViewColumn _gtAjaxGridViewColumnKYKCSL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnKYKCSL.HeaderText = "总可用库存"; _gtAjaxGridViewColumnKYKCSL.DataField = "KYSL"; _gtAjaxGridViewColumnKYKCSL.Width = Unit.Pixel(90); _gtAjaxGridViewColumnKYKCSL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnKYKCSL.NumberDecimalPlace = 3; _gtAjaxGridViewColumnKYKCSL.ReadOnly = true; QueryGrid.Columns.Add(_gtAjaxGridViewColumnKYKCSL); //库存数量 //gtAjaxGridViewColumn _gtAjaxGridViewColumnKCSL = new gtAjaxGridViewColumn(); //_gtAjaxGridViewColumnKCSL.HeaderText = "库存数量"; //_gtAjaxGridViewColumnKCSL.DataField = "JCSL"; //_gtAjaxGridViewColumnKCSL.Width = Unit.Pixel(80); //_gtAjaxGridViewColumnKCSL.EditType = TEditType.etNumber; //_gtAjaxGridViewColumnKCSL.NumberDecimalPlace = 3; //_gtAjaxGridViewColumnKCSL.ReadOnly = true; //QueryGrid.Columns.Add(_gtAjaxGridViewColumnKCSL); gtAjaxGridViewColumn _gtAjaxGridViewColumnCLQDXH = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLQDXH.HeaderText = "价格表明细序号"; _gtAjaxGridViewColumnCLQDXH.DataField = "XLXSJGBMX_XH"; _gtAjaxGridViewColumnCLQDXH.Width = Unit.Pixel(10); _gtAjaxGridViewColumnCLQDXH.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCLQDXH.NumberDecimalPlace = 3; _gtAjaxGridViewColumnCLQDXH.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnCLQDXH); gtAjaxGridViewColumn _gtAjaxGridViewColumnPX0 = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnPX0.HeaderText = "PX0"; _gtAjaxGridViewColumnPX0.DataField = "PX0"; _gtAjaxGridViewColumnPX0.Width = Unit.Pixel(10); _gtAjaxGridViewColumnPX0.EditType = TEditType.etNumber; _gtAjaxGridViewColumnPX0.NumberDecimalPlace = 0; _gtAjaxGridViewColumnPX0.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnPX0); //有无清单 gtAjaxGridViewColumn _gtAjaxGridViewColumnHasCLQD = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnHasCLQD.HeaderText = "有无清单"; _gtAjaxGridViewColumnHasCLQD.DataField = "HasCLQD"; _gtAjaxGridViewColumnHasCLQD.Width = Unit.Pixel(72); _gtAjaxGridViewColumnHasCLQD.EditType = TEditType.etString; _gtAjaxGridViewColumnHasCLQD.ReadOnly = true; _gtAjaxGridViewColumnHasCLQD.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnHasCLQD); //---最低限价报价单ID gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJBJDID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJBJDID.HeaderText = "最低限价报价单ID"; _gtAjaxGridViewColumnZDXJBJDID.DataField = "XLXSBJDMX_ZDXJBJDID"; _gtAjaxGridViewColumnZDXJBJDID.Width = Unit.Pixel(72); _gtAjaxGridViewColumnZDXJBJDID.EditType = TEditType.etString; _gtAjaxGridViewColumnZDXJBJDID.ReadOnly = true; _gtAjaxGridViewColumnZDXJBJDID.Visible = false; _gtAjaxGridViewColumnZDXJBJDID.FilterColumn = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnZDXJBJDID); //JGFBZ gtAjaxGridViewColumn _gtAjaxGridViewColumnJGFBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnJGFBZ.HeaderText = "JGFBZ"; _gtAjaxGridViewColumnJGFBZ.DataField = "XLXSBJDMX_JGFBZ"; _gtAjaxGridViewColumnJGFBZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnJGFBZ.EditType = TEditType.etString; _gtAjaxGridViewColumnJGFBZ.ReadOnly = true; _gtAjaxGridViewColumnJGFBZ.Visible = false; QueryGrid.Columns.Add(_gtAjaxGridViewColumnJGFBZ); #endregion string sJGBBJBM = PageParam.GetRTrimString("JGBBJBM"); string sBJDHQLJBM = PageParam.GetRTrimString("BJDHQLJBM"); string sBJBM = PageParam.GetRTrimString("BJBM"); if (!string.IsNullOrEmpty(sJGBBJBM.Trim())) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM.Trim(); QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").HeaderText = sJGBBJBM.Trim() + "料价价差率(%)"; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = sJGBBJBM.Trim() + "价差率(%)"; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText = sJGBBJBM.Trim() + "价差额"; } if (!string.IsNullOrEmpty(sBJDHQLJBM.Trim())) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = sBJDHQLJBM.Trim(); } if (!string.IsNullOrEmpty(sBJBM.Trim())) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = sBJBM.Trim(); QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = sBJBM.Trim() + "金额"; } //=======编辑权限 //报价单行情料价 if (PageParam.GetRTrimString("TZBJDHQLJ").Equals("1")) QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = true; else QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = false; if (PageParam.GetRTrimString("TZBJ").Equals("1")) QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else { if (!PageParam.GetRTrimString("CPBJZDWPID").Equals("")) { string sWPIDS = "," + PageParam.GetRTrimString("CPBJZDWPID") + ","; string sWPID = PageParam.GetRTrimString("WPID"); if (sWPIDS.Contains(sWPID)) QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } else QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } txtTZBJDHQLJ.Value = PageParam.GetRTrimString("TZBJDHQLJ"); //仅录入报价产品-栏目权限控制 SetJLRBJCPCol(PageParam.GetRTrimString("JLRBJCP"), PageParam.GetRTrimString("WPID"), PageParam.GetRTrimString("HidJSLMList")); } private void SetJLRBJCPCol(string sJLRBJCP, string sWPID, string sHidJSLMList) { if (sWPID.Equals(""))//新建 { if (sJLRBJCP.Equals("Y")) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; for (int i = 1; i <= 20; i++) { QueryGrid.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; QueryGrid.FindColumnByFieldName("TZHDJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } } else { string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sWPID); if (sBZSW.Equals("0010")) { if (sJLRBJCP.Equals("Y")) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; for (int i = 1; i <= 20; i++) { QueryGrid.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; QueryGrid.FindColumnByFieldName("TZHDJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } } else { if (PageParam.GetRTrimString("SQRID").Equals(CurSession.RYID.Trim())) { //单据不在第一步0010环节,报价申请人只允许比第一步时多看到“报价”、“报价金额”两个栏目,“报价数量”至“备注”之间的其他栏目仍然控制隐藏。 if (sJLRBJCP.Equals("Y")) { QueryGrid.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; for (int i = 1; i <= 20; i++) { QueryGrid.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("TZHDJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; QueryGrid.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } } } } #region 按角色隐藏栏目 //获取需要按角色隐藏的栏目ID列表 if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int i = 0; i < sHidJSLMs.Length; i++) { string sLMID = sHidJSLMs[i].Trim(); switch (sLMID) { case "btnBJSM": break; case "btnMXOper": break; case "btnCLCB": break; case "btnBJLR": break; case "btnLJ": break; case "btnBJ": break; case "btnBDBJ": break; case "btnCLCYZD": break; case "btnZDFX": break; case "btnBJFK": break; default: if (QueryGrid.FindColumnByFieldName(sLMID) != null) { QueryGrid.FindColumnByFieldName(sLMID).Visible = false; } break; } } } #endregion } protected void btnInsMX_Click(object sender, EventArgs e) { if (!txtCURMX.Value.Equals("N")) { if (txtXLXH.Text.Trim().Equals("")) { ShowMessage("请指定型号!"); return; } else { txtCURMX.Value = "N"; txtSelXHID.Value = ""; QueryGrid_OnQuery(); } } else { if (!txtXLXH.Text.Trim().Equals("")) { txtCURMX.Value = "N"; txtSelXHID.Value = ""; QueryGrid_OnQuery(); } else { ShowMessage("请指定型号!"); return; } } } //给众邦用的,用于限制批号查现货库存,参考自101363007|经销商库存查询 private string GetCODESQL() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select CDSQL from CODEDEFINE "); SQL.Add(" where CDCLASS='JXSWSDH.PH' and CDPLATFORM='N' and CDXH=1 "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["CDSQL"].ToString().Trim(); } return string.Empty; } private string GetUpdJJYZList(string sBJDID,int iXH) { string sUpdJJYZList = string.Empty; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10 "); SQL.Add(" from XLXSBJDJJYZ "); SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:pXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pXH").Value = iXH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < 10; i++) sUpdJJYZList += ds.Tables[0].Rows[0][i].ToString().Trim() + "|"; } return sUpdJJYZList.TrimEnd('|'); } protected void chkCKC_CheckedChanged(object sender, EventArgs e) { //刷新 QueryGrid_OnQuery(); } #region 控件事件 //经销商库存查询 protected void btnJXSKCCX_Click(object sender, EventArgs e) { if (QueryGrid.SelectedIndex < 0) { ShowMessage("请选中明细记录!"); return; } string sXLXHID = QueryGrid.GetValueByFieldName("XLXHID", QueryGrid.NewRows[QueryGrid.SelectedIndex]).ToString().Trim(); string sXLGGID = QueryGrid.GetValueByFieldName("XLGGID", QueryGrid.NewRows[QueryGrid.SelectedIndex]).ToString().Trim(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "../components/N_JXS/JXSKCCXList.aspx"; pageParams.AddString("XLXHID", sXLXHID); pageParams.AddString("XLGGID", sXLGGID); OpenModuleDialog(101363007, pageParams); } protected void btnPLSXXX_Click(object sender, EventArgs e) { //研发自测:王正阳 2026/04/30 21:03:34 //FormAreaUpdate(); //DSaveDataFlag Sflag = QueryGrid.SaveDataInfo.SaveDataFlag; QueryGrid.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdSuccess; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJU003 = GetOption("BJU003"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sPJLX = PageParam.GetRTrimString("PJLX"); string sFKQXNR = PageParam.GetRTrimString("FKQXNR"); string sSYDWID = PageParam.GetRTrimString("SYDWID"); string sBJDID = PageParam.GetRTrimString("BJDID"); int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS"); foreach (GridViewRow Row in QueryGrid.Rows) { bool isChecked = QueryGrid.RowIsChecked(Row); if (isChecked) { string sBJSL = QueryGrid.GetValueByFieldName("XLXSBJDMX_BJSL", Row).ToString().Trim(); if (!string.IsNullOrEmpty(sBJSL) && sBJSL != "0") continue; double dBJSL = 1; string sorYZZ01 = QueryGrid.GetValueByFieldName("TZYZ_BJ01", Row).ToString().Trim(); string sorYZZ02 = QueryGrid.GetValueByFieldName("TZYZ_BJ02", Row).ToString().Trim(); string sorYZZ03 = QueryGrid.GetValueByFieldName("TZYZ_BJ03", Row).ToString().Trim(); string sorYZZ04 = QueryGrid.GetValueByFieldName("TZYZ_BJ04", Row).ToString().Trim(); string sorYZZ05 = QueryGrid.GetValueByFieldName("TZYZ_BJ05", Row).ToString().Trim(); string sorYZZ06 = QueryGrid.GetValueByFieldName("TZYZ_BJ06", Row).ToString().Trim(); string sorYZZ07 = QueryGrid.GetValueByFieldName("TZYZ_BJ07", Row).ToString().Trim(); string sorYZZ08 = QueryGrid.GetValueByFieldName("TZYZ_BJ08", Row).ToString().Trim(); string sorYZZ09 = QueryGrid.GetValueByFieldName("TZYZ_BJ09", Row).ToString().Trim(); string sorYZZ10 = QueryGrid.GetValueByFieldName("TZYZ_BJ10", Row).ToString().Trim(); string sorYZZ11 = QueryGrid.GetValueByFieldName("TZYZ_BJ11", Row).ToString().Trim(); string sorYZZ12 = QueryGrid.GetValueByFieldName("TZYZ_BJ12", Row).ToString().Trim(); string sorYZZ13 = QueryGrid.GetValueByFieldName("TZYZ_BJ13", Row).ToString().Trim(); string sorYZZ14 = QueryGrid.GetValueByFieldName("TZYZ_BJ14", Row).ToString().Trim(); string sorYZZ15 = QueryGrid.GetValueByFieldName("TZYZ_BJ15", Row).ToString().Trim(); string sorYZZ16 = QueryGrid.GetValueByFieldName("TZYZ_BJ16", Row).ToString().Trim(); string sorYZZ17 = QueryGrid.GetValueByFieldName("TZYZ_BJ17", Row).ToString().Trim(); string sorYZZ18 = QueryGrid.GetValueByFieldName("TZYZ_BJ18", Row).ToString().Trim(); string sorYZZ19 = QueryGrid.GetValueByFieldName("TZYZ_BJ19", Row).ToString().Trim(); string sorYZZ20 = QueryGrid.GetValueByFieldName("TZYZ_BJ20", Row).ToString().Trim(); string sorTZZDXJ = QueryGrid.GetValueByFieldName("XLXSBJDMX_TZZDXJ", Row).ToString().Trim(); bool bNeedUpdateXLXSBJD = false; int iNewXH = 0; Dictionary dicChangedField = new Dictionary(); Dictionary dicResultPairs = new Dictionary(); Dictionary dicYZZValue = new Dictionary(); for (int i = sConColumnsCount; i < QueryGrid.Columns.Count; i++) { if (QueryGrid.Columns[i].DataField.StartsWith("TZYZ_BJ")) { dicYZZValue.Add( QueryGrid.Columns[i].DataField, QueryGrid.GetValueByFieldName(QueryGrid.Columns[i].DataField, Row) ); } } string sXLXHID = QueryGrid.GetValueByFieldName("XLXHID", Row).ToString().Trim(); string sMRJLDW = XLBJDInfo.GetMRJLDWByJBXH(sXLXHID); string sJLDW = QueryGrid.GetValueByFieldName("JLDW", Row).ToString().Trim().Split('|')[0].Trim(); if (!string.IsNullOrEmpty(sMRJLDW)) sJLDW = sMRJLDW; PLAddMXByBJSL( dberp, SQL, dBJSL, sJLDW, sXLXHID, QueryGrid.GetValueByFieldName("XLGGID", Row).ToString().Trim(), QueryGrid.GetValueByFieldName("XLBZID", Row).ToString().Trim().Split('|')[0].Trim(), QueryGrid.GetValueByFieldName("DYDJID", Row).ToString().Trim(), QueryGrid.GetValueByFieldName("XLYSID", Row).ToString().Trim(), sBJFLID, sPJLX, sFKQXNR, sSYDWID, tmpXSWS, sCPBJMRXSWS, QueryGrid.GetValueByFieldName("XLXSBJDMX_XH", Row).ToString().Trim(), dicYZZValue, dicResultPairs, dicChangedField, CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_JGBBJ", Row).ToString(), 0), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_CLCB", Row).ToString().Trim()), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_CPBJ", Row).ToString().Trim()), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", Row).ToString().Trim()), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_TZQCPBJ", Row).ToString().Trim()), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_TZCPBJ", Row).ToString().Trim(), 0), CMISproConvert.StrToFloat(QueryGrid.GetValueByFieldName("XLXSBJDMX_TZBJJE", Row).ToString().Trim()), QueryGrid.GetValueByFieldName("XLXSBJDMX_BJCP", Row).ToString().Trim(), QueryGrid.GetValueByFieldName("XLXSBJDMX_WGCPBZ", Row).ToString().Trim(), txtHSBZ.Text.Trim().Equals("Y"), QueryGrid.GetValueByFieldName("XLXSBJDMX_BZ", Row).ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, sorTZZDXJ, ref iNewXH, ref bNeedUpdateXLXSBJD, QueryGrid.GetValueByFieldName("XLXSBJDMX_JGFBZ", Row).ToString().Trim(), sBJDID ); foreach (string key in dicResultPairs.Keys) { QueryGrid.EditNewRow(Row.RowIndex, key, dicResultPairs[key]); } QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_BJSL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_BJJE", "0"); QueryGrid.CommitEdit(); } else { QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_BJSL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_XH", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_BZ", ""); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_TZQBJJE", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_TZBJJE", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_BJJE", "0"); QueryGrid.EditNewRow(Row.RowIndex, "TZHDJ", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_TZQCPBJ", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_TZCPBJ", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_CPBJ", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_JGBBJJCL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_JGBBJJCE", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_CLCBJCL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_CLZL", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_JGBBJ", "0"); QueryGrid.EditNewRow(Row.RowIndex, "XLXSBJDMX_CLCB", "0"); } } FormAreaUpdate(); } //批量录入 protected void btnPLLR_Click(object sender, EventArgs e) { if (!(QueryGrid.CheckBox && !String.IsNullOrEmpty(QueryGrid.CheckedRows))) { ShowMessage("请先勾选记录!"); return; } //执行校验,批量 录入仅针对报价数量等于0的记录 string dBJSLTmp = ""; foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { dBJSLTmp = QueryGrid.GetValueByFieldName("XLXSBJDMX_BJSL", Row).ToString().Trim(); if (CMISproConvert.StrToFloat(dBJSLTmp) > 0) { dBJSLTmp = "数量大于0"; break; } } } if (dBJSLTmp.Equals("数量大于0")) { ShowMessage("批量录入的勾选记录数量不允许大于0!"); return; } 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(); } #region 初始化 int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sXSSX = ""; string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; string sJLDW = ""; string sRowIndex = ""; string sBJDXHList = ""; bool bCKC = chkCKC.Checked; string CODESQL = GetCODESQL(); string sJXSU004 = GetOption(101363007, "JXSU004"); string sBJU003 = GetOption("BJU003"); string sBJU018 = GetOption("BJU018"); //用于传递固定参数计算表价 Dictionary dic = new Dictionary(); //用于记录RowIndex和XH的关系 Dictionary dicRow_XH = new Dictionary(); dicRow_XH.Clear(); string sBJDID = PageParam.GetRTrimString("BJDID"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sBJDCP = ""; string sBZ = "";; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sErrorNum = ""; #endregion try { dberp.BeginTrans(); #region 循环插入记录 foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { sRowIndex = Row.RowIndex.ToString().Trim(); sXSSX = QueryGrid.GetValueByFieldName("XLXSBJDMX_XSSX", Row).ToString().Trim(); sXLXHID = QueryGrid.GetValueByFieldName("XLXHID", Row).ToString().Trim(); sXLGGID = QueryGrid.GetValueByFieldName("XLGGID", Row).ToString().Trim(); sXLBZID = QueryGrid.GetValueByFieldName("XLBZID", Row).ToString().Trim(); sDYDJID = QueryGrid.GetValueByFieldName("DYDJID", Row).ToString().Trim().Equals("") ? " " : QueryGrid.GetValueByFieldName("DYDJID", Row).ToString().Trim(); sJLDW = QueryGrid.GetValueByFieldName("JLDW", Row).ToString().Trim().Split('|')[0]; sBJDCP = QueryGrid.GetValueByFieldName("XLXSBJDMX_BJCP", Row).ToString().Trim(); sBZ = QueryGrid.GetValueByFieldName("XLXSBJDMX_BZ", Row).ToString().Trim(); //sWGCPBZ = QueryGrid.GetValueByFieldName("XLXSBJDMX_WGCPBZ", Row).ToString().Trim(); int iNewXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + sBJDID + "'") + 1; int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + sBJDID + "'") + 1; #region 创建RowIndex与序号关系 dicRow_XH.Add(sRowIndex, iNewXH.ToString().Trim()); #endregion #region 根据四要素算表价----参照用量制定-XLBJDInfo.aspx.cs UpdateBJCPByCLCYZD(Line 12249) double fCLZL = 0; double dCPJJ = 0; double dJJ = 0; double dCLCB = 0; double dBJDHQCLCB = 0; dic.Clear(); dic.Add("sXH", iNewXH.ToString()); dic.Add("fBJSL", "1"); dic.Add("sJLDW", sJLDW); dic.Add("iXSWS", tmpXSWS.ToString().Trim()); dic.Add("sXSQYID", PageParam.GetRTrimString("XSQYID")); dic.Add("sBJFLID", sBJFLID); dic.Add("sJGBID", PageParam.GetRTrimString("JGBID")); dic.Add("sBJDHQLY", PageParam.GetRTrimString("BJDHQLY")); dic.Add("sBJRQ", PageParam.GetRTrimString("BJRQ")); dic.Add("sJGBIDS", PageParam.GetRTrimString("JGBIDS")); dic.Add("fJZBJHS", txtHSBZ.Text.Trim()); dic.Add("sLJJCLLX", PageParam.GetRTrimString("LJJCLLX")); dic.Add("sJCLLX", PageParam.GetRTrimString("JCLLX")); dic.Add("sBJLY", PageParam.GetRTrimString("BJLY")); dic.Add("sJSBLFS", PageParam.GetRTrimString("JSBLFS")); dic.Add("sTZCLHQ", PageParam.GetRTrimString("NeedUpdBJDHQCLCB")); dic.Add("sJGCIDS", PageParam.GetRTrimString("JGCIDS")); dic.Add("sJGBTJYS", PageParam.GetRTrimString("JGBTJYS")); dic.Add("sTBJCLID", PageParam.GetRTrimString("TBJCLID")); dic.Add("sLBJCLID", PageParam.GetRTrimString("LBJCLID")); dic.Add("sTJ", PageParam.GetRTrimString("TJ")); dic.Add("sLJ", PageParam.GetRTrimString("LJ")); dic.Add("sBJU003", sBJU003); dic.Add("sBJU018", sBJU018); string sWGCPBZ = "N"; string sJGFBZ = "N"; Dictionary dicJJYZList_JGE = new Dictionary(); XLBJDUtils.UpdateXLXSBJDMX_JGBBJ(dberp, SQL, sBJDID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, dic, ref dCPJJ, ref dJJ, ref dCLCB, ref dBJDHQCLCB, ref fCLZL, ref dicJJYZList_JGE, ref sWGCPBZ, ref sJGFBZ); if (dicJJYZList_JGE.Count > 0) { SQL.Clear(); SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,"); SQL.Add(" XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10)"); SQL.Add(" values(:pBJDID,:pBJDXH,:pYZZ01,:pYZZ02,:pYZZ03,:pYZZ04,:pYZZ05,:pYZZ06,:pYZZ07,:pYZZ08,:pYZZ09,:pYZZ10)"); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = iNewXH; SQL.ParamByName("pYZZ01").Value = dicJJYZList_JGE["JZ01"]; SQL.ParamByName("pYZZ02").Value = dicJJYZList_JGE["JZ02"]; SQL.ParamByName("pYZZ03").Value = dicJJYZList_JGE["JZ03"]; SQL.ParamByName("pYZZ04").Value = dicJJYZList_JGE["JZ04"]; SQL.ParamByName("pYZZ05").Value = dicJJYZList_JGE["JZ05"]; SQL.ParamByName("pYZZ06").Value = dicJJYZList_JGE["JZ06"]; SQL.ParamByName("pYZZ07").Value = dicJJYZList_JGE["JZ07"]; SQL.ParamByName("pYZZ08").Value = dicJJYZList_JGE["JZ08"]; SQL.ParamByName("pYZZ09").Value = dicJJYZList_JGE["JZ09"]; SQL.ParamByName("pYZZ10").Value = dicJJYZList_JGE["JZ10"]; dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add(" insert into XLXSBJDMX( "); SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, "); SQL.Add(" XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_WGCPBZ,XLXSBJDMX_JGFBZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, "); SQL.Add(" XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_BZ,XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ)"); SQL.Add(" values("); SQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, "); SQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_WGCPBZ,:XLXSBJDMX_JGFBZ, "); SQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, "); SQL.Add(" :XLXSBJDMX_JGBBJ,:XLXSBJDMX_JGBBJGXSJ,:XLXSBJDMX_JGBJJ, :XLXSBJDMX_CLCB, :XLXSBJDMX_BJDHQCLCB, :XLXSBJDMX_CLZL, "); SQL.Add(" :XLXSBJDMX_BZ,:XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ)"); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJDMX_XH").Value = iNewXH; SQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; SQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; SQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; SQL.ParamByName("XLXSBJDMX_XLBZID").Value = sXLBZID; SQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJID; SQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; SQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sXLBZID; SQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); SQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJDCP; //BJU003|报价产品默认计量单位,始终默认计量单位,增加倍率转换,不支持默认计量单位为重量 SQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; SQL.ParamByName("XLXSBJDMX_BJSL").Value = 1; SQL.ParamByName("XLXSBJDMX_JGBBJ").Value = dCPJJ; SQL.ParamByName("XLXSBJDMX_JGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("XLXSBJDMX_JGBJJ").Value = dJJ; SQL.ParamByName("XLXSBJDMX_CLCB").Value = dCLCB; SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dBJDHQCLCB; SQL.ParamByName("XLXSBJDMX_CLZL").Value = fCLZL; SQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = sWGCPBZ; SQL.ParamByName("XLXSBJDMX_JGFBZ").Value = sJGFBZ; SQL.ParamByName("XLXSBJDMX_BZ").Value = sBZ; if (XLBJDUtils.ISDZBZ(sXLBZID)) { SQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { SQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } SQL.ParamByName("XLXSBJDMX_WHR").Value = CurSession.UserName; SQL.ParamByName("XLXSBJDMX_WHRID").Value = CurSession.UserId; SQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(SQL); #endregion #region 得到所有序号 sBJDXHList = sBJDXHList + iNewXH.ToString().Trim() + ","; #endregion } } XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, sBJDID, sBJDXHList,0); #endregion //更新产品目录 if (XLBJDUtils.ExistXSCPML()) { XLBJDUtils.UpdateBJDMX_CPMLMC(sBJDID, sBJDXHList, 0, false, ref sErrorNum); } XLBJDUtils.UpdateXDXLBZID(dberp, SQL, sBJDID, sBJDXHList, 0, ref sErrorNum); #region 计算因子、报价、最新限价、查询 sBJDXHList = sBJDXHList.TrimStart(',').TrimEnd(','); if (!sBJDXHList.Equals("")) { Dictionary dicTJYZList = new Dictionary(); #region 获取因子。计算因子 XLBJDUtils.GetDicTJYZList(dberp, SQL, sBJFLID, ref dicTJYZList); XLBJDUtils.AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, GetOption("BJU003"), dicTJYZList, true, sBJDXHList, 0, ref sErrorNum); #endregion #region 计算报价 XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, PageParam.GetRTrimString("JCLLX"), PageParam.GetRTrimString("LJJCLLX"), PageParam.GetRTrimString("CPBJMRXSWS"), sBJDXHList, 0); #endregion #region 计算最新限价 XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, GetOption("BJU002"), sBJDXHList, 0); XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, GetOption("BJU002"), sBJDXHList, 0); #endregion //短米校验和修正,在界面关闭时会处理 //XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, GetOption("BJU002"), GetOption("BJU003")); #region 更新报价单主表记录 XLBJDUtils.UpdateXLXSBJD(dberp, SQL, PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("JCLLX"), PageParam.GetRTrimString("LJJCLLX"), PageParam.GetRTrimString("ZDXJJCLLX"), PageParam.GetRTrimString("JYF"), PageParam.GetRTrimString("YSJDID"), PageParam.GetRTrimString("GYSID"), PageParam.GetRTrimString("YFWLID"), PageParam.GetRTrimString("BJHYF")); #endregion #region 查询记录更新界面 SQL.Clear(); SQL.Add(" select "); //SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID ,XLXSBJDMX_DYDJID, "); //从第6列开始赋值 //列存在什么数据就查询什么数据 SQL.Add(" XLXSBJDYZZ0_YZZ01 as TZYZ_BJ01,XLXSBJDYZZ0_YZZ02 as TZYZ_BJ02,XLXSBJDYZZ0_YZZ03 as TZYZ_BJ03,XLXSBJDYZZ0_YZZ04 as TZYZ_BJ04,XLXSBJDYZZ0_YZZ05 as TZYZ_BJ05,"); SQL.Add(" XLXSBJDYZZ0_YZZ06 as TZYZ_BJ06,XLXSBJDYZZ0_YZZ07 as TZYZ_BJ07,XLXSBJDYZZ0_YZZ08 as TZYZ_BJ08,XLXSBJDYZZ0_YZZ09 as TZYZ_BJ09,XLXSBJDYZZ0_YZZ10 as TZYZ_BJ10,"); SQL.Add(" XLXSBJDYZZ0_YZZ11 as TZYZ_BJ11,XLXSBJDYZZ0_YZZ12 as TZYZ_BJ12,XLXSBJDYZZ0_YZZ13 as TZYZ_BJ13,XLXSBJDYZZ0_YZZ14 as TZYZ_BJ14,XLXSBJDYZZ0_YZZ15 as TZYZ_BJ15,"); SQL.Add(" XLXSBJDYZZ0_YZZ16 as TZYZ_BJ16,XLXSBJDYZZ0_YZZ17 as TZYZ_BJ17,XLXSBJDYZZ0_YZZ18 as TZYZ_BJ18,XLXSBJDYZZ0_YZZ19 as TZYZ_BJ19,XLXSBJDYZZ0_YZZ20 as TZYZ_BJ20,"); SQL.Add(" XLXSBJDMX_TZQCPBJ,"); SQL.Add(" XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, case when XLXSBJDMX_BJSL=0 then 0 else RoundFix(XLXSBJDMX_BJJE/XLXSBJDMX_BJSL,14) end as TZHDJ,"); SQL.Add(" XLXSBJDMX_JGBBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_BJDHQCLCB,"); SQL.Add(" XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_CLZL,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, "); if (bCKC) { SQL.Add(" a.minWLID as WLID,rtrim(ISNULL(WL_MC,' ')) || ' ' || rtrim(ISNULL(WL_GG,' ')) as WL_MC,"); } else { SQL.Add(" ' ' as WLID,' ' as WL_MC,"); } SQL.Add(" XLXSBJDMX_XH,XLXSBJDMX_BJSL,"); if (bCKC) { SQL.Add(" MAXKYSL,KYSL,"); } else { SQL.Add(" 0 as MAXKYSL,0 as KYSL,"); } SQL.Add(" 1 as pCOUNT "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); if (bCKC) { SQL.Add(" left join(select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID, minWLID "); SQL.Add(" from ( "); SQL.Add(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,min(XLXLB_WLID) as minWLID "); SQL.Add(" from XLXLB "); SQL.Add(" where isnull(XLXLB_TYBZ,' ')<>'Y' "); SQL.Add(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) "); SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID"); SQL.Add(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID "); SQL.Add(" union all "); SQL.Add(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,min(XLXLB_WLID) as minWLID "); SQL.Add(" from XLXLB "); SQL.Add(" where isnull(XLXLB_TYBZ,' ')<>'Y' "); SQL.Add(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) "); SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID "); SQL.Add(" ) a on a.XLXHID= XLXSBJDMX_XLXHID and a.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and a.XLBZID=XLXSBJDMX_XLBZID and a.DYDJID=XLXSBJDMX_DYDJID "); SQL.Add("left join WL on WL_WLID = a.minWLID "); } if (bCKC) { //取库存数量 if (CODESQL.Trim().Equals("")) { SQL.Add(" left join "); SQL.Add("( "); SQL.Add(" select KCHZ_WLID,RoundFix(max(KCHZ_KCSL-KCHZ_FPSL),3) as MAXKYSL,RoundFix(sum(KCHZ_KCSL-KCHZ_FPSL),3) as KYSL"); SQL.Add(" from KCHZ "); SQL.Add(" where GT(KCHZ_KCSL - KCHZ_FPSL, 0) "); SQL.Add(" group by KCHZ_WLID "); SQL.Add(") tmpKC on KCHZ_WLID=a.minWLID "); } else { SQL.Add(" left join "); SQL.Add("( "); SQL.Add(" select KCHZ_WLID,RoundFix(max(KCHZ_KCSL-KCHZ_FPSL),3) as MAXKYSL,RoundFix(sum(KCHZ_KCSL-KCHZ_FPSL),3) as KYSL"); SQL.Add(" from KCHZ "); SQL.Add(" where GT(KCHZ_KCSL - KCHZ_FPSL, 0) "); SQL.Add(CODESQL); if (!sJXSU004.Equals("")) { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("KCHZ_CKID", sJXSU004) + " "); } SQL.Add(" group by KCHZ_WLID "); SQL.Add(") tmpKC on KCHZ_WLID=a.minWLID "); } } SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(" order by XLXSBJDMX_XH "); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; DataSet dsBJDMX = dberp.OpenDataSet(SQL); if (dsBJDMX.Tables[0].Rows.Count > 0) { foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { for (int i = 0; i < dsBJDMX.Tables[0].Rows.Count; i++) { if (dicRow_XH.ContainsKey(Row.RowIndex.ToString().Trim())) { if (dicRow_XH[Row.RowIndex.ToString().Trim()].Equals(dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim())) { //从第0列开始赋值 for (int j = 0; j < dsBJDMX.Tables[0].Columns.Count; j++) { foreach (N_CONTROL.gtAjaxGridViewColumn Col in QueryGrid.Columns) { if (Col.DataField.Equals(dsBJDMX.Tables[0].Columns[j].ToString().Trim())) { QueryGrid.GetCellByFieldName(Col.DataField, Row.RowIndex).Text = dsBJDMX.Tables[0].Rows[i][j].ToString().Trim(); break; } } } break; } } } } //QueryGrid.GetCellByFieldName("XLXSBJDMX_BZ", Row.RowIndex).Text = "测试备注的值"; } QueryGrid.BeginUpdate(); foreach (GridViewRow Row in QueryGrid.NewRows) { if (QueryGrid.RowIsChecked(Row)) { for (int i = 0; i < dsBJDMX.Tables[0].Rows.Count; i++) { if (dicRow_XH.ContainsKey(Row.RowIndex.ToString().Trim())) { if (dicRow_XH[Row.RowIndex.ToString().Trim()].Equals(dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim())) { //从第0列开始赋值 for (int j = 0; j < dsBJDMX.Tables[0].Columns.Count; j++) { foreach (N_CONTROL.gtAjaxGridViewColumn Col in QueryGrid.Columns) { if (Col.DataField.Equals(dsBJDMX.Tables[0].Columns[j].ToString().Trim())) { QueryGrid.EditRow(Row, Col.DataField, dsBJDMX.Tables[0].Rows[i][j].ToString().Trim()); break; } } } break; } } } } //QueryGrid.EditRow(Row, "XLXSBJDMX_BZ", "测试备注的值"); } QueryGrid.EndUpdate(); BillAreaUpdate(); FormAreaUpdate(); } #endregion } #endregion dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("批量录入出现错误!" + sErrorNum + ";" + ex.ToString()); } } protected void btnSXSJD_Click(object sender, EventArgs e) { if (XLBJDUtils.ExistXSCPML()) { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGFID"))) { string sJGFID = PageParam.GetRTrimString("JGFID"); ACPMLDR(sJGFID, "JGF"); } string sJGBID = PageParam.GetRTrimString("JGBID"); string sMXBH = ""; if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; ACPMLDR(sJGBID, sMXBH); } else { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGFID"))) { string sJGFID = PageParam.GetRTrimString("JGFID"); ACPYTDR(sJGFID, "JGF"); } string sJGBID = PageParam.GetRTrimString("JGBID"); string sMXBH = ""; if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; ACPYTDR(sJGBID, sMXBH); } LeftQueryTree.Nodes.Clear(); InitQueryTreeView(); InitControl(); txtCURMX.Value = "Y"; txtCURMXPX.Value = ""; QueryGrid_OnQuery(); } #endregion #region 自定义函数 private bool CheckModule(string sUMID) { int iUMID = CMISproConvert.StrToInt(sUMID); UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, iUMID); return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); } private void AddChangedField(Dictionary dicChangedField, string sEventField, string sEventValue) { if (dicChangedField.ContainsKey(sEventField)) dicChangedField[sEventField] = sEventValue; else dicChangedField.Add(sEventField, sEventValue); } private void AddMXByBJSL(TDatabase dberp, TSQL SQL, double dBJSL, string sJLDW, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sXLYSID, string sBJFLID, string sPJLX, string sFKQXNR, string sSYDWID, int tmpXSWS, string sCPBJMRXSWS, string sBJDXH, Dictionary dicYZZValue, Dictionary dicResultPairs, Dictionary dicChangedField, double dJGBBJ, double dCLCB, double dCPBJ, double dBJDHQCLCB, double dTZQCPBJ, double dTZJG, double dTZJE, string sBJCP, string sWGCPBZ, bool bHSBZ, string sBZ, string sorYZZ01, string sorYZZ02, string sorYZZ03, string sorYZZ04, string sorYZZ05, string sorYZZ06, string sorYZZ07, string sorYZZ08, string sorYZZ09, string sorYZZ10, string sorYZZ11, string sorYZZ12, string sorYZZ13, string sorYZZ14, string sorYZZ15, string sorYZZ16, string sorYZZ17, string sorYZZ18, string sorYZZ19, string sorYZZ20, string sorTZZDXJ, ref int iNewXH, ref bool bNeedUpdateXLXSBJD, string sJGFBZ, string sBJDID) { string sBJU003 = GetOption("BJU003"); string sBJU018 = GetOption("BJU018"); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(PageParam.GetRTrimString("JGBID")).XLXSJGB_JJLY; //当前计量单位与参数一致后,报价数量的变化后的值 double dJLDWHSBL = 1.0; dJLDWHSBL = XLBJDUtils.GetJLDWHSBL_SL(sJLDW, sBJU003); double dTmpBJSL = dBJSL * dJLDWHSBL; Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); string fZXJM = dicXLGGB["ZXJM"]; string sXXJGID = dicXLGGB["XXJGID"]; if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { //更新报价单明细 } else//插入报价单明细 { sXLYSID = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); } string sXSQYID = PageParam.GetRTrimString("XSQYID"); string sTJYSList = PageParam.GetRTrimString("TJYSList"); //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); string sErrorNum = ""; #region 获取报价单调价因子以及调整过程 //获取调价因素为空的因子值 Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, sWGCPBZ.Equals("Y"), false, sJLDW, GetOption("BJU003"),sXLXHID,sXLGGID,sXLBZID,sDYDJID); //重新获取按“1|付款方式”设置的调价因子值 Dictionary dicYZZ1 = new Dictionary(); if (sTJYSList.Contains(",1,")) { dicYZZ1 = XLBJDUtils.GetBJDYZZ1(sBJFLID, sPJLX, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID,sBJDID); } //报价数量变化,重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (sTJYSList.Contains(",2,")) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dTmpBJSL, sXLXHID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (sTJYSList.Contains(",3,")) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (sTJYSList.Contains(",E,")) { dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } Dictionary dicYZZG = new Dictionary(); if (sTJYSList.Contains(",G,")) { dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (sTJYSList.Contains(",F,")) { dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZH = new Dictionary(); if (sTJYSList.Contains(",H,")) { dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZK = new Dictionary(); if (sTJYSList.Contains(",K,")) { dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dTmpBJSL, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“4|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (sTJYSList.Contains(",4,")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值 Dictionary dicYZZ5 = new Dictionary(); if (sTJYSList.Contains(",5,")) { dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, GetOption("BJU003"), sXLGGID, sBJDID); } //重新获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值 Dictionary dicYZZ6 = new Dictionary(); if (sTJYSList.Contains(",6,")) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值 Dictionary dicYZZ7 = new Dictionary(); if (sTJYSList.Contains(",7,")) { dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“8|付款期限”设置的调价因子值 Dictionary dicYZZ8 = new Dictionary(); if (sTJYSList.Contains(",8,")) { dicYZZ8 = XLBJDUtils.GetBJDYZZ8(sBJFLID, sFKQXNR, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“9|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值 Dictionary dicYZZ9 = new Dictionary(); if (sTJYSList.Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“A|型号&规格&电压&标准”设置的调价因子值 Dictionary dicYZZA = new Dictionary(); if (sTJYSList.Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZBZPF = new Dictionary(); if (sTJYSList.Contains(",BZPF,")) { //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID); } } Dictionary dicYZZCPWJPF = new Dictionary(); if (sTJYSList.Contains(",CPWJPF,")) { //产品外径盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); } } //重新获取按“B|销售单位”设置的调价因子值 Dictionary dicYZZB = new Dictionary(); if (sTJYSList.Contains(",B,")) { dicYZZB = XLBJDUtils.GetBJDYZZB(sBJFLID, sSYDWID, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //获取按“C|产品目录&主芯截面范围&产品特性”因子值 Dictionary dicYZZC = new Dictionary(); if (sTJYSList.Contains(",C,")) { dicYZZC = XLBJDUtils.GetBJDYZZC(PageParam.GetRTrimString("BJDID").Trim(), sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, sXLBZID); } //重新获取按“D|颜色”设置的调价因子值 Dictionary dicYZZD = new Dictionary(); if (sTJYSList.Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, sXLYSID, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); //初次将所“2|调因子值”因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)]; } else if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)]; } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)]; } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)]; } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)]; } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)]; } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)]; } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)]; } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)]; } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)]; } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)]; } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)]; } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)]; } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)]; } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)]; } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)]; } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)]; } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)]; } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)]; } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)]; } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)]; } } } //初次将所有的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicTJYZID.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ0[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ1[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ2[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ3[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZE[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZG[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZH[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZK[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ4[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ5[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ6[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ7[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ8[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ9[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZA[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZB[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZC[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZD[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } } } #endregion if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { bool bNeedCalcCPBJ = false;//是否需要按有变化的因子值重新计算产品报价 #region 更新报价单因子值 foreach (string sYZID in dicYZZ0.Keys) { if (dicYZZ0[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Split('|')[0]; string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Split('|')[0]; if (!sBZPFYZID.Trim().Equals("") && sYZID.Equals(sBZPFYZID)) continue; if (!sCPWJPFYZID.Trim().Equals("") && sYZID.Equals(sCPWJPFYZID)) continue; bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ0[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); } } foreach (string sYZID in dicYZZ1.Keys) { if (dicYZZ1[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ1[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); } } foreach (string sYZID in dicYZZ2.Keys) { if (dicYZZ2[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ2[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); } } foreach (string sYZID in dicYZZ3.Keys) { if (dicYZZ3[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ3[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); } } foreach (string sYZID in dicYZZE.Keys) { if (dicYZZE[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZE[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); } } foreach (string sYZID in dicYZZG.Keys) { if (dicYZZG[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZG[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); } } foreach (string sYZID in dicYZZF.Keys) { if (dicYZZF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZF[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); } } foreach (string sYZID in dicYZZH.Keys) { if (dicYZZH[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZH[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); } } foreach (string sYZID in dicYZZK.Keys) { if (dicYZZK[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZK[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); } } foreach (string sYZID in dicYZZ4.Keys) { if (dicYZZ4[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ4[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); } } foreach (string sYZID in dicYZZ5.Keys) { if (dicYZZ5[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ5[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); } } foreach (string sYZID in dicYZZ6.Keys) { if (dicYZZ6[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ6[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); } } foreach (string sYZID in dicYZZ7.Keys) { if (dicYZZ7[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ7[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); } } foreach (string sYZID in dicYZZ8.Keys) { if (dicYZZ8[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ8[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); } } foreach (string sYZID in dicYZZ9.Keys) { if (dicYZZ9[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZ9[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); } } foreach (string sYZID in dicYZZA.Keys) { if (dicYZZA[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZA[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); } } foreach (string sYZID in dicYZZBZPF.Keys) { if (dicYZZBZPF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZBZPF[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); } } foreach (string sYZID in dicYZZCPWJPF.Keys) { if (dicYZZCPWJPF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZCPWJPF[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); } } foreach (string sYZID in dicYZZB.Keys) { if (dicYZZB[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZB[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); } } foreach (string sYZID in dicYZZC.Keys) { if (dicYZZC[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZC[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); } } foreach (string sYZID in dicYZZD.Keys) { if (dicYZZD[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; //更新因子值 dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), dicYZZD[sYZID], PageParam.GetRTrimString("BJDID"), sBJDXH)); dicResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); } } #endregion if (bNeedCalcCPBJ) { string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(dJGBBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); } else { dCPBJ = dJGBBJ; if (dCPBJ != 0) { double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = PageParam.GetRTrimString("BTYZ"); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = dicTJYZIDValue[stBTYZ]; if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 //二次调价 dTZQCPBJ = dCPBJ; dicResultPairs.Add("XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); dicResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); } double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dJGBBJ * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(dJGBBJ * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dJGBBJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dJGBBJ * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = dJGBBJ * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - dJGBBJ * dBJSL; double dtmpCPJE = dJGBBJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dJGBBJ * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } dicResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); dicResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = dBJSL * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * dBJSL; fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } dicResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString().Trim()); SQL.Clear(); SQL.Add("update XLXSBJDMX "); SQL.Add(" set XLXSBJDMX_BJSL = :XLXSBJDMX_BJSL,XLXSBJDMX_TZQCPBJ=:XLXSBJDMX_TZQCPBJ,XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ,XLXSBJDMX_BJTJCZ = 'TJYZJS',XLXSBJDMX_TZQBJJE=:XLXSBJDMX_TZQBJJE, "); SQL.Add(" XLXSBJDMX_BJJE = :XLXSBJDMX_BJJE,XLXSBJDMX_JGBBJJCL=:XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE=:XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL=:XLXSBJDMX_CLZL,XLXSBJDMX_JLDW=:XLXSBJDMX_JLDW, "); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add(" XLXSBJDMX_CLCBJCL=:XLXSBJDMX_CLCBJCL,XLXSBJDMX_CLCBJCLSDBZ='N' "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH = :XLXSBJDMX_XH "); SQL.ParamByName("XLXSBJDMX_BJSL").Value = dBJSL; SQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; SQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = dTZQCPBJ; SQL.ParamByName("XLXSBJDMX_CPBJ").Value = dCPBJ; SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = dTZQBJJE; SQL.ParamByName("XLXSBJDMX_BJJE").Value = dBJJE; SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = dLRL; SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = dLRE; SQL.ParamByName("XLXSBJDMX_CLZL").Value = fCLZL; SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL; SQL.ParamByName("XLXSBJDMX_BJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH; dberp.ExecSQL(SQL); bNeedUpdateXLXSBJD = true; dicResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); dicResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); dicResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); } else { string sCPJJ = "";//表价 string sJJ = "";//基价 string sCLCB = "";//价格表行情料价 string sBJDHQCLCB = "";//报价单行情料价 bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); string pJGBID = PageParam.GetRTrimString("JGBID"); string sJGBJLDW = XLBJDUtils.GetJGBJLDW(pJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018); string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); double dBJDJLDWHSBL = 1; iNewXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'") + 1; int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'") + 1; string sCPMLIDMC = string.Empty; string sCPMLMC = string.Empty; //产品目录名称赋值 if (!sXLXHID.Equals("")) { XLBJDUtils.GetDefaultCPMLDic(sXLXHID, sDYDJID, ref dicCPML); if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|" + sDYDJID, out sCPMLIDMC)) { if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|", out sCPMLIDMC)) { } } if (sCPMLIDMC != null) { sCPMLMC=sCPMLIDMC.Split('|')[1].ToString().Trim(); } } #region 插入XLXSBJDYZZ0 //先插入XLXSBJDYZZ0 SQL.Clear(); SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH) "); SQL.Add("values(:pBJDID,:pXH)"); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("pXH").Value = iNewXH; dberp.ExecSQL(SQL); //再更新XLXSBJDYZZ0 string sYZID = ""; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { if (QueryGrid.Columns[i].Visible == false)//隐藏的因子值不插入到数据表里 continue; sYZID = QueryGrid.Columns[i].DataField.Substring(5); double sYZZ = CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID].ToString(), 0); if (dicYZZBZPF.ContainsKey(sYZID)) { sYZZ = dicYZZBZPF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZCPWJPF.ContainsKey(sYZID)) { sYZZ = dicYZZCPWJPF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ0.ContainsKey(sYZID)) { sYZZ = dicYZZ0[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ1.ContainsKey(sYZID)) { sYZZ = dicYZZ1[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ2.ContainsKey(sYZID)) { sYZZ = dicYZZ2[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ3.ContainsKey(sYZID)) { sYZZ = dicYZZ3[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZE.ContainsKey(sYZID)) { sYZZ = dicYZZE[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZG.ContainsKey(sYZID)) { sYZZ = dicYZZG[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZF.ContainsKey(sYZID)) { sYZZ = dicYZZF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZH.ContainsKey(sYZID)) { sYZZ = dicYZZH[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZK.ContainsKey(sYZID)) { sYZZ = dicYZZK[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ4.ContainsKey(sYZID)) { sYZZ = dicYZZ4[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ5.ContainsKey(sYZID)) { sYZZ = dicYZZ5[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ6.ContainsKey(sYZID)) { sYZZ = dicYZZ6[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ7.ContainsKey(sYZID)) { sYZZ = dicYZZ7[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ8.ContainsKey(sYZID)) { sYZZ = dicYZZ8[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ9.ContainsKey(sYZID)) { sYZZ = dicYZZ9[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZA.ContainsKey(sYZID)) { sYZZ = dicYZZA[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZB.ContainsKey(sYZID)) { sYZZ = dicYZZB[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZC.ContainsKey(sYZID)) { sYZZ = dicYZZC[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZD.ContainsKey(sYZID)) { sYZZ = dicYZZD[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and XLXSBJDYZZ0_XH={3}", sYZID.Trim().Replace("BJ", ""), sYZZ, PageParam.GetRTrimString("BJDID"), iNewXH)); } #endregion SQL.Clear(); SQL.Add(" insert into XLXSBJDMX( "); SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_CPMLMC,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, "); SQL.Add(" XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_WGCPBZ,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_JGFBZ,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ)"); SQL.Add(" values("); SQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_CPMLMC,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, "); SQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_GYKH,:XLXSBJDMX_WGCPBZ,'JGBBJ','TJYZJS', "); SQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ,:XLXSBJDMX_JGBBJGXSJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ, :XLXSBJDMX_TZQBJJE,:XLXSBJDMX_TZBJJE,:XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, "); SQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_BZ, :XLXSBJDMX_DZSC,:XLXSBJDMX_JGFBZ,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ)"); SQL.ParamByName("XLXSBJDMX_BJDID").Value = PageParam.GetRTrimString("BJDID"); SQL.ParamByName("XLXSBJDMX_XH").Value = iNewXH; SQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; SQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; SQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; SQL.ParamByName("XLXSBJDMX_XLBZID").Value = sXLBZID; SQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; SQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; SQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = XLBJDUtils.GetXDXLBZID(sXLXHID, sDYDJID, sXLGGID, sXLBZID); SQL.ParamByName("XLXSBJDMX_XLYSID").Value = sXLYSID; SQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP; SQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; SQL.ParamByName("XLXSBJDMX_BJSL").Value = dBJSL; SQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = sWGCPBZ; SQL.ParamByName("XLXSBJDMX_JGFBZ").Value = sJGFBZ; SQL.ParamByName("XLXSBJDMX_CPMLMC").Value = sCPMLMC; if (XLBJDUtils.ExistGYKH()) { SQL.ParamByName("XLXSBJDMX_GYKH").Value = XLBJDUtils.GetGYKH(sXLBZID); } else { SQL.ParamByName("XLXSBJDMX_GYKH").Value = ""; } if (XLBJDUtils.ISDZBZ(sXLBZID)) { SQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { SQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } string sBJRQ = PageParam.GetRTrimString("BJRQ"); int iJGBTJYZYC = 1; if (sJGFBZ.Equals("Y")) { double dJGFJJ = 0; double dJGFBJ = 0; string sJGFJLDW = ""; XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sBJU018, ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW); //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGFJLDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW); } sCPJJ = dJGFBJ.ToString().Trim(); sJJ = dJGFJJ.ToString().Trim(); sCLCB = dJGFJJ.ToString().Trim(); sBJDHQCLCB = dJGFJJ.ToString().Trim(); } else if (sWGCPBZ.Equals("Y")) { dBJDJLDWHSBL = 1; sCPJJ = "0"; sJJ = "0"; sCLCB = "0"; sBJDHQCLCB = "0"; } else { if (!XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID")))//是否表价实时计算价格表 { //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJSDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW); } string pJGCIDS = PageParam.GetRTrimString("JGCIDS"); string sBJLY = PageParam.GetRTrimString("BJLY"); string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY"); if (PageParam.GetRTrimString("JGBTJYS").Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 { #region 因素3 string sTBJCLID = PageParam.GetRTrimString("TBJCLID"); string sLBJCLID = PageParam.GetRTrimString("LBJCLID"); string sTJ = PageParam.GetRTrimString("TJ"); string sLJ = PageParam.GetRTrimString("LJ"); Dictionary dicJJYZList = new Dictionary(); XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), bHSBZ, tmpXSWS, pJGBID, PageParam.GetRTrimString("JGBIDS"), sJLDW, sBJU003, sBJU018, PageParam.GetRTrimString("JSBLFS"), sTBJCLID, sLBJCLID, sTJ, sLJ, PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y"), ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); //调价因素3价格表单独处理XLXSBJDJJYZ TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH =:pXH "); tmpSQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); tmpSQL.ParamByName("pXH").Value = iNewXH; dberp.ExecSQL(tmpSQL); tmpSQL.Clear(); tmpSQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ)"); tmpSQL.Add(" values(:pBJDID,:pXH,:pYZZ01,:pYZZ02,:pYZZ03,:pYZZ04,:pYZZ05,:pYZZ06,:pYZZ07,:pYZZ08,:pYZZ09,:pYZZ10,:pYSJDZ)"); tmpSQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); tmpSQL.ParamByName("pXH").Value = iNewXH; tmpSQL.ParamByName("pYZZ01").Value = dicJJYZList["JZ01"].ToString().Trim(); tmpSQL.ParamByName("pYZZ02").Value = dicJJYZList["JZ02"].ToString().Trim(); tmpSQL.ParamByName("pYZZ03").Value = dicJJYZList["JZ03"].ToString().Trim(); tmpSQL.ParamByName("pYZZ04").Value = dicJJYZList["JZ04"].ToString().Trim(); tmpSQL.ParamByName("pYZZ05").Value = dicJJYZList["JZ05"].ToString().Trim(); tmpSQL.ParamByName("pYZZ06").Value = dicJJYZList["JZ06"].ToString().Trim(); tmpSQL.ParamByName("pYZZ07").Value = dicJJYZList["JZ07"].ToString().Trim(); tmpSQL.ParamByName("pYZZ08").Value = dicJJYZList["JZ08"].ToString().Trim(); tmpSQL.ParamByName("pYZZ09").Value = dicJJYZList["JZ09"].ToString().Trim(); tmpSQL.ParamByName("pYZZ10").Value = dicJJYZList["JZ10"].ToString().Trim(); tmpSQL.ParamByName("pYSJDZ").Value = dicJJYZList["YSJDZ"].ToString().Trim(); dberp.ExecSQL(tmpSQL); //这里根据换算比例将GetFromJGB_BJDHQ_JGBTJYS3已经换算的数据再换算回来,交由下方统一换算 double dBJD_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJLDW, sJGBJLDW); sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ, 0) * dBJD_JGB_JLDWHSBL); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ, 0) * dBJD_JGB_JLDWHSBL); sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB, 0) * dBJD_JGB_JLDWHSBL); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB, 0) * dBJD_JGB_JLDWHSBL); #endregion } else { //记录衍生产品原四要素 string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sXLBZID; string tmpDYDJID = sDYDJID; int iSYXH = 0; double dYSJDZ = 1; double dCLCBYSJDZ = 1; bool bExistedSYJGBMX = false; if (PageParam.GetRTrimString("JGBTJYS").Equals("1")) { //因素1先将衍生产品四要素替换成所依四要素 bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); } if (sBJLY.Equals("D") || sBJLY.Equals("C")) { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) { if (bExistedSYJGBMX) XLBJDUtils.GetJGBMXBySYXH(pJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, pJGBID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); if (bExistedSYJGBMX) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sXLBZID = tmpXLBZID; sDYDJID = tmpDYDJID; } JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; if (bHSBZ) sCLCB = aryBJHQ["CLCB"].ToString(); else sCLCB = aryBJHQ["WSCLCB"].ToString(); } } else { if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID))) { if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, PageParam.GetRTrimString("BJRQ"), bHSBZ, XLBJDUtils.JQJSXSWS.ToString().Trim(), sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } else { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, PageParam.GetRTrimString("BJRQ"), bHSBZ, GetOption(100860000, "BJU002"), sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } } else { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } else { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } bool hasCLQD = false; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", sXLXHID, sXLGGID, sXLBZID, sDYDJID.Equals("") ? " " : sDYDJID))) { hasCLQD = true; } if (bExistedSYJGBMX && !hasCLQD) { //记录衍生产品原四要素 tmpXLXHID = sXLXHID; tmpXLGGID = sXLGGID; tmpXLBZID = sXLBZID; tmpDYDJID = sDYDJID; XLBJDUtils.GetJGBMXBySYXH(pJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); } if (sBJDHQLY.Trim().Equals("1")) { if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); else sBJDHQCLCB = sCLCB; } else { Dictionary aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 { if (bHSBZ) sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); else sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); } else { if (bHSBZ) sBJDHQCLCB = aryBJRHQ["CLCB"].ToString(); else sBJDHQCLCB = aryBJRHQ["WSCLCB"].ToString(); } //统一为价格表计量单位的价格 double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); } if (PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y")) { Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID); if (bHSBZ) sBJDHQCLCB = aryBJDHQCLCB["CLCB"].ToString(); else sBJDHQCLCB = aryBJDHQCLCB["WSCLCB"].ToString(); //统一为价格表计量单位的价格 double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); if (bjflxx.XLXSBJFL_ABJDHQJSBJ == "Y" && sJGBJJLY == "A") { if (XLBJDUtils.ISExistJGBMX(pJGBID, pJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") { sJJ = sBJDHQCLCB; sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), tmpXSWS), PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), sXLXHID, sXLGGID, sXLBZID, sDYDJID), tmpXSWS) * dYSJDZ); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * dBJU003_JGB_JLDWHSBL); sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ) * dBJU003_JGB_JLDWHSBL); } } sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); } string sCPLJGS = XLBJDUtils.GetCPLJGS(); //还原四要素 if (bExistedSYJGBMX && !hasCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sXLBZID = tmpXLBZID; sDYDJID = tmpDYDJID; if (sCPLJGS == "2") { sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dYSJDZ); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dYSJDZ); } if (sCPLJGS == "4") { sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dCLCBYSJDZ); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dCLCBYSJDZ); } } //无材料清单且料价计算方式为3|按报价单料价加点对照表计算 if (!hasCLQD && (sCPLJGS == "3")) { double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sJGBJLDW, sBJU003); sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); } } } else//表价实时计算价格表 { //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); } string sTBJCLID = PageParam.GetRTrimString("TBJCLID"); string sLBJCLID = PageParam.GetRTrimString("LBJCLID"); string sTJ = PageParam.GetRTrimString("TJ"); string sLJ = PageParam.GetRTrimString("LJ"); Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sTBJCLID, sLBJCLID, sTJ, sLJ, bHSBZ, PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y"), PageParam.GetRTrimString("BJDID")); JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; sCLCB = dicJGE["CLCB"].ToString(); sJJ = sCLCB; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); } else { sBJDHQCLCB = sCLCB; } dicXLJBXX_JGE.Clear(); dicXLJBXX_JGE.Add("XLXHID", sXLXHID); dicXLJBXX_JGE.Add("XLGGID", sXLGGID); dicXLJBXX_JGE.Add("XLBZID", sXLBZID); dicXLJBXX_JGE.Add("DYDJID", sDYDJID); dicXLJBXX_JGE.Add("BJDJLDWHSBL", dBJDJLDWHSBL.ToString().Trim()); XLBJDUtils.GetdsJGBYZ_JGE(PageParam.GetRTrimString("JGBID"), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(PageParam.GetRTrimString("JGBID"), "0", dsJGBYZ, dicXLJBXX_JGE); Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(PageParam.GetRTrimString("JGBID"));//因子值不为0的价格表因子 if (dicJGBTJYZ.Count > 0) { foreach (string sKey in dicJGBTJYZ.Keys) { if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == 0) { iJGBTJYZYC = -1; break; } } } Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(PageParam.GetRTrimString("JGBID"));//覆盖全产品的价格表因子 if (dicJGBFGQCPYZ.Count > 0) { foreach (string sKey in dicJGBFGQCPYZ.Keys) { if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == -9999) { iJGBTJYZYC = -1; break; } } } // sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTempCLCB), tmpXSWS); if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + sTempCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = sTempCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } } if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { sCPJJ = Convert.ToString(dZBZ * (-1)); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * (-1)); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * (-1)); } else { sCPJJ = dZBZ.ToString().Trim(); } } } double dCPJJ = CMISproConvert.StrToFloat(sCPJJ, 0); double dJJ = CMISproConvert.StrToFloat(sJJ, 0); dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); dBJDHQCLCB = CMISproConvert.StrToFloat(sBJDHQCLCB, 0); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 { dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; dCPJJ = NumberUtils.RoundX(dCPJJ, tmpXSWS); dJJ = NumberUtils.RoundX(dJJ, tmpXSWS); dCLCB = NumberUtils.RoundX(dCLCB, tmpXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, tmpXSWS); } else { dCPJJ = NumberUtils.RoundX(dCPJJ, tmpXSWS); dJJ = NumberUtils.RoundX(dJJ, tmpXSWS); dCLCB = NumberUtils.RoundX(dCLCB, tmpXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, tmpXSWS); dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; } if (iJGBTJYZYC == -1) dCPJJ = Math.Abs(dCPJJ) * -1; if (dJJ == 0) dCPJJ = 0; SQL.ParamByName("XLXSBJDMX_JGBBJ").Value = dCPJJ; SQL.ParamByName("XLXSBJDMX_JGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("XLXSBJDMX_JGBJJ").Value = dJJ; SQL.ParamByName("XLXSBJDMX_CLCB").Value = dCLCB; SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dBJDHQCLCB; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(dCPJJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); } else { dCPBJ = dCPJJ; if (dCPBJ != 0) { double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = PageParam.GetRTrimString("BTYZ"); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = dicTJYZIDValue[stBTYZ]; if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 //二次调价 SQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = dCPBJ; dicResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); SQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = dTZJG; SQL.ParamByName("XLXSBJDMX_CPBJ").Value = dCPBJ; double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dBJJE = dTZQBJJE + dTZJE; SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = dTZQBJJE; SQL.ParamByName("XLXSBJDMX_TZBJJE").Value = dTZJE; SQL.ParamByName("XLXSBJDMX_BJJE").Value = dBJJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_JGBBJ").Value.ToString(), 0) * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_CLCB").Value.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value.ToString(), 0) * dBJSL; if (CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value.ToString(), 0) * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value.ToString(), 0) * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = dLRE; SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = dLRL; SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = dCLCBLRL; double dBJLJJCL = 0.0; if (dBJSL * dJGBBJ != 0) { dBJLJJCL = NumberUtils.RoundX((dBJSL * dJGBBJ - (dBJSL * dBJDHQCLCB)) / (dBJSL * dJGBBJ) * 100,2) ; } SQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = dBJLJJCL; double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = dBJSL * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * dBJSL; fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } SQL.ParamByName("XLXSBJDMX_CLZL").Value = fCLZL; SQL.ParamByName("XLXSBJDMX_BZ").Value = sBZ; SQL.ParamByName("XLXSBJDMX_WHR").Value = CurSession.UserName; SQL.ParamByName("XLXSBJDMX_WHRID").Value = CurSession.UserId; SQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(SQL); XLBJDUtils.SyncXLXSBJXLGGTHB_Single(dberp, sXLGGID, CurSession); if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID"))) { if (!sJGFBZ.Equals("Y") && !sWGCPBZ.Equals("Y")) { if (dsJGBYZ.Tables[0].Rows.Count > 0 && sJGBTJYSS.Equals("1")) { dicXLJBXX_JGE.Clear(); dicJGBTZYZGS_JGE.Clear(); dicXLJBXX_JGE.Add("XLXHID", sXLXHID); dicXLJBXX_JGE.Add("XLGGID", sXLGGID); dicXLJBXX_JGE.Add("XLBZID", sXLBZID); dicXLJBXX_JGE.Add("DYDJID", sDYDJID); dicXLJBXX_JGE.Add("XSWS", tmpXSWS.ToString().Trim()); dicXLJBXX_JGE.Add("XH", iNewXH.ToString().Trim()); dicXLJBXX_JGE.Add("BJDID", PageParam.GetRTrimString("BJDID")); dicXLJBXX_JGE.Add("BJDJLDWHSBL", dBJDJLDWHSBL.ToString().Trim()); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(PageParam.GetRTrimString("JGBID"), "1", dsJGBYZ, dicXLJBXX_JGE); XLBJDUtils.InsertXLXSBJDJJYZ_JGE(dberp, SQL, dsJGBYZ, dicXLJBXX_JGE, dicJGBTZYZGS_JGE); XLBJDUtils.UpdateXLXSBJDMX_JGBBJ_JGE(dberp, SQL, dsJGBYZ, dicXLJBXX_JGE, dicJGBTZYZGS_JGE); } else { XLBJDUtils.InsertXLXSBJDJJYZ_JGEDef(dberp, SQL, PageParam.GetRTrimString("BJDID"), iNewXH.ToString().Trim()); } if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { dberp.ExecSQL(string.Format(@"update XLXSBJDMX set XLXSBJDMX_JGBBJ=ABS(XLXSBJDMX_JGBBJ)*(-1), XLXSBJDMX_TZQCPBJ=ABS(XLXSBJDMX_TZQCPBJ)*(-1), XLXSBJDMX_TZCPBJ=ABS(XLXSBJDMX_TZCPBJ), XLXSBJDMX_CPBJ=ABS(XLXSBJDMX_CPBJ)*(-1), XLXSBJDMX_JGBJJ=ABS(XLXSBJDMX_JGBJJ)*(-1), XLXSBJDMX_CLCB = ABS(XLXSBJDMX_CLCB)*(-1), XLXSBJDMX_BJDHQCLCB = ABS(XLXSBJDMX_BJDHQCLCB)*(-1) where XLXSBJDMX_BJDID='{0}' and XLXSBJDMX_XH={1}", PageParam.GetRTrimString("BJDID"), iNewXH)); } } else { XLBJDUtils.InsertXLXSBJDJJYZ_JGEDef(dberp, SQL, PageParam.GetRTrimString("BJDID"), iNewXH.ToString().Trim()); } } bNeedUpdateXLXSBJD = true; dicResultPairs.Add("XLXSBJDMX_XH", iNewXH.ToString()); //dicResultPairs.Add("XLXSBJDMX_XSSX", iXSSX.ToString());显示顺序是连续的,显示出来不能在取消报价数量时同步显示连续,故放出来不显示 dicResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); dicResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); dicResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); dicResultPairs.Add("XLXSBJDMX_JGBBJ", dCPJJ.ToString()); dicResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBJJ", sJJ); dicResultPairs.Add("XLXSBJDMX_CLCB", sCLCB); dicResultPairs.Add("XLXSBJDMX_BJDHQCLCB", sBJDHQCLCB); dicResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); dicResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dBJLJJCL.ToString()); dicResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_XH", iNewXH.ToString()); //AddChangedField(dicChangedField, "XLXSBJDMX_XSSX", iXSSX.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBJJ", sJJ); AddChangedField(dicChangedField, "XLXSBJDMX_CLCB", sCLCB); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB", sBJDHQCLCB); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dBJLJJCL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); } } private void PLAddMXByBJSL(TDatabase dberp, TSQL SQL, double dBJSL, string sJLDW, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sXLYSID, string sBJFLID, string sPJLX, string sFKQXNR, string sSYDWID, int tmpXSWS, string sCPBJMRXSWS, string sBJDXH, Dictionary dicYZZValue, Dictionary dicResultPairs, Dictionary dicChangedField, double dJGBBJ, double dCLCB, double dCPBJ, double dBJDHQCLCB, double dTZQCPBJ, double dTZJG, double dTZJE, string sBJCP, string sWGCPBZ, bool bHSBZ, string sBZ, string sorYZZ01, string sorYZZ02, string sorYZZ03, string sorYZZ04, string sorYZZ05, string sorYZZ06, string sorYZZ07, string sorYZZ08, string sorYZZ09, string sorYZZ10, string sorYZZ11, string sorYZZ12, string sorYZZ13, string sorYZZ14, string sorYZZ15, string sorYZZ16, string sorYZZ17, string sorYZZ18, string sorYZZ19, string sorYZZ20, string sorTZZDXJ, ref int iNewXH, ref bool bNeedUpdateXLXSBJD, string sJGFBZ, string sBJDID) { //研发自测:王正阳 2026/04/30 21:03:45 string sBJU003 = GetOption("BJU003"); string sBJU018 = GetOption("BJU018"); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(PageParam.GetRTrimString("JGBID")).XLXSJGB_JJLY; //当前计量单位与参数一致后,报价数量的变化后的值 double dJLDWHSBL = 1.0; dJLDWHSBL = XLBJDUtils.GetJLDWHSBL_SL(sJLDW, sBJU003); double dTmpBJSL = dBJSL * dJLDWHSBL; Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); string fZXJM = dicXLGGB["ZXJM"]; string sXXJGID = dicXLGGB["XXJGID"]; if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { //更新报价单明细 } else//插入报价单明细 { sXLYSID = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); } string sXSQYID = PageParam.GetRTrimString("XSQYID"); string sTJYSList = PageParam.GetRTrimString("TJYSList"); //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); string sErrorNum = ""; #region 获取报价单调价因子以及调整过程 //获取调价因素为空的因子值 Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, sWGCPBZ.Equals("Y"), false, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID); //重新获取按“|付款方式”设置的调价因子值 Dictionary dicYZZ1 = new Dictionary(); if (sTJYSList.Contains(",1,")) { dicYZZ1 = XLBJDUtils.GetBJDYZZ1(sBJFLID, sPJLX, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //报价数量变化,重新获取按“|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (sTJYSList.Contains(",2,")) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dTmpBJSL, sXLXHID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (sTJYSList.Contains(",3,")) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (sTJYSList.Contains(",E,")) { dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } Dictionary dicYZZG = new Dictionary(); if (sTJYSList.Contains(",G,")) { dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (sTJYSList.Contains(",F,")) { dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZH = new Dictionary(); if (sTJYSList.Contains(",H,")) { dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZK = new Dictionary(); if (sTJYSList.Contains(",K,")) { dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dTmpBJSL, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (sTJYSList.Contains(",4,")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值 Dictionary dicYZZ5 = new Dictionary(); if (sTJYSList.Contains(",5,")) { dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, GetOption("BJU003"), sXLGGID, sBJDID); } //重新获取按“|报价数量区间调价米数/报价数量”设置的调价因子值 Dictionary dicYZZ6 = new Dictionary(); if (sTJYSList.Contains(",6,")) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dTmpBJSL, sJLDW, GetOption("BJU003"), sBJDID); } //重新获取按“|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值 Dictionary dicYZZ7 = new Dictionary(); if (sTJYSList.Contains(",7,")) { dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“|付款期限”设置的调价因子值 Dictionary dicYZZ8 = new Dictionary(); if (sTJYSList.Contains(",8,")) { dicYZZ8 = XLBJDUtils.GetBJDYZZ8(sBJFLID, sFKQXNR, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //重新获取按“|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值 Dictionary dicYZZ9 = new Dictionary(); if (sTJYSList.Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sJLDW, GetOption("BJU003"), sXLGGID, sXLBZID, sBJDID); } //重新获取按“A|型号&规格&电压&标准”设置的调价因子值 Dictionary dicYZZA = new Dictionary(); if (sTJYSList.Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, GetOption("BJU003"), sBJDID); } Dictionary dicYZZBZPF = new Dictionary(); if (sTJYSList.Contains(",BZPF,")) { //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID); } } Dictionary dicYZZCPWJPF = new Dictionary(); if (sTJYSList.Contains(",CPWJPF,")) { //产品外径盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); } } //重新获取按“B|销售单位”设置的调价因子值 Dictionary dicYZZB = new Dictionary(); if (sTJYSList.Contains(",B,")) { dicYZZB = XLBJDUtils.GetBJDYZZB(sBJFLID, sSYDWID, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //获取按“C|产品目录&主芯截面范围&产品特性”因子值 Dictionary dicYZZC = new Dictionary(); if (sTJYSList.Contains(",C,")) { dicYZZC = XLBJDUtils.GetBJDYZZC(PageParam.GetRTrimString("BJDID").Trim(), sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, sXLBZID); } //重新获取按“D|颜色”设置的调价因子值 Dictionary dicYZZD = new Dictionary(); if (sTJYSList.Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, sXLYSID, sJLDW, GetOption("BJU003"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDID); } //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); //初次将所“|调因子值”因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)]; } else if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)]; } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)]; } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)]; } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)]; } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)]; } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)]; } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)]; } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)]; } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)]; } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)]; } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)]; } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)]; } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)]; } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)]; } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)]; } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)]; } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)]; } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)]; } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)]; } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)]; } } } //初次将所有的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicTJYZID.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ0[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ1[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ2[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ3[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZE[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZG[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZH[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZK[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ4[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ5[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ6[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ7[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ8[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ9[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZA[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZB[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZC[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZD[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } } } #endregion if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { bool bNeedCalcCPBJ = false;//是否需要按有变化的因子值重新计算产品报价 #region 更新报价单因子值 foreach (string sYZID in dicYZZ0.Keys) { if (dicYZZ0[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Split('|')[0]; string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Split('|')[0]; if (!sBZPFYZID.Trim().Equals("") && sYZID.Equals(sBZPFYZID)) continue; if (!sCPWJPFYZID.Trim().Equals("") && sYZID.Equals(sCPWJPFYZID)) continue; bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); } } foreach (string sYZID in dicYZZ1.Keys) { if (dicYZZ1[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); } } foreach (string sYZID in dicYZZ2.Keys) { if (dicYZZ2[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); } } foreach (string sYZID in dicYZZ3.Keys) { if (dicYZZ3[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); } } foreach (string sYZID in dicYZZE.Keys) { if (dicYZZE[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); } } foreach (string sYZID in dicYZZG.Keys) { if (dicYZZG[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); } } foreach (string sYZID in dicYZZF.Keys) { if (dicYZZF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); } } foreach (string sYZID in dicYZZH.Keys) { if (dicYZZH[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); } } foreach (string sYZID in dicYZZK.Keys) { if (dicYZZK[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); } } foreach (string sYZID in dicYZZ4.Keys) { if (dicYZZ4[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); } } foreach (string sYZID in dicYZZ5.Keys) { if (dicYZZ5[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); } } foreach (string sYZID in dicYZZ6.Keys) { if (dicYZZ6[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); } } foreach (string sYZID in dicYZZ7.Keys) { if (dicYZZ7[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); } } foreach (string sYZID in dicYZZ8.Keys) { if (dicYZZ8[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); } } foreach (string sYZID in dicYZZ9.Keys) { if (dicYZZ9[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); } } foreach (string sYZID in dicYZZA.Keys) { if (dicYZZA[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); } } foreach (string sYZID in dicYZZBZPF.Keys) { if (dicYZZBZPF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); } } foreach (string sYZID in dicYZZCPWJPF.Keys) { if (dicYZZCPWJPF[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); } } foreach (string sYZID in dicYZZB.Keys) { if (dicYZZB[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); } } foreach (string sYZID in dicYZZC.Keys) { if (dicYZZC[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); } } foreach (string sYZID in dicYZZD.Keys) { if (dicYZZD[sYZID] != CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID])) { bNeedCalcCPBJ = true; dicResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); } } #endregion if (bNeedCalcCPBJ) { string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(dJGBBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); } else { dCPBJ = dJGBBJ; if (dCPBJ != 0) { double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = PageParam.GetRTrimString("BTYZ"); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = dicTJYZIDValue[stBTYZ]; if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 //二次调价 dTZQCPBJ = dCPBJ; dicResultPairs.Add("XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dTZQCPBJ.ToString().Trim()); dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); dicResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); } double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dJGBBJ * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(dJGBBJ * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dJGBBJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dJGBBJ * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = dJGBBJ * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - dJGBBJ * dBJSL; double dtmpCPJE = dJGBBJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dJGBBJ * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } dicResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); dicResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = dBJSL * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * dBJSL; fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } dicResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString().Trim()); bNeedUpdateXLXSBJD = true; dicResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); dicResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); dicResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); } else { string sCPJJ = "";//表价 string sJJ = "";//基价 string sCLCB = "";//价格表行情料价 string sBJDHQCLCB = "";//报价单行情料价 bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); string pJGBID = PageParam.GetRTrimString("JGBID"); string sJGBJLDW = XLBJDUtils.GetJGBJLDW(pJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018); string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); double dBJDJLDWHSBL = 1; iNewXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'") + 1; int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'") + 1; string sCPMLIDMC = string.Empty; string sCPMLMC = string.Empty; //产品目录名称赋值 if (!sXLXHID.Equals("")) { XLBJDUtils.GetDefaultCPMLDic(sXLXHID, sDYDJID, ref dicCPML); if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|" + sDYDJID, out sCPMLIDMC)) { if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|", out sCPMLIDMC)) { } } if (sCPMLIDMC != null) { sCPMLMC = sCPMLIDMC.Split('|')[1].ToString().Trim(); } } #region 插入XLXSBJDYZZ0 //先插入XLXSBJDYZZ0 //再更新XLXSBJDYZZ0 string sYZID = ""; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { if (QueryGrid.Columns[i].Visible == false)//隐藏的因子值不插入到数据表里 continue; sYZID = QueryGrid.Columns[i].DataField.Substring(5); double sYZZ = CMISproConvert.StrToFloat(dicYZZValue["TZYZ_" + sYZID].ToString(), 0); if (dicYZZBZPF.ContainsKey(sYZID)) { sYZZ = dicYZZBZPF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZCPWJPF.ContainsKey(sYZID)) { sYZZ = dicYZZCPWJPF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ0.ContainsKey(sYZID)) { sYZZ = dicYZZ0[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ1.ContainsKey(sYZID)) { sYZZ = dicYZZ1[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ2.ContainsKey(sYZID)) { sYZZ = dicYZZ2[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ3.ContainsKey(sYZID)) { sYZZ = dicYZZ3[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZE.ContainsKey(sYZID)) { sYZZ = dicYZZE[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZG.ContainsKey(sYZID)) { sYZZ = dicYZZG[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZF.ContainsKey(sYZID)) { sYZZ = dicYZZF[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZH.ContainsKey(sYZID)) { sYZZ = dicYZZH[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZK.ContainsKey(sYZID)) { sYZZ = dicYZZK[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ4.ContainsKey(sYZID)) { sYZZ = dicYZZ4[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ5.ContainsKey(sYZID)) { sYZZ = dicYZZ5[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ6.ContainsKey(sYZID)) { sYZZ = dicYZZ6[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ7.ContainsKey(sYZID)) { sYZZ = dicYZZ7[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ8.ContainsKey(sYZID)) { sYZZ = dicYZZ8[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZ9.ContainsKey(sYZID)) { sYZZ = dicYZZ9[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZA.ContainsKey(sYZID)) { sYZZ = dicYZZA[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZB.ContainsKey(sYZID)) { sYZZ = dicYZZB[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZC.ContainsKey(sYZID)) { sYZZ = dicYZZC[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } else if (dicYZZD.ContainsKey(sYZID)) { sYZZ = dicYZZD[sYZID]; dicResultPairs.Add("TZYZ_" + sYZID, sYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, sYZZ.ToString()); } } #endregion string sBJRQ = PageParam.GetRTrimString("BJRQ"); int iJGBTJYZYC = 1; if (sJGFBZ.Equals("Y")) { double dJGFJJ = 0; double dJGFBJ = 0; string sJGFJLDW = ""; XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sBJU018, ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW); //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGFJLDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW); } sCPJJ = dJGFBJ.ToString().Trim(); sJJ = dJGFJJ.ToString().Trim(); sCLCB = dJGFJJ.ToString().Trim(); sBJDHQCLCB = dJGFJJ.ToString().Trim(); } else if (sWGCPBZ.Equals("Y")) { dBJDJLDWHSBL = 1; sCPJJ = "0"; sJJ = "0"; sCLCB = "0"; sBJDHQCLCB = "0"; } else { if (!XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID")))//是否表价实时计算价格表 { //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJSDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW); } string pJGCIDS = PageParam.GetRTrimString("JGCIDS"); string sBJLY = PageParam.GetRTrimString("BJLY"); string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY"); if (PageParam.GetRTrimString("JGBTJYS").Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 { #region 因素 string sTBJCLID = PageParam.GetRTrimString("TBJCLID"); string sLBJCLID = PageParam.GetRTrimString("LBJCLID"); string sTJ = PageParam.GetRTrimString("TJ"); string sLJ = PageParam.GetRTrimString("LJ"); Dictionary dicJJYZList = new Dictionary(); XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), bHSBZ, tmpXSWS, pJGBID, PageParam.GetRTrimString("JGBIDS"), sJLDW, sBJU003, sBJU018, PageParam.GetRTrimString("JSBLFS"), sTBJCLID, sLBJCLID, sTJ, sLJ, PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y"), ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); //调价因素价格表单独处理XLXSBJDJJYZ //这里根据换算比例将GetFromJGB_BJDHQ_JGBTJYS3已经换算的数据再换算回来,交由下方统一换算 double dBJD_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJLDW, sJGBJLDW); sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ, 0) * dBJD_JGB_JLDWHSBL); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ, 0) * dBJD_JGB_JLDWHSBL); sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB, 0) * dBJD_JGB_JLDWHSBL); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB, 0) * dBJD_JGB_JLDWHSBL); #endregion } else { //记录衍生产品原四要素 string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sXLBZID; string tmpDYDJID = sDYDJID; int iSYXH = 0; double dYSJDZ = 1; double dCLCBYSJDZ = 1; bool bExistedSYJGBMX = false; if (PageParam.GetRTrimString("JGBTJYS").Equals("1")) { //因素先将衍生产品四要素替换成所依四要素 bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); } if (sBJLY.Equals("D") || sBJLY.Equals("C")) { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) { if (bExistedSYJGBMX) XLBJDUtils.GetJGBMXBySYXH(pJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, pJGBID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); if (bExistedSYJGBMX) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sXLBZID = tmpXLBZID; sDYDJID = tmpDYDJID; } JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; if (bHSBZ) sCLCB = aryBJHQ["CLCB"].ToString(); else sCLCB = aryBJHQ["WSCLCB"].ToString(); } } else { if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID))) { if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, PageParam.GetRTrimString("BJRQ"), bHSBZ, XLBJDUtils.JQJSXSWS.ToString().Trim(), sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } else { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, PageParam.GetRTrimString("BJRQ"), bHSBZ, GetOption(100860000, "BJU002"), sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } } else { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } else { XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, pJGBID, pJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } bool hasCLQD = false; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", sXLXHID, sXLGGID, sXLBZID, sDYDJID.Equals("") ? " " : sDYDJID))) { hasCLQD = true; } if (bExistedSYJGBMX && !hasCLQD) { //记录衍生产品原四要素 tmpXLXHID = sXLXHID; tmpXLGGID = sXLGGID; tmpXLBZID = sXLBZID; tmpDYDJID = sDYDJID; XLBJDUtils.GetJGBMXBySYXH(pJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); } if (sBJDHQLY.Trim().Equals("1")) { if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); else sBJDHQCLCB = sCLCB; } else { Dictionary aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 { if (bHSBZ) sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); else sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); } else { if (bHSBZ) sBJDHQCLCB = aryBJRHQ["CLCB"].ToString(); else sBJDHQCLCB = aryBJRHQ["WSCLCB"].ToString(); } //统一为价格表计量单位的价格 double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); } if (PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y")) { Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID); if (bHSBZ) sBJDHQCLCB = aryBJDHQCLCB["CLCB"].ToString(); else sBJDHQCLCB = aryBJDHQCLCB["WSCLCB"].ToString(); //统一为价格表计量单位的价格 double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); if (bjflxx.XLXSBJFL_ABJDHQJSBJ == "Y" && sJGBJJLY == "A") { if (XLBJDUtils.ISExistJGBMX(pJGBID, pJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") { sJJ = sBJDHQCLCB; sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), tmpXSWS), PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGCIDS"), sXLXHID, sXLGGID, sXLBZID, sDYDJID), tmpXSWS) * dYSJDZ); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * dBJU003_JGB_JLDWHSBL); sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ) * dBJU003_JGB_JLDWHSBL); } } sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); } string sCPLJGS = XLBJDUtils.GetCPLJGS(); //还原四要素 if (bExistedSYJGBMX && !hasCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sXLBZID = tmpXLBZID; sDYDJID = tmpDYDJID; if (sCPLJGS == "2") { sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dYSJDZ); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dYSJDZ); } if (sCPLJGS == "4") { sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dCLCBYSJDZ); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dCLCBYSJDZ); } } //无材料清单且料价计算方式为|按报价单料价加点对照表计算 if (!hasCLQD && (sCPLJGS == "3")) { double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(PageParam.GetRTrimString("BJDID"), PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sJGBJLDW, sBJU003); sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); } } } else//表价实时计算价格表 { //M、KM、米、千米、KG、T、千克、公斤、吨 if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else { dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); } string sTBJCLID = PageParam.GetRTrimString("TBJCLID"); string sLBJCLID = PageParam.GetRTrimString("LBJCLID"); string sTJ = PageParam.GetRTrimString("TJ"); string sLJ = PageParam.GetRTrimString("LJ"); Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(PageParam.GetRTrimString("BJRQ"), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sTBJCLID, sLBJCLID, sTJ, sLJ, bHSBZ, PageParam.GetRTrimString("NeedUpdBJDHQCLCB").Equals("Y"), PageParam.GetRTrimString("BJDID")); JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; sCLCB = dicJGE["CLCB"].ToString(); sJJ = sCLCB; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); } else { sBJDHQCLCB = sCLCB; } dicXLJBXX_JGE.Clear(); dicXLJBXX_JGE.Add("XLXHID", sXLXHID); dicXLJBXX_JGE.Add("XLGGID", sXLGGID); dicXLJBXX_JGE.Add("XLBZID", sXLBZID); dicXLJBXX_JGE.Add("DYDJID", sDYDJID); dicXLJBXX_JGE.Add("BJDJLDWHSBL", dBJDJLDWHSBL.ToString().Trim()); XLBJDUtils.GetdsJGBYZ_JGE(PageParam.GetRTrimString("JGBID"), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(PageParam.GetRTrimString("JGBID"), "0", dsJGBYZ, dicXLJBXX_JGE); Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(PageParam.GetRTrimString("JGBID"));//因子值不为的价格表因子 if (dicJGBTJYZ.Count > 0) { foreach (string sKey in dicJGBTJYZ.Keys) { if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == 0) { iJGBTJYZYC = -1; break; } } } Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(PageParam.GetRTrimString("JGBID"));//覆盖全产品的价格表因子 if (dicJGBFGQCPYZ.Count > 0) { foreach (string sKey in dicJGBFGQCPYZ.Keys) { if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == -9999) { iJGBTJYZYC = -1; break; } } } // sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTempCLCB), tmpXSWS); if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + sTempCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = sTempCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } } if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { sCPJJ = Convert.ToString(dZBZ * (-1)); sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * (-1)); sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * (-1)); } else { sCPJJ = dZBZ.ToString().Trim(); } } } double dCPJJ = CMISproConvert.StrToFloat(sCPJJ, 0); double dJJ = CMISproConvert.StrToFloat(sJJ, 0); dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); dBJDHQCLCB = CMISproConvert.StrToFloat(sBJDHQCLCB, 0); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 { dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; dCPJJ = NumberUtils.RoundX(dCPJJ, tmpXSWS); dJJ = NumberUtils.RoundX(dJJ, tmpXSWS); dCLCB = NumberUtils.RoundX(dCLCB, tmpXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, tmpXSWS); } else { dCPJJ = NumberUtils.RoundX(dCPJJ, tmpXSWS); dJJ = NumberUtils.RoundX(dJJ, tmpXSWS); dCLCB = NumberUtils.RoundX(dCLCB, tmpXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, tmpXSWS); dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; } if (iJGBTJYZYC == -1) dCPJJ = Math.Abs(dCPJJ) * -1; if (dJJ == 0) dCPJJ = 0; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(dCPJJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); } else { dCPBJ = dCPJJ; if (dCPBJ != 0) { double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < QueryGrid.Columns.Count - sAddColumnsCount; i++) { string sFieldName = QueryGrid.Columns[i].DataField; string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (PageParam.GetRTrimString("BJDYZ").Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = PageParam.GetRTrimString("BTYZ"); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = dicTJYZIDValue[stBTYZ]; if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 //二次调价 dicResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); ; double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL, 2); else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL, 2) - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (PageParam.GetRTrimString("JCLLX").Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL; else if (PageParam.GetRTrimString("JCLLX").Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL - dBJJE; else if (PageParam.GetRTrimString("JCLLX").Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(dCPJJ.ToString(), 0) * dBJSL, 2); double dLRL = 0.0; if (PageParam.GetRTrimString("JCLLX").Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("JCLLX").Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (PageParam.GetRTrimString("LJJCLLX").Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(dCLCB.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(dBJDHQCLCB.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(dBJDHQCLCB.ToString(), 0) * dBJSL; if (CMISproConvert.StrToFloat(dBJDHQCLCB.ToString(), 0) * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(dBJDHQCLCB.ToString(), 0) * dBJSL), 2); } else if (PageParam.GetRTrimString("LJJCLLX").Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(dBJDHQCLCB.ToString(), 0) * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dBJLJJCL = 0.0; if (dBJSL * dJGBBJ != 0) { dBJLJJCL = NumberUtils.RoundX((dBJSL * dJGBBJ - (dBJSL * dBJDHQCLCB)) / (dBJSL * dJGBBJ) * 100, 2); } double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = dBJSL * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * dBJSL; fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } bNeedUpdateXLXSBJD = true; dicResultPairs.Add("XLXSBJDMX_XH", iNewXH.ToString()); //dicResultPairs.Add("XLXSBJDMX_XSSX", iXSSX.ToString());显示顺序是连续的,显示出来不能在取消报价数量时同步显示连续,故放出来不显示 dicResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); dicResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); dicResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); dicResultPairs.Add("XLXSBJDMX_JGBBJ", dCPJJ.ToString()); dicResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBJJ", sJJ); dicResultPairs.Add("XLXSBJDMX_CLCB", sCLCB); dicResultPairs.Add("XLXSBJDMX_BJDHQCLCB", sBJDHQCLCB); dicResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); dicResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); dicResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dBJLJJCL.ToString()); dicResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_XH", iNewXH.ToString()); //AddChangedField(dicChangedField, "XLXSBJDMX_XSSX", iXSSX.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBJJ", sJJ); AddChangedField(dicChangedField, "XLXSBJDMX_CLCB", sCLCB); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB", sBJDHQCLCB); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dBJLJJCL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); } } private string sGetJGFJGB(string sJGFID) { string sJFGJGB = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add(" select XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_JGBID = :pJGFID and XLXSJGB_MXBH = 'JGF' "); sSQL.ParamByName("pJGFID").Value = sJGFID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { sJFGJGB = ds.Tables[0].Rows[0]["XLXSJGB_JGBMC"].ToString().Trim(); } return sJFGJGB; } private void ACPYTDR(string sJGBID, string sMXBH) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); SQL.Clear(); SQL.Add(" delete from JGBXHDYML where JGBXHDYML_JGBID = :pJGBID and JGBXHDYML_MXBH = :pMXBH "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into JGBXHDYML(JGBXHDYML_JGBID, JGBXHDYML_MXBH, JGBXHDYML_XLXHID, JGBXHDYML_DYDJID, JGBXHDYML_HFLX,JGBXHDYML_HFYWBH,"); SQL.Add(" JGBXHDYML_WHR, JGBXHDYML_WHRID, JGBXHDYML_WHSJ)"); SQL.Add(" select distinct :pJGBID,:pMXBH, XLXHDYDJ_XLXHID,XLXHDYDJ_DYDJID,'1',XLXHB_CPYT,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from "); if (sMXBH.Equals("JGE")) SQL.Add(" (select distinct XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_DYDJID as DYDJID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' ) a , "); else SQL.Add(" (select distinct XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_DYDJID as DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID= :pJGBID ) a, "); SQL.Add(" XLXHDYDJ "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXHDYDJ_XLXHID "); SQL.Add(" where 1=1 "); SQL.Add(" and ((XLXHDYDJ_XLXHID = XLXHID and XLXHDYDJ_DYDJID = DYDJID) or (XLXHDYDJ_XLXHID = XLXHID and DYDJID = ' ')) "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("按产品用途导入型号电压目录失败,请和系统管理员联系:" + ex.Message); dberp.RollbackTrans(); } } private void ACPMLDR(string sJGBID, string sMXBH) {//研发自测:王威 2025/08/20 16:50:12 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); SQL.Clear(); SQL.Add(" delete from JGBXHDYML where JGBXHDYML_JGBID = :pJGBID and JGBXHDYML_MXBH = :pMXBH "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into JGBXHDYML(JGBXHDYML_JGBID, JGBXHDYML_MXBH, JGBXHDYML_XLXHID, JGBXHDYML_DYDJID, JGBXHDYML_HFLX,JGBXHDYML_HFYWBH,"); SQL.Add(" JGBXHDYML_WHR, JGBXHDYML_WHRID, JGBXHDYML_WHSJ)"); SQL.Add(" select distinct :pJGBID,:pMXBH, XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID,'2',XLXSBJXHML_CPMLID,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from "); if (sMXBH.Equals("JGE")) SQL.Add(" (select distinct XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_DYDJID as DYDJID from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' ) a , "); else SQL.Add(" (select distinct XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_DYDJID as DYDJID from XLXSJGBMX where XLXSJGBMX_JGBID= :pJGBID ) a, "); SQL.Add(" XLXSBJXHML "); SQL.Add(" where 1=1 "); SQL.Add(" and ((XLXSBJXHML_XLXHID = XLXHID and XLXSBJXHML_DYDJID = DYDJID) or (XLXSBJXHML_XLXHID = XLXHID and XLXSBJXHML_DYDJID = ' ')) "); SQL.Add(" union all "); if (sMXBH.Equals("JGE")) { SQL.Add(" select distinct :pJGBID,:pMXBH, XLXSCLQD_XLXHID,XLXSCLQD_DYDJID,'2',' ',:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSCLQD "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSCLQD_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSCLQD_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSCLQD_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" where XLXSCLQD_WPID='ZZZZ' and isnull(XHMLA.XLXSBJXHML_CPMLID,' ')=' ' and isnull(XHMLB.XLXSBJXHML_CPMLID,' ')=' ' "); } else { SQL.Add(" select distinct :pJGBID,:pMXBH, XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,'2',' ',:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSJGBMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSJGBMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSJGBMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" where XLXSJGBMX_JGBID= :pJGBID and isnull(XHMLA.XLXSBJXHML_CPMLID,' ')=' ' and isnull(XHMLB.XLXSBJXHML_CPMLID,' ')=' ' "); } SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pMXBH").Value = sMXBH; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("按产品目录导入型号电压目录失败,请和系统管理员联系:" + ex.Message); dberp.RollbackTrans(); } } #endregion #region 分页模式下,翻页控件事件 // 页面设置后保存单页记录数 void pgBar_PageSizeChanged(object sender, EventArgs e) { if (CurSession.DbId != "") { TGtPager.SavePageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJD_MXOper.aspx", pgBar); } } // 页面设置后刷新GRID数据 void pgBar_PageChanged(object sender, EventArgs e) { if (pgBar.PageSize > 800) pgBar.PageSize = 800; QueryGrid_OnQuery(); } #endregion #region 查询方案树 //public delegate void StandardQueryTreeNodeChanged(object sender, gtTreeViewNodeEventArgs e); //public event StandardQueryTreeNodeChanged OnStandardQueryTreeNodeChanged; protected void LeftQueryTree_SelectedNodeChanged(object sender, gtTreeViewNodeEventArgs e) { if (e.Node.Depth == 0 && e.Node.Value.Trim().Equals("root0"))//点“报价明细”根节点 { //查询已报明细 txtCURMX.Value = "Y"; txtCURMXPX.Value = ""; txtJGFCX.Value = "N"; QueryGrid_OnQuery(); } else if (e.Node.Depth == 1 && e.Node.Value.Trim().Equals("root0_nd1"))//点“按产品排序”节点 { txtCURMX.Value = "Y"; txtCURMXPX.Value = "CP"; txtJGFCX.Value = "N"; QueryGrid_OnQuery(); } else { if (e.Node.Depth == 2 && !e.Node.Value.Trim().Equals(""))//仅选择型号触发查询 { txtCURMX.Value = "N"; string[] sArray = Regex.Split(e.Node.Value.Trim(), "#@#", RegexOptions.IgnoreCase); txtXLXH.Text = sArray[0].Trim(); if (sArray.Length > 1) cbxDYDJID.SelectedValue = sArray[1].Trim(); BillAreaUpdate(); if (sArray.Length > 2) txtJGFCX.Value = "Y"; else txtJGFCX.Value = "N"; txtSelXHID.Value = sArray[0].Trim(); QueryGrid_OnQuery(); } } } //public delegate void StandardQueryTreeNodePopulate(object sender, gtTreeViewNodeEventArgs e); //public event StandardQueryTreeNodePopulate OnStandardQueryTreeNodePopulate; protected void LeftQueryTree_TreeNodePopulate(object sender, gtTreeViewNodeEventArgs e) { //OnStandardQueryTreeNodePopulate(sender, e); if (e.Node == null) return; if (!string.IsNullOrEmpty(e.Node.Value)) { if (XLBJDUtils.ExistXSCPML()) { entity.TreeQuerySelSql = GetTreeQuerySelSQLByCPML(e.Node.Value.Trim()); }else entity.TreeQuerySelSql = GetTreeQuerySelSQL(e.Node.Value.Trim()); } if (String.IsNullOrEmpty(entity.TreeQuerySelSql)) return; e.Node.ChildNodes.Clear(); TreeViewAddNodeBySQL(LeftQueryTree, e.Node); e.Node.Expand(); } //public delegate void StandardQueryTreeNodeMenuClick(object sender, gtTreeViewMenuClickEventArgs e); //public event StandardQueryTreeNodeMenuClick OnStandardQueryTreeNodeMenuClick; protected void LeftQueryTree_TreeNodeMenuClick(object sender, gtTreeViewMenuClickEventArgs e) { //OnStandardQueryTreeNodeMenuClick(sender, e); string sCZLX = e.MenuValue.Trim();//操作类型 if (sCZLX.Trim().Equals("REFRESH"))//刷新 { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); dberp.ExecSQL("delete from XLXHDYDJ where 1=1"); sSQL.Clear(); sSQL.Add("insert into XLXHDYDJ(XLXHDYDJ_XLXHID,XLXHDYDJ_DYDJID,XLXHDYDJ_ACDC,XLXHDYDJ_WHR,XLXHDYDJ_WHRID,XLXHDYDJ_WHSJ) "); sSQL.Add("select XLXHID,DYDJID,XLDYDJB_ACDC as ACDC,:pWHR,:pWHRID,:pWHSJ "); sSQL.Add("from "); sSQL.Add("("); sSQL.Add(" select distinct XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_DYDJID as DYDJID"); sSQL.Add(" from XLXSCLQD where XLXSCLQD_WPID='ZZZZ'"); sSQL.Add(") a left join XLDYDJB on XLDYDJB_DYDJID=DYDJID "); sSQL.Add("where isnull(XLXHID,' ')<>' ' and isnull(DYDJID,' ')<>' ' "); sSQL.ParamByName("pWHR").Value = CurSession.UserName; sSQL.ParamByName("pWHRID").Value = CurSession.UserId; sSQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); //重构产品用途子节点 gtTreeViewNode tn1 = LeftQueryTree.FindNodeByValue("root1"); tn1.ChildNodes.Clear(); BuildCPYTChilds(tn1); } else if (sCZLX.Trim().Equals("EDITCPYT"))//修改产品用途序号 { string nodeValue = e.Node.Value.Trim(); if (nodeValue.Equals("") || nodeValue.EndsWith("|")) { ShowMessage("未指定产品用途,操作终止!"); return; } string sCPYT = nodeValue.Split('|')[1].Trim(); TPageParams App = new TPageParams(); App.UrlPath = "XLBJD_MXOperCPYT.aspx"; App.CallAction = TPageCallAction.pcaInsert; App.AddString("CPYT", sCPYT); App.AddString("RefreshCtrlID", btnRefreshCPYT.ClientID.Trim()); OpenDialog(App); } else if (sCZLX.Trim().Equals("EDITXLXH") || sCZLX.Trim().Equals("EDITDYDJ"))//型号、电压等级 { string nodeValue = e.Node.Value.Trim();//类似WDZAN-RYYP#@#300/300V string[] sArray = Regex.Split(e.Node.Value.Trim(), "#@#", RegexOptions.IgnoreCase); string sXLXHID = sArray[0].Trim(); string sDYDJID = ""; if (sArray.Length > 1) sDYDJID = sArray[1].Trim(); if (sCZLX.Trim().Equals("EDITXLXH"))//修改型号所属产品用途、显示序号 { TPageParams App = new TPageParams(); App.UrlPath = "XLBJD_MXOperXLXH.aspx"; App.CallAction = TPageCallAction.pcaInsert; App.AddString("XLXHID", sXLXHID); App.AddString("RefreshCtrlID", btnRefreshCPYT.ClientID.Trim()); OpenDialog(App); } else if (sCZLX.Trim().Equals("EDITDYDJ"))//修改电压的电压等级分类、显示序号 { TPageParams App = new TPageParams(); App.UrlPath = "XLBJD_MXOperDYDJ.aspx"; App.CallAction = TPageCallAction.pcaInsert; App.AddString("DYDJID", sDYDJID); App.AddString("RefreshCtrlID", btnRefreshCPYT.ClientID.Trim()); OpenDialog(App); } } } protected void SetQueryTreeDispaly() { if (true) { //string sClassName = Request.Url.ToString().Split('?')[0]; //int iIndex = sClassName.LastIndexOf('/'); //sClassName = sClassName.Substring(iIndex + 1, sClassName.Length - iIndex - 1); //sClassName = sClassName.Split('.')[0]; //string sClassName = "XLBJD_MXOper"; string sCustomWidth = "";// GetCustomTreeWidth(CurSession.RYID, this.UMID, sClassName); //是否隐藏方案树 string sHid = ""; if (SystemUtils.GetSysId().Equals("0510008703"))//江苏中煤电缆有限公司 { sHid = "Y"; } else { sHid = "N"; } string sScript = string.Empty; //string sVer = N_MISPROAS.Web.ResFile.GetVer("N_MODEL"); if (!sCustomWidth.Trim().Equals("")) //拖动后的百分比宽度 { sScript = "var perWidth = " + sCustomWidth.Replace("%", "") + ";"; sScript += "if(perWidth>0 && document.getElementById('CPHFormDIV').clientWidth>0)"; sScript += "{"; sScript += "var treeWidth = (perWidth/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2); "; sScript += "$get('splitDivScroll').style.width = treeWidth+'px';"; sScript += "$get('splitTd').style.height = document.getElementById('CPHFormDIV').clientHeight - 3+'px';"; if (sHid.Trim().Equals("") || sHid.Trim().Equals("Y")) { sScript += "$get('splitTd').style.width = '0px';"; sScript += "$get('splitDiv').style.left = '0px';"; sScript += "$get('splitDiv').style.display = 'none';"; //sScript += "$get('splitDivTitle').style.display = 'none';"; sScript += "$get('splitDivScroll').style.display = 'none';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/closetree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '展开'; "; sScript += "var formWidth = ((100 - 0.5)/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2);"; } else { sScript += "$get('splitTd').style.width = treeWidth+'px'; "; sScript += "$get('splitDiv').style.left = treeWidth+'px';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/opentree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '收起';"; sScript += "var formWidth = ((100 - perWidth - 0.5)/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2);"; } sScript += "$get('splitTd').style.display = 'block';"; sScript += "$get('TreeForm').style.width = formWidth+'px';"; sScript += "}"; sScript += "else {"; sScript += "$get('splitTd').style.width ='" + sCustomWidth + "';"; if (sHid.Trim().Equals("") || sHid.Trim().Equals("Y")) { sScript += "$get('splitDiv').style.display = 'none';"; //sScript += "$get('splitDivTitle').style.display = 'none';"; sScript += "$get('splitDivScroll').style.display = 'none';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/closetree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '展开'; "; } else { //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/opentree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '收起';"; } sScript += "}"; AjaxRunScript("setTreeVisible", sScript); } else { //按模板14% 85.5%的默认比例进行设置 sScript = " var perWidth=14;"; sScript += "if(perWidth>0 && document.getElementById('CPHFormDIV').clientWidth>0)"; sScript += "{"; sScript += "var treeWidth = (perWidth/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2); "; sScript += "$get('splitDivScroll').style.width = treeWidth+'px';"; sScript += "$get('splitTd').style.height = document.getElementById('CPHFormDIV').clientHeight - 3+'px';"; if (sHid.Trim().Equals("") || sHid.Trim().Equals("Y")) { sScript += "$get('splitTd').style.width = '0px';"; sScript += "$get('splitDiv').style.left = '0px';"; sScript += "$get('splitDiv').style.display = 'none';"; //sScript += "$get('splitDivTitle').style.display = 'none';"; sScript += "$get('splitDivScroll').style.display = 'none';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/closetree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '展开'; "; sScript += "var formWidth = ((100 - 0.5)/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2);"; } else { sScript += "$get('splitTd').style.width = treeWidth+'px';"; sScript += "$get('splitDiv').style.left = treeWidth+'px';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/opentree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '收起';"; sScript += "var formWidth = ((100 - perWidth - 0.5)/100*document.getElementById('CPHFormDIV').clientWidth).toFixed(2);"; } sScript += "$get('splitTd').style.display = 'block';"; sScript += "$get('TreeForm').style.width = formWidth+'px';"; sScript += "}"; sScript += "else {"; sScript += "$get('splitTd').style.width ='14%';"; if (sHid.Trim().Equals("") || sHid.Trim().Equals("Y")) { sScript += "$get('splitDiv').style.display = 'none';"; //sScript += "$get('splitDivTitle').style.display = 'none';"; sScript += "$get('splitDivScroll').style.display = 'none';"; //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/closetree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '展开'; "; } else { //sScript += "$get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/opentree.GIF&ver=" + sVer + "'; "; //sScript += "$get('divReTree').title = '收起';"; } sScript += "}"; AjaxRunScript("setTreeVisible", sScript); } } else { //string sVer = N_MISPROAS.Web.ResFile.GetVer("N_MODEL"); //string sScript = "if($get('splitTd').style.width == '0px'){ "; //sScript += " $get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/closetree.GIF&ver=" + sVer + "'; "; //sScript += " $get('divReTree').title = '展开'; "; //sScript += " } "; //sScript += " else{ "; //sScript += " $get('btnReTree').src = 'MacResource.axd?fn=N_MODEL/images_default/opentree.GIF&ver=" + sVer + "'; "; //sScript += " $get('divReTree').title = '收起' "; //sScript += " } "; //AjaxRunScript(this, "setTreePic", sScript); } } // 根据人员编号、运行模块号、页面获取页面中树控件区域宽度 //private string GetCustomTreeWidth(string sRYID, int iUMID, string sClassName) //{ // TDatabase db = null; // DataSet ds; // try // { // db = TContextDatabases.GetDatabase("DBERP"); // TSQL sql = new TSQL(db); // sql.Clear(); // //sql.ClassId = "N_MODEL.Utils"; // //sql.SqlId = "GetCustomTreeWidth_1"; // sql.Add("select NPROFILE_NPVALUE from NPROFILE where NPROFILE_RYID=:NPROFILE_RYID and NPROFILE_MDID=:NPROFILE_MDID and NPROFILE_FORMNAME=:NPROFILE_FORMNAME and NPROFILE_NPKEY='WIDTH'"); // sql.ParamByName("NPROFILE_RYID").Value = sRYID; // sql.ParamByName("NPROFILE_MDID").Value = iUMID; // sql.ParamByName("NPROFILE_FORMNAME").Value = sClassName.Trim(); // ds = db.OpenDataSet(sql); // if (ds.Tables[0].Rows.Count > 0) // { // return ds.Tables[0].Rows[0]["NPROFILE_NPVALUE"].ToString().Trim(); // } // else // { // return ""; // } // } // catch // { // return ""; // } //} protected void InitQueryTreeView() { LeftQueryTree.ExpandImageToolTip = "展开"; LeftQueryTree.CollapseImageToolTip = "收起"; LeftQueryTree.ExpandDepth = 1; gtTreeViewNode tn0 = TreeViewAddNode(LeftQueryTree, null, "报价明细", "root0", "", true, false, false); TreeViewAddNode(LeftQueryTree, tn0, "按产品排序", "root0_nd1", "", true, false, false); if (XLBJDUtils.ExistXSCPML()) { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGFID"))) { string sJGFJGBMC = sGetJGFJGB(PageParam.GetRTrimString("JGFID")); gtTreeViewNode tnJGF = TreeViewAddNode(LeftQueryTree, null, sJGFJGBMC, "rootJGF", "", true, true, false); //加载产品目录节点 BuildCPMLChilds(tnJGF); } gtTreeViewNode tn1 = TreeViewAddNode(LeftQueryTree, null, "产品目录", "root1", "", true, true, false); //加载产品目录节点 BuildCPMLChilds(tn1); } else { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("JGFID"))) { string sJGFJGBMC = sGetJGFJGB(PageParam.GetRTrimString("JGFID")); gtTreeViewNode tnJGF = TreeViewAddNode(LeftQueryTree, null, sJGFJGBMC, "rootJGF", "", true, true, false); //加载产品目录节点 BuildCPYTChilds(tnJGF); } gtTreeViewNode tn1 = TreeViewAddNode(LeftQueryTree, null, "产品用途", "root1", "", true, true, false); //加载产品用途节点 BuildCPYTChilds(tn1); } } /// /// 创建树节点 /// /// 父节点,如果为NULL则将建第一层节点 /// 节点显示文本 /// 节点值,唯一性 /// 图片关键字,需要向tvImageList中加入值,根据KEY值,取VALUE作为图片路径 /// 节点鼠标点击无效,即无服务端点击事件对应 /// 节点是否需要在展开时,通过服务端事件动态填充节点 /// 建立本节点的同时,是否需要根据实体类将下一级节点创建出来 /// private gtTreeViewNode TreeViewAddNode(gtAjaxTreeView gtLeftTree, gtTreeViewNode fatherNode, string sText, string sValue, string sImgUrl, bool bSelectAction, bool bPopulateOnDemand, bool bNeedExpandChildrenNode) { gtTreeViewNode rootNode; if (String.IsNullOrEmpty(sImgUrl)) { rootNode = new gtTreeViewNode(sText, sValue); } else { rootNode = new gtTreeViewNode(sText, sValue, sImgUrl); } rootNode.ToolTip = sText; rootNode.PopulateOnDemand = bPopulateOnDemand; if (gtLeftTree.Nodes.Count <= 0) gtLeftTree.SelectedNode = rootNode; if (fatherNode == null) { gtLeftTree.Nodes.Add(rootNode); } else { fatherNode.ChildNodes.Add(rootNode); } if (!bSelectAction) { rootNode.SelectAction = TreeNodeSelectAction.None; } if (bNeedExpandChildrenNode) { TreeViewAddNodeBySQL(gtLeftTree, rootNode); } return rootNode; } /// /// 在某个节点下根据TreeQuerySelSql语句创建树 /// /// private void TreeViewAddNodeBySQL(gtAjaxTreeView gtLeftTree, gtTreeViewNode rootNode) { rootNode.ChildNodes.Clear(); if (String.IsNullOrEmpty(entity.TreeQuerySelSql)) return; TDatabase db = TContextDatabases.GetDatabase("DBERP"); try { TSQL gtSQL = new TSQL(db); gtSQL.Text = entity.TreeQuerySelSql; //this._curEntity.PrintParam.Clear(); //foreach (string s in this._curEntity.Param.Keys) //{ // gtSQL.ParamByName(s).Value = this._curEntity.Param[s]; // this._curEntity.PrintParam[s] = this._curEntity.Param[s]; //} System.Data.Common.DbDataReader dr = db.OpenReader(gtSQL); try { while (dr.Read()) { bool bPopulateOnDemand; if (dr.FieldCount >= 3) bPopulateOnDemand = dr.GetValue(2).ToString().Trim() == "Y" ? true : false; else bPopulateOnDemand = true; if (dr.FieldCount >= 4) { TreeViewAddNode(gtLeftTree, rootNode, dr.GetValue(0).ToString(), dr.GetValue(1).ToString(), dr.GetValue(3).ToString().Trim(), true, bPopulateOnDemand, false); } else { TreeViewAddNode(gtLeftTree, rootNode, dr.GetValue(0).ToString(), dr.GetValue(1).ToString(), null, true, bPopulateOnDemand, false); } } dr.Close(); } catch { if (dr != null && !dr.IsClosed) dr.Close(); } } catch { } } private string GetTreeQuerySelSQL(string sCPYTXX) { //base.InitEntityByCondition(); string sMXBH = ""; string sJGBID = PageParam.GetRTrimString("JGBID"); if (sCPYTXX.Contains("JGF|")) { sJGBID = PageParam.GetRTrimString("JGFID"); sMXBH = "JGF"; } else { if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; } sCPYTXX = sCPYTXX.Replace("JGF|", ""); string sSQL = "select rtrim(JGBXHDYML_XLXHID)||' '||rtrim(JGBXHDYML_DYDJID) as Text,rtrim(JGBXHDYML_XLXHID)||'#@#'||rtrim(JGBXHDYML_DYDJID) "; if (sMXBH.Equals("JGF")) sSQL += " ||'#@#JGF' "; sSQL += " as Value,'N' as HasChild from JGBXHDYML "; sSQL += " left join XLXHB on XLXHB_XLXHID=JGBXHDYML_XLXHID " + " left join XLDYDJB on XLDYDJB_DYDJID=JGBXHDYML_DYDJID " + " where 1=1 and JGBXHDYML_JGBID = '" + sJGBID + "' and JGBXHDYML_MXBH = '" + sMXBH + "' and JGBXHDYML_HFLX = '1'"; if (!sCPYTXX.Equals("root1") && !sCPYTXX.Equals("rootJGF")) { if (sCPYTXX.Trim().Equals("")) sSQL += " and isnull(XLXHB_CPYT,' ')=' '"; else if (sCPYTXX.Trim().EndsWith("|")) { sSQL += " and isnull(XLXHB_CPYT,' ')=' '"; string[] sCPYTList = sCPYTXX.Trim().Split('|'); string sDYDJFL = sCPYTList[0].Trim(); if (!sDYDJFL.Equals("")) sSQL += " and XLDYDJB_DYDJFL='" + sDYDJFL + "'"; } else { string[] sCPYTList = sCPYTXX.Trim().Split('|'); string sDYDJFL = sCPYTList[0].Trim(); string sCPYT = sCPYTList[1].Trim(); sSQL += " and XLXHB_CPYT='" + sCPYT + "'"; if (!sDYDJFL.Equals("")) sSQL += " and XLDYDJB_DYDJFL='" + sDYDJFL + "'"; } } sSQL += " order by XLXHB_XLXHBH,XLDYDJB_XH"; return sSQL; } private string GetTreeQuerySelSQLByCPML(string sCPMLXX) { //base.InitEntityByCondition(); string sMXBH = ""; string sJGBID = PageParam.GetRTrimString("JGBID"); if (sCPMLXX.Contains("JGF|")) { sJGBID = PageParam.GetRTrimString("JGFID"); sMXBH = "JGF"; } else { if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; } sCPMLXX = sCPMLXX.Replace("JGF|", ""); string sSQL = "select rtrim(JGBXHDYML_XLXHID)||' '||rtrim(JGBXHDYML_DYDJID) as Text,rtrim(JGBXHDYML_XLXHID)||'#@#'||rtrim(JGBXHDYML_DYDJID) "; if (sMXBH.Equals("JGF")) sSQL += " ||'#@#JGF' "; sSQL += " as Value,'N' as HasChild from "; sSQL += " JGBXHDYML " + " left join XLXHB on XLXHB_XLXHID=JGBXHDYML_XLXHID " + " left join XLDYDJB on XLDYDJB_DYDJID=JGBXHDYML_DYDJID " + " where 1=1 and JGBXHDYML_JGBID = '" + sJGBID + "' and JGBXHDYML_MXBH = '" + sMXBH + "' and JGBXHDYML_HFLX = '2'"; if (!sCPMLXX.Equals("root1") && !sCPMLXX.Equals("rootJGF")) { if (sCPMLXX.Equals("")) sSQL += " and isnull(JGBXHDYML_HFYWBH,' ' ) = ' '"; else if (!string.IsNullOrEmpty(sCPMLXX)) sSQL += " and JGBXHDYML_HFYWBH='" + sCPMLXX + "'"; } sSQL += " order by XLXHB_XLXHBH,XLDYDJB_XH"; return sSQL; } //重构产品用途子节点 private void BuildCPYTChilds(gtTreeViewNode tn1) { string sMXBH = ""; string sJGBID = PageParam.GetRTrimString("JGBID"); if (tn1.Value.Equals("rootJGF")) { sJGBID = PageParam.GetRTrimString("JGFID"); sMXBH = "JGF"; } else { if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select distinct "); //研发自测:谭善勇 2026/07/21 15:46:02 sSQL.Add(" isnull(JGBXHDYML_HFYWBH,' ') as XLXHB_CPYT ,isnull(XLCPYT_CPYTMC,' ') as XLCPYT_CPYTMC,"); if (GetOption("BJU072").Equals("Y")) { sSQL.Add(" isnull(XLDYDJB_DYDJFL,' ') as XLDYDJB_DYDJFL,"); } else { sSQL.Add(" ' ' as XLDYDJB_DYDJFL,"); } sSQL.Add(" isnull(XLCPYT_XSSX,-1) as PX "); sSQL.Add(" from "); sSQL.Add(" JGBXHDYML "); sSQL.Add(" left join XLCPYT on XLCPYT_CPYT=JGBXHDYML_HFYWBH "); if (GetOption("BJU072").Equals("Y")) { sSQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=JGBXHDYML_DYDJID "); } sSQL.Add(" where JGBXHDYML_JGBID = :pJGBID and JGBXHDYML_MXBH = :pMXBH and JGBXHDYML_HFLX = '1' "); sSQL.Add(" order by isnull(XLCPYT_XSSX,-1),isnull(JGBXHDYML_HFYWBH,' ')"); if (GetOption("BJU072").Equals("Y")) { sSQL.Add(" ,isnull(XLDYDJB_DYDJFL,' ') "); } sSQL.ParamByName("pJGBID").Value = sJGBID; sSQL.ParamByName("pMXBH").Value = sMXBH; DataSet ds = dberp.OpenDataSet(sSQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sDYDJFL = ""; if (i < ds.Tables[0].Rows.Count - 1) { if (ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i + 1]["XLXHB_CPYT"].ToString().Trim()) { sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim(); } else { if (i > 0) { if (ds.Tables[0].Rows[i - 1]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim()) { sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim(); } } } } else { if (i > 0) { if (ds.Tables[0].Rows[i - 1]["XLXHB_CPYT"].ToString().Trim() == ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim()) { sDYDJFL = ds.Tables[0].Rows[i]["XLDYDJB_DYDJFL"].ToString().Trim(); } } } gtTreeViewNode node; string sText = ""; string sValue = ""; sValue = sDYDJFL + "|" + ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim(); sText = sDYDJFL + ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim(); if (sDYDJFL.Equals("") && ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals("")) { sValue = ""; sText = "未指定产品用途"; } else if (!sDYDJFL.Equals("") && ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals("")) { sValue = sDYDJFL + "|"; sText = sDYDJFL; } else if (sDYDJFL.Equals("") && !ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim().Equals("")) { sValue = sDYDJFL + "|" + ds.Tables[0].Rows[i]["XLXHB_CPYT"].ToString().Trim(); sText = sDYDJFL + ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim(); } if (sMXBH.Equals("JGF")) sValue = "JGF|" + sValue; node = TreeViewAddNode(LeftQueryTree, tn1, sText, sValue, "", true, true, false); } } //重构产品目录子节点 private void BuildCPMLChilds(gtTreeViewNode tn1) { string sMXBH = ""; string sJGBID = PageParam.GetRTrimString("JGBID"); if (tn1.Value.Equals("rootJGF")) { sJGBID = PageParam.GetRTrimString("JGFID"); sMXBH = "JGF"; } else { if (!XLBJDUtils.IsJGEJGB(sJGBID)) sMXBH = "JGB"; else sMXBH = "JGE"; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select distinct "); sSQL.Add(" isnull(JGBXHDYML_HFYWBH,' ') as CPMLID ,isnull(XLXSCPML_CPMLMC,' ') as CPMLMC ,isnull(XLXSCPML_XSXH,-1) as XLXSCPML_XSXH "); sSQL.Add(" from "); sSQL.Add(" JGBXHDYML "); sSQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = JGBXHDYML_HFYWBH "); sSQL.Add(" where JGBXHDYML_JGBID = :pJGBID and JGBXHDYML_MXBH = :pMXBH and JGBXHDYML_HFLX = '2' "); sSQL.Add(" order by isnull(XLXSCPML_XSXH,-1),isnull(JGBXHDYML_HFYWBH,' ') "); sSQL.ParamByName("pJGBID").Value = sJGBID; sSQL.ParamByName("pMXBH").Value = sMXBH; DataSet ds = dberp.OpenDataSet(sSQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { gtTreeViewNode node; string sText = ""; string sValue = ""; sValue = ds.Tables[0].Rows[i]["CPMLID"].ToString().Trim(); sText = ds.Tables[0].Rows[i]["CPMLMC"].ToString().Trim(); if (sValue.Equals("")) { sValue = ""; sText = "未指定产品目录"; } if (sMXBH.Equals("JGF")) sValue = "JGF|" + sValue; node = TreeViewAddNode(LeftQueryTree, tn1, sText, sValue, "", true, true, false); } } protected void btnRefreshCPYT_Click(object sender, EventArgs e) { gtTreeViewNode tn1 = LeftQueryTree.FindNodeByValue("root1"); tn1.ChildNodes.Clear(); BuildCPYTChilds(tn1); UPQueryTree.Update(); } #endregion } }