using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO; using GThinking.N_CONTROL; using GThinking.N_MISPRO.Data; using GThinking.N_WORKFLOW; using System.Text; using System.Collections.Generic; using GThinking.N_MISPRO.TableCache; using System.Data.OleDb; using System.IO; using System.Web.UI.MobileControls; using GThinking.N_COMPRESS; using System.Xml; using GThinking.N_PUBLIC2; using GThinking.N_MISPROAS.SysData; using GThinking.N_MODEL.Dialog; using System.Drawing; using System.Text.RegularExpressions; using GThinking.N_MISPRO.MISPROAS; using GThinking.N_PUBLIC; namespace GThinking.N_XLXSBJ { public partial class XLBJDInfo : BDOBillBase { XLBJD_BDOBill entity = new XLBJD_BDOBill(); public static int iXSWS = 5; TControlState State; public string tmpXJDYBJTXS = "";//限价低于报价提醒色 public string tmpBJDYBJTXS = "";//报价低于表价提醒色 public string tmpBJQSTXS = "";//表价缺失提醒色 public string tmpZDXJJCLTXS = "";//最低限价价差率提醒色 public string tmpBZTXYS = "";//标准提醒色 public double iZDXJJCLXX = 0;//最低限价价差率下限 public int iBJXSWS = 5;//报价表价比较小数位数 //当前的aspx页面,固定写出的列数 private int sConColumnsCount = 31; //非报价单因子动态增加的列数_sAddColumnsCount private int sAddColumnsCount = 66; //XLXSBJXHML对应的产品目录 Dictionary dicCPML = new Dictionary(); Dictionary dicTJYZ = new Dictionary(); //打印预览标记,为Y表示查询所有报价单明细、而非当前页明细 string sReportTag = "N"; //记录导出、记录汇总标记,为Y表示查询Grid当下所有明细、而非当前页明细 //string sHeaderMenuTag = "N"; public static bool ShowFJXX = false; public static bool bZDXSFJXX = true; //public static bool bReadBBYS = false; public static Dictionary dicReadBBYS = new Dictionary(); #region 模板page类事件 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "线缆销售报价单"; this.CurMaster = Master; this.CurEntity = entity; this.PageWidth = 1000; this.PageHeight = 600; entity.EntityTable.IsAttach = true; entity.EntityTable.IsWf = true; iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; tmpBJDYBJTXS = ""; tmpXJDYBJTXS = ""; tmpBJQSTXS = ""; tmpZDXJJCLTXS = ""; tmpBZTXYS = ""; iZDXJJCLXX = 0; if (!IsPostBack) { if (GetOption("BJU070").Trim() == "Y") { cbxTXY.Visible = false; acbxTXY.Visible = true; } else { cbxTXY.Visible = true; acbxTXY.Visible = false; } //设置隐藏控件IsXJY、IsSJY、IsHJY IsXJY.Value = "N"; IsSJY.Value = "N"; IsHJY.Value = "N"; TYGXX tRYXX = TRYXX.GetRYXXByGH(CurSession.UserId); string sXJYROLEID = string.Empty; string sSJYROLEID = string.Empty; string sHJYROLEID = string.Empty; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XJYROLEID)) sXJYROLEID = pzxx.XLXSBJPZ_XJYROLEID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_SJYROLEID)) sSJYROLEID = pzxx.XLXSBJPZ_SJYROLEID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_HJYROLEID)) sHJYROLEID = pzxx.XLXSBJPZ_HJYROLEID; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sXJYROLEID), tRYXX.RYID))) { IsXJY.Value = "Y"; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sSJYROLEID), tRYXX.RYID))) { IsSJY.Value = "Y"; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sHJYROLEID), tRYXX.RYID))) { IsHJY.Value = "Y"; } } //研发自测:谭善勇 2026/07/23 15:46:02 txtBJU074.Value = GetOption("BJU074").Trim(); LoadTJYZData(); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); if (!IsPostBack) { if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; txtFSYZ.Text = dicBJDYZ["FSYZ"]; txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; } } else if (txtBJDYZ.Text.Trim().Equals("")) { //解决新建取消、再新建时txtBJDYZ为空的问题 Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; txtFSYZ.Text = dicBJDYZ["FSYZ"]; txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(cbxBJFLID.SelectedValue.Trim(), iXSWS, txtBJDYZ.Text.Trim(), txtYZWPIDList.Text.Trim(),txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(),txtReadOnlyYZ.Text.Trim(), txtZDWPIDList.Text.Trim(),txtPFYZID.Text.Trim(),sHidJSLMList); grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").NumberDecimalPlace = iXSWS; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").NumberDecimalPlace = iXSWS; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").NumberDecimalPlace = iXSWS; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace = iXSWS; int iBJU030 = CMISproConvert.StrToInt(GetOption("BJU030")); if (iBJU030 >= 0) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberIsQuantity = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberDecimalPlace = iBJU030; } AddListSetMap(new ListSet("", null, grdXLBJDMX, entity.XLXSBJDMX, null)); entity.fCanSubmit = bjflxx.XLXSBJFL_XTCPBJYZ; entity.sBJU003 = GetOption("BJU003"); entity.XLXSBJDMX.sBJU002 = GetOption("BJU002"); grdXLBJDMX.CanDeleteAll = true; if (!IsPostBack) { if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 { LoadUserandGroup(); LoadXMGroup(); LoadYZGroup(); } } if (!IsPostBack) { if (CurSession.DbId != "") { string sMAXHS = "200"; if (PageParam.ContainsKey("XLXSBJD_BJDID")) { string sBJFLID = GetBJFLID(PageParam.GetRTrimString("XLXSBJD_BJDID")); sMAXHS = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_MYHSSX; } TGtPager.LoadPageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJDInfo.aspx", pgBar); pgBar.MaxPageSize = CMISproConvert.StrToInt(sMAXHS); if (pgBar.PageSize > pgBar.MaxPageSize) pgBar.PageSize = pgBar.MaxPageSize; } } txtLJ.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal; txtTJ.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal; //分页模式下,初始化翻页控件 base.CustomPageSize = pgBar.MaxPageSize; base.InitPage(); //============================================================================================ sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); txtPTBB.Value = N_MISPROAS.AppRuntime.GtipsVerInt.ToString().Trim(); if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = true; if (!IsPostBack) { bool bVisble = false; DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); if (dsFJXXSZ.Tables[0].Rows.Count > 0) { foreach (DataRow trow in dsFJXXSZ.Tables[0].Rows) { if (sHidJSLMList.Trim().Contains(trow["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) continue; string sXSBZ = trow["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); string sSYBJFLID = trow["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) continue; string sSYBJFLIDC = "," + sSYBJFLID + ","; if (!sSYBJFLID.Equals("") && !sSYBJFLIDC.Contains("," + sBJFLID + ",")) continue; bVisble = true; ShowFJXX = true; break; } } Mac.MacLog.TraceFormat("Page_Load:{0}", bVisble ? "Y" : "N"); divFJXXLabel.Visible = bVisble; divFJXX.Visible = bVisble; } try { if (ControlState == TControlState.ctsInsert) { LoadFJXX(true, "A", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else if (ControlState == TControlState.ctsCopy) { LoadFJXX(true, "C", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else if (ControlState == TControlState.ctsEdit) { LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else { LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); } } catch { } SetGridVisible_BJFLID(cbxBJFLID.SelectedValue.Trim()); //分页模式下,显示序号不能交由模板处理了 //grdXLBJDMX.AutoIndexColumn = "XLXSBJDMX_XSSX"; this.WorkFlowId = _CurWorkFlow.GetWFID("XLXSBJ_BJD"); if (!IsPostBack) { //标签 if (CheckModule("102579012")) { lblZZL.Visible = false; linkZZL.Visible = true; LinkZZLMH.Visible = true; } else { lblZZL.Visible = true; linkZZL.Visible = false; LinkZZLMH.Visible = false; } } if (Request.Form["BBYS"] != null) { string sRepXML = Request.Form["BBYS"].ToString(); string sBJFLID = Request.Form["BJFLID"].ToString(); string sBJDID = Request.Form["BJDID"].ToString(); string sBJRQ = Request.Form["BJRQ"].ToString(); string sJGBID = Request.Form["JGBID"].ToString(); string sJGCIDS = Request.Form["JGCIDS"].ToString(); string sXSQYID = Request.Form["XSQYID"].ToString(); string sPJLX = Request.Form["PJLX"].ToString(); string sFKQXNR = Request.Form["FKQXNR"].ToString(); string sSYDWID = Request.Form["SYDWID"].ToString(); string sBJU003 = Request.Form["BJU003"].ToString(); bool bHSBZ = Request.Form["HSBZ"].ToString().Trim().Equals("Y"); string sDefaultXLBZID = Request.Form["sDefaultXLBZID"].ToString(); string sBJLY = Request.Form["BJLY"].ToString(); string sTBJCLID = Request.Form["TBJCLID"].ToString(); string sLBJCLID = Request.Form["LBJCLID"].ToString(); string sTJ = Request.Form["TJ"].ToString(); string sLJ = Request.Form["LJ"].ToString(); string sCPBJMRXSWS = Request.Form["CPBJMRXSWS"].ToString(); txtMRBZID.Value = Request.Form["txtMRBZID"].ToString(); ReadBBYS(sRepXML, sBJFLID, sBJDID, sBJRQ, sJGBID, sJGCIDS, sXSQYID, bHSBZ, sBJLY, sBJU003, sDefaultXLBZID, sPJLX, sFKQXNR, sSYDWID, sTBJCLID, sLBJCLID, sTJ, sLJ, sCPBJMRXSWS); } //分页模式下,创建翻页控件的委托事件 pgBar.PageChanged += new EventHandler(pgBar_PageChanged); pgBar.PageSizeChanged += new EventHandler(pgBar_PageSizeChanged); gtToolButton btnCopyEx = ((gtToolButton)CurMaster.FindControl("btnCopy")); btnCopyEx.Click += new EventHandler(btnCopyEx_Click); HiddenField HiddenJSCQGRPID = ((HiddenField)CurMaster.FindControl("txtJSCQDOCGRPID")); if (HiddenJSCQGRPID != null) txtJSCQDOCGRPID.Value = HiddenJSCQGRPID.Value; btnSend.Visible = DSMAC.IsRegMAC("N_HLXT8") && DSActiveModule.IsActiveModule(102551000) && GetOption("BJU068").Equals("B"); btnQXSend.Visible = DSMAC.IsRegMAC("N_HLXT8") && DSActiveModule.IsActiveModule(102551000) && GetOption("BJU068").Equals("B"); } #endregion #region 模板继承事件 protected override void OnInit(EventArgs e) { base.OnInit(e); string eventTarget = Request["__EVENTTARGET"]; string eventArgument = Request["__EVENTARGUMENT"]; if (string.IsNullOrEmpty(eventTarget)) { grdXLBJDMX.SkipPostDataProcessing = false; return; } grdXLBJDMX.SkipPostDataProcessing = IsNonDetailOperation(eventTarget, eventArgument); } private bool IsNonDetailOperation(string eventTarget, string eventArgument) { string[] standaloneTargets = new string[] { "ctl00$CPHButton$btnWJGL", "ctl00$CPHButton$btnBJSM", "ctl00$CPHButton$btnDZ", "ctl00$CPHButton$btnAIZXQK", "ctl00$CPHButton$btnBJLR", "ctl00$CPHButton$btnCLCYZD", "ctl00$CPHButton$btnYLZDFP", "ctl00$CPHButton$btnZDFX", "ctl00$CPHButton$btnBJFK", "ctl00$CPHButton$btnCXJS", "ctl00$btnAttach" }; if (Array.IndexOf(standaloneTargets, eventTarget) >= 0) { return true; } if (eventTarget == "ctl00$CPHButton$btnMXOper" && eventArgument != "TZBZ") return true; Dictionary paramDependentTargets =new Dictionary(); paramDependentTargets.Add("ctl00$CPHButton$btnCLCB", new string[] { "WGCPBJ", "WBJCPBJ", "GYJDCP", "ctl00$CPHButton$btnCLCB_ArrowDrop" }); paramDependentTargets.Add("ctl00$CPHButton$btnLJ", new string[] { "ctl00$CPHButton$btnLJ", "ctl00$CPHButton$btnLJ_ArrowDrop", "CLHQTZ", "BJDHQLJDC", "JGQSCL" }); paramDependentTargets.Add("ctl00$CPHButton$btnBJ", new string[] { "ctl00$CPHButton$btnBJ_ArrowDrop", "0" }); paramDependentTargets.Add("ctl00$CPHButton$btnBDBJ", new string[] { "ctl00$CPHButton$btnBDBJ_ArrowDrop", "BDBJ", "HBBJ", "CFBJ" }); if (paramDependentTargets.ContainsKey(eventTarget)) { string[] validArgs = paramDependentTargets[eventTarget]; return Array.IndexOf(validArgs, eventArgument) >= 0; } return false; } protected override void SetControlState() { base.SetControlState(); if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { _CurWorkFlow.SetFormRights(this.Page, _CurWorkFlow.GetWFID("XLXSBJ_BJD"), ControlState); } pgBar.Visible = false; //分页模式下,设置翻页控件 pgBar.Enabled = true; if (ControlState == TControlState.ctsBrowse) { pgBar.Visible = true; divBarQY.Visible = true; SetRecordCount(pgBar, txtBJDID.Text, txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); btnSend.Enabled = true; btnQXSend.Enabled = true; } else { pgBar.Visible = false; divBarQY.Visible = false; btnSend.Enabled = false; btnQXSend.Enabled = false; } if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsBrowse) btnAIZXQK.Enabled = false; else btnAIZXQK.Enabled = true; //由于复制保存对明细进行了后台复制,复制主记录功能暂不能支持 //gtToolButton btnCopyEx = ((gtToolButton)CurMaster.FindControl("btnCopy")); //if (btnCopyEx.Nodes[0] != null) //{ // btnCopyEx.Nodes[0].Enabled = false; //} //btnCopyEx.Click += new EventHandler(btnCopyEx_Click); if (IsFilterState()) { grdXLBJDMX.CanInsertAtIndex = false; } else grdXLBJDMX.CanInsertAtIndex = true; cbxKHID.Enabled = false; txtZJE.Enabled = false; txtZZL.Enabled = false; txtLRL.Enabled = false; this.txtBJDID.Enabled = false; this.txtFJS.Enabled = false; this.txtWHR.Enabled = false; this.datWHSJ.Enabled = false; txtLCZT.Enabled = false; txtYSFY.Enabled = false; chkYZB.Enabled = false; datYZBRQ.Enabled = false; datJHJHRQS.Enabled = false; datJHJHRQZ.Enabled = false; if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull) { chkYZB.Enabled = true; datYZBRQ.Enabled = true; datJHJHRQS.Enabled = true; datJHJHRQZ.Enabled = true; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sSQL = ""; string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", _CurWorkFlow.GetWPID(this.WorkFlowId, this.WorkFlowInst)); string sUser = "," + CurSession.UserId.Trim() + ","; if (ControlState == TControlState.ctsBrowse && !sBZSW.Trim().Equals("ZZZZ") && !sBZSW.Trim().Equals("ZZZY")) { //btnDRBJDMX.Enabled = txtAWAITER.Value.Trim().Contains(sUser); if (sBZSW.Equals("0010")) { btnMXOper.Enabled = txtAWAITER.Value.Trim().Contains(sUser); } else btnMXOper.Enabled = false; } else { //btnDRBJDMX.Enabled = false; btnMXOper.Enabled = false; } if (CheckLL()) { if (ControlState == TControlState.ctsBrowse) { if (grdXLBJDMX.RowCount <= 0) { btnBJLR.Enabled = false; } else { btnBJLR.Enabled = true; } } else { btnBJLR.Enabled = false; } } btnAGXJLUHZ.Enabled = btnBJLR.Enabled; if (CheckCLCB()) { if (ControlState == TControlState.ctsBrowse) { if (grdXLBJDMX.RowCount <= 0) { btnCLCB.Enabled = false; } else { btnCLCB.Enabled = true; } } else { btnCLCB.Enabled = false; } } if (ControlState == TControlState.ctsEdit) { cbxBJFLID.Enabled = false; cbxJGBID.Enabled = false; if (XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XLXSBJFL_JGBTJYSS.Contains("2")) cbxXSQYID.Enabled = false; datBJRQ.Enabled = false; if (grdXLBJDMX.RowCount > 0) { chkJZBJHS.Enabled = false; txtTJ.Enabled = false; txtLJ.Enabled = false; cbxFKQXNR.Enabled = false; cbxPJLX.Enabled = false; if (txtTJYSList.Text.Trim().Contains(",B,"))//B|销售单位 { cbxSYDWID.Enabled = false; } } } if (ControlState == TControlState.ctsCopy) chkJZBJHS.Enabled = false; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("SELECT 1 FROM XLXSBJFL WHERE XLXSBJFL_BJFLID = '{0}' AND XLXSBJFL_MXBH = 'JGB'", cbxBJFLID.SelectedValue.Trim()))) { txtTJ.Enabled = false; txtLJ.Enabled = false; } btnLJ.Enabled = false; if (CheckLJ()) { if (ControlState == TControlState.ctsBrowse) { btnLJ.Enabled = true; } } if (DSActiveModule.IsActiveModule(100956005)) { txtXM.Width = 234; //lblKHSZD.Visible = true; cbxKHSZDPRO.Visible = true; cbxKHSZDCITY.Visible = true; //报价运费地区维护到了区县时,区县才显示 SQL.Clear(); SQL.Add(" select 1 from XLXSBJDQYFZB left join XZQH on XZQH_XZQHID = XLXSBJDQYFZB_XZQHID "); SQL.Add(" where isnull(XZQH_COUNTY,' ') <> ' ' "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { cbxKHSZDCOUNTY.Visible = true; txtXM.Width = 174; } else { cbxKHSZDCOUNTY.Visible = false; txtXM.Width = 234; } } else { txtXM.Width = 354; //lblKHSZD.Visible = false; cbxKHSZDPRO.Visible = false; cbxKHSZDCITY.Visible = false; cbxKHSZDCOUNTY.Visible = false; } //100860068|撞单分析 if (CheckModule("100860068")) { btnZDFX.Visible = true; } else { btnZDFX.Visible = false; } //注册了按复制内容导入报价产品模块,且有权限,则显示按复制内容导入报价产品按钮 if (DSActiveModule.IsActiveModule(100860125)) { if (CheckAFZNRDRBJCP()) { btnDRCS.Visible = true; } else { btnDRCS.Visible = false; } } else { btnDRCS.Visible = false; } btnAIZXQK.Visible = false; if (CheckModule("102849002")) { btnAIZXQK.Visible = true; } btnBJCPJX.Visible = false; if (CheckModule("100860140")) { btnBJCPJX.Visible = true; } btnTBSJKSLR.Visible = false; if (CheckModule("100860154")) { btnTBSJKSLR.Visible = true; } linkXM.Visible = false; linkXMMH.Visible = false; lblXM.Visible = true; //是否注册100860122|报价产品辐照工序模块且配置辐照费因子ID if (DSActiveModule.IsActiveModule(100860122)) { string sql = "select 1 from XLXSTZYZ WHERE ISNULL(XLXSTZYZ_QYGYGXXD,'N')='Y' AND XLXSTZYZ_MXBH='BJD' AND EXISTS(SELECT 1 FROM XLXSBJFLYZ "; sql += string.Format(" where XLXSBJFLYZ_BJFLID='{0}' AND XLXSBJFLYZ_YZID=XLXSTZYZ_YZID) ", cbxBJFLID.SelectedValue.Trim()); ; if (CMISproDataBase.ExistsRecord("DBERP", sql)) btnFZGX.Visible = true; else { btnFZGX.Visible = false; } } else { btnFZGX.Visible = false; } if (ControlState == TControlState.ctsBrowse) { btnFZGX.Enabled = true; cbxYSJDID.Enabled = false; cbxGYSID.Enabled = false; //推销员显示变化 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (pzxx.XLXSBJPZ_KHJSLY == "KH") { SQL.Clear(); SQL.Add(" select KH_TXY from KH where KH_MC = :pMC "); SQL.ParamByName("pMC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sKHTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); if (!GetTXYValue().Equals(sKHTXY) && !sKHTXY.Equals("") && !GetTXYValue().Equals("")) { lblTXY.ForeColor = Color.Red; lblTXY.ToolTip = "客户销售员:" + sKHTXY; } } } else if (pzxx.XLXSBJPZ_KHJSLY == "KHXX") { SQL.Clear(); SQL.Add(" select KHXX_FZR from KHXX where KHXX_MC = :pKHXX_MC "); SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sKHTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); if (!GetTXYValue().Equals(sKHTXY) && !sKHTXY.Equals("") && !GetTXYValue().Equals("")) { lblTXY.ForeColor = Color.Red; lblTXY.ToolTip = "客户销售员:" + sKHTXY; } } } // if (!txtXMID.Value.Trim().Equals("") || pzxx.XLXSBJPZ_SQXMBAGL == "Y") { linkXM.Visible = true; linkXMMH.Visible = true; linkXM.Enabled = true; lblXM.Visible = false; } } else { btnFZGX.Enabled = false; cbxYSJDID.Enabled = true; cbxGYSID.Enabled = true; lblTXY.ForeColor = Color.Black; lblTXY.ToolTip = ""; } SetHQJCL(); //以上需要先判定状态 //================================================================================================== //以下需要先判定条件 //关联报价单的权限控制 sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { btnMXOper.Enabled = false; btnLJ.Enabled = false; btnBJ.Enabled = false; btnPLTJNEW.Enabled = false; } else { btnBJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; btnPLTJNEW.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; btnMXOper.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; btnLJ.Enabled = ControlState == TControlState.ctsBrowse; } btnBJCPJX.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; btnTBSJKSLR.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; //按钮权限 lblTJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; lblLJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; lblJGBID.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; linkSYDWID.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; linkFKQXNR.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; lblPJLX.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; lblZJE.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; lblFKSM.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); lblBZ.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); lblZLGZCLS.Enabled = ControlState == TControlState.ctsBrowse; lblBJDID.Enabled = ControlState == TControlState.ctsBrowse; btnZDFX.Enabled = ControlState == TControlState.ctsBrowse; btnBJFK.Enabled = ControlState == TControlState.ctsBrowse; btnBDBJ.Enabled = ControlState == TControlState.ctsBrowse; btnBJSM.Enabled = ControlState == TControlState.ctsBrowse; lblFKQXTJB.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); //材料总重量 linkZZL.Enabled = ControlState == TControlState.ctsBrowse; btnZCJH.Enabled = ControlState == TControlState.ctsBrowse; //材料用量制定 btnCLCYZD.Enabled = false; btnYLZDFP.Enabled = false; XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860014); string sCLYLZJFS = string.Empty; if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_CLYLZJFS)) { sCLYLZJFS = "," + pzxx2.XLXSBJPZ_CLYLZJFS + ","; } if (sCLYLZJFS.Contains(",2,") || sCLYLZJFS.Contains(",3,") || sCLYLZJFS.Contains(",4,")) { if (ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit) { btnCLCYZD.Enabled = true; btnYLZDFP.Enabled = true; } } XLXSBJPZXX pzxx3 = XLBJDUtils.GetXLXSBJPZXX(100860000); string sBMYSLIST = string.Empty; if (!string.IsNullOrEmpty(pzxx3.XLXSBJPZ_BMYSLIST)) { sBMYSLIST = "," + pzxx3.XLXSBJPZ_BMYSLIST + ","; } //控制省市如果需要编码则必填 if (sBMYSLIST.Contains(",XZQHID,")) { if (ControlState == TControlState.ctsEdit) { cbxKHSZDCITY.Enabled = false; cbxKHSZDPRO.Enabled = false; } } btnKHWL.Visible = false; if (pzxx3.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 btnKHWL.Visible = true; btnCXJS.Visible = false; if (XLBJDUtils.ExistGYKH()) btnCXJS.Visible = true; btnCXJS.Enabled = false; if (ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit) { btnCXJS.Enabled =true; } btnDZ.Visible = false; if (sBMYSLIST.Contains(",DZ,") && sBZSW.Equals("0010")) { btnDZ.Visible = true; } linkKH.Visible = false; linkKHMH.Visible = false; linkKH.Enabled = false; lblKH.Visible = true; //100956000 N_SQKH8 售前客户 if (CheckModule("100956000")) { if (pzxx3.XLXSBJPZ_KHJSLY == "KHXX") { linkKH.Visible = true; linkKHMH.Visible = true; linkKH.Enabled = true; lblKH.Visible = false; } } linkKHDH.Visible = false; linkKHDHMH.Visible = false; linkKHDH.Enabled = false; lblKHDH.Visible = true; if (!GetKHDHURL().Equals("")) { linkKHDH.Visible = true; linkKHDHMH.Visible = true; linkKHDH.Enabled = true; lblKHDH.Visible = false; txtKHDH.Enabled = false; } if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from BJD where BJD_BJDID='{0}'", txtBJDID.Text.Trim()))) txtKH.Enabled = false; else txtKH.Enabled = true; } if(!XSCBXKHID()) { txtKHID.Visible = true; cbxKHID.Visible = false; txtKH.Width = Unit.Pixel(245); txtKH.Enabled = false; } else { txtKHID.Visible = false; txtKH.Width = Unit.Pixel(354); txtKH.Enabled = true; } if (ControlState == TControlState.ctsEdit) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDMX where XLXSBJDMX_ZB in('P','Y') and XLXSBJDMX_ZBSL<>0 and XLXSBJDMX_BJDID='{0}'", txtBJDID.Text.Trim()))) { grdXLBJDMX.CanDelete = false; grdXLBJDMX.CanEdit = false; grdXLBJDMX.CanDeleteAll = false; grdXLBJDMX.CanInsert = false; grdXLBJDMX.CanInsertAtIndex = false; } } //注册了N_XLBJAISBYQ8|线缆销售报价AI识别引擎下的引擎模块就可以看到AI机器人窗口 if (OpRightUtils.GetUserRight(CurSession.UserId, 102849000).Open == true) { divAiButton.Visible = true; } else { divAiButton.Visible = false; } #region 标签链接的字色 if (!lblTJ.Enabled) lblTJ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblTJ.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblLJ.Enabled) lblLJ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblLJ.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblJGBID.Enabled) lblJGBID.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblJGBID.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblZJE.Enabled) lblZJE.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblZJE.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkZZL.Enabled) linkZZL.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkZZL.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkKH.Enabled) linkKH.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkKH.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkXM.Enabled) linkXM.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkXM.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkKHDH.Enabled) linkKHDH.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkKHDH.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblFKSM.Enabled) lblFKSM.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblFKSM.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblBZ.Enabled) lblBZ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblBZ.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkSYDWID.Enabled) linkSYDWID.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkSYDWID.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!linkFKQXNR.Enabled) linkFKQXNR.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else linkFKQXNR.ForeColor = ColorTranslator.FromHtml("#0000ff"); if (!lblPJLX.Enabled) lblPJLX.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); else lblPJLX.ForeColor = ColorTranslator.FromHtml("#0000ff"); #endregion if (cbxKHID.Visible) { lblSYDWID.Text = "客户:"; linkSYDWID.Text = "客户"; linkSYDWID.ToolTip = "客户调整"; lblKH.Text = "售前客户:"; linkKH.Text = "售前客户"; } else { lblSYDWID.Text = "销售单位:"; linkSYDWID.Text = "销售单位"; linkSYDWID.ToolTip = "销售单位调整"; lblKH.Text = "客户:"; linkKH.Text = "客户"; } } protected override void LoadRecord() { base.LoadRecord(); txtLCZT.Text = _CurWorkFlow.GetWPName(txtWFID.Value.Trim(), txtWPID.Value.Trim()); if (chkJZBJHS.Checked) txtJZBJHS.Text = "Y"; else txtJZBJHS.Text = "N"; txtOLDTJ.Value = txtTJ.Value.ToString(); txtOLDLJ.Value = txtLJ.Value.ToString(); txtBGQKHID.Value = txtKHID.Text.ToString(); txtBGQKH.Value = txtKH.Text.ToString(); cbxFKQXNR.SelectedValue = txtFKQXNR.Text.Trim(); txtOLDBJDID.Value = ""; txtOLDBJDID2.Value = txtBJDID.Text.Trim(); txtOldJGBID.Value = cbxJGBID.SelectedValue.Trim(); txtOLDXM.Value = txtXM.Text.Trim(); //处理所在地 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XZQH_XZQHID,XZQH_FID,XZQH_PROVINCE,XZQH_CITY,XZQH_COUNTY from XZQH where XZQH_XZQHID = :pXZQHID "); SQL.ParamByName("pXZQHID").Value = txtXZQHID.Value.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim().Equals("86")) { cbxKHSZDPRO.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); cbxKHSZDCITY.SelectedValue = ""; cbxKHSZDCOUNTY.SelectedValue = ""; } else { if (ds.Tables[0].Rows[0]["XZQH_COUNTY"].ToString().Trim().Equals("")) { cbxKHSZDPRO.SelectedValue = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); cbxKHSZDCITY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); cbxKHSZDCOUNTY.SelectedValue = ""; } else { cbxKHSZDCITY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); cbxKHSZDCOUNTY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); SQL.Clear(); SQL.Add("select XZQH_XZQHID,XZQH_FID,XZQH_PROVINCE,XZQH_CITY,XZQH_COUNTY from XZQH where XZQH_XZQHID = :pXZQHID "); SQL.ParamByName("pXZQHID").Value = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); DataSet dsCITY = dberp.OpenDataSet(SQL); if (dsCITY.Tables[0].Rows.Count > 0) { cbxKHSZDPRO.SelectedValue = dsCITY.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); } } } } // string sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { entity.fCanE = false; } else { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from BJD where BJD_BJDID = '{0}'", txtBJDID.Text.Trim()))) entity.fCanE = false; else entity.fCanE = true; } if (!IsPostBack) { string sZDQRWPID = XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDQRWPID; if (!sZDQRWPID.Equals("")) { if (sZDQRWPID.Contains(txtWPID.Value.Trim())) { if (!txtZDZDLX.Value.Trim().Equals("")) { string encodedValue = Server.HtmlEncode(txtZDZDLX.Value.Trim()); string sScript = string.Format("window.setTimeout(function(){{ alert('自动撞单提醒:' + '{0}' + ''); }}, 100);", encodedValue); ClientScript.RegisterStartupScript(this.GetType(), "Script_SHowMesage", sScript, true); } } } } if (IsPostBack) { string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList); setFJXXControlState(divFJXX, false, txtBJDID.Text, true, ""); } txtKHID.Text = txtHidKHID.Value.Trim(); cbxKHID.SelectedValue = txtHidKHID.Value.Trim(); InitLable_TLJ(); if (!IsPostBack) { string sBZSWID=TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD",txtWPID.Value.Trim()); if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y" && (sBZSWID == "0030" || sBZSWID=="ZZZZ")) { XLBJDUtils.InsertFKMX(CurSession, txtBJDID.Text.Trim()); } } lblJGBIDMH.Visible = lblJGBID.Visible; } protected override void OnNewRecorder() { base.OnNewRecorder(); this.txtWPID.Value = ""; txtLCZT.Text = ""; txtOLDBJDID2.Value = ""; this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); this.datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); this.datBJRQ.Text = CMISproConvert.ConvertDate(System.DateTime.Now.ToString()); chkJZBJHS.Checked = true; txtJZBJHS.Text = "Y"; cbxFKQXNR.SelectedValue = ""; txtZT.Value = ""; txtYBJDIDS.Value = ""; txtZDZDLX.Value = ""; txtKHID.Text = ""; cbxKHID.Text = ""; txtOLDTJ.Value = ""; txtOLDLJ.Value = ""; txtBGQKHID.Value = ""; txtBGQKH.Value = ""; txtOLDXM.Value = ""; txtXMID.Value = ""; txtFZBZ.Value = "N"; txtBJSQDH.Value = ""; if (PageParam.ContainsKey("YXXM_XMID")) { txtXMID.Value = PageParam.GetRTrimString("YXXM_XMID"); txtKH.Text = PageParam.GetRTrimString("KHMC"); txtXM.Text = PageParam.GetRTrimString("MC"); cbxKHSZDPRO.SelectedValue = PageParam.GetRTrimString("SQXM_KHSZDPRO"); cbxKHSZDCITY.SelectedValue = PageParam.GetRTrimString("SQXM_KHSZDCITY"); SetTXYValue(PageParam.GetRTrimString("SQXM_FZRMC")); cbxTXY_SelectedIndexChanged(null, null); } else { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add(" select XSY_TXY from XSY where 1=1 and ISNULL(XSY_TYBZ,'N') <> 'Y' and XSY_GH ='" + CurSession.UserId + "'"); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count == 1) { SetTXYValue(ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim()); cbxTXY_SelectedIndexChanged(null, null); } } ClearFilterCtrl(); } protected override void OnCopyRecorder() { base.OnCopyRecorder(); this.txtWPID.Value = ""; txtZDZDLX.Value = ""; txtLCZT.Text = ""; txtZJE.Value = 0; txtZZL.Value = 0; txtLRL.Value = 0; txtYSFY.Value = 0; this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) datBJRQ.Text = DateTime.Now.Date.ToString().Trim(); datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); txtOLDTJ.Value = ""; txtOLDLJ.Value = ""; txtOLDXM.Value = ""; txtXMID.Value = ""; //点击+号进行多次报价 txtSQRQ.Value = ""; txtSQRGH.Value = ""; txtSQRID.Value = ""; txtSQRQ.Value = ""; txtZT.Value = ""; txtYBJDIDS.Value = ""; txtFZBZ.Value = "Y"; txtBJSQDH.Value = ""; if (!txtOLDBJDID.Value.Trim().Equals("")) { string sYBJDID = XLBJDUtils.GetYBJDID(txtOLDBJDID.Value.Trim()); txtFZBZ.Value = "A"; txtZT.Value = "Z"; txtYBJDIDS.Value = sYBJDID; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select max(XLXSBJD_BJDID) from XLXSBJD where XLXSBJD_BJDID like :pBJDID"); sql.ParamByName("pBJDID").Value = sYBJDID + "-%"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string maxBJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); if (maxBJDID.Equals("")) txtBJDID.Text = sYBJDID + "-01"; else txtBJDID.Text = sYBJDID + "-" + Convert.ToString(CMISproConvert.StrToFloat(maxBJDID.Substring(maxBJDID.LastIndexOf('-') + 1)) + 1).PadLeft(2, '0'); } else { txtBJDID.Text = sYBJDID + "-01"; } } double OldDOCGRPID = GetDOCGRPID(txtOLDBJDID2.Value); if (OldDOCGRPID > 0) { HiddenField HiddenGRPID = ((HiddenField)CurMaster.FindControl("txtDOCGRPID")); if (HiddenGRPID != null) { HiddenGRPID.Value = Convert.ToString(CopyAttach(OldDOCGRPID, 1)[0]); } } //规避ajaxGridView控件缺陷:复制报价单,重新选择价格表,报价单明细的表价没有及时更新,需要再重复选择一次价格表,报价单明细的表价才会更新。 //DoAjaxGridView(); if (PageParam.GetRTrimString("CopyFromList").Equals("Y")) { btnCopyEx_Click(null, null); } else CanCopyMX.Value = "N";//复制、复制主记录默认都不复制明细 string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); LoadFJXX(true, "C", txtOLDBJDID2.Value, divFJXX, sHidJSLMList); setFJXXControlState(divFJXX, true, txtOLDBJDID2.Value, true, ""); ClearFilterCtrl(); if (!pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) { if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) { Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); } } string sBJU051 = GetOption("BJU051"); if (sBJU051 == "Y") { cbxBJFLID.SelectedValue = GetOption("BJU019"); } } protected override bool Master_BeforeEditAction(object sender, EventArgs e) { string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList); setFJXXControlState(divFJXX, true, txtBJDID.Text, true, ""); if (!base.Master_BeforeEditAction(sender, e)) return false; //规避ajaxGridView控件缺陷:点编辑重选付款期限,报价单明细的表价或付款期限因子没有及时更新,需要再重复选择一次,才会更新。 //DoAjaxGridView(); return true; } protected override void OnNullRecorder() { base.OnNullRecorder(); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList); setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); } protected override void ReportRecordSetAdd() { base.ReportRecordSetAdd(); sReportTag = "Y"; } protected override bool Grid_BeforeHeaderMenuClick(object sender, AjaxGridViewMenuClickEventArgs e) { if (!base.Grid_BeforeHeaderMenuClick(sender, e)) return false; //记录导出 不限制页数 entity.XLXSBJDMX.curPageIndex = 0; entity.XLXSBJDMX.curPageSize = 0; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql = entity.XLXSBJDMX.SetQuerySql(); DataSet dsBJDMX = dberp.OpenDataSet(sql); if (dsBJDMX.Tables.Count > 0) { if (dsBJDMX.Tables[0].Rows.Count > ExcelUtils.ExportRecords) { ShowMessage("记录数大于" + ExcelUtils.ExportRecords + "条,不允许导出!"); return false; } HiddenField txtMasterBDOTabLMSZ = (HiddenField)CurMaster.FindControl("txtCustomize"); //HiddenField txtDefVisible = (HiddenField)CurMaster.FindControl("txtDefVisible"); string sGridID = ""; Dictionary> ColumnDef = JavaScriptConvert.DeserializeObject>>(txtMasterBDOTabLMSZ.Value); foreach (string key in ColumnDef.Keys) { if (!key.Trim().Equals("")) { sGridID = key; break; } } List> ColumnList = JavaScriptConvert.DeserializeObject>>(ColumnDef[sGridID]["V"]); string columnOutField = ""; string columnOutCaption = ""; string columnOutWidth = ""; for (int i = 0; i < ColumnList.Count; i++) { if (ColumnList[i]["V"].Equals("Y"))//栏目可见 { if (columnOutField.Equals("")) columnOutField = ColumnList[i]["F"].Trim(); else columnOutField += "#@#" + ColumnList[i]["F"].Trim(); if (columnOutCaption.Equals("")) columnOutCaption = ColumnList[i]["C"].Trim(); else columnOutCaption += "#@#" + ColumnList[i]["C"].Trim(); if (columnOutWidth.Equals("")) columnOutWidth = ColumnList[i]["W"].Trim(); else columnOutWidth += "#@#" + ColumnList[i]["W"].Trim(); } } DataView dv = new DataView(dsBJDMX.Tables[0], "", "XLXSBJDMX_XSSX,XLXSBJDMX_XH", DataViewRowState.CurrentRows); string[] outColumnFields = Regex.Split(columnOutField, "#@#", RegexOptions.IgnoreCase); string[] outColumnCaptions = Regex.Split(columnOutCaption, "#@#", RegexOptions.IgnoreCase); string[] outColumnWidths = Regex.Split(columnOutWidth, "#@#", RegexOptions.IgnoreCase); DataTable dt = dv.ToTable("Sheet1", false, outColumnFields); DataSet dsOut = new DataSet(); dsOut.Tables.Add(dt); DataRow HJrow = dt.NewRow(); //屏蔽标准ID、颜色ID int XLBZIDColIndex = -1; int XLYSIDColIndex = -1; bool bflag = false; bool bBJSL = false; bool bBJJE = false; for (int i = 0; i < outColumnFields.Length; i++) { if (outColumnFields[i].Equals("XLXSBJDMX_XLBZID")) { XLBZIDColIndex = i; bflag = true; } else if (outColumnFields[i].Equals("XLXSBJDMX_XLYSID")) { XLYSIDColIndex = i; bflag = true; } if (outColumnFields[i].Equals("XLXSBJDMX_BJSL")) bBJSL = true; if (outColumnFields[i].Equals("XLXSBJDMX_BJJE")) bBJJE = true; } double dHJSL = 0; double dHJJE = 0; if (bflag) { for (int i = 0; i < dsOut.Tables[0].Rows.Count; i++) { if (bBJSL) { double dTSL = CMISproConvert.StrToFloat(dsOut.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); dHJSL += dTSL; } if (bBJJE) { double dTJE = CMISproConvert.StrToFloat(dsOut.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim()); dHJJE += dTJE; } if (XLBZIDColIndex > -1) { string tmpXLBZID = dsOut.Tables[0].Rows[i][XLBZIDColIndex].ToString().Trim(); if (tmpXLBZID.Contains("|")) { if (tmpXLBZID.Substring(tmpXLBZID.IndexOf("|")) != "|") dsOut.Tables[0].Rows[i][XLBZIDColIndex] = tmpXLBZID.Substring(tmpXLBZID.IndexOf("|") + 1); } } if (XLYSIDColIndex > -1) { string tmpXLYSID = dsOut.Tables[0].Rows[i][XLYSIDColIndex].ToString().Trim(); if (tmpXLYSID.Contains("|")) { if (tmpXLYSID.Substring(tmpXLYSID.IndexOf("|")) != "|") dsOut.Tables[0].Rows[i][XLYSIDColIndex] = tmpXLYSID.Substring(tmpXLYSID.IndexOf("|") + 1); } } } } if (bBJSL) { HJrow["XLXSBJDMX_BJSL"] = dHJSL.ToString().Trim(); } if (bBJJE) { HJrow["XLXSBJDMX_BJJE"] = dHJJE.ToString().Trim(); } if ((bBJSL || bBJJE) && dsBJDMX.Tables[0].Rows.Count < ExcelUtils.ExportRecords) { dsOut.Tables[0].Rows.Add(HJrow); } NpoiSheetData sd = new NpoiSheetData(); sd.ColumnStyle = new System.Collections.Generic.Dictionary(); sd.ColumnType = new System.Collections.Generic.Dictionary(); for (int i = 0; i < dsOut.Tables[0].Columns.Count; i++) { dsOut.Tables[0].Columns[i].Caption = outColumnCaptions[i]; string sColRef = TExcelData.ColIndexToReference(i);//A列、B列、C列、… string sColumnName = dsOut.Tables[0].Columns[i].ColumnName; gtAjaxGridViewColumn gvCol = grdXLBJDMX.FindColumnByFieldName(sColumnName); NpoiColumnStyle ct = new NpoiColumnStyle(); //if (sColumnName.Equals("XLXSBJDMX_XLGGID")) //{ // ct.DataFormat = "@";//规格列显示为文本 // ct.ColWidth = gvCol.Width.Value; // sd.ColumnStyle.Add(sColRef, ct); //} if (gvCol.EditType == TEditType.etNumber) { sd.ColumnType.Add(sColRef, NpoiColumnType.Double); if (gvCol.NumberDecimalPlace == 0) { ct.DataFormat = "#,##0;-#,##0;#"; } else { string sDecimalZero = "0"; sDecimalZero = sDecimalZero.PadLeft(gvCol.NumberDecimalPlace, '0'); ct.DataFormat = string.Format("#,##0.{0};-#,##0.{0};#", sDecimalZero);//比如"#,##0.00;-#,##0.00;#"代表两位小数 } ct.ColWidth = CMISproConvert.StrToFloat(outColumnWidths[i], gvCol.Width.Value); sd.ColumnStyle.Add(sColRef, ct); } else { ct.ColWidth = CMISproConvert.StrToFloat(outColumnWidths[i], gvCol.Width.Value); sd.ColumnStyle.Add(sColRef, ct); } } string sFileName = "线缆销售报价单 " + txtBJDID.Text.Trim().Replace("/", "-").Replace("\\", "-").Replace(":", "-").Replace("?", "-").Replace("*", "-").Replace("\"", "-").Replace("|", "-"); string Ti = CurSession.UserId.Trim() + Guid.NewGuid().ToString(); string m_tmpFilePath = FileService.CombineTempPath(Ti + sFileName + ".xls"); string smessage = ""; TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsOut, true, null, sd, ref smessage); if (smessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("JLDC_EX", jsript); } else { ShowMessage(smessage); } } return false; } protected override void Grid_OnHeaderMenuClick(object sender, AjaxGridViewMenuClickEventArgs e) { base.Grid_OnHeaderMenuClick(sender, e); //sHeaderMenuTag = "Y"; } protected override void InitQueryString() { if (!IsPostBack) { if (!string.IsNullOrEmpty(PageParam.GetRTrimString("WFID")) && !string.IsNullOrEmpty(PageParam.GetRTrimString("WFINST"))) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJD_BJDID from XLXSBJD where XLXSBJD_WFID=:XLXSBJD_WFID and XLXSBJD_WFINST=:XLXSBJD_WFINST"); sql.ParamByName("XLXSBJD_WFID").Value = PageParam.GetRTrimString("WFID"); sql.ParamByName("XLXSBJD_WFINST").Value = PageParam.GetRTrimString("WFINST"); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { entity.BJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); } } else { if (string.IsNullOrEmpty(PageParam.GetRTrimString("XLXSBJD_BJDID"))) { entity.BJDID = ""; } else { entity.BJDID = PageParam.GetRTrimString("XLXSBJD_BJDID"); } } } else { entity.BJDID = this.txtBJDID.Text.Trim(); } //分页模式下,传入页数和每页显示数,用于控制明细查询结果 if (sReportTag.Equals("N")) { //if (sHeaderMenuTag.Equals("N")) //{ // entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; // entity.XLXSBJDMX.curPageSize = pgBar.PageSize; //} entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); } sReportTag = "N";//重置标记 //sHeaderMenuTag = "N"; base.InitQueryString(); } protected override bool Master_BeforeSaveAction(object sender, EventArgs e) { //项目所在地---如果只维护了省、没有选择市,则XLXSBJD_XZQHID应记录下省的区划代码 if (!cbxKHSZDCOUNTY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCOUNTY.SelectedValue.Trim(); } else if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCITY.SelectedValue.Trim(); } else if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDPRO.SelectedValue.Trim(); } else { txtXZQHID.Value = ""; } if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { if (txtBJDID.Text.Trim().Equals("")) { string sError=string.Empty; string sBJDID = string.Empty; XLBJDUtils.GetBJDID(txtXZQHID.Value.Trim(), cbxBJFLID.SelectedValue.Trim(), cbxSYDWID.SelectedValue.Trim(),100860000,txtTJ.Value,ref sBJDID,ref sError); if (!string.IsNullOrEmpty(sError)) { ShowMessage(sError); return false; } txtBJDID.Text = sBJDID; } txtSQR.Value = CurSession.UserName; txtSQRGH.Value = CurSession.UserId; txtSQRID.Value = CurSession.RYID; txtSQRQ.Value = DateTime.Now.ToString().Trim(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", cbxBJFLID.SelectedValue.Trim()))) { txtCLHQJGBID.Value = "ZZZZZZZZ"; } else { txtCLHQJGBID.Value = cbxJGBID.SelectedValue.Trim(); } } this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); entity.BJDID = this.txtBJDID.Text; if (cbxFKQXNR.Visible == false) { cbxFKQXNR.SelectedValue = ""; } else { txtFKQXNR.Text = cbxFKQXNR.SelectedValue; } if (cbxPJLX.Visible == false) { cbxPJLX.SelectedValue = ""; } if (!txtTJ.Visible) { txtTJ.Value = 0; } if (!txtLJ.Visible) { txtLJ.Value = 0; } //int maxXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID = '" + txtBJDID.Text + "'") + 1; //分页模式下,显示序号需手动赋值 int maxXSSX = pgBar.PageSize * (pgBar.CurrentPageIndex - 1) + 1; grdXLBJDMX.BeginUpdate(); string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(','); foreach (GridViewRow row in grdXLBJDMX.NewRows) { //复制保存时,所有记录的XLXSBJDMX_XH都重新编码,否则会出现新增的明细与复制过来的明细序号重复的问题 //if (ControlState == TControlState.ctsCopy) //{ // if (!row.Attributes["EditAction"].Equals("D")) // { // grdXLBJDMX.EditRow(row, "XLXSBJDMX_XH", Convert.ToString(maxXH++)); // } //} //else//其他情况下,只给新增的明细XLXSBJDMX_XH复制 //{ // if (row.Attributes["EditAction"].Equals("A")) // { // grdXLBJDMX.EditRow(row, "XLXSBJDMX_XH", Convert.ToString(maxXH++)); // } //} if (!row.Attributes["EditAction"].Equals("D")) { //保存时,清空报价分类没使用的因子的值 for (int i = 0; i < grdXLBJDMX.Columns.Count; i++) { if (grdXLBJDMX.Columns[i].DataField.StartsWith("TZYZ_")) { for (int j = 0; j < sBJDYZ.Length; j++) { if (grdXLBJDMX.Columns[i].DataField.Equals("TZYZ_" + sBJDYZ[j].Split('|')[0]) && sBJDYZ[j].EndsWith("()")) grdXLBJDMX.EditRow(row, grdXLBJDMX.Columns[i].DataField, "0"); } } } } //分页模式下,显示序号需手动赋值 if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 { if (!row.Attributes["EditAction"].Equals("D") && maxXSSX > 0) { grdXLBJDMX.EditRow(row, "XLXSBJDMX_XSSX", Convert.ToString(maxXSSX++)); } } } if(txtKHID.Visible) { txtHidKHID.Value = txtKHID.Text.Trim(); } else { txtHidKHID.Value = cbxKHID.SelectedValue.Trim(); } grdXLBJDMX.EndUpdate(); State = ControlState; if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ')<>' ' ")) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS.Trim(); foreach (GridViewRow row in grdXLBJDMX.NewRows) { string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).Trim(); string sXSSX = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", row).Trim(); string sorYZZ01 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ01", row).Trim(); string sorYZZ02 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ02", row).Trim(); string sorYZZ03 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ03", row).Trim(); string sorYZZ04 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ04", row).Trim(); string sorYZZ05 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ05", row).Trim(); string sorYZZ06 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ06", row).Trim(); string sorYZZ07 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ07", row).Trim(); string sorYZZ08 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ08", row).Trim(); string sorYZZ09 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ09", row).Trim(); string sorYZZ10 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ10", row).Trim(); string sorYZZ11 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ11", row).Trim(); string sorYZZ12 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ12", row).Trim(); string sorYZZ13 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ13", row).Trim(); string sorYZZ14 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ14", row).Trim(); string sorYZZ15 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ15", row).Trim(); string sorYZZ16 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ16", row).Trim(); string sorYZZ17 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ17", row).Trim(); string sorYZZ18 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ18", row).Trim(); string sorYZZ19 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ19", row).Trim(); string sorYZZ20 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ20", row).Trim(); string sorTZZDXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row).Trim(); double dOLD_CPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJ", row), 0); double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0); double dBJJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJJE", row), 0); string sBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJTJCZ", row).Trim(); double dTZJG = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZCPBJ", row), 0); if (Math.Abs(NumberUtils.RoundX(dOLD_CPBJ * dBJSL, 2) - NumberUtils.RoundX(dBJJE, 2)) > 0.01) { if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ') like '%报价数量%' ")) { InsBJCSYCRZ(txtBJDID.Text.Trim(), CMISproConvert.StrToFloat(sXH), "报价金额和报价*报价数量计算结果不一致"); ShowMessage("显示顺序【" + sXSSX + "】的明细报价金额和报价*报价数量计算结果不一致,请重新检查!"); return false; } } if (sBJLY == "SSBJ") continue; Dictionary dicChangedField = new Dictionary(); double dCPBJ = 0.0; string sXSJEYZ = txtXSJEYZ.Text.Trim(); double dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0); 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 { if (dJGBBJ != 0) { Dictionary dicTJYZIDValue = new Dictionary(); Dictionary dicTYZZYZIDValue = new Dictionary(); //将因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //将因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { //此处无需考虑因子最小值限制 dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); dCPBJ = dJGBBJ; double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = txtBTYZ.Text.Trim(); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + stBTYZ, row).Trim(), 0); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) < iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), 2); if (dCPBJ != 0 && Math.Abs(XLBJDUtils.RoundSZ(dOLD_CPBJ,2) - dCPBJ) > 0.01) { if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ') like '%调价因子%' ")) { InsBJCSYCRZ(txtBJDID.Text.Trim(), CMISproConvert.StrToFloat(sXH), "报价和表价*上点系数计算结果不一致"); ShowMessage("显示顺序【" + sXSSX + "】的明细报价和表价*上点系数计算结果不一致,请重新检查!"); return false; } } } } return base.Master_BeforeSaveAction(sender, e); } protected override bool Master_AfterSaveAction(object sender, EventArgs e) { if (State != TControlState.ctsEdit) { txtWFID.Value = _CurWorkFlow.WFID; txtWFINST.Value = _CurWorkFlow.WFInst.ToString(); txtWPID.Value = _CurWorkFlow.WPID; } txtLCZT.Text = _CurWorkFlow.GetWPName(txtWFID.Value.Trim(), txtWPID.Value.Trim()); //分页模式下,处理显示序号 int iCountMX = 0; if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 { iCountMX = SetXssxAfterSave(txtBJDID.Text.Trim()); } string sLogicValid = txtLogicValid.Value.Trim(); txtLogicValid.Value = ""; string sOldBJFLID = ""; string sOldJGBID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_SYDWID,XLXSBJD_FKQXNR,XLXSBJD_PJLX,");//与调价因子相关 SQL.Add(" XLXSBJD_BJRQ,XLXSBJD_JGBID,XLXSBJD_TJ,XLXSBJD_LJ,");//与价格相关 SQL.Add(" XLXSBJD_BJSM,XLXSBJD_SQRGH "); SQL.Add(" from XLXSBJD"); SQL.Add(" where XLXSBJD_BJDID=:pOLDBJDID"); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; DataSet dsOLDBJD = dberp.OpenDataSet(SQL); if (dsOLDBJD.Tables[0].Rows.Count > 0) { sOldBJFLID = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); sOldJGBID = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); } string sErrMsg = "";//注:sErrMsg不为空就会抛出异常 BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); try { dberp.BeginTrans(); //完全复制报价单 bool bWQFZ = false; if (!sOldBJFLID.Equals("") && !sOldBJFLID.Equals("") && cbxBJFLID.SelectedValue.Trim().Equals(sOldBJFLID) && cbxJGBID.SelectedValue.Trim().Equals(sOldJGBID) && ctrlState.Value.Equals("C") && pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) { bWQFZ = true; } #region 表价实时计算价格表、选择记录报价单行情的JGB价格表插入报价单材料行情、物料行情 if (ctrlState.Value.Equals("I") || ctrlState.Value.Equals("C")) { if (ctrlState.Value.Equals("C") && bWQFZ) { #region 复制报价单材料行情、物料行情 SQL.Clear(); SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, "); SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); SQL.Add(" select :pBJDID, XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1,"); SQL.Add(" :pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDCLHQ"); SQL.Add(" where XLXSBJDCLHQ_BJDID= :pOldBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOldBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("insert into XLXSBJDWLHQ(XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF,"); SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); SQL.Add(" XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ)"); SQL.Add(" select :pBJDID, XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, "); SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); SQL.Add(" :pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDWLHQ"); SQL.Add(" where XLXSBJDWLHQ_BJDID= :pOldBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOldBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion } else { if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value, txtLJ.Value, CurSession.UserName, CurSession.UserId, cbxJGBID.SelectedValue.Trim()); } else { //JGB价格表判断是否勾选记录报价单行情 if (bjflxx.JLBJDHQChecked()) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), CurSession.UserName, CurSession.UserId, cbxJGBID.SelectedValue.Trim()); XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value, txtLJ.Value, chkJZBJHS.Checked, CurSession.UserId, CurSession.UserName); } } } } else if (ctrlState.Value.Equals("E") && (!txtOLDTJ.Value.Equals(txtTJ.Value.ToString()) || !txtOLDLJ.Value.Equals(txtLJ.Value.ToString()))) { XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value, txtLJ.Value, chkJZBJHS.Checked, CurSession.UserId, CurSession.UserName); } #endregion //复制报价单 if (ctrlState.Value.Equals("C")) { if (dsOLDBJD.Tables[0].Rows.Count > 0) { //同步复制报价说明 SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_BJSM=:pBJSM"); SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); SQL.ParamByName("pBJSM").Value = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); //保存时,后台复制明细,复制主记录时不走该分支 if (CanCopyMX.Value.Equals("Y")) { #region 复制XLXSBJDMX if ((!bjflxx.XLXSBJFL_ZDXJQZBJDFL.Equals("")) && bjflxx.XLXSBJFL_ZDXJQZBJDFL.Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim()) && !bWQFZ) { SQL.Clear(); SQL.Add(" insert into XLXSBJDMX( "); SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_CJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,"); SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH ");//XLXSBJDMX_WLID不能复制! SQL.Add(" ) "); SQL.Add(" select"); SQL.Add(" :pBJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_CJ, XLXSBJDMX_CPBJ,0,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,:pWHRID, :pWHR, :pWHSJ,"); SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); SQL.Add(" XLXSBJDMX_CPBJ as ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_BJDID,XLXSBJDMX_XH "); SQL.Add(" from XLXSBJDMX"); SQL.Add(" where XLXSBJDMX_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } else { SQL.Clear(); SQL.Add(" insert into XLXSBJDMX( "); SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_CJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,"); SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH");//XLXSBJDMX_WLID不能复制! SQL.Add(" ) "); SQL.Add(" select"); SQL.Add(" :pBJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_CJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,:pWHRID, :pWHR, :pWHSJ,"); SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH"); SQL.Add(" from XLXSBJDMX"); SQL.Add(" where XLXSBJDMX_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } #endregion //复制时清空手输表价标识 if (pzxx.XLXSBJPZ_TJGBFZBLBJ.Contains("3")) { SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJLY=' ' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJLY='SSJGBBJ' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); } else if (pzxx.XLXSBJPZ_TJGBFZBLBJ.Contains("4") && (sOldJGBID != cbxJGBID.SelectedValue.Trim())) { SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJLY=' ' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJLY='SSJGBBJ' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); } #region 复制XLXSBJDJJYZ SQL.Clear(); SQL.Add(" insert into XLXSBJDJJYZ( "); string sYZZFields_1 = ""; for (int i = 1; i <= 20; i++) { sYZZFields_1 += "XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + (i < 20 ? "," : ""); } SQL.Add(" XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH," + sYZZFields_1 + ",XLXSBJDJJYZ_YSJDZ"); SQL.Add(" ) "); string sYZZFields_2 = ""; for (int i = 1; i <= 20; i++) { sYZZFields_2 += "XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + (i < 20 ? "," : ""); } SQL.Add(" select :pBJDID,XLXSBJDJJYZ_XH," + sYZZFields_2 + ",XLXSBJDJJYZ_YSJDZ "); SQL.Add(" from XLXSBJDJJYZ"); SQL.Add(" where XLXSBJDJJYZ_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); #endregion #region 复制XLXSBJDCLCB SQL.Clear(); SQL.Add(" insert into XLXSBJDCLCB( "); SQL.Add(" XLXSBJDCLCB_BJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); SQL.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,"); SQL.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); SQL.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); SQL.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); SQL.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); SQL.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); SQL.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); SQL.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); SQL.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); SQL.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); SQL.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); SQL.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); SQL.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); SQL.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); SQL.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); SQL.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); SQL.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); SQL.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); SQL.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); SQL.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); SQL.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); SQL.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); SQL.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); SQL.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); SQL.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); SQL.Add(" XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,XLXSBJDCLCB_BZ,XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHSJ"); SQL.Add(" ) "); SQL.Add(" select :pBJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); SQL.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,"); SQL.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); SQL.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); SQL.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); SQL.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); SQL.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); SQL.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); SQL.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); SQL.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); SQL.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); SQL.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); SQL.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); SQL.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); SQL.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); SQL.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); SQL.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); SQL.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); SQL.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); SQL.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); SQL.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); SQL.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); SQL.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); SQL.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); SQL.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); SQL.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); SQL.Add(" XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,XLXSBJDCLCB_BZ,XLXSBJDCLCB_JGBBJGXSJ,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDCLCB"); SQL.Add(" where XLXSBJDCLCB_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion #region 复制BJDCLYLBL if (bjflxx.XLXSBJFL_TZYLBL.Equals("Y")) { SQL.Clear(); SQL.Add(" insert into BJDCLYLBL( "); SQL.Add(" BJDCLYLBL_BJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); SQL.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); SQL.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); SQL.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); SQL.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); SQL.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); SQL.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); SQL.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); SQL.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); SQL.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); SQL.Add(" ) "); SQL.Add(" select :pBJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); SQL.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); SQL.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); SQL.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); SQL.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); SQL.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); SQL.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); SQL.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); SQL.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); SQL.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); SQL.Add(" from BJDCLYLBL"); SQL.Add(" where BJDCLYLBL_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); } #endregion #region 复制XLXSBJDGYJD SQL.Clear(); SQL.Add(@"insert into XLXSBJDGYJD(XLXSBJDGYJD_BJDID,XLXSBJDGYJD_BJDXH,XLXSBJDGYJD_XLXHID,XLXSBJDGYJD_XLGGID,XLXSBJDGYJD_XLBZID,XLXSBJDGYJD_DYDJID, XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID,XLXSBJDGYJD_ZXGXBZ,XLXSBJDGYJD_JDGS, XLXSBJDGYJD_JDZ,XLXSBJDGYJD_BZ,XLXSBJDGYJD_WHR,XLXSBJDGYJD_WHRID,XLXSBJDGYJD_WHSJ) select :pBJDID,XLXSBJDGYJD_BJDXH,XLXSBJDGYJD_XLXHID,XLXSBJDGYJD_XLGGID,XLXSBJDGYJD_XLBZID,XLXSBJDGYJD_DYDJID, XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID,XLXSBJDGYJD_ZXGXBZ,XLXSBJDGYJD_JDGS, XLXSBJDGYJD_JDZ,XLXSBJDGYJD_BZ,:pWHR,:pWHRID,:pWHSJ from XLXSBJDGYJD where XLXSBJDGYJD_BJDID=:pOLDBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add("update XLXSBJDGYJD set XLXSBJDGYJD_ZXGXBZ='N' where XLXSBJDGYJD_BJDID=:pOLDBJDID and XLXSBJDGYJD_ZXGXBZ='Y' "); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); #endregion bool updBJDYZZ = false; #region 复制调价因子,并更新 string SFCHYZZ = ""; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_FZCHYZZ)) SFCHYZZ = pzxx.XLXSBJPZ_FZCHYZZ; if (!SFCHYZZ.Equals("") && !bWQFZ) { string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(',');//报价单用到的调价因子 SQL.Clear(); SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH"); for (int i = 0; i < sBJDYZ.Length; i++) { if (sBJDYZ[i].Trim().EndsWith("()")) continue; SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); } SQL.Add(" ) "); SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH"); for (int i = 0; i < sBJDYZ.Length; i++) { if (sBJDYZ[i].Trim().EndsWith("()")) continue; SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); } SQL.Add(" from XLXSBJDYZZ0"); SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); Dictionary dicTJYZList = new Dictionary(); XLBJDUtils.GetDicTJYZList(dberp, SQL, cbxBJFLID.SelectedValue.Trim(), ref dicTJYZList); if (SFCHYZZ.Equals("Y")) { if (dicTJYZList.ContainsKey("sTJYSList_")) dicTJYZList.Remove("sTJYSList_"); } XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU003"), dicTJYZList, true, "", 0, ref sErrMsg); if (SFCHYZZ.Equals("Y")) { //盘费因子存在,复制盘费要素 if (!txtPFYZID.Text.Trim().Equals("")) { SQL.Clear(); SQL.Add(" insert into XLXSBJDMXFD "); SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK)"); SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); SQL.Add(" from XLXSBJDMXFD"); SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into XLXSBJDMXZP "); SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDMXZP"); SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } } updBJDYZZ = true; } else { if (!cbxBJFLID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim())) { string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(',');//报价单用到的调价因子 SQL.Clear(); SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH"); for (int i = 0; i < sBJDYZ.Length; i++) { if (sBJDYZ[i].Trim().EndsWith("()")) continue; SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); } SQL.Add(" ) "); SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH"); for (int i = 0; i < sBJDYZ.Length; i++) { if (sBJDYZ[i].Trim().EndsWith("()")) continue; SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); } SQL.Add(" from XLXSBJDYZZ0"); SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); Dictionary dicTJYZList = new Dictionary(); GetDicTJYZList_NewYZ(cbxBJFLID.SelectedValue.Trim(), dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(), ref dicTJYZList); XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU003"), dicTJYZList, true, "", 0, ref sErrMsg); //盘费因子存在,复制盘费要素 if (!txtPFYZID.Text.Trim().Equals("")) { SQL.Clear(); SQL.Add(" insert into XLXSBJDMXFD "); SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK)"); SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); SQL.Add(" from XLXSBJDMXFD"); SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into XLXSBJDMXZP "); SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDMXZP"); SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } updBJDYZZ = true; } else { SQL.Clear(); SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,"); SQL.Add(" XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,"); SQL.Add(" XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20) "); SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,"); SQL.Add(" XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,"); SQL.Add(" XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); SQL.Add(" from XLXSBJDYZZ0"); SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into XLXSBJDMXFD "); SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK )"); SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); SQL.Add(" from XLXSBJDMXFD"); SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into XLXSBJDMXZP "); SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); SQL.Add(" from XLXSBJDMXZP"); SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } } if (!bWQFZ) { if (txtTJYSList.Text.Trim().Contains(",B,"))//B|销售单位 { if (!cbxSYDWID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_SYDWID"].ToString().Trim())) { XLBJD_ZDTJYSInfo.updBJDYZZB(dberp, SQL, cbxSYDWID.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); updBJDYZZ = true; } } if (txtTJYSList.Text.Trim().Contains(",8,"))//8|付款期限 { if (!cbxFKQXNR.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_FKQXNR"].ToString().Trim())) { XLBJD_ZDTJYSInfo.updBJDYZZ8(dberp, SQL, cbxFKQXNR.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); updBJDYZZ = true; } } if (txtTJYSList.Text.Trim().Contains(",1,"))//1|付款方式 { if (!cbxPJLX.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_PJLX"].ToString().Trim())) { XLBJD_ZDTJYSInfo.updBJDYZZ1(dberp, SQL, cbxPJLX.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); updBJDYZZ = true; } } } #endregion bool bUpdJGBBJ = false; string sTJGBFZBLBJ = ""; if (!bWQFZ) { if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) { //if (!cbxJGBID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim()) // || txtTJ.Value != CMISproConvert.StrToFloat(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString()) // || txtLJ.Value != CMISproConvert.StrToFloat(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString())) //{ // bUpdJGBBJ = true; //} bUpdJGBBJ = true;//JGE价格表报价,复制时都要触发一次重新计算 } else { if (!cbxJGBID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim())) { bUpdJGBBJ = true; } else { if (txtRefOldJGBBJ.Value.Trim().Equals("Y")) { bUpdJGBBJ = true; if (dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_SQRGH"].ToString().Trim().Equals(CurSession.UserId)) sTJGBFZBLBJ = pzxx.XLXSBJPZ_TJGBFZBLBJ; } } } } if (bUpdJGBBJ) { XLBJDCalcUtils.CalcAfterBJDHQChange(dberp, SQL, txtBJDID.Text.Trim(), 1, GetOption("BJU002"), GetOption("BJU003"), GetOption("BJU018"), CurSession.UserId, CurSession.UserName, CalcAction.Copy, sTJGBFZBLBJ, ref sErrMsg); if (!sTJGBFZBLBJ.Equals(""))//更新表价调整标志为C { SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_JGBBJTZ = 'C' where XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" and (1<>1 "); if (sTJGBFZBLBJ.Contains("1"))//表价调整 SQL.Add(" or isnull(XLXSBJDMX_JGBBJTZ,' ') = 'Y' "); if (sTJGBFZBLBJ.Contains("2"))//外购产品 SQL.Add(" or isnull(XLXSBJDMX_WGCPBZ,' ') = 'Y' "); SQL.Add(" ) "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); } ShowMessage(string.Format("复制完成,并已重新完成{0}、{1}报价计算!", bjflxx.XLXSBJFL_JGBBJBM.Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM, bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM) + "\r\n"); } else { if (!bWQFZ) { #region 复制报价单材料行情、物料行情 //用txtOLDBJDID2.Value的报价单材料行情、物料行情更新或插入txtBJDID.Text的报价单材料行情、物料行情 SQL.Clear(); SQL.Add(" MERGE INTO XLXSBJDCLHQ tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1 "); SQL.Add(" from XLXSBJDCLHQ "); SQL.Add(" where XLXSBJDCLHQ_BJDID = :pOLDBJDID "); SQL.Add(" ) sor "); SQL.Add(" on (tag.XLXSBJDCLHQ_BJCLID = sor.XLXSBJDCLHQ_BJCLID "); SQL.Add(" AND sor.XLXSBJDCLHQ_BJDID = :pOLDBJDID "); SQL.Add(" AND tag.XLXSBJDCLHQ_BJDID = :pBJDID ) "); SQL.Add(" when matched then update set tag.XLXSBJDCLHQ_HSJG = sor.XLXSBJDCLHQ_HSJG,tag.XLXSBJDCLHQ_HSJGF = sor.XLXSBJDCLHQ_HSJGF,"); SQL.Add(" tag.XLXSBJDCLHQ_WSJGF = sor.XLXSBJDCLHQ_WSJGF,tag.XLXSBJDCLHQ_WSJG = sor.XLXSBJDCLHQ_WSJG, "); SQL.Add(" tag.XLXSBJDCLHQ_JGYBJCLID1 = sor.XLXSBJDCLHQ_JGYBJCLID1,tag.XLXSBJDCLHQ_HSJG1 = sor.XLXSBJDCLHQ_HSJG1, "); SQL.Add(" tag.XLXSBJDCLHQ_WSJG1 = sor.XLXSBJDCLHQ_WSJG1,tag.XLXSBJDCLHQ_JGBL1 = sor.XLXSBJDCLHQ_JGBL1, "); SQL.Add(" tag.XLXSBJDCLHQ_WHRID = :pWHRID,tag.XLXSBJDCLHQ_WHR = :pWHR, tag.XLXSBJDCLHQ_WHSJ = :pWHSJ "); SQL.Add(" when not matched then insert (XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_WSJG,"); SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHSJ) "); SQL.Add(" values(:pBJDID,sor.XLXSBJDCLHQ_BJCLID,sor.XLXSBJDCLHQ_HSJG,sor.XLXSBJDCLHQ_HSJGF,sor.XLXSBJDCLHQ_WSJGF,sor.XLXSBJDCLHQ_WSJG, "); SQL.Add(" sor.XLXSBJDCLHQ_JGYBJCLID1,sor.XLXSBJDCLHQ_HSJG1,sor.XLXSBJDCLHQ_WSJG1,sor.XLXSBJDCLHQ_JGBL1,:pWHRID,:pWHR,:pWHSJ )"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value.Trim(); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" MERGE INTO XLXSBJDWLHQ tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_HSJGF,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1 "); SQL.Add(" from XLXSBJDWLHQ "); SQL.Add(" where XLXSBJDWLHQ_BJDID = :pOLDBJDID "); SQL.Add(" ) sor "); SQL.Add(" on (tag.XLXSBJDWLHQ_WLID = sor.XLXSBJDWLHQ_WLID "); SQL.Add(" AND sor.XLXSBJDWLHQ_BJDID = :pOLDBJDID "); SQL.Add(" AND tag.XLXSBJDWLHQ_BJDID = :pBJDID ) "); SQL.Add(" when matched then update set tag.XLXSBJDWLHQ_HSJG = sor.XLXSBJDWLHQ_HSJG,tag.XLXSBJDWLHQ_HSJGF = sor.XLXSBJDWLHQ_HSJGF,"); SQL.Add(" tag.XLXSBJDWLHQ_WSJGF = sor.XLXSBJDWLHQ_WSJGF,tag.XLXSBJDWLHQ_WSJG = sor.XLXSBJDWLHQ_WSJG, "); SQL.Add(" tag.XLXSBJDWLHQ_JGYBJCLID1 = sor.XLXSBJDWLHQ_JGYBJCLID1,tag.XLXSBJDWLHQ_HSJG1 = sor.XLXSBJDWLHQ_HSJG1, "); SQL.Add(" tag.XLXSBJDWLHQ_WSJG1 = sor.XLXSBJDWLHQ_WSJG1,tag.XLXSBJDWLHQ_JGBL1 = sor.XLXSBJDWLHQ_JGBL1, "); SQL.Add(" tag.XLXSBJDWLHQ_WHRID = :pWHRID,tag.XLXSBJDWLHQ_WHR = :pWHR, tag.XLXSBJDWLHQ_WHSJ = :pWHSJ "); SQL.Add(" when not matched then insert (XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_HSJGF,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_WSJG, "); SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHSJ)"); SQL.Add(" values(:pBJDID,sor.XLXSBJDWLHQ_WLID,sor.XLXSBJDWLHQ_HSJG,sor.XLXSBJDWLHQ_HSJGF,sor.XLXSBJDWLHQ_WSJGF,sor.XLXSBJDWLHQ_WSJG, "); SQL.Add(" sor.XLXSBJDWLHQ_JGYBJCLID1,sor.XLXSBJDWLHQ_HSJG1,sor.XLXSBJDWLHQ_WSJG1,sor.XLXSBJDWLHQ_JGBL1,:pWHRID,:pWHR,:pWHSJ )"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value.Trim(); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion } if (updBJDYZZ) { XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrMsg); ShowMessage(string.Format("复制完成,并已重新完成{0}计算!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM) + "\r\n"); } else { XLBJDUtils.UpdateXLXSBJD(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_ZDXJJCLLX, bjflxx.XLXSBJFL_JYF, "", "", bjflxx.XLXSBJFL_YFWLID, bjflxx.XLXSBJFL_BJHYF); } } } } } //新建保存、编辑保存、复制主记录保存时执行 if (!ctrlState.Value.Equals("C") || (ctrlState.Value.Equals("C") && CanCopyMX.Value.Equals("N")) ) { UpdateXLXSBJD(dberp, SQL, bjflxx, true); InsertCLCBandJJYZ(dberp, SQL, State, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), datBJRQ.Text.Trim(), CurSession.UserId, CurSession.UserName, GetOption("BJU003"), chkJZBJHS.Checked); //如果显示最低限价栏目,则在明细记录维护时,已经计算过最低限价了,这里不用重复执行 if (!bjflxx.XSZDXJ()) { XLBJDUtils.UpdateZDXJGS(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU002"), "", 0); } else { XLBJDUtils.UpdateXLXSBJDJCXJ4(dberp, SQL, txtBJDID.Text.Trim()); } } txtOLDBJDID2.Value = txtBJDID.Text.Trim(); txtOldJGBID.Value = cbxJGBID.SelectedValue.Trim(); InsertCLQDorJGBMX(dberp, SQL, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), txtJGCIDS.Text.Trim(), CurSession); XLBJDCalcUtils.CalBJDTLZL(dberp, SQL, txtBJDID.Text.Trim()); //分页模式下,传入页数和每页显示数,用于控制明细查询结果 //最后一页记录删除后,应改为查询上一页数据 if (pgBar.CurrentPageIndex != 1 && (pgBar.CurrentPageIndex - 1) * pgBar.PageSize >= iCountMX) { pgBar.CurrentPageIndex = pgBar.CurrentPageIndex - 1; } entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = this.txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.DataBind(); grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; //是否存在“按报价产品校验因子值”的因子(XLXSTZYZ_ABJCPJYYZZ=’Y’),比如短米,且存在型号、规格、标准、电压等级相同的情况下短米值不同的情况。 #region 短米校验 ShowBJSLYZZCheckOrZDFX(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU003"), bjflxx.XLXSBJFL_XTCPBJYZ); #endregion // XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860068); if (pzxx2.XLXSBJPZ_XMMCCZCF == "Y") { if (!txtOLDXM.Value.Equals(txtXM.Text.Trim())) { DelXLXSBJZDCZ(dberp, SQL, txtBJDID.Text.Trim()); InsXLXSBJZDCZ(dberp, SQL, txtBJDID.Text.Trim(), txtXM.Text.Trim(), CurSession); } } #region 处理隐藏控件 txtOLDXM.Value = txtXM.Text.Trim(); #endregion if (!txtOLDBJDID.Value.Trim().Equals("")) XLBJDUtils.UpdateTJBZ(dberp, SQL, txtBJDID.Text.Trim(), "Insert"); #region 对线缆销售报价附加信息处理 if (divFJXX.Visible) { SQL.Clear(); SQL.Add("select 1 from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet dsKZXX = dberp.OpenDataSet(SQL); if (dsKZXX.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" update XLXSBJKZXX set XLXSBJKZXX_WHRID = :pWHRID, XLXSBJKZXX_WHR = :pWHR, XLXSBJKZXX_WHSJ = :pWHSJ "); foreach (string sKey in entity.sFJXXParams.Keys) { SQL.Add(" ," + sKey + " = :" + sKey); SQL.ParamByName(sKey).Value = entity.sFJXXParams[sKey]; } SQL.Add(" where XLXSBJKZXX_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); ; dberp.ExecSQL(SQL); } else { SQL.Clear(); SQL.Add("insert into XLXSBJKZXX"); SQL.Add("(XLXSBJKZXX_BJDID,"); foreach (string sKey in entity.sFJXXParams.Keys) { SQL.Add(sKey + ","); } SQL.Add(" XLXSBJKZXX_WHRID, XLXSBJKZXX_WHR, XLXSBJKZXX_WHSJ)"); SQL.Add("values"); SQL.Add("(:XLXSBJKZXX_BJDID,"); foreach (string sKey in entity.sFJXXParams.Keys) { SQL.Add(":" + sKey + ","); SQL.ParamByName(sKey).Value = entity.sFJXXParams[sKey]; } SQL.Add(" :XLXSBJKZXX_WHRID, :XLXSBJKZXX_WHR, :XLXSBJKZXX_WHSJ)"); SQL.ParamByName("XLXSBJKZXX_BJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("XLXSBJKZXX_WHRID").Value = CurSession.UserId; SQL.ParamByName("XLXSBJKZXX_WHR").Value = CurSession.UserName; SQL.ParamByName("XLXSBJKZXX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(SQL); } } #endregion dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(sErrMsg + " " + ex.Message); txtLogicValid.Value = ""; return false; } //弱校验放在强校验之后显示----共有三处赋值。 if (!txtLogicValid.Value.Trim().Equals("")) ShowMessage(txtLogicValid.Value); if (!sLogicValid.Trim().Equals("")) ShowMessage(sLogicValid); txtLogicValid.Value = ""; txtOLDTJ.Value = txtTJ.Value.ToString(); txtOLDLJ.Value = txtLJ.Value.ToString(); entity.sYBJDID = ""; setFJXXControlState(divFJXX, false, txtBJDID.Text, true, ""); XLXSBJFJXX.UpdateLBXSFJXX(txtBJDID.Text.Trim()); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, txtBJDID.Text.Trim()); LoadRecord(); RefreshForm(); SetControlState(); FormAreaUpdate(); return base.Master_AfterSaveAction(sender, e); } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { string sSQL = string.Format("select top 1 XLXSBJYLZD_BJDID from XLXSBJYLZD where XLXSBJYLZD_BJDID='{0}'", txtBJDID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已申请材料用量制定,不允许删除!"); return false; } sSQL = string.Format("select 1 from BJD where BJD_BJDID='{0}'", txtBJDID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("报价单已反馈,不允许删除!"); return false; } XLBJDUtils.UpdateTJBZ(txtBJDID.Text.Trim(), "Delete"); return base.Master_BeforeDeleteAction(sender, e); } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //这里借用全局变量tmpXJDYBJTXS、tmpBJDYBJTXS、tmpBJQSTXS、tmpZDXJJCLTXS处理,是因为base.InitPage()之前报价分类控件还没有值 if (tmpXJDYBJTXS.Trim().Equals("") || tmpBJDYBJTXS.Trim().Equals("") || tmpBJQSTXS.Trim().Equals("")) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); tmpXJDYBJTXS = bjflxx.XLXSBJFL_XJDYBJTXS; tmpBJDYBJTXS = bjflxx.XLXSBJFL_BJDYBJTXS; tmpBJQSTXS = bjflxx.XLXSBJFL_BJQSTXS; tmpZDXJJCLTXS = bjflxx.XLXSBJFL_ZDXJJCLTXS; iZDXJJCLXX = CMISproConvert.StrToFloat(bjflxx.XLXSBJFL_ZDXJJCLXX,0); iBJXSWS=CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS,iXSWS); if (iBJXSWS > iXSWS) iBJXSWS = iXSWS; } double iJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJ", e.Row).Text.Trim()); double iCPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Text.Trim()); double iZDXJJCL = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_ZDXJJCL", e.Row).Text.Trim()); double iCPBJXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJXJ", e.Row).Text.Trim()); if (RoundX(iCPBJXJ, iBJXSWS) < RoundX(iCPBJ, iBJXSWS) && !tmpXJDYBJTXS.Equals("")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJXJ", e.Row).Attributes["BackColor"] = tmpXJDYBJTXS; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = tmpXJDYBJTXS; } if (RoundX(iCPBJ, iBJXSWS) < RoundX(iJGBBJ, iBJXSWS) && !tmpBJDYBJTXS.Equals("")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = tmpBJDYBJTXS; } if (iJGBBJ == 0 && !tmpBJQSTXS.Equals("")) { e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(tmpBJQSTXS); //e.Row.Style.Add(HtmlTextWriterStyle.Color, "#FFFFFF"); } if (iJGBBJ < 0) { e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6E69"); } if (iZDXJJCL < iZDXJJCLXX && !tmpZDXJJCLTXS.Equals("")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_ZDXJJCL", e.Row).Attributes["BackColor"] = tmpZDXJJCLTXS; } //手动调整过价格表表价或复制保留的表价则栏目设置为黄色 if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJTZ", e.Row).Text.Trim().Equals("Y") || grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJTZ", e.Row).Text.Trim().Equals("C")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJ", e.Row).Attributes["BackColor"] = "#FFFF00"; } if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJTJCZ", e.Row).Text.Trim().Equals("SSBJ")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = "#FFFF00"; } //报价单行情料价小于0,字体显示为红色,代表存在有材料用量但没材料价格的情况 if (CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Text.Trim()) < 0) grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Attributes["ForeColor"] = "#ff0000"; //手动调整过报价单行情料价则栏目设置为黄色 if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCBTZ", e.Row).Text.Trim().Equals("Y")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Attributes["BackColor"] = "#FFFF00"; } if (!txtPFYZID.Text.Trim().Equals("")) { if (grdXLBJDMX.GetCellByFieldName("HasFDJL", e.Row).Text.Trim().Equals("Y")) { grdXLBJDMX.GetCellByFieldName("TZYZ_" + txtPFYZID.Text.Trim(), e.Row).Attributes["BackColor"] = "#8784F0"; } } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") { if (grdXLBJDMX.GetCellByFieldName("HasFDJL", e.Row).Text.Trim().Equals("Y")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_PJJE", e.Row).Attributes["BackColor"] = "#8784F0"; } } if (grdXLBJDMX.GetCellByFieldName("CPCF", e.Row).Text.Trim().Equals("Y")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLXHID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_DYDJID", e.Row).Attributes["BackColor"] = "#87CEFA"; } if (grdXLBJDMX.GetCellByFieldName("CPSLCF", e.Row).Text.Trim().Equals("Y")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLXHID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_DYDJID", e.Row).Attributes["BackColor"] = "#87CEFA"; grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJSL", e.Row).Attributes["BackColor"] = "#87CEFA"; } string sBZTXYS = grdXLBJDMX.GetCellByFieldName("BZTXYS", e.Row).Text.Trim(); if (!sBZTXYS.Equals("")) { grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = sBZTXYS; grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = sBZTXYS; } } double TJYZValue = 0; for (int i = 1; i <= 20; i++) { string fieldName = "TZYZ_BJ" + i.ToString("00"); string key = "BJ" + i.ToString("00"); TJYZValue = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName(fieldName, e.Row).Text.Trim()); if (dicTJYZ.ContainsKey(key)) { TJYZEntity entity = dicTJYZ[key]; bool needRed = false; double maxValue = entity.TJBZDYZZ; double minValue = entity.TJBZXYZZ; if (minValue != 0 && TJYZValue < minValue) needRed = true; if (maxValue != 0 && TJYZValue > maxValue) needRed = true; if (needRed) { grdXLBJDMX.GetCellByFieldName(fieldName, e.Row).Attributes["BackColor"] = "#FF4D4D"; } } } base.Grid_RowDataBound(sender, e); } protected override void BeforeAttach() { _AttDoc.WorkTableName = "XLXSBJD"; _AttDoc.UpdCondition = string.Format(" XLXSBJD_BJDID='{0}'", this.txtBJDID.Text.Trim()); _AttDoc.FJSFieldName = "XLXSBJD_FJS"; _AttDoc.FJSComponentName = txtFJS.ClientID; base.BeforeAttach(); } protected override bool DataLogicValid() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); DataSet ds; if (cbxJGBID.SelectedValue.Trim().Equals("")) { ShowMessage("价格表--不允许为空!"); return false; } if (datBJRQ.Text.Trim().Equals("")) { ShowMessage("报价日期--不允许为空!"); return false; } if (cbxKHID.SelectedValue.Trim().Equals("")) { if (cbxSYDWID.SelectedValue.Trim().Equals("")) { ShowMessage("销售单位--不允许为空!"); return false; } } //启用运费因子,校验项目所在地不为空 // if (cbxKHSZDPRO.SelectedValue.Trim().Equals("") || cbxKHSZDCITY.SelectedValue.Trim().Equals("")) // { // if(CMISproDataBase.ExistsRecord("DBERP",string.Format(@"select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860071 and XLXSTZYZ_MXBH='BJD' // and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_YZID=XLXSTZYZ_YZID and XLXSBJFLYZ_BJFLID='{0}' )", cbxBJFLID.SelectedValue.Trim()))) // { // ShowMessage("项目所在地--不允许为空!"); // return false; // } // } if (GetOption("BJU062").Equals("Y")) { if (!Regex.IsMatch(txtXM.Text.Trim(), @"^[\u4e00-\u9fa50-9]*$")) { ShowMessage("项目名称不合法,只能输入中文和数字!"); return false; } } if (chkYZB.Checked) { if (datYZBRQ.Text.Trim().Equals("")) { ShowMessage("预中标日期--不允许为空!"); return false; } if (datJHJHRQS.Text.Trim().Equals("")) { ShowMessage("计划交货日期始--不允许为空!"); return false; } if (datJHJHRQZ.Text.Trim().Equals("")) { ShowMessage("计划交货日期止--不允许为空!"); return false; } } #region 业务配置 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); #region 客户不为空校验 if (!txtKH.Text.Trim().Equals("") && pzxx.XLXSBJPZ_XZKHYQ=="Q") { //配置了客户检索来源“KHXX|售前客户”,则报价单、销售员报价申请模块保存时需要控制维护的“客户”一定要在售前客户表中存在(客户为空不校验) if (pzxx.XLXSBJPZ_KHJSLY=="KHXX") { SQL.Clear(); SQL.Add("select KHXX_MC from KHXX where KHXX_MC = :pKHXX_MC "); SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 0) { ShowMessage("售前客户信息不存在,不允许保存!"); return false; } } //若客户检索来源“KH|客户”,则报价单、销售员报价申请模块保存时需要控制维护的“客户”一定要在客户表中存在(客户为空不校验) if (pzxx.XLXSBJPZ_KHJSLY=="KH") { SQL.Clear(); SQL.Add("select KH_MC from KH where KH_MC = :pKH_MC "); SQL.ParamByName("pKH_MC").Value = txtKH.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 0) { ShowMessage("客户信息不存在,不允许保存!"); return false; } } //若项目检索来源“YXXM|售前项目”,则报价单、销售员报价申请模块保存时需要控制维护的“项目”一定要在售前项目中存在(项目为空不校验),且“项目”一定要是“客户”下的售前项目(客户为空不校验) } #endregion #region 项目不为空校验 //若项目检索来源“YXXM|售前项目”,则报价单、销售员报价申请模块保存时需要控制维护的“项目”一定要在售前项目中存在(项目为空不校验),且“项目”一定要是“客户”下的售前项目(客户为空不校验) if (!txtXM.Text.Trim().Equals("") && pzxx.XLXSBJPZ_XZXMYQ=="Q") { if (pzxx.XLXSBJPZ_XMJSLY=="YXXM") { SQL.Clear(); SQL.Add("select YXXM_MC from YXXM where YXXM_MC = :pYXXM_MC "); SQL.ParamByName("pYXXM_MC").Value = txtXM.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 0) { ShowMessage("项目信息不存在,不允许保存!"); return false; } else { if (!txtKH.Text.Trim().Equals("")) { SQL.Clear(); SQL.Add("select 1 from YXXM "); SQL.Add(" left join KHXX on KHXX_CRMKHID = YXXM_CRMKHID "); SQL.Add(" where YXXM_MC = :pYXXM_MC and KHXX_MC =:pKHXX_MC "); SQL.ParamByName("pYXXM_MC").Value = txtXM.Text.Trim(); SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 0) { ShowMessage("项目与客户信息不匹配,不允许保存!"); return false; } } } } } #endregion //若“100860062|销售报价业务配置”模块配置了客户必填,则报价单、销售员报价申请模块保存时需要控制“客户”不允许为空 if (pzxx.XLXSBJPZ_KHBT=="Y") { if (txtKH.Text.Trim().Equals("")) { ShowMessage("客户不允许为空"); return false; } } //若配置了项目必填,则报价单、销售员报价申请模块保存时需要控制“项目”不允许为空。 if (pzxx.XLXSBJPZ_XMBT=="Y") { if (txtXM.Text.Trim().Equals("")) { ShowMessage("项目不允许为空"); return false; } } #endregion #region 用量制定申请校验 string sHasYLDZSQ = ""; if (ControlState == TControlState.ctsEdit) { string sYLZDMXTZ=XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_YLZDMXTZ; string sYLZDMsg = string.Empty; for (int i = 0; i < grdXLBJDMX.NewRows.Count; i++) { sHasYLDZSQ = grdXLBJDMX.GetValueByFieldName("HasYLDZSQ", grdXLBJDMX.NewRows[i]).Trim(); if (grdXLBJDMX.NewRows[i].Attributes["EditAction"] == "D") { if (sHasYLDZSQ.Equals("Y")) { ShowMessage("不允许删除已经生成用量制定申请的记录!"); return false; } } if (sYLZDMXTZ == "Y" && sHasYLDZSQ.Equals("Y")) { double dBJDXH = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.NewRows[i]).Trim()); double dXSSX = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", grdXLBJDMX.NewRows[i]).Trim()); string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.NewRows[i]).Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.NewRows[i]).Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.NewRows[i]).Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.NewRows[i]).Trim(); SQL.Clear(); SQL.Add(@" select XLXSBJYLZD_BJDID from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID and exists( select 1 from XLXSBJYLZDMX where (XLXSBJYLZDMX_BJDXLXHID<>:pBJDXLXHID or XLXSBJYLZDMX_BJDXLGGID<>:pBJDXLGGID or XLXSBJYLZDMX_BJDXLBZID<>:pBJDXLBZID or XLXSBJYLZDMX_BJDDYDJID<>:pBJDDYDJID ) and XLXSBJYLZDMX_SQDH=XLXSBJYLZD_SQDH and XLXSBJYLZDMX_BJDXH=:pBJDXH ) "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pBJDXLXHID").Value = sXLXHID; SQL.ParamByName("pBJDXLGGID").Value = sXLGGID; SQL.ParamByName("pBJDXLBZID").Value = sXLBZID; SQL.ParamByName("pBJDDYDJID").Value = sDYDJID; SQL.ParamByName("pBJDXH").Value = dBJDXH; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sYLZDMsg += string.Format("[{0}] [{1} {2} {3} {4}]\r\n", dXSSX, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } } } if (!string.IsNullOrEmpty(sYLZDMsg)) { Confirm.Register("IsQD", "如下报价单明细型号规格标准电压等级与材料用量制定申请明细不一致,是否继续?\r\n" + sYLZDMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } } } #endregion #region 互斥校验 //互斥校验----若当前报价分类适用的因子中因子1、2、3存在互斥关系,则需要循环每一条明细记录,控制因子1、2、3最多仅存在一个不为0的因子值 Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); int count = 0; string sHCYZIDList = dicBJDYZ["HCYZIDList"]; string sHCYZMCList = dicBJDYZ["HCYZMCList"]; string[] sTemp = sHCYZIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { int tmpRowNo = 0; foreach (GridViewRow row in grdXLBJDMX.NewRows) { count = 0; if (!row.Attributes["EditAction"].Equals("D")) { tmpRowNo++; for (int m = 0; m < sTemp.Length; m++) { if (CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sTemp[m].ToString().Trim(), row).Trim()) != 0) { count++; } } if (count >= 2) { break; } } } if (count >= 2) { ShowMessage("第" + tmpRowNo.ToString() + "行:" + sHCYZMCList + "-不允许同时维护!"); return false; } } #endregion #region 相同项目的进行提示 //相同项目的进行提示 //string sMsg = ""; //if (!txtXM.Text.Trim().Equals("")) //{ // if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR='{0}'", txtXM.Text.Trim()))) // { // SQL.Clear(); // SQL.Add(" SELECT XLXSBJD_BJDID FROM XLXSBJD WHERE XLXSBJD_XMMC= :pXLXSBJD_XM and XLXSBJD_BJDID <> :pXLXSBJD_BJDID order by XLXSBJD_BJRQ desc "); // SQL.ParamByName("pXLXSBJD_XM").Value = txtXM.Text.Trim(); // SQL.ParamByName("pXLXSBJD_BJDID").Value = txtBJDID.Text.Trim(); // ds = dberp.OpenDataSet(SQL); // if (ds.Tables[0].Rows.Count > 0) // { // if (ds.Tables[0].Rows.Count >= 11) // { // for (int i = 0; i < 10; i++) // { // sMsg = sMsg + ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "、"; // } // sMsg = sMsg.TrimEnd('、'); // sMsg = sMsg + "……"; // } // else // { // for (int i = 0; i < ds.Tables[0].Rows.Count; i++) // { // sMsg = sMsg + ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "、"; // } // sMsg = sMsg.TrimEnd('、'); // } // txtLogicValid.Value = "该项目已经在如下报价单中维护:" + sMsg + "\r\n"; // } // } //} #endregion #region JGB价格表报价复制否若价格表未发生变化是否需要刷新表价 if (ControlState == TControlState.ctsCopy) { if (CanCopyMX.Value.Equals("Y")) { if (!XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) { if (cbxJGBID.SelectedValue.Trim().Equals(txtOldJGBID.Value.Trim())) { if (XLBJDUtils.IFTJBXYBGJGML(cbxJGBID.SelectedValue.Trim())) { Confirm.Register("IsQD", "是否按价格表最新价刷新表价、重算报价?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); txtRefOldJGBBJ.Value = "N"; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); txtRefOldJGBBJ.Value = "Y"; } } } } } } #endregion #region ctrlState.Value隐藏控件状态赋值 if (ControlState == TControlState.ctsCopy) { ctrlState.Value = "C"; } else if (ControlState == TControlState.ctsInsert) { ctrlState.Value = "I"; } else if (ControlState == TControlState.ctsEdit) { ctrlState.Value = "E"; } #endregion //分页模式下,处理显示序号 if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 { SetXssxBeforeSave(txtBJDID.Text.Trim(), pgBar.CurrentPageIndex, pgBar.PageSize); } #region 铜铝价校验 BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sTLJMsg = ""; if (!bjflxx.XLXSBJFL_TBJCLID.Equals("")) { if (txtTJ.Value == 0) sTLJMsg += "铜价"; } if (!bjflxx.XLXSBJFL_LBJCLID.Equals("")) { if (txtLJ.Value == 0) { if (!sTLJMsg.Equals("")) sTLJMsg += "、"; sTLJMsg += "铝价"; } } if (!sTLJMsg.Equals("")) { ShowMessage(sTLJMsg + "不允许为0!"); return false; } #endregion #region 附加信息校验 if (divFJXX.Visible) { string sSZJYXX = ""; DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); entity.sFJXXParams.Clear(); for (int i = 0; i < dsFJXXSZ.Tables[0].Rows.Count; i++) { string sXSBZ = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (!sXSBZ.Equals("")) { sXSBZ = "," + sXSBZ + ","; if (!sXSBZ.Contains("," + sWPID + ",")) { continue; } } string SYBJFLID = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); if (!SYBJFLID.Equals("")) { SYBJFLID = "," + SYBJFLID + ","; if (!SYBJFLID.Contains("," + sBJFLID + ",")) { continue; } } string sWHBZ = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_WHBZ"].ToString().Trim(); if (!sWHBZ.Equals("")) { sWHBZ = "," + sWHBZ + ","; if (!sWHBZ.Contains("," + sWPID + ",")) { continue; } } //entity.sKZXXParams.Add(); string sDYZD = "XLXSBJKZXX_" + dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); string sValue = ""; if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) { gtNumTextBox numTextBox = (gtNumTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (numTextBox != null) sValue = numTextBox.Value.ToString(); if (sValue.Equals("0")) sValue = ""; } else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) { //字符型 if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 { gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (textBox != null) sValue = textBox.Text.Trim(); } else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//下拉单选 { gtComboBox comboBox = (gtComboBox)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); if (comboBox != null) { sValue = comboBox.SelectedValue.Trim(); if (getStringByte(sValue) > 250) { ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "的选项长度已超过250字节,请重新选择!"); return false; } } } else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//下拉多选 { gtCheckedDropDownList checkedDropDownList = (gtCheckedDropDownList)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); if (checkedDropDownList != null) { sValue = checkedDropDownList.SelectedValue.Trim(); if (getStringByte(sValue) > 250) { ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "的选项长度已超过250字节,请重新选择!"); return false; } } } } else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) { //字符型 if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 { gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (textBox != null) sValue = textBox.Text.Trim(); } } else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) { gtDateTimeTextBox dateTimeTextBox = (gtDateTimeTextBox)this.CurMaster.ContentFormControl.FindControl("dat" + sDYZD); if (dateTimeTextBox != null) sValue = dateTimeTextBox.Text.Trim(); if (sValue.Equals("")) sValue = null; } if (String.IsNullOrEmpty(sValue) && dsFJXXSZ.Tables[0].Rows[i]["BT"].ToString().Equals("Y")) { if (sDYZD.Contains("KZSZ")) { if (!sSZJYXX.Equals("")) sSZJYXX += "、"; sSZJYXX += dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim(); } else { ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "不允许为空!"); return false; } } entity.sFJXXParams.Add(sDYZD, sValue); } if (!sSZJYXX.Equals("")) ShowMessage(sSZJYXX + "存入0值!"); } #endregion #region 报价单行情料价 for (int i = 0; i < grdXLBJDMX.NewRows.Count; i++) { if (grdXLBJDMX.NewRows[i].Attributes["EditAction"] != "D") { string sBJDHQCLCBTZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCBTZ", grdXLBJDMX.NewRows[i]).Trim(); if (sBJDHQCLCBTZ.Equals("Y")) { double dBJDHQCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", grdXLBJDMX.NewRows[i]).Trim()); if (dBJDHQCLCB < 0) { ShowMessage("手动调整报价单行情料价不允许小于0!"); return false; } } } } #endregion return base.DataLogicValid(); } protected override void SetComboxItems() { if (ControlState == TControlState.ctsBrowse) { #region ctsBrowse TComboBox.SetComboBox("DBERP", cbxPJLX, string.Format("select SFPJ_PJLX,case isnull(SFPJ_TYBZ,' ') when 'Y' then rtrim(SFPJ_PJMC)||'(停用)' else SFPJ_PJMC end as Name from SFPJ where SFPJ_PJLX='{0}'", cbxPJLX.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxBJFLID, string.Format("select XLXSBJFL_BJFLID,case isnull(XLXSBJFL_TYBZ,' ') when 'Y' then rtrim(XLXSBJFL_BJFLMC)||'(停用)' else XLXSBJFL_BJFLMC end as Name from XLXSBJFL where XLXSBJFL_BJFLID = '{0}' order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID", cbxBJFLID.SelectedValue.Trim()), false); TComboBox.SetComboBox("DBERP", cbxFKQXNR, string.Format(" SELECT XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME FROM XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR='{0}' ", cbxFKQXNR.SelectedValue.Trim().Equals("") ? " " : cbxFKQXNR.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxYSJDID, string.Format(" select YSJD_YSJDID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) from YSJD WHERE YSJD_YSJDID='{0}' ", cbxYSJDID.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxGYSID, string.Format(" select YSDW_GYSID,GYS_MC from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE YSDW_GYSID='{0}' ", cbxGYSID.SelectedValue.Trim()), true); // //项目所在地 TComboBox.SetComboBox("DBERP", cbxKHSZDPRO, string.Format("select XZQH_XZQHID,XZQH_PROVINCE from XZQH where XZQH_XZQHID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDPRO.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxKHSZDCITY, string.Format("select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDPRO.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxKHSZDCOUNTY, string.Format("select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_XZQHID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDCOUNTY.SelectedValue.Trim()), true); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); string sJGBMC_HZ = "";//后缀 if (txtCLHQJGBID.Value.Trim().Equals("ZZZZZZZZ")) { sJGBMC_HZ = ",ZZZZZZZZ|基础材料行情"; } else if (txtCLHQJGBID.Value.Trim().Equals("YYYYYYYY")) { sJGBMC_HZ = ",YYYYYYYY|报价单材料行情"; } sql.Clear(); sql.Add("select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGE') and XLXSJGB_JGBID=:pJGBID "); if (!GetOption(100860018,"BJU016").Equals("")) { sql.Add(" and (isnull(XLXSJGB_CPMLID,' ')=' ' or " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", GetOption(100860018,"BJU016")) + ") "); } sql.Add(" order by XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc, XLXSJGB_JGBID "); sql.ParamByName("pJGBID").Value = cbxJGBID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); cbxJGBID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); string sYXQS = ds.Tables[0].Rows[i]["XLXSJGB_YXQS"].ToString().Trim(); string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGB_YXQZ"].ToString().Trim(); string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); if (sYXQS.Equals("")) sYXQS = "--"; else sYXQS = CMISproConvert.ConvertDate(sYXQS); if (sYXQZ.Equals("")) sYXQZ = "--"; else sYXQZ = CMISproConvert.ConvertDate(sYXQZ); if (XLBJDUtils.IsJGEJGB(sJGBID)) { cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sJGBMC, sJGBID)); } else { if (sJGBMC.Equals("")) cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + sJGBMC_HZ, sJGBID)); else cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC + sJGBMC_HZ, sJGBID)); } } sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM from XSY where XSY_TXY=:pTXY"); sql.ParamByName("pTXY").Value = cbxXSJLMC.SelectedValue.Trim(); ds = dberp.OpenDataSet(sql); cbxXSJLMC.ClearItems(); cbxXSJLMC.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { string sTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[0][1].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxXSJLMC.Items.Add(new ListItem(sZJM + "|" + sTXY, sTXY)); } if (GetOption("BJU070").Trim() != "Y") { sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where XSY_TXY=:pTXY"); sql.ParamByName("pTXY").Value = GetTXYValue(); ds = dberp.OpenDataSet(sql); cbxTXY.ClearItems(); cbxTXY.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { string sTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[0][1].ToString().Trim(); string sSJ=ds.Tables[0].Rows[0][2].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); } } TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format("select XSQY_XSQYID,XSQY_XSQYMC from XSQY where XSQY_XSQYID='{0}' order by XSQY_XSQYID", cbxXSQYID.SelectedValue.Trim()), true); TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", cbxKHID.SelectedValue.Trim()), false); TComboBox.SetComboBox("DBERP", cbxSYDWID, string.Format("select GS_SYDWID,GS_GSMC from GS where GS_SYDWID='{0}' order by GS_SYDWID", cbxSYDWID.SelectedValue.Trim()), false); TComboBox.SetComboBox("DBERP", cbxXSBMID, string.Format(" SELECT BM_BMID,BM_MC FROM BM where BM_BMID='{0}' order by BM_BMID", cbxXSBMID.SelectedValue.Trim()), true); if (!cbxKHID.SelectedValue.Trim().Equals("")) { if (XSCBXKHID()) { cbxKHID.Visible = true; cbxSYDWID.Visible = false; } else { cbxKHID.Visible = false; cbxSYDWID.Visible = true; } } else { cbxKHID.Visible = false; cbxSYDWID.Visible = true; } #endregion } else { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); DataSet ds = null; if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { #region ctsInsert || ctsCopy //检查是否经销商报价 sql.Clear(); sql.Add("select JXSXX_KHID,JXSXX_XSQYID from JXSXX where JXSXX_GH=:pGH order by JXSXX_KHID"); sql.ParamByName("pGH").Value = CurSession.UserId; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (XSCBXKHID()) { cbxKHID.Visible = true; cbxSYDWID.Visible = false; cbxSYDWID.SelectedValue = ""; TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim()), false); cbxKHID.SelectedValue = ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim(); } else { cbxKHID.Visible = false; cbxSYDWID.Visible = true; cbxKHID.SelectedValue = ""; TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); if (cbxSYDWID.SelectedValue.Trim().Equals("") && cbxSYDWID.ItemsCount > 0) { string sSYDWID = GetSWDWID(CurSession.UserId); if (!sSYDWID.Equals("")) cbxSYDWID.SelectedValue = sSYDWID; else cbxSYDWID.SelectedIndex = 0; } } string sBJU050 = GetOption("BJU050"); if(sBJU050 == "Y") { cbxXSQYID.SelectedValue = ds.Tables[0].Rows[0]["JXSXX_XSQYID"].ToString().Trim(); } //根据找到的JXSXX_KHID匹配报价分类适用客户,得到报价分类可选项 sql.Clear(); sql.Add("select XLXSBJFLKH_BJFLID,XLXSBJFL_BJFLMC "); sql.Add("from XLXSBJFLKH "); sql.Add("left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJFLKH_BJFLID "); sql.Add("where XLXSBJFLKH_KHID=:pKHID "); sql.Add("order by XLXSBJFL_XSXH,XLXSBJFLKH_BJFLID"); sql.ParamByName("pKHID").Value = cbxKHID.SelectedValue.Trim(); DataSet dsFLKH = dberp.OpenDataSet(sql); if (dsFLKH.Tables[0].Rows.Count > 0) { string sBJU012 = GetOption("BJU012"); cbxBJFLID.ClearItems(); for (int i = 0; i < dsFLKH.Tables[0].Rows.Count; i++) { if (!sBJU012.Equals("")) { sBJU012 = "," + sBJU012 + ","; if (sBJU012.Contains("," + dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim() + ",")) { cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); } } else cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); } } else { sql.Clear(); sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'"); sql.Add(" and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) "); if (!GetOption("BJU012").Equals("")) { sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012"))); } sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID"); ds = null; ds = dberp.OpenDataSet(sql); cbxBJFLID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxBJFLID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim())); } } } else { cbxKHID.Visible = false; cbxSYDWID.Visible = true; cbxKHID.SelectedValue = ""; TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); if (cbxSYDWID.SelectedValue.Trim().Equals("") && cbxSYDWID.ItemsCount > 0) { string sSYDWID = GetSWDWID(CurSession.UserId); if (!sSYDWID.Equals("")) cbxSYDWID.SelectedValue = sSYDWID; else cbxSYDWID.SelectedIndex = 0; } if (!GetOption("BJU012").Equals("")) { TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012")) + " order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); } else { TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); } } if (ControlState == TControlState.ctsInsert && cbxBJFLID.ItemsCount > 0) { string sMRBJFL = GetOption("BJU019").Trim(); if (!sMRBJFL.Equals("")) cbxBJFLID.SelectedValue = sMRBJFL; else cbxBJFLID.SelectedIndex = 0; } #endregion } else { #region edit if (!cbxKHID.SelectedValue.Trim().Equals("")) { if (XSCBXKHID()) { if (!IsPostBack)//列表页直接点编辑时触发 TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", cbxKHID.SelectedValue.Trim()), false); cbxKHID.Visible = true; cbxSYDWID.Visible = false; } else { if (!IsPostBack)//列表页直接点编辑时触发 TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); cbxKHID.Visible = false; cbxSYDWID.Visible = true; } //根据cbxKHID匹配报价分类适用客户,得到报价分类可选项 sql.Clear(); sql.Add("select XLXSBJFLKH_BJFLID,XLXSBJFL_BJFLMC "); sql.Add("from XLXSBJFLKH "); sql.Add("left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJFLKH_BJFLID "); sql.Add("where XLXSBJFLKH_KHID=:pKHID "); sql.Add("order by XLXSBJFL_XSXH,XLXSBJFLKH_BJFLID"); sql.ParamByName("pKHID").Value = cbxKHID.SelectedValue.Trim(); DataSet dsFLKH = dberp.OpenDataSet(sql); if (dsFLKH.Tables[0].Rows.Count > 0) { string sBJU012 = GetOption("BJU012"); cbxBJFLID.ClearItems(); for (int i = 0; i < dsFLKH.Tables[0].Rows.Count; i++) { if (!sBJU012.Equals("")) { sBJU012 = "," + sBJU012 + ","; if (sBJU012.Contains("," + dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim() + ",")) { cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); } } else cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); } } else { sql.Clear(); sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'"); sql.Add(" and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) "); if (!GetOption("BJU012").Equals("")) { sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012"))); } sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID"); ds = null; ds = dberp.OpenDataSet(sql); cbxBJFLID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxBJFLID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim())); } } txtBGQKHID.Value = txtKHID.Text.ToString(); txtBGQKH.Value = txtKH.Text.ToString(); } else { TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); cbxKHID.Visible = false; cbxSYDWID.Visible = true; if (!GetOption("BJU012").Equals("")) { TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012")) + " order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); } else { TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); } } #endregion } string sSQL = " SELECT BM_BMID,BM_MC FROM BM where 1=1 "; if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sSQL += " and " + CMISproDataBase.GetWhereEqual("BM_BMID", GetOption("HJU006").Trim()); } sSQL += " order by BM_BMID"; TComboBox.SetComboBox("DBERP", cbxXSBMID, sSQL, true); if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert) { if (cbxXSBMID.ItemsCount == 2) cbxXSBMID.SelectedIndex = 1; } //付款方式 TComboBox.SetComboBox("DBERP", cbxPJLX, " select XLXSBJDYZZ1_PJLX,SFPJ_PJMC from XLXSBJDYZZ1 left join SFPJ on SFPJ_PJLX=XLXSBJDYZZ1_PJLX where 1=1 " + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ1_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ1_YZID and XLXSTZYZ_MXBH ='BJD' " + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + " order by XLXSBJDYZZ1_PJLX", true); //付款期限 TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID ))" + " order by ID", true); //运输节点&运输单位 TComboBox.SetComboBox("DBERP", cbxYSJDID, "select YSJD_YSJDID as ID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) as NAME from YSJD WHERE ISNULL(YSJD_TYBZ, 'N') <> 'Y' ORDER BY YSJD_ZJM ", true); TComboBox.SetComboBox("DBERP", cbxGYSID, "select YSDW_GYSID AS ID,GYS_MC AS NAME from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE ISNULL(YSDW_TYBZ, 'N') <> 'Y' ORDER BY ID ", true); //项目所在地 TComboBox.SetComboBox("DBERP", cbxKHSZDPRO, "select XZQH_XZQHID,XZQH_PROVINCE from XZQH where XZQH_FID = '86' ORDER BY XZQH_XZQHID ", true); if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) { sql.Clear(); sql.Add(" select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = :pFID "); sql.Add(" order by XZQH_XZQHID "); sql.ParamByName("pFID").Value = cbxKHSZDPRO.SelectedValue.Trim(); ds = dberp.OpenDataSet(sql); cbxKHSZDCITY.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim().Equals("")) { cbxKHSZDCITY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); } } } } if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) { sql.Clear(); sql.Add(" select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_FID = :pFID "); sql.Add(" order by XZQH_XZQHID "); sql.ParamByName("pFID").Value = cbxKHSZDCITY.SelectedValue.Trim(); ds = dberp.OpenDataSet(sql); cbxKHSZDCOUNTY.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim().Equals("")) { cbxKHSZDCOUNTY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); } } } } sql.Clear(); sql.Add("select distinct SJ.SJXSYMC,SJ.XSY_ZJM from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH,XSY_ZJM from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH "); sql.Add(" where isnull(XSY_SJXSYBH,' ')<>' ' order by SJ.XSY_ZJM,SJ.SJXSYMC"); ds = dberp.OpenDataSet(sql); cbxXSJLMC.ClearItems(); if (ds.Tables[0].Rows.Count > 0) { cbxXSJLMC.Items.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxXSJLMC.Items.Add(new ListItem(sZJM + "|" + sTXY, sTXY)); } } if (GetOption("BJU070").Trim() == "Y") { acbxTXY.Config["XSJLMC"] = cbxXSJLMC.SelectedValue.Trim(); acbxTXY.Config["BMID"] = GetOption("HJU006").Trim(); } else if (cbxXSJLMC.SelectedValue.Trim().Equals("")) { sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where isnull(XSY_TYBZ,' ')<>'Y' "); if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption("HJU006").Trim())); sql.Add(" or isnull(XSY_BMID, ' ') = ' ') "); } sql.Add(" order by XSY_ZJM,XSY_TXY"); ds = dberp.OpenDataSet(sql); cbxTXY.ClearItems(); if (ds.Tables[0].Rows.Count > 0) { cbxTXY.Items.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); } } } else { sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH"); sql.Add(" where isnull(XSY_TYBZ,' ')<>'Y' and SJ.SJXSYMC=:pSJXSYMC "); if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption("HJU006").Trim())); sql.Add(" or isnull(XSY_BMID, ' ') = ' ') "); } sql.Add(" order by XSY_ZJM,XSY_TXY"); sql.ParamByName("pSJXSYMC").Value = cbxXSJLMC.SelectedValue.Trim(); ds = dberp.OpenDataSet(sql); cbxTXY.ClearItems(); if (ds.Tables[0].Rows.Count > 0) { cbxTXY.Items.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); } } } TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format(@"select XSQY_XSQYID,XSQY_XSQYMC from XSQY where isnull(XSQY_TYBZ,' ')<>'Y' and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and (isnull(XLXSBJFL_XSQYIDS,' ')=' ' or ','||rtrim(XLXSBJFL_XSQYIDS)||',' like '%,'||rtrim(XSQY_XSQYID)||',%') ) order by XSQY_XSQYID", cbxBJFLID.SelectedValue.Trim()), true); //报价分类对应产品目录的行情分段材料、及其报价日行情,用于限制价格表加载项 Dictionary dicCPML_BJRCLHQ = XLBJDUtils.GetCPMLBJCL_BJRCLHQ(cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text); string sBJCLIDS = XLBJDUtils.GetCPMLBJCL(cbxBJFLID.SelectedValue.Trim()); ;//报价分类对应产品目录的材料 //存在明细 if (CMISproDataBase.ExistsRecord("DBERP",string.Format("select top 1 XLXSBJDMX_BJDID from XLXSBJDMX where XLXSBJDMX_BJDID='{0}'", txtBJDID.Text.Trim()))) { sql.Clear(); sql.Add("select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGE') and XLXSJGB_JGBID=:pJGBID "); if (!GetOption(100860018,"BJU016").Equals("")) { sql.Add(" and (isnull(XLXSJGB_CPMLID,' ')=' ' or " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", GetOption(100860018, "BJU016")) + ") "); } sql.Add(" order by XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc, XLXSJGB_JGBID "); sql.ParamByName("pJGBID").Value = cbxJGBID.SelectedValue.Trim(); ds = dberp.OpenDataSet(sql); cbxJGBID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); string sYXQS = ds.Tables[0].Rows[i]["XLXSJGB_YXQS"].ToString().Trim(); string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGB_YXQZ"].ToString().Trim(); string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); if (sYXQS.Equals("")) sYXQS = "--"; else sYXQS = CMISproConvert.ConvertDate(sYXQS); if (sYXQZ.Equals("")) sYXQZ = "--"; else sYXQZ = CMISproConvert.ConvertDate(sYXQZ); if (XLBJDUtils.IsJGEJGB(sJGBID)) { cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sJGBMC, sJGBID)); } else { if (sJGBMC.Equals("")) cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ , sJGBID)); else cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC , sJGBID)); } } } else SetcbxJGBID(); } BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); cbxCZJSXY.ClearItems(); cbxCZJSXY.Items.Add(new ListItem("", "")); cbxCZJSXY.Items.Add(new ListItem("有", "Y")); cbxCZJSXY.Items.Add(new ListItem("无", "N")); cbxCZJSXY.ShowValue = false; if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; ReBuildYZColByBJFL(txtBJDYZ.Text.Trim(), txtTJYSList.Text.Trim(), txtYZWPIDList.Text.Trim(), txtReadOnlyYZ.Text.Trim(),txtZDWPIDList.Text.Trim()); txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; ReBuildJJColByBJFL( txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(),iXSWS, sHidJSLMList); if (!bjflxx.XLXSBJFL_ZLGZCLS.Equals("")) lblZLGZCLS.Visible = true; else lblZLGZCLS.Visible = false; } if (bjflxx.XLXSBJFL_ST == "Y") { trST.Visible = true; if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLZCJH where XLZCJH_YWDH='" + txtBJDID.Text.Trim() + "'")) chkZCJH.Checked = true; else chkZCJH.Checked = false; btnZCJH.Visible = true; } else { trST.Visible = false; btnZCJH.Visible = false; } #region 价差界面整单合计字段 if (!string.IsNullOrEmpty(txtBJDID.Text.Trim()) && CheckModule("100860008") && ControlState == TControlState.ctsBrowse) { LoadHJXX(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sHidJSLMList); } #endregion if (cbxKHID.Visible) { lblSYDWID.Text = "客户:"; linkSYDWID.Text = "客户"; linkSYDWID.ToolTip = "客户调整"; lblKH.Text = "售前客户:"; linkKH.Text = "售前客户"; } else { lblSYDWID.Text = "销售单位:"; linkSYDWID.Text = "销售单位"; linkSYDWID.ToolTip = "销售单位调整"; lblKH.Text = "客户:"; linkKH.Text = "客户"; } base.SetComboxItems(); } protected override void OnPreRender(EventArgs e) { //分页模式下,设置翻页控件 pgBar.ShowPublicOpt = base.isSupervisorUser; pgBar.IsPublic = false; //显示过滤行 if (ControlState == TControlState.ctsBrowse) grdXLBJDMX.EnabledFilterRow = true; if (ControlState == TControlState.ctsCopy) { //需要复制明细时,不允许操作明细 if (CanCopyMX.Value.Equals("Y")) grdXLBJDMX.EnabledToolBar = false; } base.OnPreRender(e); grdXLBJDMX.ShowRecordCount = false;//屏蔽记录导出 string sScript = ""; #region 客户的快速检索脚本 string sDivSelect = @" function getPos(el,sProp) { var iPos = 0; while (el!=null) { iPos+=el['offset' + sProp] el = el.offsetParent } return iPos; } //在客户输入框中自动检索 function edtKeyUp(el,m) { if(document.getElementById('" + txtKH.ClientID + @"').readOnly) return; if(event.keyCode == 9) return; var sUsers,sRYList,lstBox; sUSR= el.value; sUsers=document.getElementById('" + hidKH.ClientID + @"').value; lstBox=document.getElementById('lstUSR'); lstBox.length=0; sRYList=sUsers.split('$$,'); for(var i=0; i=0) || (sRYList[i].indexOf(sUSR.toUpperCase())>=0)) { var item; item = sItem.split('↑'); if (item[0] != '') lstBox.options.add(new Option(item[0])); } } document.getElementById('btnSel').value=el.id; // event.keyCode=0; event.returnValue=false; if(lstBox.length==0) m.style.display='none'; if(lstBox.length==1) { if (lstBox.options[0].text =='') {m.style.display='none'; } else if (event.keyCode == 13) m.style.display='none'; else m.style.display=''; } if(lstBox.length>1) { m.style.display=''; } m.style.pixelLeft =getPos(el,'Left'); if((event.keyCode==40)&&(idSel.style.display=='')) { var lstBox=document.getElementById('lstUSR'); lstBox.focus(); if(lstBox.length>0) lstBox.selectedIndex=0; } //document.getElementById('ctl00_CphForm_IsKHChange').value = 'Y'; } var isin=false; function selectme(obj) { if(!isin||obj) { idSel.style.display='none'; idSel2.style.display='none'; idSel3.style.display='none'; //if (document.getElementById('ctl00_CphForm_IsKHChange').value == 'Y') //{ // document.getElementById('ctl00_CPHButton_txtKHChange').click(); // document.getElementById('ctl00_CphForm_IsKHChange').value = ''; //} } } function lstUSRClick() { var edtSend var lstBox=document.getElementById('lstUSR'); var ss=lstBox.options[lstBox.selectedIndex].text; // event.keyCode=0; event.returnValue=false; edtSend= document.getElementById(document.getElementById('btnSel').value); edtSend.value=ss; idSel.style.display='none'; edtSend.focus(); //document.getElementById('ctl00_CPHButton_txtKHChange').click(); } /* 以下使窗体点击时selectme(obj)函数被激活: */ myActivation='selectme(null)'; if(document.body.onclick) { eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); document.body.onclick=new Function('bodyclick();'+myActivation); } else document.body.onclick=new Function(myActivation); function cc() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart('character',e.value.length); r.collapse(true); r.select(); } "; #endregion #region 项目的快速检索脚本 string sDivSelect2 = @" //在项目输入框中自动检索 function edtKeyUp2(el,m) { if(document.getElementById('" + txtXM.ClientID + @"').readOnly) return; if(event.keyCode == 9) return; var sUsers,sRYList,lstBox; sUSR= el.value; sUsers=document.getElementById('" + hidXM.ClientID + @"').value; lstBox=document.getElementById('lstUSR2'); lstBox.length=0; sRYList=sUsers.split('$$,'); for(var i=0; i=0) || (sItem[0].indexOf(sUSR.toUpperCase())>=0)) && (sItem[1]==document.getElementById('" + txtKH.ClientID + @"').value.trim())) { var item; item = sItem[0].split('↑'); lstBox.options.add(new Option(item[0])); } } document.getElementById('btnSel2').value=el.id; // event.keyCode=0; event.returnValue=false; if(lstBox.length==0) m.style.display='none'; if(lstBox.length==1) { if (lstBox.options[0].text =='') {m.style.display='none'; } else if (event.keyCode == 13) m.style.display='none'; else m.style.display=''; } if(lstBox.length>1) { m.style.display=''; } m.style.pixelLeft =getPos(el,'Left'); if((event.keyCode==40)&&(idSel2.style.display=='')) { var lstBox=document.getElementById('lstUSR2'); lstBox.focus(); if(lstBox.length>0) lstBox.selectedIndex=0; } } var isin2=false; function selectme2(obj) { if(!isin2||obj) {idSel2.style.display='none';} } function lstUSR2Click() { var edtSend var lstBox=document.getElementById('lstUSR2'); var ss=lstBox.options[lstBox.selectedIndex].text; // event.keyCode=0; event.returnValue=false; edtSend= document.getElementById(document.getElementById('btnSel2').value); edtSend.value=ss; idSel2.style.display='none'; edtSend.focus(); } /* 以下使窗体点击时selectme2(obj)函数被激活: */ // myActivation='selectme2(null)'; // if(document.body.onclick) // { // eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); // document.body.onclick=new Function('bodyclick();'+myActivation); // } // else document.body.onclick=new Function(myActivation); function cc2() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart('character',e.value.length); r.collapse(true); r.select(); } "; #endregion #region 详细地址的快速检索脚本 string sDivSelect3 = @" //在详细地址输入框中自动检索 function edtKeyUp3(el,m) { if(document.getElementById('" + txtXXDZ.ClientID + @"').readOnly) return; if(event.keyCode == 9) return; var sUsers,sRYList,lstBox; sUSR= el.value; sUsers=document.getElementById('" + hidYZ.ClientID + @"').value; lstBox=document.getElementById('lstUSR3'); lstBox.length=0; sRYList=sUsers.split('$$,'); for(var i=0; i=0) || (sItem[0].indexOf(sUSR.toUpperCase())>=0)) && (sItem[1]==document.getElementById('" + txtXM.ClientID + @"').value.trim())) { var item; item = sItem[0].split('↑'); lstBox.options.add(new Option(item[0])); } } document.getElementById('btnSel3').value=el.id; // event.keyCode=0; event.returnValue=false; if(lstBox.length==0) m.style.display='none'; if(lstBox.length==1) { if (lstBox.options[0].text =='') {m.style.display='none'; } else if (event.keyCode == 13) m.style.display='none'; else m.style.display=''; } if(lstBox.length>1) { m.style.display=''; } m.style.pixelLeft =getPos(el,'Left'); if((event.keyCode==40)&&(idSel3.style.display=='')) { var lstBox=document.getElementById('lstUSR3'); lstBox.focus(); if(lstBox.length>0) lstBox.selectedIndex=0; } } var isin3=false; function selectme3(obj) { if(!isin3||obj) {idSel3.style.display='none';} } function lstUSR3Click() { var edtSend var lstBox=document.getElementById('lstUSR3'); var ss=lstBox.options[lstBox.selectedIndex].text; // event.keyCode=0; event.returnValue=false; edtSend= document.getElementById(document.getElementById('btnSel3').value); edtSend.value=ss; idSel3.style.display='none'; edtSend.focus(); } /* 以下使窗体点击时selectme3(obj)函数被激活: */ // myActivation='selectme3(null)'; // if(document.body.onclick) // { // eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); // document.body.onclick=new Function('bodyclick();'+myActivation); // } // else document.body.onclick=new Function(myActivation); function cc3() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart('character',e.value.length); r.collapse(true); r.select(); } "; #endregion sScript += sDivSelect; sScript += sDivSelect2; sScript += sDivSelect3; ClientScript.RegisterStartupScript(this.GetType(), "Script_PreRender", sScript, true); if (divFJXXLabel.Visible) { Mac.MacLog.TraceFormat("OnPreRender:{0}", ShowFJXX ? "Y" : "N"); if (ShowFJXX) AjaxRunScript("SetFJXXDiv", "Setblock();"); else AjaxRunScript("SetFJXXDiv", "Setnone();"); } AjaxRunScript("SetdivBarQY", "resize();"); } protected override void OnReportUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) { string[] Param; Param = Params.Split(','); if (Name.Trim().ToUpper() == "GETCPBJ") { ValueType = "N"; if (Param.Length >= 5) { Value = XLBJDUtils.GetCPBJ(Param[0], Param[1], Param[2], Param[3], Param[4]).ToString(); } else { Value = "0"; } } else if (Name.Trim().ToUpper() == "GETEWMNR") { ValueType = "S"; string sNR = txtBJDID.Text + "," + txtSQR.Value + "," + datBJRQ.Text; string encryptedString = AttachDocDlg.EncryptString(sNR, "GTHINKING"); string encodedData = System.Web.HttpUtility.UrlEncode(encryptedString); string sTZWZ = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJPZ_EWMWZ from XLXSBJPZ where 1 = 1 and XLXSBJPZ_MDID = 100860000 "); DataSet ds = dberp.OpenDataSet(SQL); if ((ds.Tables[0].Rows.Count > 0) && (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XLXSBJPZ_EWMWZ"].ToString().Trim()))) { sTZWZ = ds.Tables[0].Rows[0]["XLXSBJPZ_EWMWZ"].ToString().Trim(); } else { sTZWZ = "http://www.gthinking.com/home/index.asp"; } Value = sTZWZ + "?data=" + encodedData; } } protected override Dictionary CodeSQLParam() { Dictionary htResult = base.CodeSQLParam(); htResult.Add("KH", txtKH); return htResult; } protected override string CodeClass(string ComponentID) { string sFW = GetOption("HJU038").Trim(); string sResult = base.CodeClass(ComponentID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (ComponentID.ToUpper().Trim().Equals("TXTKH")) { //DataSet ds; string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; if (sKHJSLY.Equals("KH")) { sResult += "!select KH_KHID as CODE, KH_MC as MESSAGE from KH where 1=1 and isnull(KH_TYBZ,'N') <> 'Y'"; if (sFW.Trim().Equals("ZJ")) { sResult += string.Format("and KH_TXY='{0}'", CurSession.UserName.Trim()); } else if (sFW.Trim().Equals("BM")) { sResult += string.Format("and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); } sResult += " order by CODE"; } else if (sKHJSLY.Equals("KHXX")) { sResult += "!select KHXX_CRMKHID as CODE, KHXX_MC as MESSAGE from KHXX where 1=1 "; if (sFW.Trim().Equals("ZJ")) { sResult += string.Format("and KHXX_FZR='{0}'", CurSession.UserName.Trim()); } else if (sFW.Trim().Equals("BM")) { sResult += string.Format("and KHXX_FZR in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); } sResult += " order by CODE"; } } else if (ComponentID.ToUpper().Trim().Equals("TXTKHID")) { sResult += "!!select KH_KHID as CODE, case when isnull(KH_TXY,' ') = ' ' then KH_MC else rtrim(KH_MC) || '|' || KH_TXY end as MESSAGE from KH where 1=1 and isnull(KH_TYBZ,'N') <> 'Y'"; if (sFW.Trim().Equals("ZJ")) { sResult += string.Format("and KH_TXY='{0}'", CurSession.UserName.Trim()); } else if (sFW.Trim().Equals("BM")) { sResult += string.Format("and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); } sResult += " order by CODE"; } else if (ComponentID.ToUpper().Trim().Equals("TXTXM")) { //DataSet ds; string sXMJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMJSLY)) sXMJSLY = pzxx.XLXSBJPZ_XMJSLY; if (sXMJSLY.Equals("YXXM")) { sResult += "!select YXXM_XMID as CODE, YXXM_MC as Message from YXXM where 1 = 1 order by CODE "; } } else if (ComponentID.ToUpper().Trim().Equals("TXTKHLXR")) { //DataSet ds; string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; if (sKHJSLY.Equals("KHXX")) { Hashtable sSQLParams = GetHashtableValue(Server.HtmlDecode(Request.Form["SQLParam"].ToString())); StringBuilder strSQL = new StringBuilder(); strSQL.AppendLine("!select A.KHLXR_LXRID as CODE, case when isnull(A.KHLXR_XM,' ') = ' ' then A.KHLXR_CW else A.KHLXR_XM end as Message "); strSQL.AppendLine(" from KHLXR A "); strSQL.AppendLine(" left join KHXX on KHXX_CRMKHID=A.KHLXR_CRMKHID "); strSQL.AppendLine(" where 1=1 "); strSQL.AppendLine(" and KHXX_MC = '" + sSQLParams["KH"].ToString().Trim() + "' "); strSQL.AppendLine(" and A.KHLXR_BB=(select max(KHLXR_BB) as BB "); strSQL.AppendLine(" from KHLXR B "); strSQL.AppendLine(" where B.KHLXR_CRMKHID=A.KHLXR_CRMKHID and B.KHLXR_LXRID=A.KHLXR_LXRID "); strSQL.AppendLine(" and isnull(B.KHLXR_YZF,'N')<>'Y') "); strSQL.AppendLine(" order by CODE "); sResult += strSQL.ToString(); } } return sResult; } protected override bool ConfirmWFAction(TWFAction Action) { if (Action == TWFAction.wfaSubmit) { string sBJDID = txtBJDID.Text.Trim(); string sWarningMsg = ""; string sBJFLID = cbxBJFLID.SelectedValue.Trim(); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); if (bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("Z") || bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("6")) { XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption("BJU003"), ref sWarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); if (!sWarningMsg.Equals("")) { Confirm.Register("ask", "显示序号为" + sWarningMsg + "的相同报价产品的报价不同,是否确认提交?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("ask").Trim().Equals("")) { Confirm.Ask("ask"); return false; } else if (Confirm.GetValue("ask").Trim().Equals("N")) { Confirm.Clear(); return false; } else if (Confirm.GetValue("ask").Trim().Equals("Y")) { Confirm.Clear(); } } } } return base.ConfirmWFAction(Action); } #endregion #region 自定义函数 /// /// 明细grid进行回发时,获取不到txtBJDYZ的值,故在回发事件中重新调用InitGrid /// /// /// /// /// /// /// 显示价格表行情料价 /// 显示价格表基价 /// 显示表价价差率 /// 显示报价单行情料价 /// 显示料价价差率 /// 显示结算价 /// 显示调整报价 /// 显示调整最低限价 /// 显示调整金额 /// 调整表价选项 /// 显示表价价差额 /// 显示最低限价 /// 最低限价价差率 /// 只读因子清单 /// 只读事务清单 /// 表价别名 /// 仅录入报价产品 /// 按角色隐藏栏目 /// 型号规格右模糊检索 /// 显示意向价 /// 显示印字 /// 显示原始产品 /// 显示表价料价价差率 private void InitGrid(string sBJFLID, int iXSWS, string sBJDYZText, string sYZWPIDList, string sTZJGBBJ, string sTZBJDHQLJ, string sReadOnlyYZ, string sZDWPIDList, string sPFYZID, string sHidJSLMList) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (sBJDYZText.Equals("")) return; if (grdXLBJDMX.Columns.Count > sConColumnsCount)//如果列数大于sConColumnsCount,说明已经执行过InitGrid,无需重复执行 return; grdXLBJDMX.ShowPager = false;//不显示上下页 grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZHCPMLMC").Visible = false; if (XLBJDUtils.ExistXSCPML()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPMLMC").Visible = true; if(pzxx.XLXSBJPZ_XSCPML=="Z") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZHCPMLMC").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPMLMC").Visible = false; } if (XLBJDUtils.ExistGYKH()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_GYKH").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_GYKH").Visible = false; } if (pzxx.XLXSBJPZ_XSPWQD == "Y") { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDID").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDWLMC").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDMS").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDID").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDWLMC").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDMS").Visible = false; } //=======栏目可见 //显示线缆标准描述 if (bjflxx.XSXLBZMS()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").Visible = true; } //显示报价单行情料价栏目 if (bjflxx.XSBJDHQLJ()) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; //显示价格表行情料价栏目 if (bjflxx.XSLJ()) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; //显示价格表基价栏目 if (bjflxx.XSJGBJJChecked()) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; //显示截面比公式栏目 if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = false; if (bjflxx.XLXSBJFL_XSLSBJ == "Y") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = false; //=======编辑权限 //调整表价 if (XLBJDUtils.IsXSY(CurSession.UserId.Trim()) || XLBJDUtils.IsJXS(CurSession.UserId.Trim())) { if (GetOption("BJU049")=="N") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; } else { if (sTZJGBBJ.Trim().Equals("1"))//1|不允许调整表价 { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; } else { if (!bjflxx.XLXSBJFL_JGBBJZDWPID.Equals("")) { string sWPIDS = "," + bjflxx.XLXSBJFL_JGBBJZDWPID + ","; string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (sWPIDS.Contains(sWPID)) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; } } //报价单行情料价 if (sTZBJDHQLJ.Trim().Equals("1")) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = false; #region 因子栏目 string[] sYZWPIDs = sYZWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); string sFirstWPID = "";//新建时流程状态按sFirstWPID算 if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 { ListItemCollection listItems = new ListItemCollection(); WorkFlowUtils.SetListItemCollection_WFYWSW("XLXSBJ_BJD", listItems, false); if (listItems.Count > 0) { sFirstWPID = listItems[0].Value.Trim(); } } string[] sBJDYZ = sBJDYZText.Split(','); string[] sReadOnly = sReadOnlyYZ.Split(','); string[] sZDWPIDs = sZDWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); 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("(DD)", "(%)").Replace("(MD)", "(%)").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)"))//"加价"因子显示6位小数 { _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 (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 { bool bReadOnly = true; if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) { for (int j = 0; j < sZDWPIDs.Length; j++) { string tmpYZID = sZDWPIDs[j].Split('|')[0].Trim(); if (tmpYZID.Equals(sReadOnly[i].Split('|')[0].Trim())) { string tmpWPIDs = "," + sZDWPIDs[j].Split('|')[1].Trim() + ","; string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); //包含则只读 if (tmpWPIDs.Contains("," + curWPID + ",")) { bReadOnly = true; } else { bReadOnly = false; } } else { //只设置到只读,未设置到流程 } } _gtAjaxGridViewColumnTZYZ.ReadOnly = bReadOnly; } } else { if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) { _gtAjaxGridViewColumnTZYZ.ReadOnly = true; } } } //没有选中的因子 else { _gtAjaxGridViewColumnTZYZ.Visible = false; } _gtAjaxGridViewColumnTZYZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZYZ); if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) { gtAjaxGridViewColumn _gtAjaxGridViewColumnTZYZJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZYZJE.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("%", "").Replace("(JJ)", "").Replace("()", "").Replace("(XX)", "").Replace("(JD)", "").Replace("(KD)", "").Replace("(DD)", "").Replace("(MD)", "").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "").Replace("(MP)", "") + "金额(元)"; _gtAjaxGridViewColumnTZYZJE.DataField = "TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim(); if (_gtAjaxGridViewColumnTZYZJE.HeaderText.Length < 8) { _gtAjaxGridViewColumnTZYZJE.Width = Unit.Pixel(80); } else { _gtAjaxGridViewColumnTZYZJE.Width = Unit.Pixel(_gtAjaxGridViewColumnTZYZJE.HeaderText.Length * 10 + 20); } _gtAjaxGridViewColumnTZYZJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZYZJE.ReadOnly = true; _gtAjaxGridViewColumnTZYZJE.NumberDecimalPlace = 2; _gtAjaxGridViewColumnTZYZJE.FilterColumn = false; if (!sBJDYZ[i].Trim().EndsWith("()")) { _gtAjaxGridViewColumnTZYZJE.Visible = true; } else { _gtAjaxGridViewColumnTZYZJE.Visible = false; } grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZYZJE); } } //根据适用工作流事务隐藏因子栏目 if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 { for (int i = 0; i < sYZWPIDs.Length; i++) { string tmpYZID = sYZWPIDs[i].Split('|')[0].Trim(); string tmpWPIDs = "," + sYZWPIDs[i].Split('|')[1].Trim() + ","; string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); if (!tmpWPIDs.Contains("," + curWPID + ",")) { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + tmpYZID).Visible = false; } } } #endregion //表价别名 string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM.Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM; btnCLCB.Width = XLBJDUtils.GetBtnLength(ref sJGBBJBM, true); btnCLCB.Caption = sJGBBJBM; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM; if (bjflxx.XLXSBJFL_XHGGYMHJS.Equals("Y")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.R; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.R; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.A; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.A; } #region 添加栏目_sAddColumnsCount XLXSBJPZXX YLPZXX = XLBJDUtils.GetXLXSBJPZXX(100860014); // gtAjaxGridViewColumn _gtAjaxGridViewColumnTCLYLBL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTCLYLBL.HeaderText = "铜用量比例"; _gtAjaxGridViewColumnTCLYLBL.DataField = "TCLYLBL"; _gtAjaxGridViewColumnTCLYLBL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTCLYLBL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTCLYLBL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnTCLYLBL.ReadOnly = true; if (!YLPZXX.XLXSBJPZ_TDTGSCLID.Equals("")) _gtAjaxGridViewColumnTCLYLBL.Visible = true; else _gtAjaxGridViewColumnTCLYLBL.Visible = false; _gtAjaxGridViewColumnTCLYLBL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTCLYLBL); // gtAjaxGridViewColumn _gtAjaxGridViewColumnLCLYLBL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnLCLYLBL.HeaderText = "铝用量比例"; _gtAjaxGridViewColumnLCLYLBL.DataField = "LCLYLBL"; _gtAjaxGridViewColumnLCLYLBL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnLCLYLBL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnLCLYLBL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnLCLYLBL.ReadOnly = true; if (!YLPZXX.XLXSBJPZ_LBJCLID.Equals("")) _gtAjaxGridViewColumnLCLYLBL.Visible = true; else _gtAjaxGridViewColumnLCLYLBL.Visible = false; _gtAjaxGridViewColumnLCLYLBL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLCLYLBL); // gtAjaxGridViewColumn _gtAjaxGridViewColumnLHJCLYLBL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnLHJCLYLBL.HeaderText = "铝合金用量比例"; _gtAjaxGridViewColumnLHJCLYLBL.DataField = "LHJCLYLBL"; _gtAjaxGridViewColumnLHJCLYLBL.Width = Unit.Pixel(100); _gtAjaxGridViewColumnLHJCLYLBL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnLHJCLYLBL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnLHJCLYLBL.ReadOnly = true; if (!YLPZXX.XLXSBJPZ_LHJBJCLID.Equals("")) _gtAjaxGridViewColumnLHJCLYLBL.Visible = true; else _gtAjaxGridViewColumnLHJCLYLBL.Visible = false; _gtAjaxGridViewColumnLHJCLYLBL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLHJCLYLBL); //——1 gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQCPBJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnTZQCPBJ.HeaderText = "调整前报价"; _gtAjaxGridViewColumnTZQCPBJ.DataField = "XLXSBJDMX_TZQCPBJ"; _gtAjaxGridViewColumnTZQCPBJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnTZQCPBJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnTZQCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 _gtAjaxGridViewColumnTZQCPBJ.ReadOnly = true; _gtAjaxGridViewColumnTZQCPBJ.Visible = false; _gtAjaxGridViewColumnTZQCPBJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQCPBJ); //——2 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 (bjflxx.XSTZCPBJChecked()) _gtAjaxGridViewColumnTZJG.Visible = true; else _gtAjaxGridViewColumnTZJG.Visible = false; _gtAjaxGridViewColumnTZJG.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZJG); //——3 //添加报价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnCPBJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCPBJ.HeaderText = "报价"; _gtAjaxGridViewColumnCPBJ.DataField = "XLXSBJDMX_CPBJ"; _gtAjaxGridViewColumnCPBJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnCPBJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 _gtAjaxGridViewColumnCPBJ.CalculateField = true; _gtAjaxGridViewColumnCPBJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPBJ); //——4 //添加报价金额列 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 (bjflxx.XSTZBJJEChecked()) _gtAjaxGridViewColumnTZQBJJE.Visible = true; else _gtAjaxGridViewColumnTZQBJJE.Visible = false; _gtAjaxGridViewColumnTZQBJJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQBJJE); //——5 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 (bjflxx.XSTZBJJEChecked()) _gtAjaxGridViewColumnTZJE.Visible = true; else _gtAjaxGridViewColumnTZJE.Visible = false; _gtAjaxGridViewColumnTZJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZJE); //——6 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJJE = new gtAjaxGridViewColumn(); if (bjflxx.XSTZBJJEChecked()) _gtAjaxGridViewColumnBJJE.HeaderText = "调整后报价金额"; else _gtAjaxGridViewColumnBJJE.HeaderText = "报价金额"; _gtAjaxGridViewColumnBJJE.DataField = "XLXSBJDMX_BJJE"; _gtAjaxGridViewColumnBJJE.Width = Unit.Pixel(90); _gtAjaxGridViewColumnBJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJJE.NumberDecimalPlace = 2; _gtAjaxGridViewColumnBJJE.ReadOnly = true; _gtAjaxGridViewColumnBJJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJJE); //——7 //添加盘具金额列 gtAjaxGridViewColumn _gtAjaxGridViewColumnPJJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnPJJE.HeaderText = "盘具金额"; _gtAjaxGridViewColumnPJJE.DataField = "XLXSBJDMX_PJJE"; _gtAjaxGridViewColumnPJJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnPJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnPJJE.CalculateField = false; _gtAjaxGridViewColumnPJJE.ReadOnly = true; _gtAjaxGridViewColumnPJJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnPJJE); if (pzxx.XLXSBJPZ_PFBJRBJ == "Y") _gtAjaxGridViewColumnPJJE.Visible = true; else _gtAjaxGridViewColumnPJJE.Visible = false; //——8 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 (bjflxx.XSTZBJJEChecked()) _gtAjaxGridViewColumnTZHDJ.Visible = true; else _gtAjaxGridViewColumnTZHDJ.Visible = false; _gtAjaxGridViewColumnTZHDJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZHDJ); //——9 gtAjaxGridViewColumn _gtAjaxGridViewColumnYXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnYXJ.HeaderText = "意向价"; _gtAjaxGridViewColumnYXJ.DataField = "XLXSBJDMX_YXJG"; _gtAjaxGridViewColumnYXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnYXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnYXJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS); if (bjflxx.XSYXJChecked()) _gtAjaxGridViewColumnYXJ.Visible = true; else _gtAjaxGridViewColumnYXJ.Visible = false; _gtAjaxGridViewColumnYXJ.CalculateField = true; _gtAjaxGridViewColumnYXJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYXJ); //——10 gtAjaxGridViewColumn _gtAjaxGridViewColumnCLZL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLZL.HeaderText = "材料重量(Kg)"; _gtAjaxGridViewColumnCLZL.DataField = "XLXSBJDMX_CLZL"; _gtAjaxGridViewColumnCLZL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnCLZL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCLZL.NumberDecimalPlace = 3; _gtAjaxGridViewColumnCLZL.ReadOnly = true; _gtAjaxGridViewColumnCLZL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLZL); //——11 gtAjaxGridViewColumn _gtAjaxGridViewColumnYXJJCL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnYXJJCL.HeaderText = "意向价价差率(%)"; _gtAjaxGridViewColumnYXJJCL.DataField = "XLXSBJDMX_YXJJCL"; _gtAjaxGridViewColumnYXJJCL.Width = Unit.Pixel(120); _gtAjaxGridViewColumnYXJJCL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnYXJJCL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnYXJJCL.CalculateField = true; _gtAjaxGridViewColumnYXJJCL.ReadOnly = true; if (!bjflxx.XLXSBJFL_YXJJCLLX.Equals("")) _gtAjaxGridViewColumnYXJJCL.Visible = true; else _gtAjaxGridViewColumnYXJJCL.Visible = false; _gtAjaxGridViewColumnYXJJCL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYXJJCL); //——12 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJLJJCL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJLJJCL.HeaderText = "表价料价价差率(%)"; _gtAjaxGridViewColumnBJLJJCL.DataField = "XLXSBJDMX_JGBBJLJJCL"; _gtAjaxGridViewColumnBJLJJCL.Width = Unit.Pixel(120); _gtAjaxGridViewColumnBJLJJCL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJLJJCL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnBJLJJCL.CalculateField = true; _gtAjaxGridViewColumnBJLJJCL.ReadOnly = true; if (bjflxx.XSBJLJJCL()) _gtAjaxGridViewColumnBJLJJCL.Visible = true; else _gtAjaxGridViewColumnBJLJJCL.Visible = false; _gtAjaxGridViewColumnBJLJJCL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJLJJCL); //——13 gtAjaxGridViewColumn _gtAjaxGridViewColumnCLCBLRL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLCBLRL.HeaderText = "料价价差率(%)"; _gtAjaxGridViewColumnCLCBLRL.DataField = "XLXSBJDMX_CLCBJCL"; _gtAjaxGridViewColumnCLCBLRL.Width = Unit.Pixel(120); _gtAjaxGridViewColumnCLCBLRL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCLCBLRL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnCLCBLRL.CalculateField = true; if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改料价价差率 { _gtAjaxGridViewColumnCLCBLRL.ReadOnly = false; } else _gtAjaxGridViewColumnCLCBLRL.ReadOnly = true; if (bjflxx.XSLJJCL()) _gtAjaxGridViewColumnCLCBLRL.Visible = true; else _gtAjaxGridViewColumnCLCBLRL.Visible = false; _gtAjaxGridViewColumnCLCBLRL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLCBLRL); //——14 //添加利润率%列 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 (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改表价价差率 { _gtAjaxGridViewColumnLRL.ReadOnly = false; } else _gtAjaxGridViewColumnLRL.ReadOnly = true; if (bjflxx.XSJCL()) _gtAjaxGridViewColumnLRL.Visible = true; else _gtAjaxGridViewColumnLRL.Visible = false; _gtAjaxGridViewColumnLRL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLRL); //——15 //添加利润额列 gtAjaxGridViewColumn _gtAjaxGridViewColumnLRE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnLRE.HeaderText = "表价价差额"; _gtAjaxGridViewColumnLRE.DataField = "XLXSBJDMX_JGBBJJCE"; _gtAjaxGridViewColumnLRE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnLRE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnLRE.NumberDecimalPlace = 2; //_gtAjaxGridViewColumnLRE.CalculateField = true; if (bjflxx.XSJGBBJJCEChecked()) { _gtAjaxGridViewColumnLRE.Visible = true; } else { _gtAjaxGridViewColumnLRE.Visible = false; } _gtAjaxGridViewColumnLRE.ReadOnly = true; _gtAjaxGridViewColumnLRE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLRE); //——16 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; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQZDXJ); //——17 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 (bjflxx.XSTZZDXJ()) _gtAjaxGridViewColumnTZZDXJ.Visible = true; else _gtAjaxGridViewColumnTZZDXJ.Visible = false; _gtAjaxGridViewColumnTZZDXJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZZDXJ); //——18 //添加最低限价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJ.HeaderText = "最低限价"; _gtAjaxGridViewColumnZDXJ.DataField = "XLXSBJDMX_ZDXJ"; _gtAjaxGridViewColumnZDXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZDXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZDXJ.NumberDecimalPlace = iXSWS; if (bjflxx.XSZDXJ()) { _gtAjaxGridViewColumnZDXJ.Visible = true; } else { _gtAjaxGridViewColumnZDXJ.Visible = false; } if (bjflxx.XSTZZDXJ()) { _gtAjaxGridViewColumnZDXJ.CalculateField = true; } else { _gtAjaxGridViewColumnZDXJ.ReadOnly = true; } _gtAjaxGridViewColumnZDXJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJ); //——19 //添加最低限价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJJE.HeaderText = "最低限价金额"; _gtAjaxGridViewColumnZDXJJE.DataField = "XLXSBJDMX_ZDXJJE"; _gtAjaxGridViewColumnZDXJJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZDXJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZDXJJE.NumberDecimalPlace = 2; if (bjflxx.XSZDXJ()) { _gtAjaxGridViewColumnZDXJJE.Visible = true; } else { _gtAjaxGridViewColumnZDXJJE.Visible = false; } _gtAjaxGridViewColumnZDXJJE.ReadOnly = true; _gtAjaxGridViewColumnZDXJJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJJE); //——20 //添加最低限价价差率%列 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 (bjflxx.XSZDXJ() && !bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("")) _gtAjaxGridViewColumnZDXJJCL.Visible = true; else _gtAjaxGridViewColumnZDXJJCL.Visible = false; _gtAjaxGridViewColumnZDXJJCL.ReadOnly = true; _gtAjaxGridViewColumnZDXJJCL.FilterColumn = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJJCL); //——21 //添加结算价列 gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJ = new gtAjaxGridViewColumn(); _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; if (bjflxx.XSJSJ()) { _gtAjaxGridViewColumnJSJ.Visible = true; } else { _gtAjaxGridViewColumnJSJ.Visible = false; } _gtAjaxGridViewColumnJSJ.ReadOnly = true; _gtAjaxGridViewColumnJSJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJ); //——22 //添加结算价金额列 gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnJSJJE.HeaderText = "结算价金额"; _gtAjaxGridViewColumnJSJJE.DataField = "XLXSBJDMX_JSJJE"; _gtAjaxGridViewColumnJSJJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnJSJJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = 2; if (bjflxx.XSJSJ() && !bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) { _gtAjaxGridViewColumnJSJJE.Visible = true; } else { _gtAjaxGridViewColumnJSJJE.Visible = false; } _gtAjaxGridViewColumnJSJJE.ReadOnly = true; _gtAjaxGridViewColumnJSJJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJJE); //——23 //添加结算价价差率列 gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJJCL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnJSJJCL.HeaderText = "结算价价差率(%)"; _gtAjaxGridViewColumnJSJJCL.DataField = "XLXSBJDMX_JSJJCL"; _gtAjaxGridViewColumnJSJJCL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnJSJJCL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnJSJJCL.NumberDecimalPlace = 2; if (bjflxx.XSJSJ()&&!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) { _gtAjaxGridViewColumnJSJJCL.Visible = true; } else { _gtAjaxGridViewColumnJSJJCL.Visible = false; } _gtAjaxGridViewColumnJSJJCL.ReadOnly = true; _gtAjaxGridViewColumnJSJJCL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJJCL); //——24 //添加原始产品列 gtAjaxGridViewColumn _gtAjaxGridViewColumnYSCP = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnYSCP.HeaderText = "原始产品"; _gtAjaxGridViewColumnYSCP.DataField = "XLXSBJDMX_YSCP"; _gtAjaxGridViewColumnYSCP.Width = Unit.Pixel(200); _gtAjaxGridViewColumnYSCP.EditType = TEditType.etString; if (bjflxx.XSYSCPChecked()) _gtAjaxGridViewColumnYSCP.Visible = true; else _gtAjaxGridViewColumnYSCP.Visible = false; _gtAjaxGridViewColumnYSCP.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYSCP); //——25 //添加客户物料编码列 gtAjaxGridViewColumn _gtAjaxGridViewColumnKHWLID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnKHWLID.HeaderText = "客户物料编码"; _gtAjaxGridViewColumnKHWLID.DataField = "XLXSBJDMX_KHWLID"; _gtAjaxGridViewColumnKHWLID.Width = Unit.Pixel(200); _gtAjaxGridViewColumnKHWLID.EditType = TEditType.etString; if (pzxx.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 _gtAjaxGridViewColumnKHWLID.Visible = true; else _gtAjaxGridViewColumnKHWLID.Visible = false; _gtAjaxGridViewColumnKHWLID.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnKHWLID); _gtAjaxGridViewColumnKHWLID.CalculateField = true; //——26 //添加印字列 gtAjaxGridViewColumn _gtAjaxGridViewColumnYZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnYZ.HeaderText = "印字"; _gtAjaxGridViewColumnYZ.DataField = "XLXSBJDMX_YZ"; _gtAjaxGridViewColumnYZ.Width = Unit.Pixel(200); _gtAjaxGridViewColumnYZ.EditType = TEditType.etString; if (bjflxx.XSYZChecked()) _gtAjaxGridViewColumnYZ.Visible = true; else _gtAjaxGridViewColumnYZ.Visible = false; _gtAjaxGridViewColumnYZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYZ); //——27 //添加包号列 gtAjaxGridViewColumn _gtAjaxGridViewColumnFBH = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnFBH.HeaderText = "包号"; _gtAjaxGridViewColumnFBH.DataField = "XLXSBJDMX_FBH"; _gtAjaxGridViewColumnFBH.Width = Unit.Pixel(200); _gtAjaxGridViewColumnFBH.EditType = TEditType.etString; if (bjflxx.XSBHChecked()) _gtAjaxGridViewColumnFBH.Visible = true; else _gtAjaxGridViewColumnFBH.Visible = false; _gtAjaxGridViewColumnFBH.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnFBH); //——28 //产品报价限价 gtAjaxGridViewColumn _gtAjaxGridViewColumnCPBJXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCPBJXJ.HeaderText = "产品报价限价"; _gtAjaxGridViewColumnCPBJXJ.DataField = "XLXSBJDMX_CPBJXJ"; _gtAjaxGridViewColumnCPBJXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnCPBJXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnCPBJXJ.CalculateField = true; _gtAjaxGridViewColumnCPBJXJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 if (bjflxx.XSCPBJXJChecked()) _gtAjaxGridViewColumnCPBJXJ.Visible = true; else _gtAjaxGridViewColumnCPBJXJ.Visible = false; _gtAjaxGridViewColumnCPBJXJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPBJXJ); //——29 //报价限价扣点 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJXJKD = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJXJKD.HeaderText = "报价限价扣点"; _gtAjaxGridViewColumnBJXJKD.DataField = "XLXSBJDMX_BJXJKD"; _gtAjaxGridViewColumnBJXJKD.Width = Unit.Pixel(80); _gtAjaxGridViewColumnBJXJKD.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJXJKD.NumberDecimalPlace = 2;//保留精度高的 if (bjflxx.XSCPBJXJChecked()) _gtAjaxGridViewColumnBJXJKD.Visible = true; else _gtAjaxGridViewColumnBJXJKD.Visible = false; _gtAjaxGridViewColumnBJXJKD.FilterColumn = false; _gtAjaxGridViewColumnBJXJKD.ReadOnly = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJXJKD); //——30 //报价限价加价 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJXJJJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJXJJJ.HeaderText = "报价限价加价"; _gtAjaxGridViewColumnBJXJJJ.DataField = "XLXSBJDMX_BJXJJJ"; _gtAjaxGridViewColumnBJXJJJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnBJXJJJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJXJJJ.NumberDecimalPlace = 6;//保留精度高的 if (bjflxx.XSCPBJXJChecked()) _gtAjaxGridViewColumnBJXJJJ.Visible = true; else _gtAjaxGridViewColumnBJXJJJ.Visible = false; _gtAjaxGridViewColumnBJXJJJ.FilterColumn = false; _gtAjaxGridViewColumnBJXJJJ.ReadOnly = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJXJJJ); //——31 //限价与报价差额 gtAjaxGridViewColumn _gtAjaxGridViewColumnXJBJCE= new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnXJBJCE.HeaderText = "限价与报价差额"; _gtAjaxGridViewColumnXJBJCE.DataField = "XJBJCE"; _gtAjaxGridViewColumnXJBJCE.Width = Unit.Pixel(104); _gtAjaxGridViewColumnXJBJCE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnXJBJCE.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 if (bjflxx.XSCPBJXJChecked()) _gtAjaxGridViewColumnXJBJCE.Visible = true; else _gtAjaxGridViewColumnXJBJCE.Visible = false; _gtAjaxGridViewColumnXJBJCE.FilterColumn = false; _gtAjaxGridViewColumnXJBJCE.ReadOnly = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXJBJCE); //——32 //报价金额限价 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJJEXJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJJEXJ.HeaderText = "报价金额限价"; _gtAjaxGridViewColumnBJJEXJ.DataField = "XLXSBJDMX_BJJEXJ"; _gtAjaxGridViewColumnBJJEXJ.Width = Unit.Pixel(80); _gtAjaxGridViewColumnBJJEXJ.EditType = TEditType.etNumber; _gtAjaxGridViewColumnBJJEXJ.NumberDecimalPlace = 2; if (bjflxx.XSCPBJXJChecked()) _gtAjaxGridViewColumnBJJEXJ.Visible = true; else _gtAjaxGridViewColumnBJJEXJ.Visible = false; _gtAjaxGridViewColumnBJJEXJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJJEXJ); //——33 //添加备注列 gtAjaxGridViewColumn _gtAjaxGridViewColumnBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBZ.HeaderText = "备注"; _gtAjaxGridViewColumnBZ.DataField = "XLXSBJDMX_BZ"; _gtAjaxGridViewColumnBZ.Width = Unit.Pixel(200); _gtAjaxGridViewColumnBZ.EditType = TEditType.etString; _gtAjaxGridViewColumnBZ.FilterColumn = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBZ); //——34 //添加报价产品锁定列 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJCPSD = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJCPSD.HeaderText = "报价产品锁定"; _gtAjaxGridViewColumnBJCPSD.DataField = "XLXSBJDMX_BJCPSD"; _gtAjaxGridViewColumnBJCPSD.Width = Unit.Pixel(60); _gtAjaxGridViewColumnBJCPSD.EditType = TEditType.etCheckBox; _gtAjaxGridViewColumnBJCPSD.CalculateField = true; _gtAjaxGridViewColumnBJCPSD.ReadOnly = true; _gtAjaxGridViewColumnBJCPSD.Visible = false; _gtAjaxGridViewColumnBJCPSD.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJCPSD); //——35 //添加报价锁定列 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJSDBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJSDBZ.HeaderText = "报价锁定"; _gtAjaxGridViewColumnBJSDBZ.DataField = "XLXSBJDMX_BJSDBZ"; _gtAjaxGridViewColumnBJSDBZ.Width = Unit.Pixel(60); _gtAjaxGridViewColumnBJSDBZ.EditType = TEditType.etCheckBox; _gtAjaxGridViewColumnBJSDBZ.CalculateField = true; _gtAjaxGridViewColumnBJSDBZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJSDBZ); //——36 //添加报价锁定列 gtAjaxGridViewColumn _gtAjaxGridViewColumnCLCBJCLSDBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCLCBJCLSDBZ.HeaderText = "按料价价差率算报价"; _gtAjaxGridViewColumnCLCBJCLSDBZ.DataField = "XLXSBJDMX_CLCBJCLSDBZ"; _gtAjaxGridViewColumnCLCBJCLSDBZ.Width = Unit.Pixel(90); _gtAjaxGridViewColumnCLCBJCLSDBZ.EditType = TEditType.etCheckBox; _gtAjaxGridViewColumnCLCBJCLSDBZ.CalculateField = true; //仅报价单行情料价显示时显示 if (bjflxx.XSBJDHQLJ()) _gtAjaxGridViewColumnCLCBJCLSDBZ.Visible = true; else _gtAjaxGridViewColumnCLCBJCLSDBZ.Visible = false; _gtAjaxGridViewColumnCLCBJCLSDBZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLCBJCLSDBZ); //--37 //物料信息 gtAjaxGridViewColumn _gtAjaxGridViewColumnWLXX = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWLXX.HeaderText = "物料信息"; _gtAjaxGridViewColumnWLXX.DataField = "WLXX"; _gtAjaxGridViewColumnWLXX.Width = Unit.Pixel(100); _gtAjaxGridViewColumnWLXX.EditType = TEditType.etString; _gtAjaxGridViewColumnWLXX.FilterColumn = false; _gtAjaxGridViewColumnWLXX.ReadOnly = true; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWLXX); if (pzxx.XLXSBJPZ_XSZBXX == "Y") { _gtAjaxGridViewColumnWLXX.Visible = true; } else { _gtAjaxGridViewColumnWLXX.Visible = false; } //--38 //中标 gtAjaxGridViewColumn _gtAjaxGridViewColumnZB = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZB.HeaderText = "中标"; _gtAjaxGridViewColumnZB.DataField = "XLXSBJDMX_ZB"; _gtAjaxGridViewColumnZB.Width = Unit.Pixel(60); _gtAjaxGridViewColumnZB.EditType = TEditType.etCheckBox; _gtAjaxGridViewColumnZB.CalculateField = false; _gtAjaxGridViewColumnZB.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZB); _gtAjaxGridViewColumnZB.ReadOnly = true; if (pzxx.XLXSBJPZ_XSZBXX == "Y") { _gtAjaxGridViewColumnZB.Visible = true; } else { _gtAjaxGridViewColumnZB.Visible = false; } //--39 //中标数量 gtAjaxGridViewColumn _gtAjaxGridViewColumnZBSL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZBSL.HeaderText = "中标数量"; _gtAjaxGridViewColumnZBSL.DataField = "XLXSBJDMX_ZBSL"; _gtAjaxGridViewColumnZBSL.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZBSL.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZBSL.NumberDecimalPlace = 2; _gtAjaxGridViewColumnZBSL.ReadOnly = true; if (pzxx.XLXSBJPZ_XSZBXX == "Y") _gtAjaxGridViewColumnZBSL.Visible = true; else _gtAjaxGridViewColumnZBSL.Visible = false; _gtAjaxGridViewColumnZBSL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZBSL); //--40 //中标金额 gtAjaxGridViewColumn _gtAjaxGridViewColumnZBJE = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZBJE.HeaderText = "中标金额"; _gtAjaxGridViewColumnZBJE.DataField = "XLXSBJDMX_ZBJE"; _gtAjaxGridViewColumnZBJE.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZBJE.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZBJE.ReadOnly =true; _gtAjaxGridViewColumnZBJE.NumberDecimalPlace = 2; if (pzxx.XLXSBJPZ_XSZBXX == "Y") _gtAjaxGridViewColumnZBJE.Visible = true; else _gtAjaxGridViewColumnZBJE.Visible = false; _gtAjaxGridViewColumnZBJE.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZBJE); //——41 //添加维护人工号列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHRID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHRID.HeaderText = "维护人工号"; _gtAjaxGridViewColumnWHRID.DataField = "XLXSBJDMX_WHRID"; _gtAjaxGridViewColumnWHRID.Width = Unit.Pixel(70); _gtAjaxGridViewColumnWHRID.EditType = TEditType.etString; _gtAjaxGridViewColumnWHRID.Visible = false; _gtAjaxGridViewColumnWHRID.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHRID); //——42 //添加维护人列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHR = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHR.HeaderText = "维护人"; _gtAjaxGridViewColumnWHR.DataField = "XLXSBJDMX_WHR"; _gtAjaxGridViewColumnWHR.Width = Unit.Pixel(72); _gtAjaxGridViewColumnWHR.EditType = TEditType.etString; _gtAjaxGridViewColumnWHR.ReadOnly = true; _gtAjaxGridViewColumnWHR.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHR); //——43 //添加维护时间列 gtAjaxGridViewColumn _gtAjaxGridViewColumnWHSJ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnWHSJ.HeaderText = "维护时间"; _gtAjaxGridViewColumnWHSJ.DataField = "XLXSBJDMX_WHSJ"; _gtAjaxGridViewColumnWHSJ.Width = Unit.Pixel(125); _gtAjaxGridViewColumnWHSJ.EditType = TEditType.etDateTime; _gtAjaxGridViewColumnWHSJ.DateTimeEditKind = TDateTimeEditKinds.dtDateTime; _gtAjaxGridViewColumnWHSJ.ReadOnly = true; _gtAjaxGridViewColumnWHSJ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHSJ); //——44 //有无清单 gtAjaxGridViewColumn _gtAjaxGridViewColumnHasCLQD = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnHasCLQD.HeaderText = "有无清单"; _gtAjaxGridViewColumnHasCLQD.DataField = "HasCLQD"; _gtAjaxGridViewColumnHasCLQD.Width = Unit.Pixel(72); _gtAjaxGridViewColumnHasCLQD.EditType = TEditType.etString; _gtAjaxGridViewColumnHasCLQD.ReadOnly = true; _gtAjaxGridViewColumnHasCLQD.Visible = false; _gtAjaxGridViewColumnHasCLQD.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasCLQD); //——45 //有无用量定制申请记录 gtAjaxGridViewColumn _gtAjaxGridViewColumnHasYLZDSQ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnHasYLZDSQ.HeaderText = "有无用量制定申请"; _gtAjaxGridViewColumnHasYLZDSQ.DataField = "HasYLDZSQ"; _gtAjaxGridViewColumnHasYLZDSQ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnHasYLZDSQ.EditType = TEditType.etString; _gtAjaxGridViewColumnHasYLZDSQ.ReadOnly = true; _gtAjaxGridViewColumnHasYLZDSQ.Visible = false; _gtAjaxGridViewColumnHasYLZDSQ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasYLZDSQ); //——46 //更新基价因子值 gtAjaxGridViewColumn _gtAjaxGridViewColumnUpdJJYZList = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnUpdJJYZList.HeaderText = "更新基价因子值"; _gtAjaxGridViewColumnUpdJJYZList.DataField = "UpdJJYZList"; _gtAjaxGridViewColumnUpdJJYZList.Width = Unit.Pixel(72); _gtAjaxGridViewColumnUpdJJYZList.EditType = TEditType.etString; _gtAjaxGridViewColumnUpdJJYZList.ReadOnly = true; _gtAjaxGridViewColumnUpdJJYZList.Visible = false; _gtAjaxGridViewColumnUpdJJYZList.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnUpdJJYZList); //——47 //根据XLXSBJXHML能否查询出产品目录名称 gtAjaxGridViewColumn _gtAjaxGridViewColumnHasCPMLID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnHasCPMLID.HeaderText = "有无产品目录"; _gtAjaxGridViewColumnHasCPMLID.DataField = "HasCPMLID"; _gtAjaxGridViewColumnHasCPMLID.Width = Unit.Pixel(72); _gtAjaxGridViewColumnHasCPMLID.EditType = TEditType.etString; _gtAjaxGridViewColumnHasCPMLID.ReadOnly = true; _gtAjaxGridViewColumnHasCPMLID.Visible = false; _gtAjaxGridViewColumnHasCPMLID.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasCPMLID); //——48 //XLXSBJDMX_BJLY|报价来源 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJLY = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJLY.HeaderText = "报价来源"; _gtAjaxGridViewColumnBJLY.DataField = "XLXSBJDMX_BJLY"; _gtAjaxGridViewColumnBJLY.Width = Unit.Pixel(72); _gtAjaxGridViewColumnBJLY.EditType = TEditType.etString; _gtAjaxGridViewColumnBJLY.ReadOnly = true; _gtAjaxGridViewColumnBJLY.Visible = false; _gtAjaxGridViewColumnBJLY.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJLY); //——49 //XLXSBJDMX_BJTJCZ|报价调价操作 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJTJCZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJTJCZ.HeaderText = "报价调价操作"; _gtAjaxGridViewColumnBJTJCZ.DataField = "XLXSBJDMX_BJTJCZ"; _gtAjaxGridViewColumnBJTJCZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnBJTJCZ.EditType = TEditType.etString; _gtAjaxGridViewColumnBJTJCZ.ReadOnly = true; _gtAjaxGridViewColumnBJTJCZ.Visible = false; _gtAjaxGridViewColumnBJTJCZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJTJCZ); //——50 //PFYSQKBZ|盘费要素清空标志 gtAjaxGridViewColumn _gtAjaxGridViewColumnPFYSQKBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnPFYSQKBZ.HeaderText = "盘费要素清空标志"; _gtAjaxGridViewColumnPFYSQKBZ.DataField = "PFYSQKBZ"; _gtAjaxGridViewColumnPFYSQKBZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnPFYSQKBZ.EditType = TEditType.etString; _gtAjaxGridViewColumnPFYSQKBZ.ReadOnly = true; _gtAjaxGridViewColumnPFYSQKBZ.Visible = false; _gtAjaxGridViewColumnPFYSQKBZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnPFYSQKBZ); //——51 //HasFDJL|有无分段记录 gtAjaxGridViewColumn _gtAjaxGridViewColumnHasFDJL = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnHasFDJL.HeaderText = "盘费要素清空标志"; _gtAjaxGridViewColumnHasFDJL.DataField = "HasFDJL"; _gtAjaxGridViewColumnHasFDJL.Width = Unit.Pixel(72); _gtAjaxGridViewColumnHasFDJL.EditType = TEditType.etString; _gtAjaxGridViewColumnHasFDJL.ReadOnly = true; _gtAjaxGridViewColumnHasFDJL.Visible = false; _gtAjaxGridViewColumnHasFDJL.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasFDJL); //——52 //DZSC|定制生产 gtAjaxGridViewColumn _gtAjaxGridViewColumnDZSC = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnDZSC.HeaderText = "定制生产"; _gtAjaxGridViewColumnDZSC.DataField = "XLXSBJDMX_DZSC"; _gtAjaxGridViewColumnDZSC.Width = Unit.Pixel(72); _gtAjaxGridViewColumnDZSC.EditType = TEditType.etString; _gtAjaxGridViewColumnDZSC.ReadOnly = true; _gtAjaxGridViewColumnDZSC.Visible = false; _gtAjaxGridViewColumnDZSC.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnDZSC); //——53 //BJDHQCLCBTZ|报价单行情材料成本调整 gtAjaxGridViewColumn _gtAjaxGridViewColumnBJDHQCLCBTZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBJDHQCLCBTZ.HeaderText = "报价单行情材料成本调整"; _gtAjaxGridViewColumnBJDHQCLCBTZ.DataField = "XLXSBJDMX_BJDHQCLCBTZ"; _gtAjaxGridViewColumnBJDHQCLCBTZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnBJDHQCLCBTZ.EditType = TEditType.etString; _gtAjaxGridViewColumnBJDHQCLCBTZ.ReadOnly = true; _gtAjaxGridViewColumnBJDHQCLCBTZ.Visible = false; _gtAjaxGridViewColumnBJDHQCLCBTZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJDHQCLCBTZ); //---54最低限价报价单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; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJBJDID); //——55 //添加最低限价报价单序号列 gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJBJDXH = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnZDXJBJDXH.HeaderText = "最低限价报价单序号"; _gtAjaxGridViewColumnZDXJBJDXH.DataField = "XLXSBJDMX_ZDXJBJDXH"; _gtAjaxGridViewColumnZDXJBJDXH.Width = Unit.Pixel(80); _gtAjaxGridViewColumnZDXJBJDXH.EditType = TEditType.etNumber; _gtAjaxGridViewColumnZDXJBJDXH.NumberDecimalPlace = 0; _gtAjaxGridViewColumnZDXJBJDXH.ReadOnly = true; _gtAjaxGridViewColumnZDXJBJDXH.Visible = false; _gtAjaxGridViewColumnZDXJBJDXH.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJBJDXH); //——56 //下单标准 gtAjaxGridViewColumn _gtAjaxGridViewColumnXDBZID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnXDBZID.HeaderText = "下单标准"; _gtAjaxGridViewColumnXDBZID.DataField = "XLXSBJDMX_XDXLBZID"; _gtAjaxGridViewColumnXDBZID.Width = Unit.Pixel(70); _gtAjaxGridViewColumnXDBZID.EditType = TEditType.etString; _gtAjaxGridViewColumnXDBZID.Visible = false; _gtAjaxGridViewColumnXDBZID.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXDBZID); //——57 //下单型号 gtAjaxGridViewColumn _gtAjaxGridViewColumnXDXHID = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnXDXHID.HeaderText = "下单型号"; _gtAjaxGridViewColumnXDXHID.DataField = "XLXSBJDMX_XDXLXHID"; _gtAjaxGridViewColumnXDXHID.Width = Unit.Pixel(70); _gtAjaxGridViewColumnXDXHID.EditType = TEditType.etString; _gtAjaxGridViewColumnXDXHID.Visible = false; _gtAjaxGridViewColumnXDXHID.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXDXHID); //——58 //CPCF|产品重复 gtAjaxGridViewColumn _gtAjaxGridViewColumnCPCF = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCPCF.HeaderText = "产品重复"; _gtAjaxGridViewColumnCPCF.DataField = "CPCF"; _gtAjaxGridViewColumnCPCF.Width = Unit.Pixel(72); _gtAjaxGridViewColumnCPCF.EditType = TEditType.etString; _gtAjaxGridViewColumnCPCF.ReadOnly = true; _gtAjaxGridViewColumnCPCF.Visible = false; _gtAjaxGridViewColumnCPCF.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPCF); //——59 //CPSLCF|产品数量重复 gtAjaxGridViewColumn _gtAjaxGridViewColumnCPSLCF = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnCPSLCF.HeaderText = "产品数量重复"; _gtAjaxGridViewColumnCPSLCF.DataField = "CPSLCF"; _gtAjaxGridViewColumnCPSLCF.Width = Unit.Pixel(72); _gtAjaxGridViewColumnCPSLCF.EditType = TEditType.etString; _gtAjaxGridViewColumnCPSLCF.ReadOnly = true; _gtAjaxGridViewColumnCPSLCF.Visible = false; _gtAjaxGridViewColumnCPSLCF.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPSLCF); //——60 //JGBBJTZ|价格表表价调整 gtAjaxGridViewColumn _gtAjaxGridViewColumnJGBBJTZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnJGBBJTZ.HeaderText = "价格表表价调整"; _gtAjaxGridViewColumnJGBBJTZ.DataField = "XLXSBJDMX_JGBBJTZ"; _gtAjaxGridViewColumnJGBBJTZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnJGBBJTZ.EditType = TEditType.etString; _gtAjaxGridViewColumnJGBBJTZ.ReadOnly = true; _gtAjaxGridViewColumnJGBBJTZ.Visible = false; _gtAjaxGridViewColumnJGBBJTZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJGBBJTZ); //——61 //BZTXYS|标准提醒色 gtAjaxGridViewColumn _gtAjaxGridViewColumnBZTXS = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnBZTXS.HeaderText = "标准"; _gtAjaxGridViewColumnBZTXS.DataField = "BZTXYS"; _gtAjaxGridViewColumnBZTXS.Width = Unit.Pixel(72); _gtAjaxGridViewColumnBZTXS.EditType = TEditType.etString; _gtAjaxGridViewColumnBZTXS.ReadOnly = true; _gtAjaxGridViewColumnBZTXS.Visible = false; _gtAjaxGridViewColumnBZTXS.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBZTXS); //——62 //XLXSBJDMX_JGFBZ|JGF标志 gtAjaxGridViewColumn _gtAjaxGridViewColumnJGFBZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnJGFBZ.HeaderText = "JGF标志"; _gtAjaxGridViewColumnJGFBZ.DataField = "XLXSBJDMX_JGFBZ"; _gtAjaxGridViewColumnJGFBZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnJGFBZ.EditType = TEditType.etString; _gtAjaxGridViewColumnJGFBZ.ReadOnly = true; _gtAjaxGridViewColumnJGFBZ.Visible = false; _gtAjaxGridViewColumnJGFBZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJGFBZ); //——66 //用量制定明细调整 gtAjaxGridViewColumn _gtAjaxGridViewColumnYLZDYXTZ = new gtAjaxGridViewColumn(); _gtAjaxGridViewColumnYLZDYXTZ.HeaderText = "用量制定明细调整"; _gtAjaxGridViewColumnYLZDYXTZ.DataField = "YLZDYXTZ"; _gtAjaxGridViewColumnYLZDYXTZ.Width = Unit.Pixel(72); _gtAjaxGridViewColumnYLZDYXTZ.EditType = TEditType.etString; _gtAjaxGridViewColumnYLZDYXTZ.ReadOnly = true; _gtAjaxGridViewColumnYLZDYXTZ.Visible = false; _gtAjaxGridViewColumnYLZDYXTZ.FilterColumn = false; grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYLZDYXTZ); #endregion string sALJJCLSBJ = "按料价价差率算报价"; if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JGBBJBM)) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "料价价差率(%)"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "价差率(%)"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "价差额"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJDHQLJBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = bjflxx.XLXSBJFL_BJDHQLJBM.Trim(); } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM.Trim())) { sALJJCLSBJ = sALJJCLSBJ.Replace("报价", bjflxx.XLXSBJFL_BJBM); grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").HeaderText = sALJJCLSBJ; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim(); grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "金额"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "锁定"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").HeaderText = bjflxx.XLXSBJFL_JSJBM; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").HeaderText = bjflxx.XLXSBJFL_JSJBM+"金额"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").HeaderText = bjflxx.XLXSBJFL_JSJBM + "价差率(%)"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").HeaderText = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } if (bjflxx.XLXSBJFL_TZBJ.Trim().Equals("1")) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else { if (!bjflxx.XLXSBJFL_CPBJZDWPID.Equals("")) { string sWPIDS = "," + bjflxx.XLXSBJFL_CPBJZDWPID + ","; string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (sWPIDS.Contains(sWPID)) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 { //仅录入报价产品-栏目权限控制 SetJLRBJCPCol(bjflxx.XLXSBJFL_JLRBJCP, txtWPID.Value.Trim(), sHidJSLMList); if (!YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim())) { grdXLBJDMX.CanInsert = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_DYDJID").ReadOnly = true; } } string sMACID = "N_XLXSBJA"; if (N_MISPROAS.AppRuntime.GtipsVerStr == "8") { sMACID = "N_XLXSBJ8"; } Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如N_XLXSBJA if (dicBQBM.Count > 0) { foreach (KeyValuePair tab in CurListSetMap) { SetGridBQBM(tab.Value.Grid, dicBQBM); } } } //报价分类change时重新调整 因子列、与因子有关的维护项 显示情况 private void ReBuildYZColByBJFL(string sBJDYZText, string sTJYSList, string sYZWPIDList, string sReadOnlyYZ, string sZDWPIDList) { if (sBJDYZText.Equals("")) return; if (sTJYSList.Contains(",1,"))//1|付款方式 { cbxPJLX.Visible = true; lblPJLX.Visible = true; lblPJLXMH.Visible = true; lblFKSM.Visible = false; lblFKSMMH.Visible = false; txtFKSM.Visible = false; //下拉框赋值 TComboBox.SetComboBox("DBERP", cbxPJLX, " select XLXSBJDYZZ1_PJLX,SFPJ_PJMC from XLXSBJDYZZ1 left join SFPJ on SFPJ_PJLX=XLXSBJDYZZ1_PJLX where 1=1 " + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ1_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ1_YZID and XLXSTZYZ_MXBH ='BJD' " + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + " order by XLXSBJDYZZ1_PJLX", true); } else { cbxPJLX.Visible = false; lblPJLX.Visible = false; lblPJLXMH.Visible = false; lblFKSM.Visible = true; lblFKSMMH.Visible = true; txtFKSM.Visible = true; } if (sTJYSList.Contains(",8,"))//8|付款期限 { lblFKQXNR.Visible = false; linkFKQXNR.Visible = true; linkFKQXNRMH.Visible = true; cbxFKQXNR.Visible = true; txtFKQXNR.Visible = false; if (CheckFKQXTJB()) lblFKQXTJB.Visible = true; else lblFKQXTJB.Visible = false; TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + " order by ID", true); } else { lblFKQXNR.Visible = true; linkFKQXNR.Visible = false; linkFKQXNRMH.Visible = false; cbxFKQXNR.Visible = false; txtFKQXNR.Visible = true; lblFKQXTJB.Visible = false; } if (sTJYSList.Contains(",B,"))//B|销售单位 { linkSYDWID.Visible = true; linkSYDWIDMH.Visible = true; lblSYDWID.Visible = false; } else { linkSYDWID.Visible = false; linkSYDWIDMH.Visible = false; lblSYDWID.Visible = true; } 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(); } string[] sBJDYZ = sBJDYZText.Split(','); string[] sReadOnly = sReadOnlyYZ.Split(','); string[] sZDWPIDs = sZDWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < sBJDYZ.Length; i++) { if (!sBJDYZ[i].Trim().EndsWith("()")) { if (XLBJDUtils.GetYZXXByYZID(sBJDYZ[i].Split('|')[0].Trim()).XLXSTZYZ_TJLX == "1") grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); else grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "").Replace("(KD)", "(%)").Replace("(MP)", "(%)"); grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = true; grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).CalculateField = true; //不参与调价默认为只读 if (sBJDYZ[i].Trim().EndsWith("(XX)")) { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "(不参与调价)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)"); } if (sBJDYZ[i].Trim().EndsWith("(MX)") || sBJDYZ[i].Trim().EndsWith("(DX)")) { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 4; } else if (sBJDYZ[i].Trim().EndsWith("(JJ)"))//"加价"因子显示6位小数 { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 6; } else { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 2; } bool bReadOnly = true; if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) { for (int j = 0; j < sZDWPIDs.Length; j++) { string tmpYZID = sZDWPIDs[j].Split('|')[0].Trim(); if (tmpYZID.Equals(sBJDYZ[i].Split('|')[0].Trim())) { string tmpWPIDs = "," + sZDWPIDs[j].Split('|')[1].Trim() + ","; string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); if (tmpWPIDs.Contains("," + curWPID + ",")) { bReadOnly = true; } else { bReadOnly = false; } } else { //只设置到只读,未设置到流程 } } grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).ReadOnly = bReadOnly; } if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) { grdXLBJDMX.FindColumnByFieldName("TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = true; } } else { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = false; if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) { grdXLBJDMX.FindColumnByFieldName("TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = false; } } } #region 根据适用工作流事务隐藏因子栏目 //循环可见事务 for (int i = 0; i < sYZWPIDs.Length; i++) { string tmpYZID = sYZWPIDs[i].Split('|')[0].Trim(); string tmpWPIDs = "," + sYZWPIDs[i].Split('|')[1].Trim() + ","; string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); if (!tmpWPIDs.Contains("," + curWPID + ",")) { grdXLBJDMX.FindColumnByFieldName("TZYZ_" + tmpYZID).Visible = false; } } #endregion string sMACID = "N_XLXSBJA"; if (N_MISPROAS.AppRuntime.GtipsVerStr == "8") { sMACID = "N_XLXSBJ8"; } Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如N_XLXSBJA if (dicBQBM.Count > 0) { foreach (KeyValuePair tab in CurListSetMap) { SetGridBQBM(tab.Value.Grid, dicBQBM); } } } //报价分类change时重新调整 private void ReBuildJJColByBJFL(string sTZJGBBJ, string sTZBJDHQLJ, int iXSWS, string sHidJSLMList) { BJFLXX bjflxx=XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); //显示铜价 if (!bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("")) { lblTJ.Visible = true; txtTJ.Visible = true; lblTJMH.Visible = true; } else { lblTJ.Visible = false; txtTJ.Visible = false; lblTJMH.Visible = false; } //显示铝价 if (!bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) { lblLJ.Visible = true; txtLJ.Visible = true; lblLJMH.Visible = true; } else { lblLJ.Visible = false; txtLJ.Visible = false; lblLJMH.Visible = false; } if (!bjflxx.XLXSBJFL_TZCLHQ.Equals("Y") && bjflxx.XLXSBJFL_MXBH.Equals("JGB")) { lblTJ.Enabled = false; lblLJ.Enabled = false; } if (ControlState != TControlState.ctsBrowse) { if (grdXLBJDMX.RowCount > 0 && ControlState == TControlState.ctsEdit) { txtTJ.Enabled = false; txtLJ.Enabled = false; } else { if (bjflxx.XLXSBJFL_MXBH.Equals("JGB")) { txtTJ.Enabled = false; txtLJ.Enabled = false; } else { txtTJ.Enabled = true; txtLJ.Enabled = true; } } } if (bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("") && bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) { aRefTLJ.Style["display"] = "none"; cbxJGBID.Width = 358; } else { if (!bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) cbxJGBID.Width = 128; else cbxJGBID.Width = 242; if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) aRefTLJ.Style["display"] = "block"; else aRefTLJ.Style["display"] = "none"; //新建时,给铜价、铝价赋初始值 if (ControlState == TControlState.ctsInsert) { Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); } } //计运费 if (bjflxx.XLXSBJFL_JYF.Equals("Y")) { trYSDW.Visible = true; //运输节点&运输单位 TComboBox.SetComboBox("DBERP", cbxYSJDID, "select YSJD_YSJDID as ID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) as NAME from YSJD WHERE ISNULL(YSJD_TYBZ, 'N') <> 'Y' ORDER BY YSJD_ZJM ", true); TComboBox.SetComboBox("DBERP", cbxGYSID, "select YSDW_GYSID AS ID,GYS_MC AS NAME from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE ISNULL(YSDW_TYBZ, 'N') <> 'Y' ORDER BY ID ", true); } else { trYSDW.Visible = false; cbxYSJDID.SelectedValue = ""; cbxGYSID.SelectedValue = ""; txtYSFY.Value = 0; } if (bjflxx.XSXLBZMS()) { grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").Visible = false; } //显示报价单行情料价 if (bjflxx.XSBJDHQLJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; //显示价格表行情料价 if (bjflxx.XSLJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; //显示价格表基价 if (bjflxx.XSJGBJJChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; //显示表价价差率 if (bjflxx.XSJCL()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; if(bjflxx.XLXSBJFL_XSLSBJ=="Y") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = false; //显示料价价差率 if (bjflxx.XSLJJCL()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; //最低限价 if (bjflxx.XSZDXJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").ReadOnly = true; if (!bjflxx.XLXSBJFL_ZDXJJCLLX.Trim().Equals("")) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; } //结算价 if (bjflxx.XSJSJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").Visible = false; } if (bjflxx.XSJSJ()&&!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible = false; } //仅报价单行情料价显示时显示按料价价差率算报价 if (bjflxx.XSBJDHQLJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").Visible = false; //显示调整报价 if (bjflxx.XSTZCPBJChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; //显示调整最低限价 if (bjflxx.XSTZZDXJ()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").ReadOnly = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").CalculateField = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").ReadOnly = true; } //显示调整金额 if (bjflxx.XSTZBJJEChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = "调整后报价金额"; grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = "报价金额"; grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; } if (bjflxx.XSJGBBJJCEChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; } //显示截面比公式栏目 if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = false; //显示意向价栏目 if (bjflxx.XSYXJChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS); } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").Visible = false; if (!bjflxx.XLXSBJFL_YXJJCLLX.Equals("")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").NumberDecimalPlace = 2; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").Visible = false; //显示表价料价价差率 if (bjflxx.XSBJLJJCL()) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 //显示印字 if (bjflxx.XSYZChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YZ").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YZ").Visible = false; //显示原始产品 if (bjflxx.XSYSCPChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YSCP").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YSCP").Visible = false; if (pzxx.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_KHWLID").Visible = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_KHWLID").Visible = false; //显示包号 if (bjflxx.XSBHChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_FBH").Visible = true; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_FBH").Visible = false; if (bjflxx.XSCPBJXJChecked()) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJXJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJKD").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJJJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XJBJCE").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJEXJ").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJKD").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJJJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XJBJCE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJEXJ").Visible = false; } //显示中标信息 if (pzxx.XLXSBJPZ_XSZBXX == "Y") { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = true; grdXLBJDMX.FindColumnByFieldName("WLXX").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZB").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBSL").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBJE").Visible = true; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = false; grdXLBJDMX.FindColumnByFieldName("WLXX").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBSL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBJE").Visible = false; } #region 编辑权限 //调整表价 if (XLBJDUtils.IsXSY(CurSession.UserId.Trim()) || XLBJDUtils.IsJXS(CurSession.UserId.Trim())) { if (GetOption("BJU049") == "N") grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; } else { if (sTZJGBBJ.Trim().Equals("1"))//1|不允许调整表价 { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; } else { if (!bjflxx.XLXSBJFL_JGBBJZDWPID.Equals("")) { string sWPIDS = "," + bjflxx.XLXSBJFL_JGBBJZDWPID + ","; string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (sWPIDS.Contains(sWPID)) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; } } //报价单行情料价 if (sTZBJDHQLJ.Trim().Equals("1")) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = false; //报价 if (bjflxx.XLXSBJFL_TZBJ.Equals("1")) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else { if (!bjflxx.XLXSBJFL_CPBJZDWPID.Equals("")) { string sWPIDS = "," + bjflxx.XLXSBJFL_CPBJZDWPID + ","; string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (sWPIDS.Contains(sWPID)) grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; } if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改料价价差率 { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").ReadOnly = true; if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改表价价差率 { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").ReadOnly = false; } else grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").ReadOnly = true; #endregion //表价别名 string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM.Trim().Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM; btnCLCB.Width = XLBJDUtils.GetBtnLength(ref sJGBBJBM, true); btnCLCB.Caption = sJGBBJBM; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM; string sALJJCLSBJ = "按料价价差率算报价"; if (!string.IsNullOrEmpty(sJGBBJBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").HeaderText = sJGBBJBM.Trim() + "料价价差率(%)"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = sJGBBJBM.Trim() + "价差率(%)"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText = sJGBBJBM.Trim() + "价差额"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJDHQLJBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = bjflxx.XLXSBJFL_BJDHQLJBM.Trim(); } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM.Trim())) { sALJJCLSBJ = sALJJCLSBJ.Replace("报价", bjflxx.XLXSBJFL_BJBM); grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").HeaderText = sALJJCLSBJ; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim(); grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "金额"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "锁定"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").HeaderText = bjflxx.XLXSBJFL_JSJBM; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").HeaderText = bjflxx.XLXSBJFL_JSJBM + "金额"; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").HeaderText = bjflxx.XLXSBJFL_JSJBM + "价差率(%)"; } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").HeaderText = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } if (bjflxx.XLXSBJFL_XHGGYMHJS.Equals("Y")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.R; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.R; } else { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.A; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.A; } //在SetJLRBJCPCol方法设置栏目隐藏状态前统一设置栏目的默认显示状态 grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; //仅录入报价产品-栏目权限控制 SetJLRBJCPCol(bjflxx.XLXSBJFL_JLRBJCP, txtWPID.Value.Trim(), sHidJSLMList); string sMACID = "N_XLXSBJA"; if (N_MISPROAS.AppRuntime.GtipsVerStr == "8") { sMACID = "N_XLXSBJ8"; } Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如N_XLXSBJA if (dicBQBM.Count > 0) { foreach (KeyValuePair tab in CurListSetMap) { SetGridBQBM(tab.Value.Grid, dicBQBM); } } } /// /// 仅录入报价产品-栏目权限控制 /// private void SetJLRBJCPCol(string sJLRBJCP, string sWPID, string sHidJSLMList) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sLRYZID = ""; if (!bjflxx.XLXSBJFL_XSYLRYZID.Trim().Equals("") && CMISproDataBase.ExistsRecord("DBERP",string.Format("SELECT 1 FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID='{0}' AND (ISNULL(XLXSTZYZ_WPIDLIST,' ') = ' ' OR (','||rtrim(XLXSTZYZ_WPIDLIST)||',') like '%,{1},%') ", bjflxx.XLXSBJFL_XSYLRYZID.Trim(),sWPID))) { sLRYZID = bjflxx.XLXSBJFL_XSYLRYZID.Trim(); } lblZJE.Visible = true; lbllblZJEMH.Visible = true; txtZJE.Visible = true; if (sWPID.Equals(""))//新建 { if (sJLRBJCP.Equals("Y")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; for (int i = 1; i <= 20; i++) { grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } if (!sLRYZID.Equals("")) grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; lblZJE.Visible = false; lbllblZJEMH.Visible = false; txtZJE.Visible = false; grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").Visible = false; if (!bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) { bool bExistsBZSW = false; string[] sKJJGHJ = bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Split(','); for (int i = 0; i < sKJJGHJ.Length; i++) { string sKJJGHJBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sKJJGHJ[i].Trim()); if (sKJJGHJBZSW.Equals("0010")) { bExistsBZSW = true; break; } } if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("") && bExistsBZSW) { string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); for (int i = 0; i < sKJJGLM.Length; i++) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_"+sKJJGLM[i].Trim()).Visible = true; } } } btnBJLR.Visible = false; divBarQY.Visible = false; btnCLCB.Visible = false; btnLJ.Visible = false; btnBJ.Visible = false; btnPLTJNEW.Visible = false; btnBDBJ.Visible = false; btnCLCYZD.Visible = false; btnYLZDFP.Visible = false; btnBJFK.Visible = false; } } else { string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sWPID); if (sBZSW.Equals("0010")) { if (sJLRBJCP.Equals("Y")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; for (int i = 1; i <= 20; i++) { grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } if (!sLRYZID.Equals("")) grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; lblZJE.Visible = false; lbllblZJEMH.Visible = false; txtZJE.Visible = false; grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").Visible = false; if (!bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) { bool bExistsBZSW = false; string[] sKJJGHJ = bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Split(','); for (int i = 0; i < sKJJGHJ.Length; i++) { string sKJJGHJBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sKJJGHJ[i].Trim()); if (sKJJGHJBZSW.Equals("0010")) { bExistsBZSW = true; break; } } if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("") && bExistsBZSW) { string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); for (int i = 0; i < sKJJGLM.Length; i++) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_" + sKJJGLM[i].Trim()).Visible = true; } } } btnBJLR.Visible = false; divBarQY.Visible = false; btnCLCB.Visible = false; btnLJ.Visible = false; btnBJ.Visible = false; btnBDBJ.Visible = false; btnCLCYZD.Visible = false; btnYLZDFP.Visible = false; btnBJFK.Visible = false; } } else { if (txtSQRID.Value.Trim().Equals(CurSession.RYID.Trim())) { //单据不在第一步0010环节,报价申请人只允许比第一步时多看到“报价”、“报价金额”两个栏目,“报价数量”至“备注”之间的其他栏目仍然控制隐藏。 //根据报价分类中可见价格栏目控制:表价“、“报价”、“报价金额” if (sJLRBJCP.Equals("Y")) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; lblZJE.Visible = false; lbllblZJEMH.Visible = false; txtZJE.Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; if (bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) { if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("")) { string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); for (int i = 0; i < sKJJGLM.Length; i++) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_"+sKJJGLM[i].Trim()).Visible = true; } } } else if (("," + bjflxx.XLXSBJFL_XSYKJJGHJ.Trim() + ",").Contains("," + sWPID + ",")) { if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("")) { string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); for (int i = 0; i < sKJJGLM.Length; i++) { grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_" + sKJJGLM[i].Trim()).Visible = true; } } } grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; for (int i = 1; i <= 20; i++) { grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; } if (!sLRYZID.Equals("")) grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; //grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; btnBJLR.Visible = false; divBarQY.Visible = false; btnCLCB.Visible = false; btnLJ.Visible = false; btnBJ.Visible = false; btnBDBJ.Visible = false; btnCLCYZD.Visible = false; btnYLZDFP.Visible = false; btnBJFK.Visible = false; } } } } if (!sJLRBJCP.Equals("Y")) { if (CheckLL()) { btnBJLR.Visible = true; } else { btnBJLR.Visible = false; divBarQY.Visible = false; } if (CheckLJ()) { btnLJ.Visible = true; } else { btnLJ.Visible = false; } string sYWSW = TWorkflow.Utils.WFGetYHSWID(this.WorkFlowId, "0030");//0030|反馈 if (Convert.ToString("," + sYWSW + ",").Contains("," + sWPID + ",") || sWPID.Equals("ZZZZ")) { btnBJFK.Visible = true; } else { btnBJFK.Visible = false; } btnCLCB.Visible = true; btnBJ.Visible = true; if (CheckModule("100860156")) { btnPLTJNEW.Visible = true; } else { btnPLTJNEW.Visible = false; } btnBDBJ.Visible = true; //材料用量制定 if (CheckModule("102579007")) { btnCLCYZD.Visible = true; if (CheckYLZDFP()) btnYLZDFP.Visible = true; else btnYLZDFP.Visible = false; //若注册了102109005|线缆材料用量认领,即不允许派发,统一用制定 if (DSActiveModule.IsActiveModule(102109005)) { btnCLCYZD.Visible = true; btnYLZDFP.Visible = false; btnCLCYZD.Caption = "材料用量认领"; } } else { btnCLCYZD.Visible = false; btnYLZDFP.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": btnBJSM.Visible = false; break; case "btnMXOper": btnMXOper.Visible = false; break; case "btnCLCB": btnCLCB.Visible = false; break; case "btnBJLR": btnBJLR.Visible = false; divBarQY.Visible = false; break; case "btnLJ": btnLJ.Visible = false; break; case "btnBJ": btnBJ.Visible = false; break; case "btnPLTJNEW": btnPLTJNEW.Visible = false; break; case "btnBDBJ": btnBDBJ.Visible = false; break; case "btnCLCYZD": { btnCLCYZD.Visible = false; btnYLZDFP.Visible = false; } break; case "btnZDFX": btnZDFX.Visible = false; break; case "btnBJFK": btnBJFK.Visible = false; break; case "txtBZ": txtBZ.Visible = false; lblBZ.Visible = false; lblBZMH.Visible = false; break; default: if (grdXLBJDMX.FindColumnByFieldName(sLMID) != null) { grdXLBJDMX.FindColumnByFieldName(sLMID).Visible = false; if (sLMID.Equals("XLXSBJDMX_BJJE")) { lblZJE.Visible = false; lbllblZJEMH.Visible = false; txtZJE.Visible = false; } } break; } } } #endregion btnAGXJLUHZ.Visible = btnBJLR.Visible; if (!txtBJSQDH.Value.Trim().Equals("") && CheckXSYBJSQ_SS()) { btnBJFK.Visible = false; btnWJGL.Visible = true; } else btnWJGL.Visible = false; } public void ReadBBYS(string sRep, string sBJFLID, string sBJDID, string sBJRQ, string sJGBID, string sJGCIDS, string sXSQYID, bool bHSBZ, string sBJLY, string sBJU003, string sDefaultXLBZID, string sPJLX, string sFKQXNR, string sSYDWID, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, string sCPBJMRXSWS) { if (dicReadBBYS.ContainsKey(CurSession.UserId) && dicReadBBYS[CurSession.UserId] == "N") { dicReadBBYS[CurSession.UserId] = "Y"; byte[] b = Convert.FromBase64String(sRep); string sBBMB = ""; string sRow = "";//sRow变量:记录元组的行号,用于在换行时处理电压等级、计量单位、报价数量为空时赋值为上一条数据的问题 string sValue = ""; string sXLXHID = ""; string sXLGGID = ""; string sDYDJ = ""; string sST = ""; string sBJSL = "0"; string sBJCP = ""; string sYXJG = "0"; string sYZ = ""; string sYSCP = ""; string sBH = ""; string sCPBJXJ = "0"; string sBJJEXJ = "0"; string sWGCPBZ = ""; byte[] zipbuf = new byte[0]; zipbuf = ZlibCompress.DecompressBytes(b); sBBMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length); if (!string.IsNullOrEmpty(sBBMB.Trim())) { int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + sBJDID + "'") + 1; int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + sBJDID + "'") + 1; string sErrorNum = ""; int iStartXH = 0; if (iStartXH == 0) { iStartXH = iXH; } //A|× B|* string sXLJGU007 = GetOption(102579000, "XLJGU007"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; string sXSYXJ = bjflxx.XLXSBJFL_XSYXJ; string sXSYZ = bjflxx.XLXSBJFL_XSYZ; string sXSYSCP = bjflxx.XLXSBJFL_XSYSCP; string sXSBH = bjflxx.XLXSBJFL_XSFBH; string sXSCPBJXJ = bjflxx.XLXSBJFL_XSCPBJXJ; //动态添加的栏目序号 int ColumnIndex = 7; int indexYXJ = 0; int indexYZ = 0; int indexBZ = 0; int indexBJCP = 0; int indexYSCP = 0; int indexBH = 0; int indexCPBJXJ = 0; int indexBJJEXJ = 0; if (sXSYXJ == "Y") indexYXJ = ++ColumnIndex; if (sXSYZ == "Y") indexYZ = ++ColumnIndex; indexBZ = ++ColumnIndex; indexBJCP = ++ColumnIndex; if (sXSYSCP == "Y") indexYSCP = ++ColumnIndex; if (sXSBH == "Y") indexBH = ++ColumnIndex; if (sXSCPBJXJ == "Y") { indexCPBJXJ = ++ColumnIndex; indexBJJEXJ = ++ColumnIndex; } Dictionary dicDRMXBZ = new Dictionary(); dicDRMXBZ.Clear(); sSQL.Clear(); sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 "); DataSet dsXLBZ = dberp.OpenDataSet(sSQL); if (dsXLBZ.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++) { dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim()); } } XmlDocument xml = new XmlDocument(); xml.LoadXml(sBBMB); XmlNode XmlRoot = xml.SelectSingleNode("Report"); XmlNodeList XmlRootList = XmlRoot.SelectNodes("Cells"); try { dberp.BeginTrans(); sSQL.Clear(); sSQL.Add(" insert into XLXSBJDMX( "); sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, "); sSQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); sSQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_TZQBJJE, XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ)"); sSQL.Add(" values("); sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID, "); sSQL.Add(" :XLXSBJDMX_XLBZID,:XLXSBJDMX_XDXLBZID,:XLXSBJDMX_XDXLXHID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_BJCPSD,:XLXSBJDMX_WGCPBZ, "); sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ,:XLXSBJDMX_BJSDBZ,:XLXSBJDMX_TZQBJJE, :XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, "); sSQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_YXJG,:XLXSBJDMX_YZ,:XLXSBJDMX_YSCP,:XLXSBJDMX_FBH,isnull(:XLXSBJDMX_CPBJXJ,0),isnull(:XLXSBJDMX_BJJEXJ,0),:XLXSBJDMX_BZ, :XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ)"); sSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; foreach (XmlNode XmlKey in XmlRootList) { for (int i = 0; i < XmlKey.ChildNodes.Count; i++) { XmlNode XmlKeyC = XmlKey.ChildNodes[i]; for (int j = 0; j < XmlKeyC.ChildNodes.Count; j++) { if (float.Parse(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim()) >= 2) { //判断是否换行了 if (!sRow.Equals(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim())) { #region 换行时,插入前一行数据 if (!sRow.Equals("")) { string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sST; string tmpDYDJID = sDYDJ; bool bExistCLQD = XLBJDUtils.ExistCLQD(ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID); if (bExistCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sST = tmpXLBZID; sDYDJ = tmpDYDJID; //重新赋值 sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJ; sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sST; if (sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + "-" + sDYDJ + " " + sXLGGID; } } if (!sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH; sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); //string sJLDW = sSQL.ParamByName("XLXSBJDMX_JLDW").Value.ToString().Trim(); //sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0; sSQL.ParamByName("XLXSBJDMX_YXJG").Value = CMISproConvert.StrToFloat(sYXJG,0); if (CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString()) != 0) { //sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = sCPBJ; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "Y"; } else { //sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJJE").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJSL, 0) * CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString(), 0), 2); sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = sSQL.ParamByName("XLXSBJDMX_BJJE").Value; sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N"; if (XLBJDUtils.ISDZBZ(sST)) { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_WHR").Value = CurSession.UserName; sSQL.ParamByName("XLXSBJDMX_WHRID").Value = CurSession.UserId; sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); iXH++; iXSSX++; } #endregion sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = ""; sST = ""; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = ""; sDYDJ = ""; string sMRJLDW = GetMRJLDWByJBXH(sXLXHID); if (sMRJLDW.Equals("")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sBJU003; else sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sMRJLDW; sSQL.ParamByName("XLXSBJDMX_BJSL").Value = 0; sBJSL = "0"; sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0; sSQL.ParamByName("XLXSBJDMX_YXJG").Value = 0; sYXJG = "0"; sYZ = ""; sYSCP = ""; sBH = ""; sWGCPBZ = ""; //备注清空 sSQL.ParamByName("XLXSBJDMX_BZ").Value = ""; //报价产品 sSQL.ParamByName("XLXSBJDMX_BJCP").Value = ""; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N"; sBJCP = ""; sRow = XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim(); } sValue = XmlKeyC.ChildNodes[j].Attributes["Value"].Value.Trim(); if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "1") { sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sValue; sXLXHID = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "2") { if (sXLJGU007.Equals("A")) { sValue = sValue.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sValue = sValue.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sValue; sXLGGID = sValue; sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + " " + sXLGGID; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "3") { string sXLXBZID = XLBJDUtils.GetBZXLZBZID(sValue, sDefaultXLBZID, dicDRMXBZ); sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sXLXBZID; sST = sXLXBZID; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "4") { sValue = sValue.Replace('K', 'k').Replace('v', 'V'); sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sValue; sDYDJ = sValue; sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + "-" + sValue + " " + sXLGGID; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "5") { string sMRJLDW = GetMRJLDWByJBXH(sXLXHID); if (sValue.Trim().Equals("")) { if(sMRJLDW.Equals("")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sBJU003; else sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sMRJLDW; } else { if (sValue.Trim().ToUpper().Equals("KM")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = "Km"; else if (sValue.Trim().ToUpper().Equals("M")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = "M"; else if (sValue.Trim().ToUpper().Equals("KG")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = "Kg"; else if (sValue.Trim().ToUpper().Equals("T")) sSQL.ParamByName("XLXSBJDMX_JLDW").Value = "T"; else sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sValue.Trim(); } } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "6") { sSQL.ParamByName("XLXSBJDMX_BJSL").Value = CMISproConvert.StrToFloat(sValue, 0); sBJSL = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "7") { sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = CMISproConvert.StrToFloat(sValue, 0); } if (indexYXJ != 0&&XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexYXJ.ToString()) { sYXJG = sValue; sSQL.ParamByName("XLXSBJDMX_YXJG").Value = CMISproConvert.StrToFloat(sYXJG, 0); } if (indexYZ != 0&&XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexYZ.ToString()) { sYZ = sValue; sSQL.ParamByName("XLXSBJDMX_YZ").Value = sYZ; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexBZ.ToString()) { sSQL.ParamByName("XLXSBJDMX_BZ").Value = sValue; } if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexBJCP.ToString()) { sBJCP = sValue; sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP; } if (indexYSCP != 0 && XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexYSCP.ToString()) { sYSCP = sValue; sSQL.ParamByName("XLXSBJDMX_YSCP").Value = sYSCP; } if (indexBH != 0 && XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexBH.ToString()) { sBH = sValue; sSQL.ParamByName("XLXSBJDMX_FBH").Value = sBH; } if (indexCPBJXJ != 0 && XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexCPBJXJ.ToString()) { sCPBJXJ = sValue; sSQL.ParamByName("XLXSBJDMX_CPBJXJ").Value = CMISproConvert.StrToFloat(sCPBJXJ, 0); } if (indexBJJEXJ != 0 && XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == indexBJJEXJ.ToString()) { sBJJEXJ = sValue; sSQL.ParamByName("XLXSBJDMX_BJJEXJ").Value = CMISproConvert.StrToFloat(sBJJEXJ, 0); } } } } } #region 插入最后一行 if (!sRow.Equals("")) { string tmpXLXHID = sXLXHID; string tmpXLGGID = sXLGGID; string tmpXLBZID = sST; string tmpDYDJID = sDYDJ; bool bExistCLQD = XLBJDUtils.ExistCLQD(ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID); if (bExistCLQD) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sST = tmpXLBZID; sDYDJ = tmpDYDJID; //重新赋值 sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJ; sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sST; if (sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + "-" + sDYDJ + " " + sXLGGID; } } if (!sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH; sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0; sSQL.ParamByName("XLXSBJDMX_YXJG").Value = CMISproConvert.StrToFloat(sYXJG, 0); sSQL.ParamByName("XLXSBJDMX_YZ").Value = sYZ; sSQL.ParamByName("XLXSBJDMX_YSCP").Value = sYSCP; sSQL.ParamByName("XLXSBJDMX_FBH").Value = sBH; sSQL.ParamByName("XLXSBJDMX_CPBJXJ").Value = CMISproConvert.StrToFloat(sCPBJXJ, 0); sSQL.ParamByName("XLXSBJDMX_BJJEXJ").Value = CMISproConvert.StrToFloat(sBJJEXJ, 0); if (CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString()) != 0) { sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJJE").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJSL, 0) * CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString(), 0), 2).ToString(); sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = sSQL.ParamByName("XLXSBJDMX_BJJE").Value; sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N"; if (XLBJDUtils.ISDZBZ(sST)) { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_WHR").Value = CurSession.UserName; sSQL.ParamByName("XLXSBJDMX_WHRID").Value = CurSession.UserId; sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); iXH++; iXSSX++; } XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, sBJDID, "", iStartXH - 1); #endregion string sBJFLIDList = GetOption("BJU038"); if (!string.IsNullOrEmpty(sBJFLIDList) && sBJFLIDList.Contains(cbxBJFLID.SelectedValue.Trim())) { PPBZDY(dberp, sSQL, sBJDID, iStartXH,sJGBID); } XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, sBJDID, "", iStartXH-1, ref sErrorNum); XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, sBJDID, iStartXH, GetOption("BJU002"), sBJU003, GetOption("BJU018"), CurSession.UserId, CurSession.UserName, ref sErrorNum); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } } } } private void PPBZDY(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH,string sJGBID) { if (!string.IsNullOrEmpty(txtMRBZID.Value)) { #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" )"); //根据型号、规格就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID)) = 2 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and tar.XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID "); SQL.Add(", tar.XLXSBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pXLBZID").Value = txtMRBZID.Value; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tag"); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" and XLXSCLQD_XLBZID = :pXLBZID "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID FROM XLXSCLQD b "); SQL.Add(" WHERE a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and b.XLXSCLQD_XLBZID = :pXLBZID and exists( "); SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID)) = 2 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID ) "); SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); SQL.Add(" , XLXSBJDMX_DYDJID=c.XLXSCLQD_DYDJID "); SQL.ParamByName("pXLBZID").Value = txtMRBZID.Value; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=b.XLXSJGBMX_DYDJID"); SQL.Add(" )"); //根据型号、规格、标准就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=XLXSJGBMX_DYDJID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_DYDJID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_DYDJID)) = 3 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.DYDJID = b.XLXSJGBMX_DYDJID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLXSBJDMX_DYDJID=sor.DYDJID "); SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and tar.XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; SQL.ParamByName("pXLBZID").Value = txtMRBZID.Value; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" and XLXSCLQD_XLBZID = :pXLBZID "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID FROM XLXSCLQD b "); SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and a.XLXSCLQD_DYDJID = b.XLXSCLQD_DYDJID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ'and b.XLXSCLQD_XLBZID = :pXLBZID and exists( "); SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSCLQD_DYDJID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID"); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_DYDJID)) = 3 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' ' "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID ) "); SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; SQL.ParamByName("pXLBZID").Value = txtMRBZID.Value; #endregion } //先价格表,再材料清单 #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" )"); //根据型号、规格就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID)) = 2 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and tar.XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID "); SQL.Add(", tar.XLXSBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、标准,匹配唯一电压等级 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_XLBZID=b.XLXSJGBMX_XLBZID"); SQL.Add(" )"); //根据型号、规格、标准就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_XLBZID=XLXSJGBMX_XLBZID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_XLBZID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_XLBZID)) = 3 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.XLBZID = b.XLXSJGBMX_XLBZID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLXSBJDMX_XLBZID = sor.XLBZID "); SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_XLBZID <> ' ' and tar.XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and tar.XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLXSBJDMX_DYDJID=sor.DYDJID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX b "); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=b.XLXSJGBMX_DYDJID"); SQL.Add(" )"); //根据型号、规格、标准就能唯一确定产品的价格表明细记录 SQL.Add(" and exists ( "); SQL.Add(" select a.XLXHID, a.XLGGID from "); SQL.Add(" ( "); SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_DYDJID as DYDJID "); SQL.Add(" from XLXSJGBMX"); SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); //缩小价格表明细的范围 SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID"); SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=XLXSJGBMX_DYDJID"); SQL.Add(" )"); SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_DYDJID "); SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_DYDJID)) = 3 "); SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.DYDJID = b.XLXSJGBMX_DYDJID "); SQL.Add(" ) "); SQL.Add(" ) sor "); SQL.Add(" on( "); SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID "); SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID "); SQL.Add(" and tar.XLXSBJDMX_DYDJID=sor.DYDJID "); SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID <> ' ' "); SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and tar.XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" ) "); SQL.Add(" when matched then update set "); SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格,匹配唯一标准、电压等级 SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tag"); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID FROM XLXSCLQD b "); SQL.Add(" WHERE a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID)) = 2 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID ) "); SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); SQL.Add(" , XLXSBJDMX_DYDJID=c.XLXSCLQD_DYDJID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、标准,匹配唯一电压等级 SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID FROM XLXSCLQD b "); SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and a.XLXSCLQD_XLBZID = b.XLXSCLQD_XLBZID"); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID "); SQL.Add(" and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID"); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_XLBZID)) = 3 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and XLXSBJDMX_XLBZID <> ' ' and XLXSBJDMX_DYDJID = ' ' "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID ) "); SQL.Add(" when matched then update set XLXSBJDMX_DYDJID =c.XLXSCLQD_DYDJID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; dberp.ExecSQL(SQL); #endregion #region 根据型号、规格、电压等级,匹配唯一标准 SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a "); SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' "); SQL.Add(" and exists ( "); SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID FROM XLXSCLQD b "); SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID "); SQL.Add(" and a.XLXSCLQD_DYDJID = b.XLXSCLQD_DYDJID "); SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( "); SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSCLQD_DYDJID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID "); SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID"); SQL.Add(" and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID"); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" ) "); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID "); SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_DYDJID)) = 3 "); SQL.Add(" ) "); SQL.Add(" ) c "); SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' "); SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' ' "); SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_XH>=:pSTARTXH "); SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID ) "); SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pSTARTXH").Value = startBJDXH; #endregion } protected void OpenBB() { //bReadBBYS = false; if (dicReadBBYS.ContainsKey(CurSession.UserId)) { dicReadBBYS[CurSession.UserId] = "N"; } else { dicReadBBYS.Add(CurSession.UserId, "N"); } string sWizard = ""; string sBBYSJS = ""; string sReportizard = ""; string sBBMB = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); //导入前的缺省样式 string sXML = ""; byte[] b4 = new byte[0]; b4 = Encoding.Default.GetBytes(sXML); byte[] zipbuf4 = ZlibCompress.CompressBytes(b4); sBBMB = Convert.ToBase64String(zipbuf4); try { string sRun = string.Format("document.all.ActiveXBBForBBYS.OperationType = 'DesignReport';document.all.ActiveXBBForBBYS.EncodedReport = \'{0}\';", sBBMB); sBBYSJS = @" "; TPageParams tpp = new TPageParams(); tpp.Title = "按复制内容导入"; tpp.UrlPath = "../N_MODEL/Dialog/BBYS_YSSJ.aspx"; tpp.AddString("BBLink", "Y"); tpp.AddExtString("sRun", sRun.Trim()); tpp.AddExtString("Save", sBBYSJS); tpp.AddExtString("Wizard", sWizard); tpp.AddExtString("ReportWizard", sReportizard); tpp.AddString("FormTitle", "报表样式"); OpenFuncModuleDialog(100210034, tpp); } catch { ShowMessage("打开报表失败!"); } } private void SetGridVisible_BJFLID(string sBJFLID) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (sBJFLID.Equals("")) { return; } //处理权限问题 if (ControlState == TControlState.ctsBrowse) { string sBJU012 = GetOption("BJU012"); if (!sBJU012.Contains(sBJFLID) && !sBJU012.Equals("")) { //显示序号、型号、规格、标准、电压等级、颜色、外购、报价产品、计量单位、报价数量、报价、报价金额。 Dictionary dicColumns = new Dictionary(); dicColumns.Add("XLXSBJDMX_XSSX", "XLXSBJDMX_XSSX"); dicColumns.Add("XLXSBJDMX_XLXHID", "XLXSBJDMX_XLXHID"); dicColumns.Add("XLXSBJDMX_XLGGID", "XLXSBJDMX_XLGGID"); dicColumns.Add("XLXSBJDMX_XLBZID", "XLXSBJDMX_XLBZID"); dicColumns.Add("XLBZ_XLBZMS", "XLBZ_XLBZMS"); dicColumns.Add("XLXSBJDMX_DYDJID", "XLXSBJDMX_DYDJID"); dicColumns.Add("XLXSBJDMX_BJCP", "XLXSBJDMX_BJCP"); dicColumns.Add("XLXSBJDMX_JLDW", "XLXSBJDMX_JLDW"); dicColumns.Add("XLXSBJDMX_BJSL", "XLXSBJDMX_BJSL"); dicColumns.Add("XLXSBJDMX_CPBJ", "XLXSBJDMX_CPBJ"); if (bjflxx.XSTZBJJEChecked()) { dicColumns.Add("XLXSBJDMX_TZQBJJE", "XLXSBJDMX_TZQBJJE"); dicColumns.Add("XLXSBJDMX_TZBJJE", "XLXSBJDMX_TZBJJE"); dicColumns.Add("XLXSBJDMX_BJJE", "XLXSBJDMX_BJJE"); } else { dicColumns.Add("XLXSBJDMX_BJJE", "XLXSBJDMX_BJJE"); } if (bjflxx.XSZDXJ()) { dicColumns.Add("XLXSBJDMX_ZDXJ", "XLXSBJDMX_ZDXJ"); if (!bjflxx.XLXSBJFL_ZDXJJCLLX.Trim().Equals("")) dicColumns.Add("XLXSBJDMX_ZDXJJCL", "XLXSBJDMX_ZDXJJCL"); } dicColumns.Add("XLXSBJDMX_BZ", "XLXSBJDMX_BZ"); dicColumns.Add("XLXSBJDMX_WHR", "XLXSBJDMX_WHR"); dicColumns.Add("XLXSBJDMX_WHSJ", "XLXSBJDMX_WHSJ"); for (int i = 0; i < grdXLBJDMX.Columns.Count; i++) { if (!dicColumns.ContainsKey(grdXLBJDMX.Columns[i].DataField)) { grdXLBJDMX.Columns[i].Visible = false; } } } } } private void AddChangedField(Dictionary dicChangedField, string sEventField, string sEventValue) { if (dicChangedField.ContainsKey(sEventField)) dicChangedField[sEventField] = sEventValue; else dicChangedField.Add(sEventField, sEventValue); } private void DelXLXSBJZDCZ(TDatabase dberp, TSQL SQL, string sBJDID) { SQL.Clear(); SQL.Add("delete from XLXSBJZDCZ where XLXSBJZDCZ_BJDID = :pBJDID"); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); } private void InsXLXSBJZDCZ(TDatabase dberp, TSQL SQL, string sBJDID, string sXM, CMISproSession CurSession) { if (!sXM.Equals("")) { List lst = new List(); List lstValue = new List(); lst.Clear(); lstValue.Clear(); Regex reg = new Regex(@"."); foreach (Match m in reg.Matches(sXM)) { lst.Add(m.Value); } string sStr = ""; for (int i = 1; i < lst.Count; i++) { sStr = lst[i-1] + lst[i]; sStr = sStr.ToUpper(); if (!lstValue.Contains(sStr) && !sStr.Trim().Equals("")) { lstValue.Add(sStr); } } SQL.Clear(); SQL.Add(" insert into XLXSBJZDCZ(XLXSBJZDCZ_BJDID, XLXSBJZDCZ_XMCZ, XLXSBJZDCZ_WHR, XLXSBJZDCZ_WHRID, XLXSBJZDCZ_WHSJ) "); SQL.Add(" values(:XLXSBJZDCZ_BJDID, :XLXSBJZDCZ_XMCZ, :XLXSBJZDCZ_WHR, :XLXSBJZDCZ_WHRID, :XLXSBJZDCZ_WHSJ) "); SQL.ParamByName("XLXSBJZDCZ_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJZDCZ_WHR").Value = CurSession.UserName; SQL.ParamByName("XLXSBJZDCZ_WHRID").Value = CurSession.UserId; SQL.ParamByName("XLXSBJZDCZ_WHSJ").Value = DateTime.Now; for (int i = 0; i < lstValue.Count; i++) { SQL.ParamByName("XLXSBJZDCZ_XMCZ").Value = lstValue[i]; dberp.ExecSQL(SQL); } } } //规避ajaxGridView控件缺陷:复制报价单重新选择价格表 或 点编辑重选付款期限,报价单明细的表价或付款期限因子没有及时更新,需要再重复选择一次,才会更新。 //private void DoAjaxGridView() //{ // foreach (GridViewRow row in grdXLBJDMX.NewRows) // { // string sWHR = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WHR", row).ToString().Trim(); // grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_WHR", sWHR); // grdXLBJDMX.CommitEdit(); // break; // } //} private Hashtable GetHashtableValue(string sSQLParam) { Hashtable hParam = new Hashtable(); hParam.Clear(); if (!sSQLParam.Trim().Equals("")) { string[] sTemp = sSQLParam.Split(':', ';'); for (int i = 0; i < sTemp.Length; i++) { hParam.Add(sTemp[i], sTemp[i + 1]); i++; } } return hParam; } //同步调价因素为‘C’的当前报价单的的报价单因子值 private void TBBJDYZZ_C(string sBJDID,string sJGBID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(" merge into XLXSBJDYZZC tar "); SQL.Add(" using "); SQL.Add(" (select XLXSBJDYZZC_JGBID as JGBID,XLXSBJDYZZC_YZID as YZID,XLXSBJDYZZC_CPMLID as CPMLID,XLXSBJDYZZC_ZXJMSX as ZXJMSX ,XLXSBJDYZZC_ZXJMXX as ZXJMXX, "); SQL.Add(" XLXSBJDYZZC_CPMLYZZ as CPMLYZZ, XLXSBJDYZZC_RDTYZZ as RDTYZZ,XLXSBJDYZZC_NHYZZ as NHYZZ,XLXSBJDYZZC_PBYZZ as PBYZZ "); SQL.Add(" from XLXSBJDYZZC where XLXSBJDYZZC_JGBID=:pJGBID and ISNULL(XLXSBJDYZZC_BJDID, ' ') = ' '"); SQL.Add(" ) a "); SQL.Add(" on ( XLXSBJDYZZC_JGBID = a.JGBID and XLXSBJDYZZC_YZID = a.YZID and XLXSBJDYZZC_CPMLID = a.CPMLID and XLXSBJDYZZC_ZXJMSX = a.ZXJMSX and XLXSBJDYZZC_ZXJMXX = a.ZXJMXX "); SQL.Add(" and XLXSBJDYZZC_BJDID = :pBJDID )"); SQL.Add(" when not matched then "); SQL.Add(" insert (XLXSBJDYZZC_JGBID, XLXSBJDYZZC_BJDID, XLXSBJDYZZC_CPMLID,XLXSBJDYZZC_ZXJMSX,XLXSBJDYZZC_ZXJMXX,XLXSBJDYZZC_YZID,"); SQL.Add(" XLXSBJDYZZC_CPMLYZZ, XLXSBJDYZZC_RDTYZZ,XLXSBJDYZZC_PBYZZ,XLXSBJDYZZC_NHYZZ,XLXSBJDYZZC_WHR, XLXSBJDYZZC_WHRID, XLXSBJDYZZC_WHSJ )"); SQL.Add(" values(a.JGBID,:pBJDID,a.CPMLID,a.ZXJMSX,a.ZXJMXX,a.YZID,a.CPMLYZZ,a.RDTYZZ,a.PBYZZ,a.NHYZZ,:pWHR,:pWHRID,:pWHSJ )"); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } //短米校验对话框or撞单分析 private void ShowBJSLYZZCheckOrZDFX(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU003, string sXTCPBJYZ) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); Dictionary dicCheckedYZIDList = XLBJDCalcUtils.BJSLYZZCheck(dberp, SQL, sBJDID, sBJFLID, sBJU003); if (dicCheckedYZIDList.Count > 0) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_YZZCheck.aspx"; pageParams.Title = "因子值校验"; pageParams.AddString("BJDID", sBJDID); pageParams.AddString("BJFLID", sBJFLID); pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM.Trim()); if (dicCheckedYZIDList.ContainsKey("sTJYSList2")) pageParams.AddString("sYZIDList2", dicCheckedYZIDList["sTJYSList2"]); if (dicCheckedYZIDList.ContainsKey("sTJYSList3")) pageParams.AddString("sYZIDList3", dicCheckedYZIDList["sTJYSList3"]); if (dicCheckedYZIDList.ContainsKey("sTJYSList6")) pageParams.AddString("sYZIDList6", dicCheckedYZIDList["sTJYSList6"]); if (dicCheckedYZIDList.ContainsKey("sTJYSListE")) pageParams.AddString("sYZIDListE", dicCheckedYZIDList["sTJYSListE"]); if (dicCheckedYZIDList.ContainsKey("sTJYSListG")) pageParams.AddString("sYZIDListG", dicCheckedYZIDList["sTJYSListG"]); if (dicCheckedYZIDList.ContainsKey("sTJYSListF")) pageParams.AddString("sYZIDListF", dicCheckedYZIDList["sTJYSListF"]); if (dicCheckedYZIDList.ContainsKey("sTJYSListH")) pageParams.AddString("sYZIDListH", dicCheckedYZIDList["sTJYSListH"]); OpenDialogClickBtn(pageParams, btnRefreshYZZCheck.ClientID); } else { //只返回第一次不相同的----仅提示 if (!bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("N")) { string WarningMsg = ""; XLBJD_BDOBill.JudgeDifBJCP(sBJDID, sBJU003, ref WarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); if (!WarningMsg.Equals("")) { ShowMessage("如下显示序号的相同报价产品的报价不同!" + "\r\n" + WarningMsg); } } //自动撞单分析 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); if (pzxx.XLXSBJPZ_ZDZD=="Y") { SQL.Clear(); SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { btnZDFX_Click(null, null); } } } } //批量调价料价价差率,dCLCBLR:材料成本利润 public static void PLTJ_LJJCL(string sBJDXHList, int VnewID, string sBJDID, string sBJFLID, double dCLCBLR, string sCLCBLX, string sCZLM, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX, string sJYF, string sYFWLID, string sBJHYF, string sCPBJMRXSWS, int tmpXSWS, string sBJU002, bool bWBJ, bool bFWG, ref string sErrorMsg) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); string sqlBJJE = "0"; string sYZZ = ""; if (sCLCBLX.Equals("GDZ"))//固定值 { sYZZ = "0.0"; } else//相对值 { if (!sCZLM.Equals("LJ")) { sYZZ = string.Format("a.XLXSBJDYZZ0_YZZ{0}", sCZLM.Replace("BJ", "")); } else { sYZZ = "XLXSBJDMX_CLCBJCL"; } } if (sLJJCLLX.Equals("1"))//料价价差率公式 { sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_CLCB*XLXSBJDMX_BJSL/(1-(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; } else if (sLJJCLLX.Equals("2")) { sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(1-(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; } else if (sLJJCLLX.Equals("3")) { sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL*(1+(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; } else if (sLJJCLLX.Equals("4")) { sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/((:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; } else { sqlBJJE = "0"; } SQL.Add(" update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_CLCBJCL = :pUpdCLCBLRL + " + sYZZ + ","); SQL.Add(" XLXSBJDMX_CLCBJCLSDBZ='Y',"); SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(" + sqlBJJE + " - XLXSBJDMX_TZBJJE,2),"); SQL.Add(" XLXSBJDMX_CPBJ=case when XLXSBJDMX_BJSL = 0 then 0 else RoundFix((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + " ) end, ");//保留精度高的 SQL.Add(" XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); SQL.Add("XLXSBJDMX_BJTJCZ = 'LJJCLTZ',"); if (sLJJCLLX.Equals("1")) { SQL.Add("XLXSBJDMX_BJLY = 'JGBHQLJ',"); } else if (sLJJCLLX.Equals("2") || sLJJCLLX.Equals("3") || sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_BJLY = 'BJDHQLJ',"); } if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + ") "); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + ") "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0 "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + ") "); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0 "); } SQL.Add(" from "); SQL.Add(" ( "); SQL.Add(" SELECT XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH as XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03, "); SQL.Add(" XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13, "); SQL.Add(" XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); SQL.Add(" FROM XLXSBJDYZZ0"); SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDYZZ0_BJDID AND XLXSBJDMX_XH = XLXSBJDYZZ0_XH "); SQL.Add(" WHERE 1 = 1 "); SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID "); SQL.Add(" and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); SQL.Add(" and XLXSBJDYZZ0_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 { SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); } if (bFWG) { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); } SQL.Add(" ) a "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and a.XH=XLXSBJDMX_XH "); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (VnewID > 0) { SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); } SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 { SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); } if (bFWG) { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); } SQL.ParamByName("pUpdCLCBLRL").Value = dCLCBLR; SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); string sqlBJJE2 = string.Format("(RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE)", sCPBJBLXSWS); SQL.Clear(); SQL.Add(" update XLXSBJDMX set "); SQL.Add(string.Format(" XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0},", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*RoundFix((RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ,15) end,", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE2 + ","); SQL.Add("XLXSBJDMX_BJTJCZ = 'LJJCLTZ',"); if (sLJJCLLX.Equals("1")) { SQL.Add("XLXSBJDMX_BJLY = 'JGBHQLJ',"); } else if (sLJJCLLX.Equals("2") || sLJJCLLX.Equals("3") || sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_BJLY = 'BJDHQLJ',"); } if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE2 + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE2 + "," + tmpXSWS + "), "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0"); } SQL.Add(" from XLXSBJDMX"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (VnewID > 0) { SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); } SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 { SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); } if (bFWG) { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); } SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, bWBJ, false, bFWG, ""); XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, bWBJ, false, bFWG, ""); XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); dberp.CommitTrans(); } catch (Exception ex) { sErrorMsg = "批量调价-料价价差率出现错误,请联系系统管理员!" + ex.Message; dberp.RollbackTrans(); } } //批量调报价限价,dKDYZ:扣点因子值、dJJYZ:加价因子值 public static void PLTJ_BJXJ(string sBJDXHList, int VnewID, string sBJDID, string sBJFLID, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX, string sJYF, string sYFWLID, string sBJHYF, string sCPBJBLXSWS, string sBJU002, string sJTZBJXJWF, double dKDYZ, double dJJYZ, ref string sErrorMsg) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); //更新非报价锁定记录 string sqlBJJE = ""; string sqlCPBJ = ""; sqlCPBJ = "(XLXSBJDMX_CPBJXJ*(1-:pKDYZ/100.0)+:pJJYZ)"; sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix({1},{0})+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS, sqlCPBJ); SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_BJXJKD=:pKDYZ,XLXSBJDMX_BJXJJJ=:pJJYZ, "); SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + ",{0}),", sCPBJBLXSWS)); SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + ",{0})-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*RoundFix(" + sqlCPBJ + ",{0}),2),", sCPBJBLXSWS)); SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'BJXJ',"); SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (VnewID > 0) { SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); } SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (sJTZBJXJWF.Equals("Y")) SQL.Add(" and (XLXSBJDMX_CPBJXJ - XLXSBJDMX_CPBJ)<0 "); SQL.ParamByName("pKDYZ").Value =dKDYZ ; SQL.ParamByName("pJJYZ").Value = dJJYZ; SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, false, false, true, ""); XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, false, false, true, ""); XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); dberp.CommitTrans(); } catch (Exception ex) { sErrorMsg ="批量调价-报价限价出现错误,请联系系统管理员!" + ex; dberp.RollbackTrans(); } } //批量调价报价单因子 public static void PLTJ_BJDYZ(string sBJDXHList, int VnewID, string sBJDID, string sYZID, double fYZZ, bool bTLCP, string sTLcpList, string sTcpList, double fTcpYZZ, string sLcpList, double fLcpYZZ, bool bYBJ, bool bWG, bool bFWG, string sJMBGSYZID, string sWHRID, string sWHR, string sBJU002, string sBJU003, ref string sErrorMsg) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); string sSQL = ""; if (bTLCP) { sSQL = string.Format(@"update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and exists(select 1 from XLXSBJDMX left join XLXSBJDGYJD on XLXSBJDGYJD_BJDID = XLXSBJDMX_BJDID and XLXSBJDGYJD_BJDXH = XLXSBJDMX_XH left join XLXHB on XLXHB_XLXHID=UPPER(case when isnull(XLXSBJDGYJD_CKXLXHID,' ') = ' ' then XLXSBJDMX_XLXHID else XLXSBJDGYJD_CKXLXHID end) where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTcpList), sYZID.Replace("BJ", ""), fTcpYZZ, sBJDID); if (bYBJ) sSQL += " and XLXSBJDMX_JGBBJ<>0 "; if (bWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; if (bFWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; sSQL += " ) "; if (!sBJDXHList.Equals("")) sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); if (VnewID > 0) { sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; } dberp.ExecSQL(sSQL); sSQL = string.Format(@"update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and exists(select 1 from XLXSBJDMX left join XLXSBJDGYJD on XLXSBJDGYJD_BJDID = XLXSBJDMX_BJDID and XLXSBJDGYJD_BJDXH = XLXSBJDMX_XH left join XLXHB on XLXHB_XLXHID=UPPER(case when isnull(XLXSBJDGYJD_CKXLXHID,' ') = ' ' then XLXSBJDMX_XLXHID else XLXSBJDGYJD_CKXLXHID end) where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sLcpList), sYZID.Replace("BJ", ""), fLcpYZZ, sBJDID); if (bYBJ) sSQL += " and XLXSBJDMX_JGBBJ<>0 "; if (bWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; if (bFWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; sSQL += " ) "; if (!sBJDXHList.Equals("")) sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); if (VnewID > 0) { sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; } dberp.ExecSQL(sSQL); //清空截面比公式 if (sJMBGSYZID.Equals(sYZID)) { sSQL = string.Format(@"update XLXSBJDMX set XLXSBJDMX_JMBGS=null where XLXSBJDMX_BJDID='{0}' and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList), sBJDID); sSQL += " ) "; if (bYBJ) sSQL += " and XLXSBJDMX_JGBBJ<>0 "; if (bWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; if (bFWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; if (!sBJDXHList.Equals("")) sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList); if (VnewID > 0) { sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "; } dberp.ExecSQL(sSQL); } } else { sSQL = string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH ", sYZID.Replace("BJ", ""), fYZZ, sBJDID); if (bYBJ) sSQL += " and XLXSBJDMX_JGBBJ<>0 "; if (bWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; if (bFWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; sSQL += " ) "; if (!sBJDXHList.Equals("")) sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); if (VnewID > 0) { sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; } dberp.ExecSQL(sSQL); //清空截面比公式 if (sJMBGSYZID.Equals(sYZID)) { sSQL = string.Format(@"update XLXSBJDMX set XLXSBJDMX_JMBGS=null where XLXSBJDMX_BJDID='{0}'", sBJDID); if (bYBJ) sSQL += " and XLXSBJDMX_JGBBJ<>0 "; if (bWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; if (bFWG) sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; if (!sBJDXHList.Equals("")) sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList); if (VnewID > 0) { sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "; } dberp.ExecSQL(sSQL); } } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID='{0}' and isnull(XLXSTZYZ_BCYTJ,'N')='Y'",sYZID.Trim()))) XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, sTLcpList, DateTime.MinValue, sBJU002, sBJU003, sWHRID, sWHR, ref sErrorMsg); else { SQL.Clear(); SQL.Add("select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (dberp.DriverName == "ORACLE") { if (dberp.InTransaction) { dberp.CommitTrans(); dberp.BeginTrans(); } } string sBJFLID = ds.Tables[0].Rows[0][0].ToString().Trim(); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); bool bXJTZ = false; if (bjflxx.XLXSBJFL_ZDXJGS.Contains(sYZID.Trim())) { XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, bYBJ, false, bWG, bFWG, sTLcpList, DateTime.MinValue); bXJTZ = true; } if (bjflxx.XLXSBJFL_JSJGS.Contains(sYZID.Trim()) || bXJTZ) { XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 1); bXJTZ = true; } if(bXJTZ) XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_ZDXJJCLLX, bjflxx.XLXSBJFL_JYF, "", "", bjflxx.XLXSBJFL_YFWLID, bjflxx.XLXSBJFL_BJHYF); } } if (!sErrorMsg.Equals("")) throw new Exception(sErrorMsg); dberp.CommitTrans(); } catch (Exception ex) { sErrorMsg = "批量调价出现错误,请联系系统管理员!" + ex.Message; dberp.RollbackTrans(); } } private string getYSID(string sXLYSIDFilter) { string sLXYSID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(" select XLYSB_XLYSID "); SQL.Add(" from XLYSB "); SQL.Add(" where 1=1 and ( XLYSB_XLYSID = :pXLYSID or XLYSB_XLYSMC = :pXLYSMC ) "); SQL.ParamByName("pXLYSID").Value = sXLYSIDFilter; SQL.ParamByName("pXLYSMC").Value = sXLYSIDFilter; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sLXYSID = ds.Tables[0].Rows[0]["XLYSB_XLYSID"].ToString().Trim(); } return sLXYSID; } private void InsBJCSYCRZ(string BJDID,double BJDXH,string sYCXX) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("insert into BJCSYCRZ(BJCSYCRZ_ID,BJCSYCRZ_BJDID,BJCSYCRZ_XH,BJCSYCRZ_CZRID,BJCSYCRZ_CZRGH,BJCSYCRZ_CZR,BJCSYCRZ_CZSJ,BJCSYCRZ_YCQK) "); SQL.Add(" values(:BJCSYCRZ_ID,:BJCSYCRZ_BJDID,:BJCSYCRZ_XH,:BJCSYCRZ_CZRID,:BJCSYCRZ_CZRGH,:BJCSYCRZ_CZR,:BJCSYCRZ_CZSJ,:BJCSYCRZ_YCQK) "); SQL.ParamByName("BJCSYCRZ_ID").Value = CMISproDataBase.NewID("DBERP", "BJCSYCRZ"); SQL.ParamByName("BJCSYCRZ_BJDID").Value = BJDID; SQL.ParamByName("BJCSYCRZ_XH").Value = BJDXH; SQL.ParamByName("BJCSYCRZ_CZRID").Value = CurSession.RYID; SQL.ParamByName("BJCSYCRZ_CZRGH").Value = CurSession.UserId; SQL.ParamByName("BJCSYCRZ_CZR").Value = CurSession.UserName; SQL.ParamByName("BJCSYCRZ_CZSJ").Value = DateTime.Now; SQL.ParamByName("BJCSYCRZ_YCQK").Value = sYCXX; dberp.ExecSQL(SQL); } private int getStringByte(string text) { Encoding _encoding = System.Text.Encoding.GetEncoding("GB2312"); byte[] bytes = _encoding.GetBytes(text); return bytes.Length; } /// /// 动态加载数据项 /// /// 是否同步值 /// 页面状态 /// 报价单号 /// 附加信息的父控件 private void LoadFJXX(bool bAddValues, string sControlState, string sBJDID, HtmlGenericControl divFJXX,string sHidJSLMList) { if (!sControlState.Equals("A")) { if (divFJXX.Controls.Count > 0) if (divFJXX.Controls[0].ID != null) if (divFJXX.Controls[0].ID.Equals("tableXLXSBJKZXX")) if (!sControlState.Equals("C")) return; } divFJXX.Controls.Clear(); Table TabFJXX = new Table(); TabFJXX.ID = "tableXLXSBJKZXX"; TabFJXX.Attributes.Add("cellpadding", "0"); TabFJXX.Attributes.Add("align", "left"); TabFJXX.Attributes.Add("cellspacing", "0"); TabFJXX.Attributes.Add("width", "100%"); TableRow RowFJXX = new TableRow(); int iCount = 0; DataSet dsXLXSBJKZXX = entity.getXLXSBJKZXX(sBJDID); if (dsXLXSBJKZXX.Tables[0].Rows.Count == 0) bAddValues = false; DataSet ds = XLBJDUtils.GetKZXX(); int irow = 1; bool newtrow = true; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (sHidJSLMList.Contains(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) continue; string sXSBZ = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); if (!sXSBZ.Equals("")) { string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); sXSBZ = "," + sXSBZ + ","; if (!sXSBZ.Contains("," + sWPID + ",")) { continue; } } string SYBJFLID = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); if (!SYBJFLID.Equals("")) { string sBJFLID = cbxBJFLID.SelectedValue.Trim(); SYBJFLID = "," + SYBJFLID + ","; if (!SYBJFLID.Contains("," + sBJFLID + ",")) { continue; } } if (iCount == 4) { if (RowFJXX != null) TabFJXX.Rows.Add(RowFJXX); RowFJXX = new TableRow(); newtrow = true; iCount = 0; irow++; } //根据维护步骤、适用条件先判断是否必填 bool bSFBT = ds.Tables[0].Rows[i]["BT"].ToString().Trim().Equals("Y"); RowFJXX.Height = 20; string sDYZD = "XLXSBJKZXX_" + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); string sFJXXValue = ""; if (sControlState.Equals("A")) sFJXXValue = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_QSZ"].ToString().Trim(); if (bAddValues) sFJXXValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); string sKZXXMC = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim(); if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) { if (newtrow) { iCount = 4; int iRows = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim(), 3); //标签单元格 XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, iRows); //文本型 XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, iRows == 0 ? 1 : iRows, 0, 7, this.PageWidth); irow += iRows == 0 ? 1 : iRows; irow--; } else { if (iCount != 4 && iCount != 0) { XLXSBJFJXX.createTableCell(RowFJXX, (4 - iCount) * 2, irow); } if (RowFJXX != null) TabFJXX.Rows.Add(RowFJXX); RowFJXX = new TableRow(); RowFJXX.Height = 20; iCount = 4; int iRows = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim(), 3); //标签单元格 XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, iRows); //文本型 XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, iRows == 0 ? 1 : iRows, 0, 7, this.PageWidth); irow += iRows == 0 ? 1 : iRows; } newtrow = true; } else { newtrow = false; //标签单元格 XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, 0); if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) { //数值型 XLXSBJFJXX.createNumTextBox(RowFJXX, sDYZD, bSFBT, CMISproConvert.StrToFloat(sFJXXValue, 0), ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_JLDW"].ToString().Trim()); } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) { //字符型 if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 { XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim()), CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim()), 1, 1000); } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//单选输入 { XLXSBJFJXX.createComboBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJLB"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(), CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim())); } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//多选输入 { XLXSBJFJXX.createCheckedDropDownList(RowFJXX, sDYZD, bSFBT, sFJXXValue, ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJLB"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(), CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim())); } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) { //日期型 XLXSBJFJXX.createDateTimeTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue); } iCount++; } } if (iCount != 4) { XLXSBJFJXX.createTableCell(RowFJXX, (4 - iCount) * 2, irow); } TabFJXX.Rows.Add(RowFJXX); divFJXX.Controls.Add(TabFJXX); int iHeight = irow * 27; divFJXX.Style["height"] = iHeight.ToString().Trim() + "px"; } private void setFJXXControlState(HtmlGenericControl divFJXX, bool bEnable, string sBJDID, bool bSetValue, string sControlState) { if (!divFJXXLabel.Visible) return; DataSet dsXLXSBJKZXX = null; if (bSetValue) { dsXLXSBJKZXX = entity.getXLXSBJKZXX(sBJDID); if (dsXLXSBJKZXX.Tables[0].Rows.Count == 0) bSetValue = false; } DataSet ds = XLBJDUtils.GetKZXX(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { bool dEnabled = true; string sWHBZ = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WHBZ"].ToString().Trim(); string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); if (!sWHBZ.Equals("")) { sWHBZ = "," + sWHBZ + ","; if (!sWHBZ.Contains("," + sWPID + ",")) { dEnabled = false; } } string sDYZD = "XLXSBJKZXX_" + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) { gtNumTextBox numTextBox = (gtNumTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (numTextBox != null) { numTextBox.Enabled = bEnable && dEnabled; if (bSetValue) numTextBox.Value = CMISproConvert.StrToFloat(dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(), 0); } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) { //字符型 if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 { gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (textBox != null) { textBox.Enabled = bEnable && dEnabled; if (bSetValue) textBox.Text = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//下拉单选 { gtComboBox comboBox = (gtComboBox)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); if (comboBox != null) { comboBox.Enabled = bEnable && dEnabled; if (bSetValue) comboBox.SelectedValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//下拉多选 { gtCheckedDropDownList checkedDropDownList = (gtCheckedDropDownList)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); if (checkedDropDownList != null) { checkedDropDownList.Enabled = bEnable && dEnabled; if (bSetValue) checkedDropDownList.SelectedValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); } } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) { gtDateTimeTextBox dateTimeTextBox = (gtDateTimeTextBox)this.CurMaster.ContentFormControl.FindControl("dat" + sDYZD); if (dateTimeTextBox != null) { dateTimeTextBox.Enabled = bEnable && dEnabled; if (bSetValue) dateTimeTextBox.Text = CMISproConvert.ConvertDate(dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim()); } } else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) { gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); if (textBox != null) { textBox.Enabled = bEnable && dEnabled; if (bSetValue) textBox.Text = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); } } } } private void SetcbxJGBID() { string sBJU053 = GetOption(100860018,"BJU053"); Dictionary dicJGBID = new Dictionary(); dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("", cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text.Trim(), cbxXSQYID.SelectedValue.Trim()); cbxJGBID.ClearItems(); foreach (KeyValuePair kvp in dicJGBID) { if (sBJU053.Contains(kvp.Key) || sBJU053.Equals("")) cbxJGBID.Items.Add(new ListItem(kvp.Value, kvp.Key)); } if (ControlState == TControlState.ctsInsert && cbxJGBID.Items.Count > 0) { cbxJGBID.SelectedIndex = 0; cbxJGBID_SelectedIndexChanged(null, null); } } private static string GetSWDWID(string sUserGH) { string sSYDWID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select RSRYJBXX_SYDWID "); SQL.Add(" from RSRYJBXX "); SQL.Add(" where 1=1 "); SQL.Add(" and RSRYJBXX_GH = :pGH "); SQL.ParamByName("pGH").Value = sUserGH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim(); if (sSYDWID.Equals("")) { SQL.Clear(); SQL.Add(" select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID "); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim(); } } } return sSYDWID; } private string GetKHID(string sMC) { string sKHID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select kh_khid "); SQL.Add(" from kh "); SQL.Add(" where 1=1 and (KH_MC = :pMC or KH_YWMC=:pMC) "); SQL.ParamByName("pMC").Value = sMC; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sKHID = ds.Tables[0].Rows[0][0].ToString().Trim(); } return sKHID; } private string GetGYKHSQL(string sKHID) { string sSQL = ""; if (string.IsNullOrEmpty(sKHID)) return sSQL; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select distinct XLGYKMXXX_GYKH "); SQL.Add(" from BZGYCS "); SQL.Add(" left join XLGYKMXXX on XLGYKMXXX_GYCSID=BZGYCS_GYCSID "); SQL.Add(" where BZGYCS_GYCSMC='客户代码' and ((','||ltrim(rtrim(XLGYKMXXX_CSZ))||',' like :pCSZ) OR isnull(XLGYKMXXX_CSZ,' ')=' ' )"); SQL.ParamByName("pCSZ").Value = "%,"+sKHID+",%"; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sGYKH=ds.Tables[0].Rows[i][0].ToString().Trim(); sSQL+="or XLBZ_XLBZLXMC like '"+sGYKH+"/%' "; } } if (!string.IsNullOrEmpty(sSQL)) sSQL = "and ( isnull(XLBZ_DZSC,'N')='N'" + sSQL+" )"; return sSQL; } //是否配置汇总区域隐藏栏目 private bool HidJSMLHZQY(string sBJFLID) { bool rt = false; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select 1 from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID = :pBJFLID and isnull(XLXSBJFLJSLM_YCBZ,'N') = 'Y' "); SQL.Add(" and (XLXSBJFLJSLM_LMID = 'lblZDXJZJE' or XLXSBJFLJSLM_LMID = 'lblZDXJJCL' or XLXSBJFLJSLM_LMID = 'lblLJZJE' "); SQL.Add(" or XLXSBJFLJSLM_LMID = 'lblLJJCL' or XLXSBJFLJSLM_LMID = 'lblJJZJE' or XLXSBJFLJSLM_LMID = 'lblBJJCL' "); SQL.Add(" or XLXSBJFLJSLM_LMID = 'lblBJZJE' or XLXSBJFLJSLM_LMID = 'lblBJLJJCL' or XLXSBJFLJSLM_LMID = 'lblJSJZJE' or XLXSBJFLJSLM_LMID = 'lblJSJJCL')"); SQL.ParamByName("pBJFLID").Value = sBJFLID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { rt = true; } return rt; } private void LoadHJXX(string sBJDID, string sBJFLID, string sHidJSLMList) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL strSQL = new TSQL(dberp); #region 查询语句构建 strSQL.Clear(); strSQL.Add(" select sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); else strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); strSQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) { strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); } else { strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); } strSQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) { strSQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2") || bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) { strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); } else { strSQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); } if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); else strSQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) { strSQL.Add(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) { strSQL.Add(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) { strSQL.Add(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else { strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG) as XLXSBJDMX_JSJJE, "); if (bjflxx.XLXSBJFL_JSJJCLLX.Equals("1")) { strSQL.Add(" (select case sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG)/sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JSJJCL, "); } else if (bjflxx.XLXSBJFL_JSJJCLLX.Equals("3")) { strSQL.Add(" (select case sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG)/sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JSJJCL, "); } else { strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG),4) *100 - 100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JSJJCL, "); } if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); else strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("1")) { strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption("BJU054")) + 2).ToString())); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("2")) { strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100-100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption("BJU054")) + 2).ToString())); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("3")) { strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption("BJU054")) + 2).ToString())); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("4")) { strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption("BJU054")) + 2).ToString())); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("5")) { strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption("BJU054")) + 2).ToString())); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else strSQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); strSQL.Add(" from XLXSBJDMX "); strSQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); strSQL.Add(" group by XLXSBJDMX_BJDID "); strSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; #endregion #region 查询合计的值 DataSet ds = dberp.OpenDataSet(strSQL); double dBJDHQLJZJE = 0; double dJGBHQLJZJE = 0; double dJJZJE = 0; double dBJZJE = 0; double dZDXJZJE = 0; double dJSJZJE = 0; double dBJLJJCL = 0; double dLRL = 0; double dCLCBJCL = 0; double dZDXJJCL = 0; double HJLRL = 0; double HJCLCBJCL = 0; double HJZDXJJCL = 0; double HBJLJJCL = 0; double HJSJJCL = 0; if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); dJJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CPJJJE"].ToString().Trim()), 2); dBJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim()), 2); dZDXJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJZJE"].ToString().Trim()), 2); dJSJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JSJJE"].ToString().Trim()), 2); HBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJLJJCL"].ToString().Trim()), 2); HJLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJJCL"].ToString().Trim()), 2); HJCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_CLCBJCL"].ToString().Trim()), 2); HJZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJJCL"].ToString().Trim()), CMISproConvert.StrToInt(GetOption("BJU054"))); HJSJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JSJJCL"].ToString().Trim()), 2); GetBJDLRL(sBJDID, ref dLRL, ref dCLCBJCL, ref dZDXJJCL, ref dBJLJJCL); } } #endregion #region 根据报价分类信息设置标签显示和赋值 string sBJDHQLJZJE = string.Empty; string sJGBHQLJZJE = string.Empty; string sJJZJE = string.Empty; string sBJZJE = string.Empty; string sJSJZJE = string.Empty; string sZDXJZJE = string.Empty; string sBJLJJCL = string.Empty; string sBJJCL = string.Empty; string sLJJCL=string.Empty; string sZDXJJCL = string.Empty; string sZHCPMLLJJE = string.Empty; string sJSJJCL = string.Empty; //研发自测:谭善勇 2026/07/23 15:46:02 int rowItemsCount = txtBJU074.Value.Trim() == "Y" ? 4 : 2; if (GetOption(100860000, "BJU065").Equals("Y")) { //报价单行情料价 if (bjflxx.XSBJDHQLJ()) { sBJDHQLJZJE = "料价总金额:" + dBJDHQLJZJE.ToString("#,##0.00"); sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); } //价格表行情料价 if (bjflxx.XSLJ()) { sJGBHQLJZJE = "料价总金额:" + dJGBHQLJZJE.ToString("#,##0.00"); sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); } //表价价差率 if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJJCLLX) && bjflxx.XSJCL()) { sBJJCL = "表价价差率:" + dLRL.ToString("0.00") + "%"; if (Math.Abs(HJLRL - dLRL) > 0.001) sBJJCL = GetHTMLString(sBJJCL, 3); } //料价价差率 if (bjflxx.XSLJJCL()) { sLJJCL = "料价价差率:" + dCLCBJCL.ToString("0.00") + "%"; if (Math.Abs(HJCLCBJCL - dCLCBJCL) > 0.001) sLJJCL = GetHTMLString(sLJJCL, 3); } if (!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) { sJSJJCL = "结算价价差率:" + HJSJJCL.ToString("0.00") + "%"; sJSJZJE = "结算价总金额:" + dJSJZJE.ToString("#,##0.00"); } //最低限价总金额、最低限价价差率 if (bjflxx.XSZDXJ()) { sZDXJZJE = "最低限价总金额:" + dZDXJZJE.ToString("#,##0.00"); sZDXJJCL = "最低限价价差率:" + dZDXJJCL.ToString("F" + (CMISproConvert.StrToInt(GetOption("BJU054")))) + "%"; if (Math.Abs(HJZDXJJCL - dZDXJJCL) > 0.001) sZDXJJCL = GetHTMLString(sZDXJJCL, 3); } //表价料价价差率 if (bjflxx.XSBJLJJCL()) { sBJLJJCL = "表价料价价差率:" + dBJLJJCL.ToString("0.00") + "%"; if (Math.Abs(HBJLJJCL - dBJLJJCL) > 0.001) sBJLJJCL = GetHTMLString(sBJLJJCL, 3); } sJJZJE = "表价总金额:" + dJJZJE.ToString("#,##0.00"); sBJZJE = "报价总金额:" + dBJZJE.ToString("#,##0.00"); } else { //研发自测:谭善勇 2026/07/23 15:46:02 //报价单行情料价 if (bjflxx.XSBJDHQLJ()) { sBJDHQLJZJE = "料价总金额:" + dBJDHQLJZJE.ToString("0.00") ; sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); } //价格表行情料价 if (bjflxx.XSLJ()) { sJGBHQLJZJE = "料价总金额:" + dJGBHQLJZJE.ToString("0.00"); sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); } //表价价差率 if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJJCLLX) && bjflxx.XSJCL()) { sBJJCL = "表价价差率:" + dLRL.ToString("0.00") + "%"; if (Math.Abs(HJLRL - dLRL) > 0.001) sBJJCL = GetHTMLString(sBJJCL, 3); } //料价价差率 if (bjflxx.XSLJJCL()) { sLJJCL = "料价价差率:" + dCLCBJCL.ToString("0.00") + "%"; if (Math.Abs(HJCLCBJCL - dCLCBJCL) > 0.001) sLJJCL = GetHTMLString(sLJJCL, 3); } if (!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) { sJSJJCL = "结算价价差率:" + HJSJJCL.ToString("0.00") + "%"; sJSJZJE = "结算价总金额:" + dJSJZJE.ToString("0.00"); } //最低限价总金额、最低限价价差率 if (bjflxx.XSZDXJ()) { sZDXJZJE = "最低限价总金额:" + dZDXJZJE.ToString("0.00"); sZDXJJCL = "最低限价价差率:" + dZDXJJCL.ToString("F" + (CMISproConvert.StrToInt(GetOption("BJU054")))) + "%"; if (Math.Abs(HJZDXJJCL - dZDXJJCL) > 0.001) sZDXJJCL = GetHTMLString(sZDXJJCL, 3); } //表价料价价差率 if (bjflxx.XSBJLJJCL()) { sBJLJJCL = "表价料价价差率:" + dBJLJJCL.ToString("0.00") + "%"; if (Math.Abs(HBJLJJCL - dBJLJJCL) > 0.001) sBJLJJCL = GetHTMLString(sBJLJJCL, 3); } sJJZJE = "表价总金额:" + dJJZJE.ToString("0.00") ; sBJZJE = "报价总金额:" + dBJZJE.ToString("0.00") ; } #endregion if (HidJSMLHZQY(sBJFLID)) { #region 按依按角色隐藏栏目控制隐藏 if (!string.IsNullOrEmpty(sHidJSLMList)) { sHidJSLMList += ","; if (sHidJSLMList.Contains("lblZDXJZJE,")) sZDXJZJE = ""; if (sHidJSLMList.Contains("lblZDXJJCL,")) sZDXJJCL = ""; if (sHidJSLMList.Contains("lblLJZJE,")) { sBJDHQLJZJE = ""; sJGBHQLJZJE = ""; sZHCPMLLJJE = ""; } if (sHidJSLMList.Contains("lblLJJCL,")) sLJJCL = ""; if (sHidJSLMList.Contains("lblJJZJE,")) sJJZJE = ""; if (sHidJSLMList.Contains("lblBJJCL,")) sBJJCL = ""; if (sHidJSLMList.Contains("lblBJZJE,")) sBJZJE = ""; if (sHidJSLMList.Contains("lblBJLJJCL,")) sBJLJJCL = ""; if (sHidJSLMList.Contains("lblJSJZJE,")) sJSJZJE = ""; if (sHidJSLMList.Contains("lblJSJJCL,")) sJSJJCL = ""; } #endregion } else { #region 按依据明细控制隐藏 sBJDHQLJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible ? sBJDHQLJZJE:"" ; sJGBHQLJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible ? sJGBHQLJZJE : ""; sJJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible ? sJJZJE : ""; sBJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible ? sBJZJE : ""; sZDXJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible ? sZDXJZJE : ""; sLJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible ? sLJJCL : ""; sBJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible ? sBJJCL : ""; sBJLJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible ? sBJLJJCL : ""; sZDXJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible ? sZDXJJCL : ""; sZHCPMLLJJE = sBJDHQLJZJE.Equals("") && sJGBHQLJZJE.Equals("") ? "" : sZHCPMLLJJE; sJSJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible ? sJSJJCL : ""; sJSJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible ? sJSJZJE : ""; #endregion } #region 表价别名 if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JGBBJBM)) { sJJZJE = sJJZJE.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); sBJLJJCL = sBJLJJCL.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); sBJJCL = sBJJCL.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM)) { sBJZJE= sBJZJE.Replace("报价", bjflxx.XLXSBJFL_BJBM).Trim(); } if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM)) { sJSJJCL = sJSJJCL.Replace("结算价", bjflxx.XLXSBJFL_JSJBM).Trim(); sJSJZJE = sJSJZJE.Replace("结算价", bjflxx.XLXSBJFL_JSJBM).Trim(); } #endregion string sMACID = "N_XLXSBJA"; if (N_MISPROAS.AppRuntime.GtipsVerStr == "8") { sMACID = "N_XLXSBJ8"; } try { Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如N_XLXSBJA if (dicBQBM.Count > 0) { if (dicBQBM.ContainsKey(sZDXJZJE.Trim().Split(':')[0])) sZDXJZJE = dicBQBM[sZDXJZJE.Trim().Split(':')[0]] + sZDXJZJE.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sZDXJJCL.Trim().Split(':')[0])) sZDXJJCL = dicBQBM[sZDXJJCL.Trim().Split(':')[0]] + sZDXJJCL.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sBJDHQLJZJE.Trim().Split(':')[0])) sBJDHQLJZJE = dicBQBM[sBJDHQLJZJE.Trim().Split(':')[0]] + sBJDHQLJZJE.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sJGBHQLJZJE.Trim().Split(':')[0])) sJGBHQLJZJE = dicBQBM[sJGBHQLJZJE.Trim().Split(':')[0]] + sJGBHQLJZJE.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sLJJCL.Trim().Split(':')[0])) sLJJCL = dicBQBM[sLJJCL.Trim().Split(':')[0]] + sLJJCL.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sJJZJE.Trim().Split(':')[0])) sJJZJE = dicBQBM[sJJZJE.Trim().Split(':')[0]] + sJJZJE.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sBJJCL.Trim().Split(':')[0])) sBJJCL = dicBQBM[sBJJCL.Trim().Split(':')[0]] + sBJJCL.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sBJZJE.Trim().Split(':')[0])) sBJZJE = dicBQBM[sBJZJE.Trim().Split(':')[0]] + sBJZJE.Trim().Split(':')[1]; if (dicBQBM.ContainsKey(sBJLJJCL.Trim().Split(':')[0])) sBJLJJCL = dicBQBM[sBJLJJCL.Trim().Split(':')[0]] + sBJLJJCL.Trim().Split(':')[1]; } } catch { } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSCPML != "Z") sZHCPMLLJJE = ""; //研发自测:谭善勇 2026/07/23 15:46:02 if (rowItemsCount == 2) { int flag = -4; txtHJXX.Value = ""; if (!sZDXJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sZDXJZJE, flag); flag *= -1; } if (!sZDXJJCL.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sZDXJJCL, flag); flag *= -1; } if (!sBJDHQLJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sBJDHQLJZJE, flag); flag *= -1; } if (!sJGBHQLJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sJGBHQLJZJE, flag); flag *= -1; } if (!sLJJCL.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sLJJCL, flag); flag *= -1; } if (!sJSJJCL.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sJSJJCL, flag); flag *= -1; } if (!sJSJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sJSJZJE, flag); flag *= -1; } if (!sJJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sJJZJE, flag); flag *= -1; } if (!sBJLJJCL.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sBJLJJCL, flag); flag *= -1; } if (!sBJZJE.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sBJZJE, flag); flag *= -1; } if (!sBJJCL.Trim().Equals("")) { txtHJXX.Value += GetHTMLString(sBJJCL, flag); flag *= -1; } if (!sZHCPMLLJJE.Trim().Equals("")) { if (flag == 1) txtHJXX.Value += "
"; txtHJXX.Value += sZHCPMLLJJE; } } else { System.Collections.Generic.List items = new System.Collections.Generic.List(); if (!sZDXJZJE.Trim().Equals("")) items.Add(sZDXJZJE); if (!sZDXJJCL.Trim().Equals("")) items.Add(sZDXJJCL); if (!sBJDHQLJZJE.Trim().Equals("")) items.Add(sBJDHQLJZJE); if (!sJGBHQLJZJE.Trim().Equals("")) items.Add(sJGBHQLJZJE); if (!sLJJCL.Trim().Equals("")) items.Add(sLJJCL); if (!sJSJJCL.Trim().Equals("")) items.Add(sJSJJCL); if (!sJSJZJE.Trim().Equals("")) items.Add(sJSJZJE); if (!sJJZJE.Trim().Equals("")) items.Add(sJJZJE); if (!sBJLJJCL.Trim().Equals("")) items.Add(sBJLJJCL); if (!sBJZJE.Trim().Equals("")) items.Add(sBJZJE); if (!sBJJCL.Trim().Equals("")) items.Add(sBJJCL); txtHJXX.Value = ""; for (int i = 0; i < items.Count; i++) { int flag; bool isFirstInRow = (i % rowItemsCount == 0); bool isLastInRow = (i % rowItemsCount == rowItemsCount - 1) || (i == items.Count - 1); if (isFirstInRow && isLastInRow) flag = 7; else if (isFirstInRow) flag = -4; else if (isLastInRow) flag = 4; else flag = 6; txtHJXX.Value += GetHTMLString(items[i], flag, rowItemsCount); } if (!sZHCPMLLJJE.Trim().Equals("")) { txtHJXX.Value += sZHCPMLLJJE; } } txtHJXX.Value = GetHTMLString(txtHJXX.Value, 5); } //研发自测:谭善勇 2026/07/23 15:46:02 private string GetZHCPMLHJXX(string sBJDID, int rowItemsCount) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL strSQL = new TSQL(dberp); #region 查询语句构建 strSQL.Clear(); strSQL.Add(" select case when isnull(XLXSBJDMX_ZHCPMLMC,' ')=' ' then '无组合产品目录' else XLXSBJDMX_ZHCPMLMC end as ZHCPMLMC,sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); strSQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE "); strSQL.Add(" from XLXSBJDMX "); strSQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); strSQL.Add(" group by XLXSBJDMX_ZHCPMLMC "); strSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; #endregion #region 查询合计的值 DataSet ds = dberp.OpenDataSet(strSQL); double dBJDHQLJZJE = 0; double dJGBHQLJZJE = 0; string sZHCPMLMC = string.Empty; string sZHCPMLMCBJDHQ = string.Empty; string sZHCPMLMCJGBHQ = string.Empty; if (ds.Tables[0].Rows.Count > 0) { if (rowItemsCount == 2) { int flag = -4; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); sZHCPMLMCBJDHQ += GetHTMLString(sZHCPMLMC + ":" + dBJDHQLJZJE.ToString(), flag); sZHCPMLMCJGBHQ += GetHTMLString(sZHCPMLMC + ":" + dJGBHQLJZJE.ToString(), flag); flag *= -1; } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { int flag; bool isFirstInRow = (i % rowItemsCount == 0); bool isLastInRow = (i % rowItemsCount == rowItemsCount - 1) || (i == ds.Tables[0].Rows.Count - 1); if (isFirstInRow && isLastInRow) flag = 7; else if (isFirstInRow) flag = -4; else if (isLastInRow) flag = 4; else flag = 6; dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); sZHCPMLMCBJDHQ += GetHTMLString(sZHCPMLMC + ":" + dBJDHQLJZJE.ToString(), flag, rowItemsCount); sZHCPMLMCJGBHQ += GetHTMLString(sZHCPMLMC + ":" + dJGBHQLJZJE.ToString(), flag, rowItemsCount); } } } #endregion if (bjflxx.XSBJDHQLJ()) { return sZHCPMLMCBJDHQ; } //价格表行情料价 if (bjflxx.XSLJ()) { return sZHCPMLMCJGBHQ; } return ""; } //研发自测:谭善勇 2026/07/23 15:46:02 private string GetHTMLString(string str,int flag) { return GetHTMLString(str, flag, 2); } //研发自测:谭善勇 2026/07/23 15:46:02 private string GetHTMLString(string str, int flag, int rowItemsCount) { if (str.Trim().Equals("")) return ""; if (flag == -1)//增加空格 str += "    "; if(flag == 1)//换行 str += "
"; if(flag==3)//红色 str = "" + str + ""; // 以下逻辑通过计算百分比来支持每行多个字段 string widthPercent = (100.0 / rowItemsCount).ToString("0.##") + "%"; if (rowItemsCount == 2) { if (flag == -4)//左 str = "" + str + ""; if (flag == 4)//右 str = "" + str + ""; } else { if (flag == -4) str = "" + str + ""; else if (flag == 4) str = "" + str + ""; else if (flag == 6)//中间项 str = "" + str + ""; else if (flag == 7) str = "" + str + ""; } if(flag==5) str = "" + str + "
"; return str; } //直接查询报价单利润率字段 private void GetBJDLRL(string sBJDID, ref double dLRL, ref double dCLCBJCL, ref double dZDXJJCL, ref double dBJLJJCL) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJD_JGBBJLJJCL,XLXSBJD_LRL,XLXSBJD_CLCBJCL,XLXSBJD_ZDXJJCL from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_LRL"].ToString().Trim()), 2); dCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_CLCBJCL"].ToString().Trim()), 2); dZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_ZDXJJCL"].ToString().Trim()), CMISproConvert.StrToInt(GetOption("BJU054"))); dBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_JGBBJLJJCL"].ToString().Trim()), 2); } } private bool GetCKCPXX(string sBJDID, string sXH, ref string sCKXLXHID, ref string sCKXLGGID, ref string sCKXLBZID, ref string sCKDYDJID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID from XLXSBJDGYJD where XLXSBJDGYJD_BJDID = :pBJDID and XLXSBJDGYJD_BJDXH=:pBJDXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sXH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sCKXLXHID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLXHID"].ToString().Trim(); sCKXLGGID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLGGID"].ToString().Trim(); sCKXLBZID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLBZID"].ToString().Trim(); sCKDYDJID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKDYDJID"].ToString().Trim(); return true; } return false; } /// /// 形成dicTJYZList(sTJYSList_, BJ01),dicTJYZList(sTJYSList1, BJ02),dicTJYZList(sTJYSListA, BJ03) /// /// /// /// /// /// /// public static void GetDicTJYZList_NewYZ(TDatabase dberp, TSQL SQL, string sNewBJFLID, string sOldBJFLID, ref Dictionary dicTJYZList) { dicTJYZList.Clear(); SQL.Clear(); SQL.Add(" SELECT XLXSBJFLYZ_YZID,XLXSTZYZ_TJYS FROM XLXSBJFLYZ "); SQL.Add(" LEFT JOIN XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID and XLXSTZYZ_MXBH = 'BJD' "); SQL.Add(" where 1=1 and XLXSBJFLYZ_BJFLID = :pBJFLID "); SQL.Add(" and XLXSBJFLYZ_YZID not in (select XLXSBJFLYZ_YZID from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = :pOldBJFL )"); SQL.ParamByName("pBJFLID").Value = sNewBJFLID; SQL.ParamByName("pOldBJFL").Value = sOldBJFLID; DataSet dsBJDYZ = dberp.OpenDataSet(SQL); if (dsBJDYZ.Tables[0].Rows.Count > 0) { string chr = ""; for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++) { for (int j = 0; j <= 35; j++) { chr = XLXSBJCL_HQFDKRInfo.int10Convert36(j); if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) { if (dicTJYZList.ContainsKey("sTJYSList_")) { dicTJYZList["sTJYSList_"] = dicTJYZList["sTJYSList_"] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); } else { dicTJYZList.Add("sTJYSList_", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); } break; } else if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals(chr)) { if (dicTJYZList.ContainsKey("sTJYSList" + chr)) { dicTJYZList["sTJYSList" + chr] = dicTJYZList["sTJYSList" + chr] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); } else { dicTJYZList.Add("sTJYSList" + chr, dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); } break; } } } } } public static void GetDicTJYZList_NewYZ(string sNewBJFLID, string sOldBJFLID, ref Dictionary dicTJYZList) { dicTJYZList.Clear(); List yzxx_NewList = XLBJDUtils.GetBJFLYZOrderByXSXH(sNewBJFLID); List yzxx_OldList = XLBJDUtils.GetBJFLYZXXByBJFLID(sOldBJFLID); string chr = ""; foreach (TZYZXX yzxxNew in yzxx_NewList) { bool bSameYZID = false; foreach (XLXSBJFLYZXX yzxxOld in yzxx_OldList) { if (yzxxNew.XLXSTZYZ_YZID.Equals(yzxxOld.XLXSBJFLYZ_YZID)) { bSameYZID = true; break; } } if (!bSameYZID) { for (int j = 0; j <= 35; j++) { chr = XLXSBJCL_HQFDKRInfo.int10Convert36(j); if (yzxxNew.XLXSTZYZ_TJYS.Trim().Equals("")) { if (yzxxNew.XLXSTZYZ_TJMDID.Trim().Equals("100860124")) { if (dicTJYZList.ContainsKey("sTJYSListPFBZ")) { dicTJYZList["sTJYSListPFBZ"] = dicTJYZList["sTJYSListPFBZ"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); } else { dicTJYZList.Add("sTJYSListPFBZ", yzxxNew.XLXSTZYZ_YZID.Trim()); } } else if (yzxxNew.XLXSTZYZ_TJMDID.Trim().Equals("100860162")) { if (dicTJYZList.ContainsKey("sTJYSListPFCPWJ")) { dicTJYZList["sTJYSListPFCPWJ"] = dicTJYZList["sTJYSListPFCPWJ"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); } else { dicTJYZList.Add("sTJYSListPFCPWJ", yzxxNew.XLXSTZYZ_YZID.Trim()); } } else if (yzxxNew.XLXSTZYZ_TJMDID.Trim().Equals("100860071")) { if (dicTJYZList.ContainsKey("sTJYSListYF")) { dicTJYZList["sTJYSListYF"] = dicTJYZList["sTJYSListYF"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); } else { dicTJYZList.Add("sTJYSListYF", yzxxNew.XLXSTZYZ_YZID.Trim()); } } else { if (dicTJYZList.ContainsKey("sTJYSList_")) { dicTJYZList["sTJYSList_"] = dicTJYZList["sTJYSList_"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); } else { dicTJYZList.Add("sTJYSList_", yzxxNew.XLXSTZYZ_YZID.Trim()); } } break; } else if (yzxxNew.XLXSTZYZ_TJYS.Trim().Equals(chr)) { if (dicTJYZList.ContainsKey("sTJYSList" + chr)) { dicTJYZList["sTJYSList" + chr] = dicTJYZList["sTJYSList" + chr] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); } else { dicTJYZList.Add("sTJYSList" + chr, yzxxNew.XLXSTZYZ_YZID.Trim()); } break; } } } } } private bool XSCBXKHID() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); //客户ID XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); //销售报价业务配置“客户检索来源”为“KH|客户”、且“新增客户要求”为“报价前维护”时,txtKHID显示,cbxKHID不显示 if (pzxx.XLXSBJPZ_KHJSLY == "KH" && pzxx.XLXSBJPZ_XZKHYQ=="Q") return false; return true; } private void SetHQJCL() { bool bExistBJDHQ = false; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) bExistBJDHQ = true; double dSX = CMISproConvert.StrToFloat(GetOption("BJU022")); if (dSX > 0 && bExistBJDHQ) { trHQJCJY.Visible = true; lblHQJCJY.ForeColor = Color.Green; lblHQJCJY.Text = "行情价差校验正常"; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select 1 from XLXSBJDCLHQ "); SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJDCLHQ_BJCLID "); SQL.Add(" left join ("); SQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG "); SQL.Add(" from XLXSCLHQ, "); SQL.Add(" ( select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS "); SQL.Add(" from XLXSCLHQ where XLXSCLHQ_JGBID='ZZZZZZZZ' "); SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) "); SQL.Add(" group by XLXSCLHQ_BJCLID )a where XLXSCLHQ_JGBID='ZZZZZZZZ' and XLXSCLHQ_BJCLID=BJCLID and XLXSCLHQ_YXQS=maxYXQS "); SQL.Add(" )bjrqclhq on bjrqclhq.BJCLID=XLXSBJDCLHQ_BJCLID "); SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID and XLXSBJCL_BJHQ='1' "); SQL.Add(" and case when isnull(bjrqclhq.HSJG,0) = 0 then 0 else Round(abs(XLXSBJDCLHQ_HSJG - bjrqclhq.HSJG)/bjrqclhq.HSJG*100,2) end > :pJCL "); SQL.ParamByName("pBJRQ").Value = datBJRQ.Text.Trim(); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pJCL").Value = dSX; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { lblHQJCJY.ForeColor = Color.Red; lblHQJCJY.Text = "行情价差率超限"; return; } else { SQL.Clear(); SQL.Add(" select 1 from XLXSBJDWLHQ "); SQL.Add("left join "); SQL.Add("( "); SQL.Add(" select WLID,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_HSJG as HSJG "); SQL.Add(" from XLXSWLHQ, "); SQL.Add(" ( "); SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); SQL.Add(" from XLXSWLHQ "); SQL.Add(" where XLXSWLHQ_JGBID=' ' "); SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); SQL.Add(" group by XLXSWLHQ_WLID "); SQL.Add(" ) a "); SQL.Add(" where XLXSWLHQ_JGBID=' ' "); SQL.Add(" and XLXSWLHQ_WLID=WLID "); SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS "); SQL.Add(") bjrqwlhq on bjrqwlhq.WLID=XLXSBJDWLHQ_WLID "); SQL.Add(" where XLXSBJDWLHQ_BJDID=:pBJDID "); SQL.Add(" and case when isnull(bjrqwlhq.HSJG,0) = 0 then 0 else RoundFix(abs(XLXSBJDWLHQ_HSJG - bjrqwlhq.HSJG)/bjrqwlhq.HSJG*100,2) end > :pJCL "); SQL.ParamByName("pBJRQ").Value = datBJRQ.Text.Trim(); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pJCL").Value = dSX; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { lblHQJCJY.ForeColor = Color.Red; lblHQJCJY.Text = "行情价差率超限"; } } } else trHQJCJY.Visible = false; } private string GetKHDHURL() { string sUrl = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_KHDHURL from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sUrl = ds.Tables[0].Rows[0]["XLXSBJD_KHDHURL"].ToString().Trim(); } return sUrl; } private double GetDOCGRPID(string sBJDID) { double dDOCGRPID = 0; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_DOCGRPID from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim()); } return dDOCGRPID; } private double[] CopyAttach(double dSrcGrp, int CopyCount) { DocGroupResult DocFile = FileService.CopyGroup(dSrcGrp, CopyCount); double[] NewGRPID = DocFile.GroupIdArray; return NewGRPID; } //表价下拉按钮跳转 private void HandleCLCBPageParams(string sWGCPTZBZ) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_WGCPBJList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 pageParams.AddString("WGCPTZBZ", sWGCPTZBZ);//是否点击外购产品跳转 pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } //允许录入报价产品 public static bool YXLRBJCP(string sLRBJCPWPID, string sWPID) { bool bRe = true; if (sWPID.Equals("")) sWPID = "0010"; if (!sLRBJCPWPID.Equals("")) { string sWPIDS = "," + sLRBJCPWPID + ","; sWPID = "," + sWPID + ","; if (!sWPIDS.Contains(sWPID)) bRe = false; } return bRe; } #region PDF导出 public static void PDFDC(string sBJDID) { string sBBXH = ""; string sBBMC = ""; double dDOCGRPID = 0; double dFJS = 0; double dOLDFileID = 0; #region 获取默认报表样式 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJU040 = CMISproSessionManager.GetCurrentSession().GetOption("BJU040"); SQL.Clear(); if (string.IsNullOrEmpty(sBJU040)) SQL.Add(" select BBYS_XH,BBYS_SM from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_QSBB='Y' "); else { SQL.Add(" select BBYS_XH,BBYS_SM from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_XH=:pXH "); SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(sBJU040); } DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count <= 0) return; sBBXH = ds.Tables[0].Rows[0]["BBYS_XH"].ToString().Trim(); sBBMC = ds.Tables[0].Rows[0]["BBYS_SM"].ToString().Trim(); #endregion string strPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\work\\" + "temp"; if (!Directory.Exists(strPath)) Directory.CreateDirectory(strPath); string pdfPath = strPath + "\\" + "[" + Guid.NewGuid().ToString() + "]" + ".pdf"; FileStream fsPdf = new FileStream(pdfPath, FileMode.OpenOrCreate); try { //将xml字符串转化为流 //byte[] array = Encoding.Default.GetBytes(sReportXML); //MemoryStream fsXml = new MemoryStream(array); //调用服务将报表XML文件流转化为EXCEL文件流 string sReportXML = GetBBNR(sBJDID, CMISproConvert.StrToFloat(sBBXH)); try { XmlDocument xml = new XmlDocument(); xml.LoadXml(sReportXML); XmlNode XmlRoot = xml.SelectSingleNode("Report"); sBBMC = XmlRoot.Attributes["Name"].Value.Trim(); } catch { } SQL.Clear(); SQL.Add(" select XLXSBJD_DOCGRPID,XLXSBJD_FJS from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count <= 0) return; dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim(),0); dFJS = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_FJS"].ToString().Trim(), 0); if (dDOCGRPID != 0) { DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); for (int i = 0; i < docFileInfo.Length; i++) { if (docFileInfo[i].FileName.Equals(sBBMC + ".pdf")) dOLDFileID = docFileInfo[i].FileId; } } GThinking.N_MISPROAS.MISproAS.ReportService.Rpt2Pdf(sReportXML, fsPdf); DocFileInfo tempDOCInfo = FileService.AddFile(fsPdf, sBBMC + ".pdf", dDOCGRPID); dDOCGRPID = tempDOCInfo.GroupId; if (dOLDFileID == 0) dFJS += 1; SQL.Clear(); SQL.Add(" update XLXSBJD set XLXSBJD_DOCGRPID = :pDOCGRPID,XLXSBJD_FJS=:pFJS where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pDOCGRPID").Value = dDOCGRPID; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pFJS").Value = dFJS; dberp.ExecSQL(SQL); if (dOLDFileID != 0) FileService.DeleteFile(dDOCGRPID, dOLDFileID); fsPdf.Close(); } finally { fsPdf.Close(); } } public static DataSet GetDs_XLXSBJDMX(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(@"select XLXSBJDMX_BJDID,XLXSBJDMX_XH, OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC,HasCPMLID,XLXSBJDMX_BJCP,XLWLXX, XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, HasCLQD,HasYLDZSQ,UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,'N' as PFYSQKBZ,HasFDJL from (select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum, XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID, rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC, case (case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) when ' ' then ' ' else rtrim(case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) || '|'|| rtrim(XLXSCPML_CPMLMC) end as HasCPMLID, XLXSBJDMX_BJCP,' ' as XLWLXX, ISNULL(XLXSBJDMX_WGCPBZ,'N') as XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, 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, 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, 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, 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, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, case when XLXSBJDMX_BJSL=0 then 0 else RoundFix(XLXSBJDMX_BJJE/XLXSBJDMX_BJSL,14) end as TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE, XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, case when isnull(XLXSCLQD_WPID,' ')='ZZZZ' then 'Y' else 'N' end as HasCLQD, case when ((ISNULL(XLXSBJYLZD_WPID,' ')= '0060' or ISNULL(XLXSBJYLZD_WPID,' ')= 'ZZZZ') and isnull(XLXSBJYLZDMX_BZDBZ,'N') ='Y' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'N' when (ISNULL(XLXSBJYLZD_WPID,' ')<> ' ' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'Y' else 'N' end as HasYLDZSQ, case when isnull(XLXSJGB_MXBH,' ')='JGB' then ' ' else rtrim(convert(char,XLXSBJDJJYZ_YZZ01))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ02))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ03)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ04))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ05))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ06)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ07))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ08))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ09)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ10))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ11))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ12))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ13))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ14))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ15))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ16))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ17))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ18))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ19))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ20))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YSJDZ)) end as UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,case when isnull(XLXSBJDMXFD_BJDID,' ') = ' ' then 'N' else 'Y' end as HasFDJL from XLXSBJDMX left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_BZDBZ from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :XLXSBJDMX_BJDID ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end left join XLXSBJDMXFD on XLXSBJDMXFD_BJDID = XLXSBJDMX_BJDID and XLXSBJDMXFD_BJDXH = XLXSBJDMX_XH where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID ) BJD where 1=1 order by RNum "); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; return dberp.OpenDataSet(SQL); } public static DataSet GetDs_XLXSBJD(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(@" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_WPID,XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ, XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,XLXSBJD_SQRQ, XLXSBJD_XZQHID,XLXSBJD_XMID,XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_ZB,XLXSBJD_ZBJE, XLXSBJD_WHR, XLXSBJD_WHSJ, XLXSBJD_FJS from XLXSBJD where XLXSBJD_BJDID = :pBJDID order by XLXSBJD_BJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; return dberp.OpenDataSet(SQL); } //获取默认打印样式报表内容 public static string GetBBNR(string sBJDID, double dXH) { string sYSNR = string.Empty; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select BBYS_NR from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_XH = :pXH "); SQL.ParamByName("pXH").Value = dXH; DataSet dsYS = dberp.OpenDataSet(SQL); if (dsYS.Tables[0].Rows.Count > 0) { string sYSMB = dsYS.Tables[0].Rows[0][0].ToString().Trim(); if (sYSMB.Equals("")) throw new Exception("报表样式内容为空,无法导出pdf!"); byte[] b = new byte[0]; byte[] c = new byte[0]; byte[] zipbuf = new byte[0]; b = (byte[])dsYS.Tables[0].Rows[0][0]; if (IsZlib(b)) { zipbuf = ZlibCompress.DecompressBytes(b); } else { zipbuf = ZipCompress.DecompressBytes(b); } sYSMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length); sYSMB = sYSMB.Replace("\'", "\""); TReportComClass Report = new TReportComClass(CMISproSessionManager.GetCurrentSession(), TContextDatabases.GetDatabase("DBERP")); Report.OnReportUnknownFunction += ReportOnUnknownFunction; Report.OnReportUnknownVariable += ReportOnUnknownVariable; DataSet dsXLXSBJDMX = GetDs_XLXSBJDMX(sBJDID); DataSet dsXLXSBJD = GetDs_XLXSBJD(sBJDID); //添加明细数据集及字段 if (dsXLXSBJDMX.Tables[0].Rows.Count > 0) { Report.AddUserReportDataSet("XLXSBJDMX", dsXLXSBJDMX); Report.ReportRecordSetAdd(); //添加明细字段值 for (int i = 0; i < dsXLXSBJDMX.Tables[0].Columns.Count; i++) { Report.AllVariableValue.Add(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, dsXLXSBJDMX.Tables[0].Rows[0][i].ToString().Trim(), "S")); } } //添加主表数据集及字段 if (dsXLXSBJD.Tables[0].Rows.Count > 0) { Report.AddUserReportDataSet("XLXSBJD", dsXLXSBJD); Report.ReportRecordSetAdd(); //Report.AddReportField("XLXSBJD", "XLXSBJD_BJDID", "报价单号", "S"); //添加字段值 for (int i = 0; i < dsXLXSBJD.Tables[0].Columns.Count; i++) { Report.AllVariableValue.Add(dsXLXSBJD.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJD.Tables[0].Columns[i].ColumnName, dsXLXSBJD.Tables[0].Rows[0][i].ToString().Trim(), "S")); } } sYSNR = Report.GetReportResult(sYSMB); } return sYSNR; } #region 报表样式转化方法 public static bool IsZlib(byte[] SourceBytes) { bool bZlib = false; if (SourceBytes.Length > 2) { if (SourceBytes[0].Equals(120) && SourceBytes[1].Equals(156)) { bZlib = true; } else if (SourceBytes[0].Equals(80) && SourceBytes[1].Equals(75)) { bZlib = false; } } return bZlib; } public static void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) { int _Year = 0; string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); int _Month = 0; int _BBQH = 0; bool _Exist = false; TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); TLogicContext.Current.SetContextVar("BBDWID", _DWID); TLogicContext.Current.SetContextVar("BBID", _BBID); TLogicContext.Current.SetContextVar("END", _End.ToString()); TLogicContext.Current.SetContextVar("START", _Start.ToString()); TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 ReportOnUnknownFunction(Name, Params, ref ValueType, ref Value); } public static void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value) {//Params: CS1,CS2,CS3 //OnReportUnknownFunction(Name, Params, ref ValueType, ref Value); CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); if (Name.ToUpper() == "GETN") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), "").ToString(); } else { Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)).ToString(); } } else { Value = tSession.GetN(0, Params).ToString(); } } else if (Name.ToUpper() == "GETS") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), ""); } else { Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)); } } else { Value = tSession.GetS(0, Params); } } else if (Name.ToUpper() == "DATEDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.Days.ToString(); } } else if (Name.ToUpper() == "DATEADD") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 3) { Value = ""; } else { string sDateKind = par[0].ToUpper(); int number = N_MISPRO.Utility.CMISproConvert.StrToInt(par[1]); string CustomKind = ""; if (par[2].Trim().Length > 10) { CustomKind = "Time"; } else { CustomKind = "Date"; } DateTime dDest = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[2]); switch (sDateKind) { case ("HOUR"): Value = dDest.AddHours(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("MINUTE"): Value = dDest.AddMinutes(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("SECOND"): Value = dDest.AddSeconds(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("DAY"): if (CustomKind == "Time") Value = dDest.AddDays(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddDays(number).ToString("yyyy-MM-dd"); break; case ("WEEK"): if (CustomKind == "Time") Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd"); break; case ("MONTH"): if (CustomKind == "Time") Value = dDest.AddMonths(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddMonths(number).ToString("yyyy-MM-dd"); break; case ("QUARTER"): if (CustomKind == "Time") Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd"); break; case ("YEAR"): if (CustomKind == "Time") Value = dDest.AddYears(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddYears(number).ToString("yyyy-MM-dd"); break; default: Value = ""; break; } } } else if (Name.ToUpper() == "ADDTIME") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 2) { Value = ""; } else { string sH1 = par[0].Trim().Split(':').GetValue(0).ToString().Trim(); string sMI1 = par[0].Trim().Split(':').GetValue(1).ToString().Trim(); string sH2 = par[1].Trim().Split(':').GetValue(0).ToString().Trim(); string sMI2 = par[1].Trim().Split(':').GetValue(1).ToString().Trim(); int iModMin = (N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) % 60; int iModH = Convert.ToInt32(Math.Floor(Convert.ToDouble((N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) / 60))); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sH1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sH2) + iModH) + ":" + iModMin.ToString().PadLeft(2, '0'); } } else if (Name.ToUpper() == "TIMEDIFF") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 3) { Value = ""; } else { bool bNeedAdd1 = false; string sDateB = par[0].Trim(); string sDateE = par[1].Trim(); if (sDateE.Trim().Equals("24:00")) { bNeedAdd1 = true; sDateE = "23:59"; } string sReturnType = par[2].Trim(); TimeSpan spart; bool bDownZ = false; if (sDateB.Trim().Length > 5) { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) { bDownZ = true; } } else { if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE).AddHours(24) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); } else { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); } } switch (sReturnType) { case "HH": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); } } break; case "MI": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1); } break; case "SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)); } else { Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)); } break; case "HH:MI:SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } } break; case "HH:MI": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0'); } } break; case "MI:SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } } break; } } } else if (Name.ToUpper() == "FORMATMINUTETOHHMM") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { int iMM = 0; try { iMM = Convert.ToInt32(par[0].Trim()); } catch { Value = ""; } int iRHH = iMM / 60; int iRMM = iMM % 60; string sHHMM = (iRHH == 0 ? "" : (Convert.ToString(iRHH) + "小时")) + (iRMM == 0 ? "" : (Convert.ToString(iRMM) + "分钟")); Value = sHHMM; } else { Value = ""; } } else { Value = ""; } } else if (Name.ToUpper() == "FORMATHHMMTOMINUTE") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { string sParam = par[0].Trim(); bool bHasHour = false; bool bHasMinute = false; try { if (sParam.IndexOf("小时") >= 0) bHasHour = true; if (sParam.IndexOf("分钟") >= 0) bHasMinute = true; if (bHasHour && !bHasMinute) //仅仅有小时没有分钟 { string sHour = sParam.Substring(0, sParam.IndexOf("小时")); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60); } else if (!bHasHour && bHasMinute) //仅仅有分钟没有小时 { string sMinute = sParam.Substring(0, sParam.IndexOf("分钟")); Value = sMinute; } else if (bHasHour && bHasMinute) //既有分钟也有小时 { string sHour = sParam.Substring(0, sParam.IndexOf("小时")); string sMinuteAll = sParam.Replace(sHour + "小时", ""); string sMinute = sMinuteAll.Substring(0, sMinuteAll.IndexOf("分钟")); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60 + N_MISPRO.Utility.CMISproConvert.StrToInt(sMinute)); } } catch { Value = ""; } } else { Value = ""; } } else { Value = ""; } } else if (Name.ToUpper() == "HOURDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.TotalHours.ToString(); } } else if (Name.ToUpper() == "MINUTEDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.TotalMinutes.ToString(); } } else if (Name.ToUpper() == "EXP") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 1) { Value = "0"; } else { Value = Math.Pow(Math.E, CMISproConvert.StrToFloat(par[0])).ToString(); } } else if (Name.ToUpper() == "SORT") { Value = Sort(Params); ValueType = "N"; } else if (Name.ToUpper() == "INVERTEDSORT") { Value = InvertedSort(Params); ValueType = "N"; } else if (Name.ToUpper() == "GETWFLOGXX") { Value = ""; ValueType = "S"; } else if (Name.ToUpper() == "GETUSERQM") { string[] par = Params.Split(','); if (par.Length != 1) { ValueType = "S"; Value = ""; } else { string sGH = par[0].Trim(); if (sGH.Trim() != "") { byte[] bbImage = new byte[0]; bbImage = GetUserQM(sGH); if (bbImage.Length == 0) //空图片 { ValueType = "S"; Value = ""; } else { MemoryStream oMy = null; oMy = new MemoryStream(bbImage); ValueType = "S"; Value = GetPhoto(oMy); } } else { ValueType = "S"; Value = ""; } } } else { List lstAMID = GetAMIDByAMNAME(Name); if (lstAMID.Count == 0) return; if (lstAMID.Count > 1) { ValueType = "S"; Value = "错误:模块名为[" + Name + "]的模块存在多个,不允许计算!"; } int iAMID = lstAMID[0]; object obj = tSession.DataAgentGetValue(iAMID, Params); if (obj is double) { ValueType = "N"; } else if (obj is string) { ValueType = "S"; } Value = obj.ToString(); } } public static void ReportOnUnknownVariable(string Name, ref string ValueType, ref string Value, TDatabase db) { int _Year = 0; string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); int _Month = 0; int _BBQH = 0; bool _Exist = false; TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); TLogicContext.Current.SetContextVar("BBDWID", _DWID); TLogicContext.Current.SetContextVar("BBID", _BBID); TLogicContext.Current.SetContextVar("END", _End.ToString()); TLogicContext.Current.SetContextVar("START", _Start.ToString()); TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 ReportOnUnknownVariable("", Name, ref ValueType, ref Value); } public static void ReportOnUnknownVariable(string sSQL, string Name, ref string ValueType, ref string Value) { CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); if (Name.ToUpper() == "USERID") { ValueType = "S"; Value = tSession.UserId; } if (Name.ToUpper() == "DEPTNAME") { ValueType = "S"; User user = UserUtils.GetUser(tSession.UserId); if (user != null) { string sBMID = user.RzBmId.Trim(); Value = GetBMMC(sBMID); } else { Value = ""; } } if (Name.ToUpper() == "KJDWMC") { ValueType = "S"; Value = GetKJDW(_DWID); } if (Name.ToUpper() == "START") { ValueType = "S"; Value = _Start.ToString("yyyy-MM-dd"); } if (Name.ToUpper() == "END") { ValueType = "S"; Value = _End.ToString("yyyy-MM-dd"); } } public static string Sort(string sValue) { List dValue = new List(); double dStartValue = 0; string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < aValue.Length; i++) { double ddValue = 0; if (i == 0) { if (!double.TryParse(aValue[i], out dStartValue)) return dStartValue.ToString(); } else { if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) dValue.Add(ddValue); } } dValue.Sort(); return Convert.ToString(dValue.IndexOf(dStartValue) + 1); } public static string InvertedSort(string sValue) { List dValue = new List(); double dStartValue = 0; string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < aValue.Length; i++) { double ddValue = 0; if (i == 0) { if (!double.TryParse(aValue[i], out dStartValue)) return dStartValue.ToString(); } else { if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) dValue.Add(ddValue); } } dValue.Sort(); if (dValue.IndexOf(dStartValue) != -1) return Convert.ToString(dValue.Count - dValue.IndexOf(dStartValue)); else return "0"; } public static byte[] GetUserQM(string sUserID) { byte[] bImage = new byte[0]; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); try { string sSQLText = string.Format(" select YHQMTP_QMTP from YHQMTP where YHQMTP_GH='{0}' ", sUserID); DataSet ds = dberp.OpenDataSet(sSQLText); if (ds.Tables[0].Rows.Count > 0) { bImage = (byte[])ds.Tables[0].Rows[0]["YHQMTP_QMTP"]; } } catch { } return bImage; } public static string GetPhoto(MemoryStream pPhoto) { Random iRa = new Random(); int iResult; string sTemp = "", sPath = "", TempSavePath = ""; CMISproSession tSession = CMISproApp.GetSession(); string sUsrID = tSession.UserId; if (string.IsNullOrEmpty(sUsrID)) { sUsrID = "XXXX"; } do //防止产生的随机数相同导致打印图片相同 { iResult = iRa.Next(); //产生随机数 sTemp = "TempOA" + CMISproConvert.ConvertDate(DateTime.Now) + Convert.ToString(iResult) + "-" + sUsrID + ".bmp"; sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UploadFile"); TempSavePath = sPath + "\\" + sTemp; } while (File.Exists(TempSavePath)); FileStream copyToFile = new FileStream(TempSavePath, FileMode.Append, FileAccess.Write); MemoryStream oMy = null; try { oMy = pPhoto; byte[] buffer = new byte[oMy.Length]; oMy.Read(buffer, 0, (int)oMy.Length); oMy.Flush(); copyToFile.Write(buffer, 0, (int)oMy.Length); copyToFile.Flush(); } catch { } finally { if (oMy != null) { oMy.Close(); } copyToFile.Close(); } return TempSavePath; } public static string GetBMMC(string sBMID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Add("select BM_MC from BM where BM_BMID=:pBMID "); sSql.ParamByName("pBMID").Value = sBMID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["BM_MC"].ToString().Trim(); } else { return ""; } } public static List GetAMIDByAMNAME(string sAMNAME) { List lstAMID = new List(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select AMID from ACTIVEMODULE"); SQL.Add(" where AMNAME = :pAMNAME"); SQL.Add(" and AMTYPE = 'D'"); SQL.Add(" and AMPLATFORM = 'N'"); SQL.ParamByName("pAMNAME").Value = sAMNAME; DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { lstAMID.Add(CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["AMID"].ToString().Trim())); } return lstAMID; } public static string GetKJDW(string sDWID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add(" select BBDW_KJDWID, isnull(KJDW_QC,' ') as KJDW_QC from BBDW"); sSQL.Add(" left join KJDW on KJDW_KJDWID=BBDW_KJDWID"); sSQL.Add(" where BBDW_DWID=:pDWID"); sSQL.ParamByName("pDWID").Value = sDWID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["KJDW_QC"].ToString().Trim(); } else { return ""; } } #endregion #endregion public static double RoundX(double Num,int Fragment) { //小数位数大于等于0 if (Fragment >= 0) return NumberUtils.RoundX(Num, Fragment); //小数位数小于0 double factor = Math.Pow(10, -Fragment); return Math.Round(Num / factor) * factor; } private void UpdateXLXSBJD(TDatabase dberp, TSQL SQL, BJFLXX bjflxx, bool bBJSM) { double fZJE = 0; double fLRE = 0; double fZZL = 0; double fCPJE = 0;//表价金额 double fCLCB = 0;//材料成本 double fBJDCLCB = 0;//报价单材料成本 double fZDXJ = 0;//最低限价 double fBJLJJJCL = 0; double fLJF0ZJE = 0; double fPFZJE = 0; double fZJEQDN = 0; double fLREQDN = 0; double fCPJEQDN = 0; double fCLCBQDN = 0; double fBJDCLCBQDN = 0; double fZDXJQDN = 0; double fLJF0ZJEQDN = 0; SQL.Clear(); SQL.Add(" select sum(XLXSBJDMX_BJJE) as ZJE,sum(XLXSBJDMX_PJJE) as PJZJE,sum(XLXSBJDMX_JGBBJJCE) as LRE,sum(XLXSBJDMX_CLZL) as ZZL,"); SQL.Add(" sum(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL) as CPJE,sum(XLXSBJDMX_CLCB*XLXSBJDMX_BJSL) as CLCB,"); SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL) as BJDCLCB,sum(XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL) as ZDXJ "); if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) { SQL.Add(" ,sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); } else { SQL.Add(" ,sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); } if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) { SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJJE ) as ZJEQDN "); SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJJCE ) as LREQDN "); SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL ) as CPJEQDN "); SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_CLCB*XLXSBJDMX_BJSL ) as CLCBQDN "); SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL ) as BJDCLCBQDN "); SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL ) as ZDXJQDN "); if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); else SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); } SQL.Add(" from XLXSBJDMX"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet dsBJD = dberp.OpenDataSet(SQL); if (dsBJD.Tables[0].Rows.Count > 0) { fZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZJE"].ToString(), 0); fLRE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LRE"].ToString(), 0); fZZL = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZZL"].ToString(), 0); fCPJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CPJE"].ToString(), 0); fCLCB = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CLCB"].ToString(), 0); fBJDCLCB = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["BJDCLCB"].ToString(), 0); fZDXJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZDXJ"].ToString(), 0); fLJF0ZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LJF0ZJE"].ToString(), 0); fPFZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["PJZJE"].ToString(), 0); if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) { fZJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZJEQDN"].ToString(), 0); fLREQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LREQDN"].ToString(), 0); fCPJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CPJEQDN"].ToString(), 0); fCLCBQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CLCBQDN"].ToString(), 0); fBJDCLCBQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["BJDCLCBQDN"].ToString(), 0); fZDXJQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZDXJQDN"].ToString(), 0); fLJF0ZJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LJF0ZJEQDN"].ToString(), 0); } } txtZJE.Value = NumberUtils.RoundX(fZJE, 2); txtLRL.Value = 0; txtLJJCL.Value = 0; txtZDXJJCL.Value = 0; #region 表价价差率公式 if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) { fZJE = fZJEQDN; fLRE = fLREQDN; fCPJE = fCPJEQDN; } if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) { if (fZJE == 0) txtLRL.Value = 0; else txtLRL.Value = NumberUtils.RoundX(fLRE / fZJE * 100, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) { if (fCPJE == 0) txtLRL.Value = 0; else txtLRL.Value = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) { if (fZJE == 0) txtLRL.Value = 0; else txtLRL.Value = NumberUtils.RoundX(fCPJE / fZJE * 100, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) { if (fCPJE == 0) txtLRL.Value = 0; else txtLRL.Value = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); } #endregion #region 料价价差率 if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) { fLJF0ZJE = fLJF0ZJEQDN; fCLCB = fCLCBQDN; fBJDCLCB = fBJDCLCBQDN; } if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) { if (fLJF0ZJE == 0) txtLJJCL.Value = 0; else txtLJJCL.Value = 100 - NumberUtils.RoundX(fCLCB / fLJF0ZJE * 100, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) { if (fLJF0ZJE == 0) txtLJJCL.Value = 0; else txtLJJCL.Value = 100 - NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) { if (fBJDCLCB == 0) txtLJJCL.Value = 0; else txtLJJCL.Value = NumberUtils.RoundX(fLJF0ZJE / fBJDCLCB * 100, 2) - 100; } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) { if (fLJF0ZJE == 0) txtLJJCL.Value = 0; else txtLJJCL.Value = NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); } #endregion #region 表价料价价差率 if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) { fCPJE = fCPJEQDN; fBJDCLCB = fBJDCLCBQDN; } if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) { if (fCPJE != 0) fBJLJJJCL = NumberUtils.RoundX((fCPJE - fBJDCLCB) / fCPJE * 100, 2); } #endregion #region 最低限价价差率 int iXSWS = CMISproConvert.StrToInt(GetOption("BJU054")); if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) { fZDXJ = fZDXJQDN; fZJE = fZJEQDN; fBJDCLCB = fBJDCLCBQDN; } if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("1")) { if (fZJE == 0) txtZDXJJCL.Value = 0; else txtZDXJJCL.Value = 100 - NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("2")) { if (fZDXJ == 0) txtZDXJJCL.Value = 0; else txtZDXJJCL.Value = NumberUtils.RoundX(fZJE / fZDXJ * 100, iXSWS) - 100; } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("3")) { if (fZJE == 0) txtZDXJJCL.Value = 0; else txtZDXJJCL.Value = NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("4")) { if (fZDXJ == 0) txtZDXJJCL.Value = 0; else txtZDXJJCL.Value = 100 - NumberUtils.RoundX(fBJDCLCB / fZDXJ * 100, iXSWS); } else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("5")) { if (fCPJE == 0) txtZDXJJCL.Value = 0; else txtZDXJJCL.Value = NumberUtils.RoundX(fZDXJ / (fCPJE * XLBJDUtils.sCJXS) * 100, iXSWS); } #endregion txtZZL.Value = NumberUtils.RoundX(fZZL, 3); double fYSFY = 0; //计运费 if (bjflxx.XLXSBJFL_JYF.Equals("Y")) { fYSFY = GetYSFY(cbxYSJDID.SelectedValue.Trim(), cbxGYSID.SelectedValue.Trim(), bjflxx.XLXSBJFL_YFWLID, txtZZL.Value); } txtYSFY.Value = fYSFY * txtZZL.Value; string sBJSM = string.Empty; if (bBJSM) { SQL.Clear(); SQL.Add(" select XLXSBJD_BJSM from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet dsBJSM = dberp.OpenDataSet(SQL); if (dsBJSM.Tables[0].Rows.Count > 0) { if (dsBJSM.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim().Equals("")) { SQL.Clear(); SQL.Add(" select XLXSBJSM_SMNR from XLXSBJSM where XLXSBJSM_MRBZ = 'Y' and XLXSBJSM_ZDM = 'BJSM' "); SQL.Add(" and (isnull(XLXSBJSM_KH,' ')=' ' or isnull(XLXSBJSM_KH,' ')=:pKH) "); SQL.Add(" order by isnull(XLXSBJSM_KH,' ') desc "); SQL.ParamByName("pKH").Value = txtKH.Text.Trim(); DataSet dsXLXSBJSM = dberp.OpenDataSet(SQL); if (dsXLXSBJSM.Tables[0].Rows.Count > 0) { sBJSM = dsXLXSBJSM.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); } } else sBJSM = dsBJSM.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(); } } SQL.Clear(); SQL.Add(" update XLXSBJD set XLXSBJD_ZJE=:pZJE,XLXSBJD_YSFY=:pYSFY,XLXSBJD_LRL=:pLRL,XLXSBJD_ZZL=:pZZL,XLXSBJD_CLCBJCL= :pCLCBJCL, "); SQL.Add(" XLXSBJD_JGBBJLJJCL= :pJGBBJLJJCL,XLXSBJD_ZDXJJCL = :pZDXJJCL,XLXSBJD_PJZJE=:pPJZJE "); if (bBJSM) SQL.Add(" ,XLXSBJD_BJSM=:pBJSM "); SQL.Add(" where XLXSBJD_BJDID=:pBJDID "); if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") txtZJE.Value += fPFZJE; if (bjflxx.XLXSBJFL_BJHYF.Equals("Y")) SQL.ParamByName("pZJE").Value = txtZJE.Value + txtYSFY.Value; else SQL.ParamByName("pZJE").Value = txtZJE.Value; SQL.ParamByName("pYSFY").Value = txtYSFY.Value; SQL.ParamByName("pLRL").Value = txtLRL.Value; SQL.ParamByName("pZZL").Value = txtZZL.Value; SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pCLCBJCL").Value = txtLJJCL.Value; SQL.ParamByName("pJGBBJLJJCL").Value = fBJLJJJCL; SQL.ParamByName("pZDXJJCL").Value = txtZDXJJCL.Value; if (bBJSM) SQL.ParamByName("pBJSM").Value = sBJSM; SQL.ParamByName("pPJZJE").Value = fPFZJE; dberp.ExecSQL(SQL); } protected void OpenFZDRXInfo() { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sStr = CurSession.UserId + "|" + DateTime.Now.ToString().Trim(); TPageParams pageParams = new TPageParams(); pageParams.Title = "按复制内容导入"; pageParams.UrlPath = "XLBJD_FZDRXInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("BJU003", GetOption("BJU003")); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("sDefaultXLBZID", XLBJDUtils.GetDefaultXLBZID()); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("txtMRBZID", txtMRBZID.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("BJU002", GetOption("BJU002")); pageParams.AddString("BJU018", GetOption("BJU018")); pageParams.AddString("BJU038", GetOption("BJU038")); pageParams.AddString("XLJGU007", GetOption(102579000, "XLJGU007")); pageParams.AddString("txtTimeSpan", sStr); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } #region 自动生成合同 public static void GeneratXSHTByBJD(string sBJDID,string sWHRID,string sWHR) { string sHTBJDKZ = string.Empty; string sHTFL = string.Empty; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select distinct XSHTKZ_HTBJDKZ from XSHTKZ where 1=1 "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sHTBJDKZ = ds.Tables[0].Rows[0]["XSHTKZ_HTBJDKZ"].ToString().Trim(); } SQL.Clear(); SQL.Add(" select XSHTFL_XSHTFLID,XSHTFL_XSHTFLMC from XSHTFL where 1=1 and isnull(XSHTFL_TYBZ,' ')<>'Y' and XSHTFL_HTZCGX=' ' order by XSHTFL_XSHTFLID "); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sHTFL = ds.Tables[0].Rows[0]["XSHTFL_XSHTFLID"].ToString().Trim(); } SQL.Clear(); SQL.Add(@"select BJD_BJDID,BJD_KHID,BJD_KHMC,BJD_BJRQ,BJD_BMID,BJD_BZFS,BJD_XMMC,BJD_TXY,isNull(HTJE,0) as ZBZJE,BJD_TBID, XSHTFL_XSHTFLID as HTFL, convert(char(100),' ') as HTMC, BJD_XMID,BM_SYDWID,BJD_FKFS, XLXSBJD_XZQHID,BJD_SHDD,BJD_LXR,BJD_TEL,BJD_YSFS,KH_KPDWID, XSHTFL_HTZCGX as FLBM,convert(char(20),' ') as ZHTBH,KH_HYID,BJD_DOCGRPID,BJD_FJS, XSHTKZ_HTCFKZ,XSHTKZ_HTJEJJBL,XSHTKZ_DLRQJJTS,XSHTKZ_ZXRWDJR,XSHTFLKZ_HTMCSCGZ,XSHTFLKZ_HTMCSCGZHZ,XSHTKZ_HQJSJGBJJG from BJD left join BM on BM_BMID = BJD_BMID left join KH on KH_KHID = BJD_KHID left join XSHTKZ on BM_SYDWID = XSHTKZ_SYDWID left join XSHTFL on XSHTFL_XSHTFLID = case when isnull(XSHTFL_SYDW,' ') = ' ' or isNull(BM_SYDWID,' ')=' ' or ','||rtrim(XSHTFL_SYDW)||',' like '%,'||rtrim(BM_SYDWID)||',%' then :pHTFL else ' ' end left join XSHTFLKZ on XSHTFLKZ_FLID = XSHTFL_XSHTFLID and XSHTFLKZ_SYDWID =BM_SYDWID left join XLXSBJD on XLXSBJD_BJDID = BJD_BJDID left join (select BJDMX_BJDID, Round(sum(case when BJDMX_BJWS='Y' then BJDMX_ZBJE*(1+WL_ZZSL/100) else BJDMX_ZBJE end),2) as HTJE from BJDMX left join WL on WL_WLID = BJDMX_WLID where 1=1 group by BJDMX_BJDID)A on BJDMX_BJDID=BJD_BJDID where BJD_BJDID=:pBJDID and not exists(select 1 from HT,(select max(HT_JJDID)as maxJJDID from HT where HT_WPID<>'ZZZY' group by isNull(HT_HTBH,' '))A where maxJJDID=HT_JJDID and ((HT_BGQBJDID=BJD_BJDID and isNull(HT_WPID,'ZZZZ')<>'ZZZZ') or (HT_BJDID=BJD_BJDID) )) "); if (sHTBJDKZ == "1") SQL.Add(" and exists(select 1 from TBBJFK where TBBJFK_BJDID=BJD_BJDID) "); SQL.ParamByName("pHTFL").Value = sHTFL; SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sHTFL = ds.Tables[0].Rows[0]["HTFL"].ToString().Trim(); string sSYDWID= ds.Tables[0].Rows[0]["BM_SYDWID"].ToString().Trim(); string sZHTBH= ds.Tables[0].Rows[0]["ZHTBH"].ToString().Trim(); string sXSY= ds.Tables[0].Rows[0]["BJD_TXY"].ToString().Trim(); string sKHID= ds.Tables[0].Rows[0]["BJD_KHID"].ToString().Trim(); string sTBID= ds.Tables[0].Rows[0]["BJD_TBID"].ToString().Trim(); string sHTMC = ds.Tables[0].Rows[0]["HTMC"].ToString().Trim(); string sBMID = ds.Tables[0].Rows[0]["BJD_BMID"].ToString().Trim(); string sFLBM = ds.Tables[0].Rows[0]["FLBM"].ToString().Trim(); string sHYID = ds.Tables[0].Rows[0]["KH_HYID"].ToString().Trim(); string sXMMC = ds.Tables[0].Rows[0]["BJD_XMMC"].ToString().Trim(); string sBZFS = ds.Tables[0].Rows[0]["BJD_BZFS"].ToString().Trim(); string sFKFS = ds.Tables[0].Rows[0]["BJD_FKFS"].ToString().Trim(); string sKPDWID = ds.Tables[0].Rows[0]["KH_KPDWID"].ToString().Trim(); string sXSQYID = ds.Tables[0].Rows[0]["XLXSBJD_XZQHID"].ToString().Trim(); string sSHDD = ds.Tables[0].Rows[0]["BJD_SHDD"].ToString().Trim(); string sLXR = ds.Tables[0].Rows[0]["BJD_LXR"].ToString().Trim(); string sLXDH = ds.Tables[0].Rows[0]["BJD_TEL"].ToString().Trim(); string sYSFS = ds.Tables[0].Rows[0]["BJD_YSFS"].ToString().Trim(); double dHTJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZBZJE"].ToString().Trim()); double dFJS = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJD_FJS"].ToString().Trim()); double dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJD_DOCGRPID"].ToString().Trim()); string sRZBM = TRYXX.GetRYByGH(sWHRID).RZBM; string sJJDID = GetID(); string sHTBH=GetNewHTBH(sHTFL,sSYDWID,sZHTBH,sXSY,sKHID); string sKHYH = string.Empty; string sYHZH = string.Empty; string sKHKHYH = string.Empty; string sKHYHZH = string.Empty; GetYHXX(sSYDWID, ref sKHYH, ref sYHZH); GetKHYHXX(sKHID,ref sKHKHYH,ref sKHYHZH); CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); SQL.Clear(); SQL.Add(@" insert into HT (HT_JJDID, HT_XSHTFLID, HT_HTBH, HT_TBID,HT_SYDWID, HT_KHIDE, HT_MC, HT_HTJE, HT_HTYF, HT_XSBMID, HT_DLRQ, HT_GDRQ, HT_HTBZ, HT_FJS, HT_WHR, HT_KHYH,HT_YHZH,HT_KHKHYH,HT_KHYHZH,HT_JGBID, HT_WHSJ, HT_KHHTBH, HT_DABH, HT_DLBMID, HT_WFID, HT_WPID, HT_WFINST, HT_WFHANDLER, HT_WFAWAITER,HT_ACTNAME, HT_XSZRR, HT_GD, HT_DOCGRPID, HT_WHRID, HT_DLRGH, HT_DLR, HT_DLRID, HT_HTFLBM, HT_HYID, HT_XMMC,HT_WGRQ, HT_XKXH, HT_BZHT, HT_SCDL,HT_BJDID,HT_HTBG,HT_XBGXY,HT_JXZX,HT_KPDWID, HT_ZXR,HT_ZXRGH,HT_ZXRID,HT_ZXBMID, HT_FKFS, HT_XZQHID, HT_HTBDLX, HT_DJRQ,HT_XSZRRGH,HT_XSZRRID,HT_BZFS, HT_SHDD,HT_LXR,HT_LXDH,HT_YSFS,HT_KGRQ,HT_ZBHT,HT_ZHTBH,HT_DFXHT) values(:HT_JJDID,:HT_XSHTFLID,:HT_HTBH,:HT_TBID,:pSYDWID, :HT_KHIDE,:HT_MC,:HT_HTJE,0,:HT_XSBMID, :HT_DLRQ,NULL,NULL,:HT_FJS,:HT_WHR, :HT_KHYH,:HT_YHZH,:HT_KHKHYH,:HT_KHYHZH,:HT_JGBID, :HT_WHSJ,NULL,NULL,:HT_DLBMID,:HT_WFID,:HT_WPID, :HT_WFINST,:HT_WFHANDLER,:HT_WFAWAITER,:HT_ACTNAME, :HT_XSZRR,'N',:HT_DOCGRPID,:HT_WHRID,:HT_DLRGH, :HT_DLR,:HT_DLRID,:HT_HTFLBM,:HT_HYID,:HT_XMMC,:HT_WGRQ, 'N','N',:pSCDL,:HT_BJDID,'N','N','N',:pKPDWID, :HT_ZXR,:HT_ZXRGH,:HT_ZXRID,:HT_ZXBMID, :pFKFS, :pXZQHID,'1',:HT_DJRQ,:HT_XSZRRGH,:HT_XSZRRID,:HT_BZFS, :HT_SHDD, :HT_LXR, :HT_LXDH, :HT_YSFS, :HT_KGRQ,'N',:HT_ZHTBH,'N' ) "); SQL.ParamByName("HT_JJDID").Value = sJJDID; SQL.ParamByName("HT_XSHTFLID").Value =sHTFL; SQL.ParamByName("HT_HTBH").Value = sHTBH; SQL.ParamByName("HT_TBID").Value = sTBID; SQL.ParamByName("pSYDWID").Value = sSYDWID; SQL.ParamByName("HT_KHIDE").Value = sKHID; SQL.ParamByName("HT_MC").Value = sHTMC; SQL.ParamByName("HT_HTJE").Value = dHTJE; SQL.ParamByName("HT_XSBMID").Value = sBMID; SQL.ParamByName("HT_DLRQ").Value = DateTime.Now.Date; SQL.ParamByName("HT_FJS").Value = dFJS; SQL.ParamByName("HT_WHR").Value = sWHR; SQL.ParamByName("HT_KHYH").Value = sKHYH; SQL.ParamByName("HT_YHZH").Value = sYHZH; SQL.ParamByName("HT_KHKHYH").Value = sKHKHYH; SQL.ParamByName("HT_KHYHZH").Value = sKHYHZH; SQL.ParamByName("HT_JGBID").Value = ""; SQL.ParamByName("HT_WHSJ").Value = DateTime.Now; SQL.ParamByName("HT_DLBMID").Value = sBMID; TWorkflow awf = new TWorkflow(tSession, null); awf.UMID = 100938041; awf.CurUserID = sWHRID; awf.WFNewInst(awf.GetWFID("XSHTDJ"), sWHRID); SQL.ParamByName("HT_WFID").Value = awf.WFID; SQL.ParamByName("HT_WPID").Value = awf.WPID; SQL.ParamByName("HT_WFINST").Value = awf.WFInst; SQL.ParamByName("HT_WFHANDLER").Value = awf.Handler; SQL.ParamByName("HT_WFAWAITER").Value = awf.Awaiter; SQL.ParamByName("HT_ACTNAME").Value = awf.GetWFActionName(TWFAction.wfaNewInst); SQL.ParamByName("HT_XSZRR").Value = sXSY; SQL.ParamByName("HT_DOCGRPID").Value = dDOCGRPID; SQL.ParamByName("HT_WHRID").Value = sWHRID; SQL.ParamByName("HT_DLRGH").Value = sWHRID; SQL.ParamByName("HT_DLR").Value = sWHR; SQL.ParamByName("HT_DLRID").Value = TRYXX.GetRYByGH(sWHRID).RYID; SQL.ParamByName("HT_HTFLBM").Value = sFLBM; SQL.ParamByName("HT_HYID").Value = sHYID; SQL.ParamByName("HT_XMMC").Value = sXMMC; SQL.ParamByName("HT_WGRQ").Value = DateTime.Now.Date.AddMonths(1); if (bSCDL(sKHID)) SQL.ParamByName("pSCDL").Value = "Y"; else SQL.ParamByName("pSCDL").Value = "N"; SQL.ParamByName("HT_BJDID").Value = sBJDID; SQL.ParamByName("pKPDWID").Value = sKPDWID; SQL.ParamByName("HT_ZXR").Value = sWHR; SQL.ParamByName("HT_ZXRGH").Value = sWHRID; SQL.ParamByName("HT_ZXRID").Value = TRYXX.GetRYByGH(sWHRID).RYID; SQL.ParamByName("HT_ZXBMID").Value = sRZBM; SQL.ParamByName("pFKFS").Value = sFKFS; SQL.ParamByName("pXZQHID").Value = sXSQYID; SQL.ParamByName("HT_DJRQ").Value = DateTime.Now.Date.ToShortDateString(); SQL.ParamByName("HT_XSZRRGH").Value = TRYXX.GetRYByRYMC(sXSY).GH; SQL.ParamByName("HT_XSZRRID").Value = TRYXX.GetRYByRYMC(sXSY).RYID; SQL.ParamByName("HT_BZFS").Value = sBZFS; SQL.ParamByName("HT_SHDD").Value = sSHDD; SQL.ParamByName("HT_LXR").Value = sLXR; SQL.ParamByName("HT_LXDH").Value = sLXDH; SQL.ParamByName("HT_YSFS").Value = sYSFS; SQL.ParamByName("HT_KGRQ").Value = DateTime.Now.Date.ToShortDateString(); SQL.ParamByName("HT_ZHTBH").Value = sZHTBH; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(@" insert into HTMX (HTMX_JJDID, HTMX_XH, HTMX_WLID, HTMX_JLDW, HTMX_KHWLID,HTMX_YZ, HTMX_HSXS, HTMX_XQSL, HTMX_ZZSL,HTMX_CB, HTMX_LRR, HTMX_KHJQZFS, HTMX_BJDID, HTMX_BJDXH, HTMX_DZSC,HTMX_JSBZ, HTMX_JGBID,HTMX_JGBJG, HTMX_HSJG, HTMX_HSJE, HTMX_WSJG, HTMX_WSJE, HTMX_KHJG, HTMX_KHJE, HTMX_HTYS, HTMX_BZ, HTMX_WHR, HTMX_WHRID, HTMX_WHSJ) select :pJJDID, ROW_NUMBER() over(order by BJDMX_XLXSBJXSSX,BJDMX_BJDXH), BJDMX_WLID, BJDMX_JLDW, BJDMX_KHWLID,XLXSBJDMX_YZ, BJDMX_HSXS, BJDMX_ZBSL, WL_ZZSL,BJDMX_CB, :HTMX_LRR, :HTMX_KHJQZFS, BJDMX_BJDID, BJDMX_BJDXH, BJDMX_DZSC,XLBZ_XLBZLXMC, :HTMX_JGBID,BJDMX_JGBJG, case when BJDMX_BJWS='Y' then BJDMX_JG*(1+WL_ZZSL/100) else BJDMX_JG end as HSJG, case when BJDMX_BJWS='Y' then BJDMX_ZBJE*(1+WL_ZZSL/100) else BJDMX_ZBJE end as HSJE, case when BJDMX_BJWS='Y' then BJDMX_JG else BJDMX_JG/(1+WL_ZZSL/100) end as WSJG, case when BJDMX_BJWS='Y' then BJDMX_ZBJE else round(BJDMX_ZBJE/(1+WL_ZZSL/100),2) end as WSJE, BJDMX_KHJG, round(BJDMX_ZBSL*BJDMX_KHJG,2),XLYSB_XLYSMC,BJDMX_BZ,:XSHTBD_WHR, :XSHTBD_WHRID, :XSHTBD_WHSJ from BJDMX left join XLXSBJDMX on BJDMX_BJDID=XLXSBJDMX_BJDID and BJDMX_BJDXH=XLXSBJDMX_XH left join XLYSB on XLYSB_XLYSID=XLXSBJDMX_XLYSID left join XLBZ on XLXSBJDMX_XLBZID=XLBZ_XLBZID,WL where BJDMX_BJDID=:pBJDID and BJDMX_WLID=WL_WLID and NE(BJDMX_ZBSL,0) "); SQL.ParamByName("pJJDID").Value = sJJDID; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("HTMX_JGBID").Value = ""; SQL.ParamByName("HTMX_KHJQZFS").Value = "5"; SQL.ParamByName("HTMX_LRR").Value = sWHR; SQL.ParamByName("XSHTBD_WHR").Value = sWHR; SQL.ParamByName("XSHTBD_WHRID").Value = sWHRID; SQL.ParamByName("XSHTBD_WHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); string sHTDJDYZD = string.Empty; string sBJDDYZD = string.Empty; string sHTDJSQL = string.Empty; string sBJDSQL = string.Empty; SQL.Clear(); SQL.Add(@" select XSHTDJKZXXSZ_DYZD as HTDJDYZD,XLXSBJKZXXSZ_DYZD as BJDDYZD from XSHTDJKZXXSZ,XLXSBJKZXXSZ where XLXSBJKZXXSZ_MC=XSHTDJKZXXSZ_MC and XSHTDJKZXXSZ_SJLX = XLXSBJKZXXSZ_SJLX "); ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sHTDJDYZD = "XSHTDJKZXX_"+ds.Tables[0].Rows[i]["HTDJDYZD"].ToString().Trim(); sBJDDYZD = "XLXSBJKZXX_" + ds.Tables[0].Rows[i]["BJDDYZD"].ToString().Trim(); if (string.IsNullOrEmpty(sHTDJSQL)) sHTDJSQL = sHTDJDYZD; else sHTDJSQL =sHTDJSQL+","+ sHTDJDYZD; if (string.IsNullOrEmpty(sBJDSQL)) sBJDSQL = sBJDDYZD; else sBJDSQL = sBJDSQL + "," + sBJDDYZD; } if (!string.IsNullOrEmpty(sHTDJSQL)) { SQL.Clear(); SQL.Add("insert into XSHTDJKZXX(XSHTDJKZXX_JJDID,XSHTDJKZXX_WHR,XSHTDJKZXX_WHRID,XSHTDJKZXX_WHSJ, "+sHTDJSQL); SQL.Add(" ) select :pJJDID,:pWHR,:pWHRID,:pWHSJ, "+sBJDSQL); SQL.Add(" from XLXSBJKZXX where XLXSBJKZXX_BJDID=:pBJDID "); SQL.ParamByName("pJJDID").Value = sJJDID; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pWHR").Value = sWHR; SQL.ParamByName("pWHRID").Value = sWHRID; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } #region 自动提交下一步 int flag = 1; string sWFID = awf.WFID; double WFINST = awf.WFInst; string sAWaiter = awf.Awaiter; string sNextAwaiter = ""; //提交下一步 awf.Enabled = true; string sUser; sUser = sWHRID; awf.CurUserID = sUser; awf.WFInfo(sWFID, WFINST, sUser); TWFActionParam param = new TWFActionParam(); param.sOpinion = ""; param.sNextWFID = sWFID; string sNWPID = ""; //---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法 TStrings wfpName = new TStrings(); wfpName.Text = awf.WFGetNextWFP(sWFID, awf.WFGetStartWPID(sWFID)); try { if (wfpName.Count > 1) { sNWPID = wfpName.Names(1).Trim(); } } catch { flag = 2; } //----- if (flag == 1) { param.sNextWPID = sNWPID; param.sNextNotifier = ""; if (!sNWPID.Trim().Equals("ZZZZ")) { sNextAwaiter = awf.WFGetNextAwaiter(sWFID, sNWPID); if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250) { flag = 3; } } else { flag = 4; } if (flag == 1) { param.sNextAwaiter = "," + sNextAwaiter + ","; if (!awf.WFIsStopWPID(sWFID, sNWPID)) param.sWFState = TWorkflow.wfsRunning; else param.sWFState = TWorkflow.wfsDone; if (awf.WFWorkIsDone(sWFID, WFINST, sUser)) { param.sWPState = TWorkflow.wpsSubmit; } else { param.sWPState = TWorkflow.wfsRunning; } awf.WFSubmit(sWFID, WFINST, sUser, param); awf.dbe.ExecSQL(string.Format("update HT set HT_WPID='{0}', HT_WFAWAITER='{1}', HT_WFHANDLER='{2}' ,HT_WFINST={3},HT_WFID='{4}',HT_ACTNAME='{5}' where HT_JJDID='{6}' ", awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaSubmit),sJJDID)); } } #endregion } } public static string NewFLHTBH(string sZHTBH) { TDatabase dberp = null; TSQL sql = null; string sBH = string.Empty; try { dberp = TContextDatabases.GetDatabase("DBERP"); sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT TOP 1 STUFF(HT_HTBH, 1, :I, '') AS BH FROM HT WHERE HT_HTBH LIKE :pHTBH AND ISNUMERIC(STUFF(HT_HTBH, 1, :I, '')) = 1 ORDER BY RIGHT('00000000' + RTRIM(STUFF(HT_HTBH, 1, :I, '')), 8) DESC"); sql.ParamByName("pHTBH").Value = sZHTBH + "-%"; sql.ParamByName("I").Value = sZHTBH.Length + 1; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sBH = ds.Tables[0].Rows[0]["BH"].ToString().Trim(); } if (string.IsNullOrEmpty(sBH)) { return sZHTBH + "-1"; } else { return sZHTBH + "-" + (Convert.ToDouble(sBH) + 1).ToString(); } } finally { } } public static bool ExistsHTBH(string sHTBH, string sJJDID) { if (string.IsNullOrEmpty(sHTBH)) return false; TDatabase dberp = null; TSQL sql = null; try { dberp = TContextDatabases.GetDatabase("DBERP"); sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT 1 FROM HTGD WHERE HTGD_HTBH = :pHTBH "); sql.Add("UNION ALL "); sql.Add("SELECT 1 FROM HT WHERE HT_HTBH = :pHTBH AND ISNULL(HT_HTBG, 'N') <> 'Y' "); if (!string.IsNullOrEmpty(sJJDID)) { sql.Add(" AND HT_JJDID <> :pJJDID "); sql.ParamByName("pJJDID").Value = sJJDID; } sql.ParamByName("pHTBH").Value = sHTBH; DataSet ds = dberp.OpenDataSet(sql); return ds.Tables[0].Rows.Count > 0; } finally { } } public static string NewHTBHEX(string sTZM, string sTSXX, string sKHID, string sXSYZJM) { return CMISproDataBase.NewDH(sTZM); } public static string GetNewHTBH(string sLBID, string sSYDWID, string sZHTBH, string sXSY, string sKHID) { bool bSameBH = true; string sNewID = string.Empty; string sXSYZJM = string.Empty; bool bAZHTLS = false; string sNEWHTBH = string.Empty; // 检查是否按主合同编号+流水号生成 if (!string.IsNullOrEmpty(sZHTBH)) { TDatabase dberp = null; TSQL sql = null; try { dberp = TContextDatabases.GetDatabase("DBERP"); sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT XSHTFLKZ_FHTBHGZ FROM XSHTFLKZ WHERE XSHTFLKZ_FLID = :pFLID AND XSHTFLKZ_SYDWID = :SYDWID "); sql.ParamByName("pFLID").Value = sLBID; sql.ParamByName("SYDWID").Value = sSYDWID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string fhtbhgz = ds.Tables[0].Rows[0]["XSHTFLKZ_FHTBHGZ"].ToString().Trim(); bAZHTLS = (fhtbhgz == "1"); } } finally { } } // 根据不同的编号生成方式生成合同编号 if (bAZHTLS) { sNEWHTBH = NewFLHTBH(sZHTBH); while (bSameBH) { bSameBH = false; if (!ExistsHTBH(sNEWHTBH, "")) { return sNEWHTBH; } else { sNEWHTBH = NewFLHTBH(sZHTBH); bSameBH = true; } } } else { // 获取销售员助记码 if (!string.IsNullOrEmpty(sXSY)) { TDatabase dberp = null; TSQL sql = null; try { dberp = TContextDatabases.GetDatabase("DBERP"); sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT XSY_ZJM FROM XSY WHERE XSY_TXY = :pTXY "); sql.ParamByName("pTXY").Value = sXSY; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sXSYZJM = ds.Tables[0].Rows[0]["XSY_ZJM"].ToString().Trim(); } } finally { } } sNewID = NewHTBHEX("XSHTFL" + sLBID, "合同编号", sKHID, sXSYZJM); while (bSameBH) { bSameBH = false; if (!ExistsHTBH(sNewID, "")) { return sNewID; } else { sNewID = NewHTBHEX("XSHTFL" + sLBID, "合同编号", sKHID, sXSYZJM); bSameBH = true; } } } // 检查合同编号长度 if (sNEWHTBH.Length > 20) { throw new Exception("合同编号超长!"); } return sNEWHTBH; } public static string GetID() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT TOP 1 HT_JJDID FROM HT WHERE HT_JJDID LIKE :pID ORDER BY HT_JJDID DESC"); string sGZ = DateTime.Now.ToString("yyyyMM"); sql.ParamByName("pID").Value = sGZ + "%"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string lastID = ds.Tables[0].Rows[0]["HT_JJDID"].ToString(); int num = int.Parse(lastID.Substring(6, 4)) + 1; return sGZ + num.ToString("0000"); } else { return sGZ + "0001"; } } public static bool bSCDL(string sKHID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select 1 from HT where HT_KHIDE = :pKHIDE and HT_WPID<>'ZZZY' and not exists(select 1 from HTGD where HTGD_HTBH=HT_HTBH) "); sql.Add("union all select 1 from HTGD where HTGD_KHIDE = :pKHIDE "); sql.ParamByName("pKHIDE").Value = sKHID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { return false; } else { return true; } } public static void GetYHXX(string sSYDWID, ref string sKHYH, ref string sYHZH) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"SELECT TOP 1 HT_YHZH, HT_KHYH FROM HT WHERE (ISNULL(HT_YHZH, ' ') <> ' ' OR ISNULL(HT_KHYH, ' ') <> ' ') AND HT_SYDWID = :pSWYDID ORDER BY HT_JJDID DESC"); sql.ParamByName("pSWYDID").Value = sSYDWID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sKHYH = ds.Tables[0].Rows[0]["HT_KHYH"].ToString(); sYHZH = ds.Tables[0].Rows[0]["HT_YHZH"].ToString(); } } public static void GetKHYHXX(string sKHID, ref string sKHKHYH, ref string sKHYHZH) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"SELECT TOP 1 HT_KHYHZH, HT_KHKHYH FROM HT WHERE (ISNULL(HT_KHYHZH, ' ') <> ' ' OR ISNULL(HT_KHKHYH, ' ') <> ' ') AND HT_KHIDE = :pKHIDE ORDER BY HT_JJDID DESC"); sql.ParamByName("pKHIDE").Value = sKHID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sKHKHYH = ds.Tables[0].Rows[0]["HT_KHKHYH"].ToString(); sKHYHZH = ds.Tables[0].Rows[0]["HT_KHYHZH"].ToString(); } else { sql.Clear(); sql.Add("SELECT KH_YH, KH_YHZH FROM KH WHERE KH_KHID = :pKHID"); sql.ParamByName("pKHID").Value = sKHID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sKHKHYH = ds.Tables[0].Rows[0]["KH_YH"].ToString(); sKHYHZH = ds.Tables[0].Rows[0]["KH_YHZH"].ToString(); } } } #endregion private string GetTXYValue() { if (GetOption("BJU070").Trim() == "Y") return acbxTXY.Text.Trim(); else return cbxTXY.SelectedValue.Trim(); } private void SetTXYValue(string value) { if (GetOption("BJU070").Trim() == "Y") { if (!string.IsNullOrEmpty(value)) { acbxTXY.Text = value + "|" + GetTXYMC(value); // 给前端显示名称赋值 } else { acbxTXY.Text = ""; } } else { cbxTXY.SelectedValue = value; } } private string GetTXYMC(string TXY) { if (string.IsNullOrEmpty(TXY)) return ""; TDatabase db = TContextDatabases.GetDatabase("DBERP"); string sSQL = "select XSY_MC as NAME from N_XSY where XSY_TXY = '" + TXY + "'"; DataSet ds = db.OpenDataSet(sSQL); if (ds != null && ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["NAME"].ToString().Trim(); } return ""; } #endregion #region 控件事件 #region 发送数据按钮 protected void btnSend_Click(object sender, EventArgs e) { ResultObject ressult = new ResultObject(); RestClientUtils rs = new RestClientUtils(); ressult = rs.DataSendFS(102551000, "I", txtBJDID.Text.Trim(), "", "", "", "1"); if (ressult.Success) { ShowMessage("发送成功!"); } else { ShowMessage("发送失败!原因如下:" + ressult.ErrorMessage); } } #endregion #region 取消发送数据按钮 protected void btnQXSend_Click(object sender, EventArgs e) { ResultObject ressult = new ResultObject(); RestClientUtils rs = new RestClientUtils(); ressult = rs.DataSendFS(102551000, "D", txtBJDID.Text.Trim(), "", "", "", "1"); if (ressult.Success) { ShowMessage("取消发送成功!"); } else { ShowMessage("取消发送失败!原因如下:" + ressult.ErrorMessage); } } #endregion protected void datBJRQ_TextChanged(object sender, EventArgs e) { //报价分类对应产品目录的行情分段材料、及其报价日行情,用于限制价格表加载项 Dictionary dicCPML_BJRCLHQ = XLBJDUtils.GetCPMLBJCL_BJRCLHQ(cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text); if (dicCPML_BJRCLHQ.Keys.Count > 0) { //重新加载价格表 SetcbxJGBID(); } else { cbxJGBID_SelectedIndexChanged(null,null); } } //报价分类- protected void cbxBJFLID_SelectedIndexChanged(object sender, EventArgs e) { TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format(@"select XSQY_XSQYID,XSQY_XSQYMC from XSQY where isnull(XSQY_TYBZ,' ')<>'Y' and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and (isnull(XLXSBJFL_XSQYIDS,' ')=' ' or ','||rtrim(XLXSBJFL_XSQYIDS)||',' like '%,'||rtrim(XSQY_XSQYID)||',%') ) order by XSQY_XSQYID", cbxBJFLID.SelectedValue.Trim()), true); if (IsPostBack) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBZPFYZID.Text = dicBJDYZ["BZPFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; txtFSYZ.Text = dicBJDYZ["FSYZ"]; ReBuildYZColByBJFL(txtBJDYZ.Text.Trim(), txtTJYSList.Text.Trim(), txtYZWPIDList.Text.Trim(), txtReadOnlyYZ.Text.Trim(), txtZDWPIDList.Text.Trim()); #region 存在报价单明细,重置因子值 if (grdXLBJDMX.NewRows.Count > 0) { if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { foreach (GridViewRow row in grdXLBJDMX.NewRows) { string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); string sBJU003 = GetOption("BJU003"); string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); string sXLYSID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLYSID", row).ToString().Trim(); double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim(), 0); string[] BJDYZList = txtBJDYZ.Text.Split(','); foreach (string sYZID in BJDYZList) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], "0"); } Dictionary dicYZZ_ = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",空,")) { dicYZZ_ = XLBJDUtils.GetBJDYZZ0(cbxBJFLID.SelectedValue.Trim(), sWGCPBZ.Equals("Y"), false, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ_.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex,"TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); } } Dictionary dicYZZ1 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",1,")) { dicYZZ1 = XLBJDUtils.GetBJDYZZ1(cbxBJFLID.SelectedValue.Trim(), cbxPJLX.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ1.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",2,")) { if (dBJSL != 0) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(cbxBJFLID.SelectedValue.Trim(), sDYDJID, dBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ2.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",3,")) { if (dBJSL != 0) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(cbxBJFLID.SelectedValue.Trim(), dBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ3.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",E,")) { if (dBJSL != 0) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZE = XLBJDUtils.GetBJDYZZE(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZE.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); } } } Dictionary dicYZZG = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",G,")) { if (dBJSL != 0) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZG = XLBJDUtils.GetBJDYZZG(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZG.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“F|电压等级&芯线结构&报价数量区间加价/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",F,")) { if (dBJSL != 0) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZF = XLBJDUtils.GetBJDYZZF(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZF.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); } } } Dictionary dicYZZH = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",H,")) { if (dBJSL != 0) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZH = XLBJDUtils.GetBJDYZZH(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZH.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); } } } Dictionary dicYZZK = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",K,")) { if (dBJSL != 0) { dicYZZK = XLBJDUtils.GetBJDYZZK(cbxBJFLID.SelectedValue.Trim(), dBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZK.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); } } } //如果线缆型号变了,则需要重新获取按“4|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",4,")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ4.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); } } //型号,规格,标准,电压等级都会引起调价因素为5的因子值变化 Dictionary dicYZZ5 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",5,") ) { //解析主芯截面 string fZXJM = XLBJDUtils.GetZXJMByXLGGID(sXLGGID, sXLXHID); dicYZZ5 = XLBJDUtils.GetBJDYZZ5(cbxBJFLID.SelectedValue.Trim(), cbxXSQYID.SelectedValue.Trim(), sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ5.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“6|报价数量区间调价米数/报价数量”的报价因子值 Dictionary dicYZZ6 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",6,")) { if (dBJSL != 0) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(cbxBJFLID.SelectedValue.Trim(), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ6.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); } } } //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 Dictionary dicYZZ7 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",7,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZ7 = XLBJDUtils.GetBJDYZZ7(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ7.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); } } Dictionary dicYZZ8 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",8,")) { dicYZZ8 = XLBJDUtils.GetBJDYZZ8(cbxBJFLID.SelectedValue.Trim(), cbxFKQXNR.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ8.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); } } //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 Dictionary dicYZZ9 = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZ9.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); } } //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 Dictionary dicYZZA = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZA.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); if (txtXSJEYZ.Text.Trim().Contains(sYZID)) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZJE_" + sYZID, NumberUtils.RoundX(dicYZZA[sYZID] * dBJSL, 2).ToString().Trim()); } } } Dictionary dicYZZBZPF = new Dictionary(); //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZBZPF.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); } } Dictionary dicYZZCPWJPF = new Dictionary(); //产品外径盘费 string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()); if (!sCPWJPFYZID.Equals("")) { sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim(),dBJSL); foreach (string sYZID in dicYZZCPWJPF.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); } } Dictionary dicYZZYF = new Dictionary(); //运费 string sYFYZID = XLBJDUtils.GetBJFLSYYFYZID(cbxBJFLID.SelectedValue.Trim()); if (!sYFYZID.Equals("")) { sYFYZID = sYFYZID.Split('|')[0]; dicYZZYF = XLBJDUtils.GetYFYZZ(sYFYZID,txtXZQHID.Value,sXLXHID,txtTJ.Value,txtLJ.Value); foreach (string sYZID in dicYZZYF.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZYF[sYZID].ToString()); } } Dictionary dicYZZB = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",B,")) { dicYZZB = XLBJDUtils.GetBJDYZZB(cbxBJFLID.SelectedValue.Trim(), cbxSYDWID.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZB.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); } } //获取调价因素为“C|产品目录&主芯截面范围&产品特性”的报价因子值 Dictionary dicYZZC = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",C,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZC = XLBJDUtils.GetBJDYZZC(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID); foreach (string sYZID in dicYZZC.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); } } Dictionary dicYZZD = new Dictionary(); if (txtTJYSList.Text.Trim().Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(cbxBJFLID.SelectedValue.Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); foreach (string sYZID in dicYZZD.Keys) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); } } } grdXLBJDMX.CommitEdit(); } } #endregion BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; ReBuildJJColByBJFL(txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(), iXSWS, sHidJSLMList); if (!bjflxx.XLXSBJFL_ZLGZCLS.Equals("")) { lblZLGZCLS.Visible = true; lblKB1.Visible = false; } else { lblZLGZCLS.Visible = false; lblKB1.Visible = true; } #region 设置附加信息显示 bool bVisble = false; bool bSYBJFL = false; DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); if (dsFJXXSZ.Tables[0].Rows.Count > 0) { foreach (DataRow trow in dsFJXXSZ.Tables[0].Rows) { if (sHidJSLMList.Trim().Contains(trow["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) continue; string sXSBZ = trow["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); string sSYBJFLID = trow["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); if (!sSYBJFLID.Equals("")) bSYBJFL = true; string sBJFLID = cbxBJFLID.SelectedValue.Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) continue; string sSYBJFLIDC = "," + sSYBJFLID + ","; if (!sSYBJFLID.Equals("") && !sSYBJFLIDC.Contains("," + sBJFLID + ",")) continue; bVisble = true; if (bZDXSFJXX) ShowFJXX = true; break; } } if (bSYBJFL)//仅当配置过“适用报价分类”的时候才重新加载 { Mac.MacLog.TraceFormat("cbxBJFLID_SelectedIndexChanged:{0}", bVisble ? "Y" : "N"); divFJXXLabel.Visible = bVisble; divFJXX.Visible = bVisble; if (ControlState == TControlState.ctsInsert) { LoadFJXX(true, "A", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else if (ControlState == TControlState.ctsCopy) { LoadFJXX(true, "C", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else if (ControlState == TControlState.ctsEdit) { LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); } else { LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); } } #endregion if (!YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim())) { grdXLBJDMX.CanInsert = false; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").ReadOnly = true; grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_DYDJID").ReadOnly = true; } } chkJZBJHS.Checked = true; if (cbxBJFLID.SelectedValue.Trim() == "04") { chkJZBJHS.Checked = false; } //报价分类change,重新加载cbxJGBID SetcbxJGBID(); MenuAreaUpdate(); //触发使用单位的赋值(2020-12-28 LF:应该不需要吧) //cbxSYDWID_SelectedIndexChanged(null, null); } protected void cbxJGBID_SelectedIndexChanged(object sender, EventArgs e) { txtJGCIDS.Text = ""; txtBJLY.Text = ""; txtJGBIDS.Text = ""; txtJGBTJYS.Text = ""; txtJSBLFS.Text = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSJGB_CPMLID,XLXSCPML_CPMLLX,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_JGBIDS,XLXSJGB_TJYS,XLXSJGB_JSBLFS "); sql.Add("from XLXSJGB "); sql.Add("left join XLXSCPML on XLXSCPML_CPMLID=XLXSJGB_CPMLID "); sql.Add("where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID "); sql.ParamByName("pJGBID").Value = cbxJGBID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim().Equals("Y"))//组合产品目录 { txtJGCIDS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); } txtBJLY.Text = ds.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); txtJGBIDS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); txtJGBTJYS.Text = ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); txtJSBLFS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); } //价格表改动,取最新的界面数据同步调整明细----此情况只在新建/复制的时候存在 if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); InitLable_TLJ(); foreach (GridViewRow row in grdXLBJDMX.NewRows) { //先调整料价,基价和表价 string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); string sBJDBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim(); string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); string sOldJGBBJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row).Trim(); string sOldJGBJJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row).Trim(); string sOldCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row).Trim(); string sOldBJDHQCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row).Trim(); Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG("", datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption("BJU003"), GetOption("BJU018"), cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dicBaseJG["XLXSBJDMX_JGBBJ"].ToString()); if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJTZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dicBaseJG["XLXSBJDMX_JGBJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dicBaseJG["XLXSBJDMX_CLCB"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dicBaseJG["XLXSBJDMX_BJDHQCLCB"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCBTZ", "N"); if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 { grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|" + dicBaseJG["JZ11"].ToString().Trim() + "|" + dicBaseJG["JZ12"].ToString().Trim() + "|" + dicBaseJG["JZ13"].ToString().Trim() + "|" + dicBaseJG["JZ14"].ToString().Trim() + "|" + dicBaseJG["JZ15"].ToString().Trim() + "|" + dicBaseJG["JZ16"].ToString().Trim() + "|" + dicBaseJG["JZ17"].ToString().Trim() + "|" + dicBaseJG["JZ18"].ToString().Trim() + "|" + dicBaseJG["JZ19"].ToString().Trim() + "|" + dicBaseJG["JZ20"].ToString().Trim() + "|0"); } else { grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", ""); } Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); } grdXLBJDMX.CommitEdit(); } } protected void cbxXSQYID_SelectedIndexChanged(object sender, EventArgs e) { bool sBJU067 = GetOption("BJU067").Equals("Y"); if (sBJU067 && CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_MXBH='JGB' " + "and ',' || rtrim(XLXSBJFL_JGBTJYSS) || ',' like '%,2,%'", cbxBJFLID.SelectedValue.Trim()))) { SetcbxJGBID(); } } protected void acbxTXY_SelectedIndexChanged(object sender, string Value) { cbxTXY_SelectedIndexChanged(sender, EventArgs.Empty); } protected void cbxTXY_SelectedIndexChanged(object sender, EventArgs e) { if ((!IsPostBack && ControlState != TControlState.ctsInsert) || ControlState == TControlState.ctsBrowse || ControlState == TControlState.ctsNull)//此处解决列表页直接点编辑触发change的问题 return; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (!GetTXYValue().Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select A.XSY_BMID,A.XSY_XSYBH,A.XSY_XSQYID,B.XSY_TXY from XSY A "); SQL.Add(" LEFT JOIN XSY B ON B.XSY_XSYBH = A.XSY_SJXSYBH "); SQL.Add(" WHERE A.XSY_TXY = :pXSY_TXY "); SQL.ParamByName("pXSY_TXY").Value = GetTXYValue(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { cbxXSJLMC.SelectedValue = ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim(); cbxXSBMID.SelectedValue = ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim(); if (!bjflxx.XLXSBJFL_JGBTJYSS.Contains("2")) { cbxXSQYID.SelectedValue = ds.Tables[0].Rows[0]["XSY_XSQYID"].ToString().Trim(); cbxXSQYID_SelectedIndexChanged(null, null); } } } else { cbxXSJLMC.SelectedValue = ""; cbxXSBMID.SelectedValue = ""; if (!bjflxx.XLXSBJFL_JGBTJYSS.Contains("2")) { cbxXSQYID.SelectedValue = ""; cbxXSQYID_SelectedIndexChanged(null, null); } } //根据销售经理,重新加载销售员 cbxXSJLMC_SelectedIndexChanged(null, null); } //付款方式 protected void cbxPJLX_SelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; if (ControlState != TControlState.ctsBrowse) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ1_YZZ,0) as YZZ from XLXSTZYZ"); sql.Add(" left join XLXSBJDYZZ1 on XLXSBJDYZZ1_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ1_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ1_PJLX=:pPJLX"); sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='1'"); sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); sql.ParamByName("pPJLX").Value = cbxPJLX.SelectedValue.Trim(); sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sBJU003 = GetOption("BJU003"); bool IsGridChanged = false;//标记grid有没有被修改过 bool NeedShowMsg = false; foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) IsGridChanged = true; } if (IsGridChanged) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (GridViewRow row in grdXLBJDMX.NewRows) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); } } #region 根据“1|付款方式”因子修改后的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (GridViewRow row in grdXLBJDMX.NewRows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); } #endregion grdXLBJDMX.CommitEdit(); } else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 { DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (DataRow row in dsBJDMX.Tables[0].Rows) { row["TZYZ_" + sYZID] = sYZZ; } } string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; foreach (DataRow row in dsBJDMX.Tables[0].Rows) { string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption("BJU003"), GetOption("BJU018"), cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) row["XLXSBJDMX_JGBBJTZ"] = 'N'; row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 { row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|" + dicBaseJG["JZ11"].ToString().Trim() + "|" + dicBaseJG["JZ12"].ToString().Trim() + "|" + dicBaseJG["JZ13"].ToString().Trim() + "|" + dicBaseJG["JZ14"].ToString().Trim() + "|" + dicBaseJG["JZ15"].ToString().Trim() + "|" + dicBaseJG["JZ16"].ToString().Trim() + "|" + dicBaseJG["JZ17"].ToString().Trim() + "|" + dicBaseJG["JZ18"].ToString().Trim() + "|" + dicBaseJG["JZ19"].ToString().Trim() + "|" + dicBaseJG["JZ20"].ToString().Trim() + "|0"; } else { row["UpdJJYZList"] = ""; } } #region 根据“1|付款方式”因子修改后的值+铜价/铝价的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (DataRow row in dsBJDMX.Tables[0].Rows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); } #endregion grdXLBJDMX.DataSource = dsBJDMX; grdXLBJDMX.DataBind(); } if (NeedShowMsg) ShowMessage("已根据所选付款方式重新计算了报价!"); } } } //付款期限 protected void cbxFKQXNR_SelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; if (ControlState != TControlState.ctsBrowse) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ8_YZZ,0) as YZZ from XLXSTZYZ"); sql.Add(" left join XLXSBJDYZZ8 on XLXSBJDYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ8_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ8_FKQXNR=:pFKQXNR"); sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='8'"); sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); sql.ParamByName("pFKQXNR").Value = cbxFKQXNR.SelectedValue.Trim(); sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sBJU003 = GetOption("BJU003"); bool IsGridChanged = false;//标记grid有没有被修改过 bool NeedShowMsg = false; foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) IsGridChanged = true; } if (IsGridChanged) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (GridViewRow row in grdXLBJDMX.NewRows) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); } } #region 根据“8|付款期限”因子修改后的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (GridViewRow row in grdXLBJDMX.NewRows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); } #endregion grdXLBJDMX.CommitEdit(); } else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 { DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (DataRow row in dsBJDMX.Tables[0].Rows) { row["TZYZ_" + sYZID] = sYZZ; } } string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; foreach (DataRow row in dsBJDMX.Tables[0].Rows) { string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption("BJU003"), GetOption("BJU018"), cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) row["XLXSBJDMX_JGBBJTZ"] = 'N'; row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 { row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|" + dicBaseJG["JZ11"].ToString().Trim() + "|" + dicBaseJG["JZ12"].ToString().Trim() + "|" + dicBaseJG["JZ13"].ToString().Trim() + "|" + dicBaseJG["JZ14"].ToString().Trim() + "|" + dicBaseJG["JZ15"].ToString().Trim() + "|" + dicBaseJG["JZ16"].ToString().Trim() + "|" + dicBaseJG["JZ17"].ToString().Trim() + "|" + dicBaseJG["JZ18"].ToString().Trim() + "|" + dicBaseJG["JZ19"].ToString().Trim() + "|" + dicBaseJG["JZ20"].ToString().Trim() + "|0"; } else { row["UpdJJYZList"] = ""; } } #region 根据“8|付款期限”因子修改后的值+铜价/铝价的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (DataRow row in dsBJDMX.Tables[0].Rows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); } #endregion grdXLBJDMX.DataSource = dsBJDMX; grdXLBJDMX.DataBind(); } if (NeedShowMsg) ShowMessage("已根据所选付款期限重新计算了报价!"); } } } //销售单位 protected void cbxSYDWID_SelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; if (ControlState != TControlState.ctsBrowse) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZB_YZZ,0) as YZZ from XLXSTZYZ"); sql.Add(" left join XLXSBJDYZZB on XLXSBJDYZZB_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZB_YZID=XLXSTZYZ_YZID and XLXSBJDYZZB_SYDWID=:pSYDWID"); sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='B'"); sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); sql.ParamByName("pSYDWID").Value = cbxSYDWID.SelectedValue.Trim(); sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sBJU003 = GetOption("BJU003"); bool IsGridChanged = false;//标记grid有没有被修改过 bool NeedShowMsg = false; foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) IsGridChanged = true; } if (IsGridChanged) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (GridViewRow row in grdXLBJDMX.NewRows) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); } } #region 根据“B|销售单位”因子修改后的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (GridViewRow row in grdXLBJDMX.NewRows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); } #endregion grdXLBJDMX.CommitEdit(); } else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 { DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); foreach (DataRow row in dsBJDMX.Tables[0].Rows) { row["TZYZ_" + sYZID] = sYZZ; } } string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; foreach (DataRow row in dsBJDMX.Tables[0].Rows) { string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption("BJU003"), GetOption("BJU018"), cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) row["XLXSBJDMX_JGBBJTZ"] = 'N'; row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 { row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|" + dicBaseJG["JZ11"].ToString().Trim() + "|" + dicBaseJG["JZ12"].ToString().Trim() + "|" + dicBaseJG["JZ13"].ToString().Trim() + "|" + dicBaseJG["JZ14"].ToString().Trim() + "|" + dicBaseJG["JZ15"].ToString().Trim() + "|" + dicBaseJG["JZ16"].ToString().Trim() + "|" + dicBaseJG["JZ17"].ToString().Trim() + "|" + dicBaseJG["JZ18"].ToString().Trim() + "|" + dicBaseJG["JZ19"].ToString().Trim() + "|" + dicBaseJG["JZ20"].ToString().Trim() + "|0"; } else { row["UpdJJYZList"] = ""; } } #region 根据“B|销售单位”因子修改后的值+铜价/铝价的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (DataRow row in dsBJDMX.Tables[0].Rows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); } #endregion grdXLBJDMX.DataSource = dsBJDMX; grdXLBJDMX.DataBind(); } if (NeedShowMsg) ShowMessage("已根据所选销售单位重新计算了报价!"); } } } //送货地点 protected void cbxYSJDID_SelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; if (ControlState != TControlState.ctsBrowse) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); //选择送货地点,自动带出运输单位 string sYSXLID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select YSXL_YSXLID from YSXL "); SQL.Add(" left join YSXLMX on YSXLMX_YSXLID = YSXL_YSXLID "); SQL.Add(" where isnull(YSXL_TYBZ,'N') <> 'Y' "); SQL.Add(" and exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID = :pYSXLMX_YSJDID) "); SQL.Add(" and not exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID <> :pYSXLMX_YSJDID) "); SQL.Add(" order by YSXL_YSXLID"); SQL.ParamByName("pYSXLMX_YSJDID").Value = cbxYSJDID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sYSXLID = ds.Tables[0].Rows[0][0].ToString().Trim(); SQL.Clear(); SQL.Add(" select CHJJJGBMX_JGBBH from CHJJJGBMX "); SQL.Add(" left join CHJJJGB on CHJJJGB_JGBLX = CHJJJGBMX_JGBLX and CHJJJGB_JGBBH = CHJJJGBMX_JGBBH and CHJJJGB_JGBQH = CHJJJGBMX_JGBQH "); SQL.Add(" where CHJJJGBMX_JGBLX = 'YF' "); SQL.Add(" and CHJJJGBMX_WLID =:pCHJJJGBMX_WLID and CHJJJGBMX_JJPC like :pCHJJJGBMX_JJPC "); SQL.Add(" and CHJJJGB_KSRQ<=:pRQ and IsNull(CHJJJGB_JSRQ,Convert(DateTime,'9999-12-31'))>=:pRQ "); SQL.Add(" order by CHJJJGBMX_JGBBH"); SQL.ParamByName("pCHJJJGBMX_WLID").Value = bjflxx.XLXSBJFL_YFWLID; SQL.ParamByName("pCHJJJGBMX_JJPC").Value = sYSXLID.PadRight(10, ' ') + cbxYSJDID.SelectedValue.Trim().PadRight(10, ' ') + "%"; SQL.ParamByName("pRQ").Value = DateTime.Now; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { cbxGYSID.SelectedValue = ds.Tables[0].Rows[0][0].ToString().Trim(); } } } } //项目所在地 protected void cbxKHSZDPRO_OnSelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; cbxKHSZDCITY.ClearItems(); cbxKHSZDCOUNTY.ClearItems(); cbxKHSZDCOUNTY.SelectedValue = ""; if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = :pFID "); SQL.Add(" order by XZQH_XZQHID "); SQL.ParamByName("pFID").Value = cbxKHSZDPRO.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(SQL); cbxKHSZDCITY.Items.Add(new ListItem("","")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim().Equals("")) { cbxKHSZDCITY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); } } if (cbxKHSZDCITY.Items.Count == 2) { cbxKHSZDCITY.SelectedIndex = 1; cbxKHSZDCITY_OnSelectedIndexChanged(null, null); } } } else { cbxKHSZDCITY.SelectedValue = ""; } if (!cbxKHSZDCOUNTY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCOUNTY.SelectedValue.Trim(); } else if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCITY.SelectedValue.Trim(); } else if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDPRO.SelectedValue.Trim(); } else { txtXZQHID.Value = ""; } } protected void cbxKHSZDCITY_OnSelectedIndexChanged(object sender, EventArgs e) { if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 return; cbxKHSZDCOUNTY.ClearItems(); if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_FID = :pFID "); SQL.Add(" order by XZQH_XZQHID "); SQL.ParamByName("pFID").Value = cbxKHSZDCITY.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(SQL); cbxKHSZDCOUNTY.Items.Add(new ListItem("", "")); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim().Equals("")) { cbxKHSZDCOUNTY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); } } if (cbxKHSZDCOUNTY.Items.Count == 2) { cbxKHSZDCOUNTY.SelectedIndex = 1; } } } else { cbxKHSZDCOUNTY.SelectedValue = ""; } if (!cbxKHSZDCOUNTY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCOUNTY.SelectedValue.Trim(); } else if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDCITY.SelectedValue.Trim(); } else if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) { txtXZQHID.Value = cbxKHSZDPRO.SelectedValue.Trim(); } else { txtXZQHID.Value = ""; } } protected void chkJZBJHS_CheckedChanged(object sender, EventArgs e) { if (chkJZBJHS.Checked) txtJZBJHS.Text = "Y"; else txtJZBJHS.Text = "N"; if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; if (txtTJ.Value == 0 || txtLJ.Value == 0) { Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); } else { double dTZZSL = GetZZSLByBJCLID(sTBJCLID); double dLZZSL = GetZZSLByBJCLID(sLBJCLID); if(chkJZBJHS.Checked) { txtTJ.Value = NumberUtils.RoundX(txtTJ.Value*(1+dTZZSL/100),2); txtLJ.Value = NumberUtils.RoundX(txtLJ.Value * (1 + dLZZSL/100), 2); } else { txtTJ.Value = NumberUtils.RoundX(txtTJ.Value /(1 + dTZZSL/100), 2); txtLJ.Value = NumberUtils.RoundX(txtLJ.Value /(1 + dLZZSL/100), 2); } } List bjdJjYzList = new List(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSTZYZ_YZID,XLXSTZYZ_JJFS from XLXSTZYZ where XLXSTZYZ_JJFS = 'JJ' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", txtBJDYZ.Text)); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { bjdJjYzList.Add(ds.Tables[0].Rows[0]["XLXSTZYZ_YZID"].ToString().Trim()); } double dSL = string.IsNullOrEmpty((GetOption("BJU055"))) ? 0 : (double.Parse((GetOption("BJU055"))))/100.0; bool IsHSWL = (dSL == 0); foreach (GridViewRow row in grdXLBJDMX.NewRows) { //先调整料价,基价和表价 string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); string sBJDBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim(); string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); string sOldJGBBJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row).Trim(); string sOldJGBJJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row).Trim(); string sOldCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row).Trim(); string sOldBJDHQCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row).Trim(); Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG("", datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption("BJU003"), GetOption("BJU018"), cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dicBaseJG["XLXSBJDMX_JGBBJ"].ToString()); if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJTZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dicBaseJG["XLXSBJDMX_JGBJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dicBaseJG["XLXSBJDMX_CLCB"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dicBaseJG["XLXSBJDMX_BJDHQCLCB"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCBTZ", "N"); if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 { grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|" + dicBaseJG["JZ11"].ToString().Trim() + "|" + dicBaseJG["JZ12"].ToString().Trim() + "|" + dicBaseJG["JZ13"].ToString().Trim() + "|" + dicBaseJG["JZ14"].ToString().Trim() + "|" + dicBaseJG["JZ15"].ToString().Trim() + "|" + dicBaseJG["JZ16"].ToString().Trim() + "|" + dicBaseJG["JZ17"].ToString().Trim() + "|" + dicBaseJG["JZ18"].ToString().Trim() + "|" + dicBaseJG["JZ19"].ToString().Trim() + "|" + dicBaseJG["JZ20"].ToString().Trim() + "|0"); } else { grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", ""); } Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); if (!IsHSWL) { foreach (string sYZID in bjdJjYzList) { string[] arr = sYZID.Split('|'); if (arr.Length == 0) continue; if (!chkJZBJHS.Checked) { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], (NumberUtils.RoundX(double.Parse(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sYZID.Split('|')[0], row).ToString().Trim()) / (1 + dSL), 6)).ToString()); } else { grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], (NumberUtils.RoundX(double.Parse(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sYZID.Split('|')[0], row).ToString().Trim()) * (1 + dSL), 6)).ToString()); } } } } grdXLBJDMX.CommitEdit(); } } protected void cbxXSJLMC_SelectedIndexChanged(object sender, EventArgs e) { if (GetOption("BJU070").Trim() == "Y") { acbxTXY.Config["XSJLMC"] = cbxXSJLMC.SelectedValue.Trim(); acbxTXY.Config["BMID"] = GetOption("HJU006").Trim(); if (sender != null) { acbxTXY.Text = ""; } return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); if (cbxXSJLMC.SelectedValue.Trim().Equals("")) { sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where isnull(XSY_TYBZ,' ')<>'Y' "); if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption("HJU006").Trim())); sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); } sql.Add(" order by XSY_ZJM,XSY_TXY"); DataSet ds = dberp.OpenDataSet(sql); cbxTXY.ClearItems(); if (ds.Tables[0].Rows.Count > 0) { cbxTXY.Items.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); } } } else { sql.Clear(); sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH"); sql.Add(" where isnull(XSY_TYBZ,' ')<>'Y' and SJ.SJXSYMC=:pSJXSYMC "); if (!string.IsNullOrEmpty(GetOption("HJU006").Trim())) { sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption("HJU006").Trim())); sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); } sql.Add(" order by XSY_ZJM,XSY_TXY"); sql.ParamByName("pSJXSYMC").Value = cbxXSJLMC.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); cbxTXY.ClearItems(); if (ds.Tables[0].Rows.Count > 0) { cbxTXY.Items.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); if (sZJM.Equals("")) sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); } } } } protected void grdXLBJDMX_GetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS,e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); string sBJDID = e.MasterDataSet["txtBJDID"].Trim(); //标记使用材料清单还是价格获取的ds 1表示材料清单 2表示价格表明细 int flag = 0; List lstValue = new List(); lstValue.Clear(); if (e.EventFieldName == "XLXSBJDMX_XLBZID") { DataSet ds = new DataSet(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); string sBJU044 = GetOption(100860000, "BJU044"); string sGCBZSQL = string.Empty; if (!sBJU044.Equals("")&&!sXLXHID.Equals("") && !sXLGGID.Equals("")) { List GCBZLists = new List(); sql.Clear(); sql.Add(@"select distinct XLXSCLQD_XLBZID,XLGYFL_GCLIST from XLXSCLQD left join XLJGCZBML on XLXSCLQD_JGCZBID=XLJGCZBML_JGCZBID left join XLGYFL on XLGYFL_GYFLBM=XLJGCZBML_GYFLBM where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; DataSet dsGCBZ = dberp.OpenDataSet(sql); for (int i = 0; i < dsGCBZ.Tables[0].Rows.Count; i++) { string sGCXLBZID = dsGCBZ.Tables[0].Rows[i]["XLXSCLQD_XLBZID"].ToString().Trim(); string sGCList = dsGCBZ.Tables[0].Rows[i]["XLGYFL_GCLIST"].ToString().Trim(); if (sGCList.Equals("") || (","+sGCList+",").Contains(","+sBJU044+",")) { if (!GCBZLists.Contains(sGCXLBZID)) { GCBZLists.Add(sGCXLBZID); if (sGCBZSQL.Equals("")) sGCBZSQL += string.Format("'{0}'", sGCXLBZID); else sGCBZSQL += string.Format(",'{0}'", sGCXLBZID); } } } if (!sGCBZSQL.Equals("")) sGCBZSQL = " and (XLBZ_DZSC='Y' or XLBZ_XLBZID in (" + sGCBZSQL + "))"; } sql.Clear(); if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { string sJGBID = ""; sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); sJGBID = sJGBID.TrimEnd(','); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX,1 as PX "); sql.Add(" FROM XLBZ"); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); sql.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1 on XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID " + sGCBZSQL); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); sql.Add(" FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1N on XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); sql.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(sql); } } } else { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2 on XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID " + sGCBZSQL); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); sql.Add(" FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2N on XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); sql.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); sql.Add(" FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); sql.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(sql); } } } e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { //若有102579008模块权限则增加空选项:102579008|报价材料用量 if (CheckModule("102579008")) { e.DropDownItems.Add(new ListItem("", "")); } //1表示材料清单 2表示价格表明细 if (!sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSCLQD_DYDJID"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSJGBMX_DYDJID"); } } flag = 0; if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { flag = 3; break; } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(**)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } } } } else { sql.Clear(); sql.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); sql.Add(" from XLBZ "); sql.Add(" where 1=1 and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); sql.Add(" order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID"); sql.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { //若有102579008模块权限则增加空选项:102579008|报价材料用量 if (CheckModule("102579008")) { e.DropDownItems.Add(new ListItem("", "")); } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim() + '|' + ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())); } } } } if (e.EventFieldName == "XLXSBJDMX_DYDJID") { DataSet ds = new DataSet(); ; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { string sJGBID = ""; sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); sJGBID = sJGBID.TrimEnd(','); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3 on XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); sql.Add(" WHERE 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID"); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3N on XLXSBJXLGGTHB_MX3N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX3N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } } } else { flag = 2; sql.Clear(); sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX4 on XLXSBJXLGGTHB_MX4.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); sql.Add(" WHERE 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSBJXLGGTHB_MX4.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID"); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX4N on XLXSBJXLGGTHB_MX4N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX4N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" UNION ALL "); sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); sql.Add(" and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" ) "); sql.Add(" ) a "); sql.Add(" ORDER BY PX,XLDYDJB_XH "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } } } if (ds.Tables[0].Rows.Count > 0) { //1表示材料清单 2表示价格表明细 if (!sXLBZID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, sJGBID, "XLXSCLQD_XLBZID"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, sJGBID, "XLXSJGBMX_XLBZID"); } } if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { flag = 3; break; } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(**)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); } else { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); } } } } } } else { sql.Clear(); sql.Add(" select distinct XLDYDJB_DYDJID,XLDYDJB_XH from XLDYDJB where isnull(XLDYDJB_TYBZ,' ')<>'Y' order by XLDYDJB_XH "); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())); } } } if (e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" select XLYSB_XLYSID,XLYSB_XLYSMC from XLYSB "); sql.Add(" where 1=1 order by XLYSB_XSXH,XLYSB_XLYSID"); DataSet ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { e.DropDownItems.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim())); } } } if (e.EventFieldName == "XLXSBJDMX_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 = e.MasterDataSet["cbxJGBID"].Trim(); 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)); } } } } } protected void grdXLBJDMX_GetDropListColumnItems(object sender, GetDropListColumnItemsEventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); DataSet ds; //型号按报价次数倒排 string sXHABJCSDP = bjflxx.XLXSBJFL_XHABJCSDP; //仅加载价格表型号 bool bJJZJGBXH = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_JJZJGBXH='Y'", e.MasterDataSet["cbxBJFLID"].Trim())); if (e.EventFieldName == "XLXSBJDMX_XLXHID") { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!pzxx.XLXSBJPZ_XHZJSR.Equals("Y")) { sql.Clear(); if (XLBJDUtils.IsJGEJGB(e.MasterDataSet["cbxJGBID"].Trim()) || !bJJZJGBXH) { if (sXHABJCSDP.Equals("Y")) { sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); sql.Add(" left join "); sql.Add(" (select XLXSBJDMX_XLXHID as XLXHID,count(*) as CNT "); sql.Add(" from XLXSBJDMX where 1=1 "); sql.Add(" group by XLXSBJDMX_XLXHID "); sql.Add(" ) a on a.XLXHID=XLXHB_XLXHID "); sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); sql.Add(" order by isnull(a.CNT,0) desc,XLXHB_XLXHID "); } else { sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by XLXHB_XLXHID "); } } else { string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); string sJGBID = ""; sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); sJGBID = sJGBID.TrimEnd(','); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } if (sXHABJCSDP.Equals("Y")) { sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); sql.Add(" left join "); sql.Add(" (select XLXSBJDMX_XLXHID as XLXHID,count(*) as CNT "); sql.Add(" from XLXSBJDMX where 1=1 "); sql.Add(" group by XLXSBJDMX_XLXHID "); sql.Add(" ) a on a.XLXHID=XLXHB_XLXHID "); sql.Add(" left join (select distinct XLXSJGBMX_XLXHID from XLXSJGBMX where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" )JGB on XLXSJGBMX_XLXHID=XLXHB_XLXHID"); sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); sql.Add(" and ISNULL(XLXSJGBMX_XLXHID,' ')<>' '"); sql.Add(" order by isnull(a.CNT,0) desc,XLXHB_XLXHID "); } else { sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); sql.Add(" left join (select distinct XLXSJGBMX_XLXHID from XLXSJGBMX where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" )JGB on XLXSJGBMX_XLXHID=XLXHB_XLXHID"); sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); sql.Add(" and ISNULL(XLXSJGBMX_XLXHID,' ')<>' '"); sql.Add(" order by XLXHB_XLXHID "); } } ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim())); } } } if (e.EventFieldName == "XLXSBJDMX_XLGGID") { string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); string sJGBID = ""; sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); sJGBID = sJGBID.TrimEnd(','); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) { sql.Clear(); sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count <= 0) { sql.Clear(); sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_GG1 on XLXSBJXLGGTHB_GG1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_GG1.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); ds = dberp.OpenDataSet(sql); } } else { sql.Clear(); sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_GG2 on XLXSBJXLGGTHB_GG2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_GG2.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count <= 0) { sql.Clear(); sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); sql.Add(" where 1=1 "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); ds = dberp.OpenDataSet(sql); } } if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } if (e.EventFieldName == "XLXSBJDMX_ZHCPMLMC") { sql.Clear(); sql.Add("select XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLLX='Y' "); ds = dberp.OpenDataSet(sql); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } if (e.EventFieldName == "XLBZGYKHDZB_GYKH") { string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); sql.Clear(); sql.Add("select XLBZGYKHDZB_GYKH from XLBZGYKHDZB where XLBZGYKHDZB_XLBZID='" + sXLBZID + "'"); ds = dberp.OpenDataSet(sql); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } if (e.EventFieldName == "XLBZ_XLBZMS") { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); string sKHID = string.Empty; if (e.MasterDataSet.ContainsKey("txtKHID")) sKHID = e.MasterDataSet["txtKHID"].Trim(); else if(e.MasterDataSet.ContainsKey("txtKH")) sKHID = GetKHID(e.MasterDataSet["txtKH"].Trim()); string sGYKHSQL = GetGYKHSQL(sKHID); if (string.IsNullOrEmpty(sGYKHSQL)) sGYKHSQL = " and isnull(XLBZ_DZSC,'N')='N' "; //标记使用材料清单还是价格获取的ds 1表示材料清单 2表示价格表明细 int flag = 0; List lstValue = new List(); lstValue.Clear(); sql.Clear(); if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { string sJGBID = ""; sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); sJGBID = sJGBID.TrimEnd(','); if (!sJGFID.Equals("")) { if (!sJGBID.Equals("")) { sJGBID += "," + sJGFID; } else { sJGBID = sJGFID; } } //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ"); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][1].ToString().Trim().Equals("1")) { flag = 2; sql.Clear(); sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1 on XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1N on XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } } } else { flag = 2; sql.Clear(); sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSJGBMX "); sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2 on XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZMS,"); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ "); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX "); sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2N on XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); sql.Add(" ) "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][1].ToString().Trim().Equals("1")) { flag = 1; sql.Clear(); sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); sql.Add(" ( "); sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 0 as PX FROM XLXSCLQD"); sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" UNION ALL "); sql.Add(" SELECT XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); sql.Add(" 1 as PX FROM XLBZ"); sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); sql.Add(" ) "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" ) a "); sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } } } e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { //若有102579008模块权限则增加空选项:102579008|报价材料用量 if (CheckModule("102579008")) { e.DropDownItems.Add(""); } //1表示材料清单 2表示价格表明细 if (!sDYDJID.Equals("")) { if (1 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSCLQD_DYDJID"); } else if (2 == flag) { lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSJGBMX_DYDJID"); } } flag = 0; if (lstValue.Count == 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); } else { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } else { //第一轮循环判断是不是0的都是lst中 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { flag = 3; break; } } } if (3 == flag) { //第一轮循环添加** for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) { if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(**)"); } } } //第二轮循环添加* for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) { if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); } } else { e.DropDownItems.Add( ds.Tables[0].Rows[i][0].ToString().Trim()); } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); } else { e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } } } } else { sql.Clear(); sql.Add(" select XLBZ_XLBZMS, "); sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); sql.Add(" from XLBZ "); sql.Add(" where 1=1 "); if (!string.IsNullOrEmpty(sGYKHSQL)) sql.Add(sGYKHSQL); sql.Add(" order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZMS"); ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { //若有102579008模块权限则增加空选项:102579008|报价材料用量 if (CheckModule("102579008")) { e.DropDownItems.Add(""); } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { e.DropDownItems.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZMS"].ToString().Trim()); } } } } } private double GetNum(string sXLGGID, int pos) { try { return CMISproConvert.StrToFloat(sXLGGID.Split('×', '*', '+')[pos].ToString(), 0); } catch { return 0; } } protected void grdXLBJDMX_NewRecord(object sender, NewRecordEventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); string sYSID = GetYSIDXX("BK"); string sJLDW=GetOption("BJU003"); string sBJSL = "0"; if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BJSLMRYZ == "Y") { if (e.MasterDataSet["txtFirstJLDW"].Trim().Equals("") && e.MasterDataSet["txtFirstBJSL"].ToString().Trim().Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); DataSet ds; sql.Clear(); sql.Add("select top 1 XLXSBJDMX_BJSL,XLXSBJDMX_JLDW from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID order by XLXSBJDMX_XSSX "); sql.ParamByName("pBJDID").Value = e.MasterDataSet["txtBJDID"].Trim(); ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { e.MasterDataSet["txtFirstJLDW"] = ds.Tables[0].Rows[0][1].ToString().Trim(); e.MasterDataSet["txtFirstBJSL"] = ds.Tables[0].Rows[0][0].ToString().Trim(); } } #region 取第一条明细的计量单位和数量 sJLDW = e.MasterDataSet["txtFirstJLDW"].Trim().Equals("") ? sJLDW : e.MasterDataSet["txtFirstJLDW"].Trim(); sBJSL = e.MasterDataSet["txtFirstBJSL"].ToString().Trim().Equals("") ? sBJSL : e.MasterDataSet["txtFirstBJSL"].ToString().Trim(); #endregion } e.ResultPairs.Add("XLXSBJDMX_XLYSID", sYSID); e.ResultPairs.Add("XLXSBJDMX_JLDW",sJLDW); e.ResultPairs.Add("XLXSBJDMX_BJSL", sBJSL); e.ResultPairs.Add("XLXSBJDMX_WHR", CurSession.UserName.Trim()); e.ResultPairs.Add("XLXSBJDMX_WHRID", CurSession.UserId.Trim()); e.ResultPairs.Add("XLXSBJDMX_WHSJ", DateTime.Now.ToString().Trim()); //根据参数设置默认标准 string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID(); if (!sDefaultXLBZID.Equals("") && !sDefaultXLBZID.Equals("FirstBZ")) { e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sDefaultXLBZID)); e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sDefaultXLBZID)); } //获取调价因素为空的因子值 Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(e.MasterDataSet["cbxBJFLID"].Trim(), false, false, GetOption("BJU003"), GetOption("BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ0.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); } //获取调价因素为1的因子值 if (e.MasterDataSet.ContainsKey("cbxPJLX")) { string sPJLX = e.MasterDataSet["cbxPJLX"].Trim(); Dictionary dicYZZ1 = XLBJDUtils.GetBJDYZZ1(e.MasterDataSet["cbxBJFLID"].Trim(), sPJLX, GetOption("BJU003"), GetOption("BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ1.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); } } //获取调价因素为8|付款期限的因子值 //cbxFKQXNR if (e.MasterDataSet.ContainsKey("cbxFKQXNR")) { string sFKQXNR = e.MasterDataSet["cbxFKQXNR"].Trim(); Dictionary dicYZZ8 = XLBJDUtils.GetBJDYZZ8(e.MasterDataSet["cbxBJFLID"].Trim(), sFKQXNR, GetOption("BJU003"), GetOption("BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ8.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); } } //获取调价因素为B的因子值 if (e.MasterDataSet.ContainsKey("cbxSYDWID")) { string sSYDWID = e.MasterDataSet["cbxSYDWID"].Trim(); Dictionary dicYZZB = XLBJDUtils.GetBJDYZZB(e.MasterDataSet["cbxBJFLID"].Trim(), sSYDWID, GetOption("BJU003"), GetOption("BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZB.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); } } //获取调价因素为D|颜色的因子值 //sYSID = sYSID.Split("|")[0].Trim(); Dictionary dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sYSID.Split('|')[0].Trim(), GetOption("BJU003"), GetOption("BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZD.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); } } protected void grdXLBJDMX_CopyRecord(object sender, CopyRecordEventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); #region 数据清空或者重新赋值 e.ResultPairs.Add("XLXSBJDMX_XH", "0"); e.ResultPairs.Add("OLD_XLXSBJDMX_XH", "0"); e.ResultPairs.Add("XLXSBJDMX_XSSX", "0"); //报价产品锁定 e.ResultPairs.Add("XLXSBJDMX_BJCPSD", "N"); //外购产品直接赋N--LF 22.11.01去除 //e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", "N"); #endregion e.ResultPairs.Add("XLXSBJDMX_WHR", CurSession.UserName.Trim()); e.ResultPairs.Add("XLXSBJDMX_WHRID", CurSession.UserId.Trim()); e.ResultPairs.Add("XLXSBJDMX_WHSJ", DateTime.Now.ToString().Trim()); } protected void grdXLBJDMX_AjaxGridCellDoubleClick(object sender, AjaxGridCellDoubleClickEventArgs e) { bool isChanged = false; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); Dictionary dicChangedField = new Dictionary(); AddChangedField(dicChangedField, e.EventFieldName, e.EventFieldValue); if (e.RowData[e.EventFieldName].ToString().Trim().Equals("0")) { if (e.EventFieldName.Substring(0, 5).Equals("TZYZ_")) { string sYZID = e.EventFieldName.Substring(5, e.EventFieldName.Length - 5); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJDYZZ_YZZ "); SQL.Add(" from XLXSBJDYZZ"); SQL.Add(" where XLXSBJDYZZ_JGBID=(select XLXSTZYZ_JGBID from XLXSTZYZ where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_YZID=:XLXSTZYZ_YZID) "); SQL.Add(" and XLXSBJDYZZ_YZID=:XLXSTZYZ_YZID"); SQL.ParamByName("XLXSTZYZ_YZID").Value = sYZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { e.EventFieldValue = ds.Tables[0].Rows[0][0].ToString().Trim(); e.ResultPairs.Add(e.EventFieldName, e.EventFieldValue); } } } if (e.EventFieldName.ToString().Trim().Equals("XLXSBJDMX_BJCP")) { //报价产品锁定,仅导入并且自带报价产品时为Y bool bBJCPSD = e.RowData["XLXSBJDMX_BJCPSD"].ToString().Trim().Equals("Y"); //销售员报价配置的---报价产品锁定时记录原报价产品 bool NeedUpdateBZ = false; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (pzxx.XLXSBJPZ_SJJLYBJCP == "Y") NeedUpdateBZ = true; string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sBJCP = e.EventFieldValue; string sBJBZ = e.RowData["XLXSBJDMX_BZ"].ToString().Trim(); string sTmpBJCP = ""; if (string.IsNullOrEmpty(sDYDJID)) { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { sTmpBJCP = sXLXHID + " " + sXLGGID; e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); if (NeedUpdateBZ && bBJCPSD) { if (!sBJCP.Equals(sTmpBJCP)) { sBJBZ = sBJBZ + " " + "原:" + sBJCP; e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); } } AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + " " + sXLGGID); } } else { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { if (sDYDJID.Equals("--") || sDYDJID.Equals("")) { sTmpBJCP = sXLXHID + " " + sXLGGID; e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); if (NeedUpdateBZ && bBJCPSD) { if (!sBJCP.Equals(sTmpBJCP)) { sBJBZ = sBJBZ + " " + "原:" + sBJCP; e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); } } AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + " " + sXLGGID); } else { sTmpBJCP = sXLXHID + "-" + sDYDJID + " " + sXLGGID; e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); if (NeedUpdateBZ && bBJCPSD) { if (!sBJCP.Equals(sTmpBJCP)) { sBJBZ = sBJBZ + " " + "原:" + sBJCP; e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); } } AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + "-" + sDYDJID + " " + sXLGGID); } } } } string stCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CLCB")) { stCLCB = dicChangedField["XLXSBJDMX_CLCB"]; isChanged = true; } else stCLCB = e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(); string stBJDHQCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJDHQCLCB")) { stBJDHQCLCB = dicChangedField["XLXSBJDMX_BJDHQCLCB"]; isChanged = true; } else stBJDHQCLCB = e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); string stJGBJJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBJJ")) { stJGBJJ = dicChangedField["XLXSBJDMX_JGBJJ"]; isChanged = true; } else stJGBJJ = e.RowData["XLXSBJDMX_JGBJJ"].ToString().Trim(); string stJGBBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBBJ")) { stJGBBJ = dicChangedField["XLXSBJDMX_JGBBJ"]; isChanged = true; } else stJGBBJ = e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(); string stCPBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CPBJ")) { stCPBJ = dicChangedField["XLXSBJDMX_CPBJ"]; isChanged = true; } else stCPBJ = e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(); string stYZZ01 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ01")) { stYZZ01 = dicChangedField["TZYZ_BJ01"]; isChanged = true; } else stYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); string stYZZ02 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ02")) { stYZZ02 = dicChangedField["TZYZ_BJ02"]; isChanged = true; } else stYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); string stYZZ03 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ03")) { stYZZ03 = dicChangedField["TZYZ_BJ03"]; isChanged = true; } else stYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); string stYZZ04 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ04")) { stYZZ04 = dicChangedField["TZYZ_BJ04"]; isChanged = true; } else stYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); string stYZZ05 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ05")) { stYZZ05 = dicChangedField["TZYZ_BJ05"]; isChanged = true; } else stYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); string stYZZ06 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ06")) { stYZZ06 = dicChangedField["TZYZ_BJ06"]; isChanged = true; } else stYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); string stYZZ07 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ07")) { stYZZ07 = dicChangedField["TZYZ_BJ07"]; isChanged = true; } else stYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); string stYZZ08 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ08")) { stYZZ08 = dicChangedField["TZYZ_BJ08"]; isChanged = true; } else stYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); string stYZZ09 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ09")) { stYZZ09 = dicChangedField["TZYZ_BJ09"]; isChanged = true; } else stYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); string stYZZ10 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ10")) { stYZZ10 = dicChangedField["TZYZ_BJ10"]; isChanged = true; } else stYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); string stYZZ11 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ11")) { stYZZ11 = dicChangedField["TZYZ_BJ11"]; isChanged = true; } else stYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); string stYZZ12 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ12")) { stYZZ12 = dicChangedField["TZYZ_BJ12"]; isChanged = true; } else stYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); string stYZZ13 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ13")) { stYZZ13 = dicChangedField["TZYZ_BJ13"]; isChanged = true; } else stYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); string stYZZ14 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ14")) { stYZZ14 = dicChangedField["TZYZ_BJ14"]; isChanged = true; } else stYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); string stYZZ15 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ15")) { stYZZ15 = dicChangedField["TZYZ_BJ15"]; isChanged = true; } else stYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); string stYZZ16 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ16")) { stYZZ16 = dicChangedField["TZYZ_BJ16"]; isChanged = true; } else stYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); string stYZZ17 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ17")) { stYZZ17 = dicChangedField["TZYZ_BJ17"]; isChanged = true; } else stYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); string stYZZ18 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ18")) { stYZZ18 = dicChangedField["TZYZ_BJ18"]; isChanged = true; } else stYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); string stYZZ19 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ19")) { stYZZ19 = dicChangedField["TZYZ_BJ19"]; isChanged = true; } else stYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); string stYZZ20 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ20")) { stYZZ20 = dicChangedField["TZYZ_BJ20"]; isChanged = true; } else stYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); string stZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_ZDXJ")) { stZDXJ = dicChangedField["XLXSBJDMX_ZDXJ"]; isChanged = true; } else stZDXJ = e.RowData["XLXSBJDMX_ZDXJ"].ToString().Trim(); string stYXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_YXJG")) { stYXJ = dicChangedField["XLXSBJDMX_YXJG"]; isChanged = true; } else stYXJ = e.RowData["XLXSBJDMX_YXJG"].ToString().Trim(); string sJSJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JSJG")) { sJSJ = dicChangedField["XLXSBJDMX_JSJG"]; isChanged = true; } else sJSJ = e.RowData["XLXSBJDMX_JSJG"].ToString().Trim(); string stBJSL = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJSL")) { stBJSL = dicChangedField["XLXSBJDMX_BJSL"]; isChanged = true; } else stBJSL = e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(); string stBJJE = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJJE")) { stBJJE = dicChangedField["XLXSBJDMX_BJJE"]; isChanged = true; } else stBJJE = e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(); string stTZZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) { stTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; isChanged = true; } else stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); if (isChanged) { string sUpdJJYZList = e.RowData["UpdJJYZList"].ToString().Trim(); if (sUpdJJYZList.Equals("")) sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"; string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); 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, e.MasterDataSet["cbxBJFLID"].Trim(), 8, e.RowData["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX.Trim(), stZDXJ, stBJSL, stBJJE, stBJDHQCLCB, stJGBBJ); if (CMISproConvert.StrToFloat(stZDXJ) != dTZQZDXJ) AddChangedField(dicChangedField, "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, e.MasterDataSet["cbxBJFLID"].Trim(), 8, sUpdJJYZList); string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); string stZDXJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(stZDXJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); string stJSJJE=NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, stBJJE); e.ResultPairs.Add("XLXSBJDMX_YXJJCL", stYXJJCL); e.ResultPairs.Add("XLXSBJDMX_JSJG", sJSJ); e.ResultPairs.Add("XLXSBJDMX_JSJJE", stJSJJE); e.ResultPairs.Add("XLXSBJDMX_JSJJCL", stJSJJCL); e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJ); e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", stTZZDXJ); e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJ); e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", stZDXJJCL); e.ResultPairs.Add("XLXSBJDMX_ZDXJJE", stZDXJJE); } } protected void grdXLBJDMX_CalculateField(object sender, CalculateFieldEventArgs e) { Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-1"); bool sBJU064 = GetOption("BJU064").Equals("Y"); bool isChanged = false; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; e.MasterDataSet["txtFSYZ"] = dicBJDYZ["FSYZ"]; e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; } InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); #region 初始化 string sBJU003 = GetOption("BJU003"); string sBJU060 = GetOption("BJU060"); bool IsTZTJYZ = false;//判断是否修改了调价因子 string sJLDW = e.RowData["XLXSBJDMX_JLDW"].ToString().Trim().Split('|')[0].Trim(); string sMRJLDW = string.Empty; string sBJCP = e.RowData["XLXSBJDMX_BJCP"].ToString().Trim(); string sBJDID = e.MasterDataSet["txtBJDID"].Trim(); string aJGBIDS = e.MasterDataSet["cbxJGBID"].ToString().Trim() + "," + e.MasterDataSet["txtJGCIDS"].ToString().Trim(); aJGBIDS = aJGBIDS.TrimEnd(','); string sBJCPFZJS = bjflxx.XLXSBJFL_BJCPFZJS; string sChangeBJCP = GetOption("BJU011"); double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); bool bBJSDBZ = e.RowData["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y");//报价锁定标志 string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS.Trim(); bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(e.MasterDataSet["cbxJGBID"].ToString().Trim()).XLXSJGB_JJLY; //当前计量单位与参数一致后,报价数量的变化后的值 double dBJU003HSBL = 1.0; dBJU003HSBL = XLBJDUtils.GetJLDWHSBL_SL(sJLDW, sBJU003); double dTmpBJSL = dBJSL * dBJU003HSBL; string sDefaultXLBZID = ""; string sDefaultDYDJID = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRXLBZID)) sDefaultXLBZID = pzxx.XLXSBJPZ_MRXLBZID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRDYDJ)) sDefaultDYDJID = pzxx.XLXSBJPZ_MRDYDJ; 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(); //用于按公式计算报价、最低限价 Dictionary dicChangedField = new Dictionary(); AddChangedField(dicChangedField, e.EventFieldName, e.EventFieldValue); string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); string sXSJEYZ = e.MasterDataSet["txtXSJEYZ"];//显示金额因子 string sFSYZ = e.MasterDataSet["txtFSYZ"];//反算因子 //截面比公式适用因子ID string sJMBGSYZID = bjflxx.XLXSBJFL_JMBGSYZID.Trim(); string sJMBYZJJFS = XLBJDUtils.GetYZXXByYZID(sJMBGSYZID).XLXSTZYZ_JJFS.Trim(); #endregion #region 线缆标准描述 if (e.EventFieldName.Equals("XLBZ_XLBZMS")) { string sXLBZ = XLBJDUtils.GetXLBZByXLBZMS(e.RowData["XLBZ_XLBZMS"].ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_XLBZID", sXLBZ); AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", sXLBZ); e.RowData["XLXSBJDMX_XLBZID"] = sXLBZ; } #endregion #region 客户物料ID 仅天信 if (e.EventFieldName.Equals("XLXSBJDMX_KHWLID") && SystemUtils.GetSysId().Equals("0573000501")) { string sKHWLID = e.RowData["XLXSBJDMX_KHWLID"].ToString().Trim(); if (string.IsNullOrEmpty(sKHWLID)) return; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"SELECT WL_YWMC FROM WLSXQSZH LEFT JOIN WL ON WL_WLID = WLSXQSZH_WLID AND WL_PHSXZ = WLSXQSZH_SXZID WHERE WLSXQSZH_SXZF21 = :pKHWLID"); SQL.ParamByName("pKHWLID").Value = sKHWLID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sYWMC = ds.Tables[0].Rows[0]["WL_YWMC"].ToString().Trim(); if (!string.IsNullOrEmpty(sYWMC)) { e.ResultPairs.Add("XLXSBJDMX_GYKH", sYWMC); AddChangedField(dicChangedField, "XLXSBJDMX_GYKH", sYWMC); e.RowData["XLXSBJDMX_GYKH"] = sYWMC; } } } #endregion 仅天信 #region 工艺卡号 if ((e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID")) && SystemUtils.GetSysId().Equals("0573000501")) { string sGYBH = e.RowData["XLXSBJDMX_GYKH"].ToString().Trim(); if (string.IsNullOrEmpty(sGYBH)) return; // 无供应商编号则不查询 // 数据库查询 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"SELECT XLXHJGCZBML_DYDJID, XLXHJGCZBML_XLXHID, XLXHJGCZBML_XLBZID, XLXHJGCZBNR_XLGGID FROM XLXHJGCZBNR LEFT JOIN XLXHJGCZBML ON XLXHJGCZBML_JGCZBID = XLXHJGCZBNR_JGCZBID AND XLXHJGCZBML_JGCZBXH = XLXHJGCZBNR_JGCZBXH WHERE XLXHJGCZBNR_GYBH = :pGYBH"); SQL.ParamByName("pGYBH").Value = sGYBH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { DataRow row = ds.Tables[0].Rows[0]; // 赋值给 xh (型号ID) string sXH = row["XLXHJGCZBML_XLXHID"].ToString().Trim(); e.ResultPairs.Add("XLXSBJDMX_XLXHID", sXH); AddChangedField(dicChangedField, "XLXSBJDMX_XLXHID", sXH); e.RowData["XLXSBJDMX_XLXHID"] = sXH; string sXLJGU007 = GetOption(102579000, "XLJGU007"); // 赋值给 gg (规格ID) string sGG = row["XLXHJGCZBNR_XLGGID"].ToString().Trim() ; if (sXLJGU007.Equals("A")) { sGG = sGG.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sGG = sGG.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } e.ResultPairs.Add("XLXSBJDMX_XLGGID", sGG); AddChangedField(dicChangedField, "XLXSBJDMX_XLGGID", sGG); e.RowData["XLXSBJDMX_XLGGID"] = sGG; // 赋值给 bz (标准ID) string sBZ = row["XLXHJGCZBML_XLBZID"].ToString().Trim() ; e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sBZ)); AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sBZ)); e.RowData["XLXSBJDMX_XLBZID"] = GetXLBZXX(sBZ); // 赋值给 dydj (电压等级ID) string sDYDJ = row["XLXHJGCZBML_DYDJID"].ToString().Trim() ; e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJ); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJ); e.RowData["XLXSBJDMX_DYDJID"] = sDYDJ; } } #endregion #region 型号-规格-标准-电压等级 if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID" )|| e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID")) { Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-2"); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim().Split('|')[0].Trim(); bool bBJCPSD = e.RowData["XLXSBJDMX_BJCPSD"].ToString().Trim().Equals("Y"); if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")) { string sYSID = GetDefaultYSID(sXLXHID, sXLGGID, sXLYSID); ; e.ResultPairs.Add("XLXSBJDMX_XLYSID", GetYSIDXX(sYSID)); AddChangedField(dicChangedField, "XLXSBJDMX_XLYSID", sYSID); } if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID")) { sMRJLDW = GetMRJLDWByJBXH(sXLXHID); if (!sMRJLDW.Equals("")) { sJLDW = sMRJLDW; e.ResultPairs.Add("XLXSBJDMX_JLDW", sMRJLDW + "|" + sMRJLDW); } } if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID"))) { if (!sXLXHID.Equals("") || !sXLGGID.Equals("")) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); if (dicXLXX.Count == 0) { sXLBZID = ""; sDYDJID = ""; } else if (dicXLXX.Count == 1) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; } else if (dicXLXX.Count > 1) { //若sDefaultXLBZID=’ FirstBZ’,则在明细记录“型号”、“规格”发生变化时, //若根据型号、规格匹配到的“标准”记录超过1个,则判断原标准是否已匹配,匹配则不修改,否则赋值第一个标准。 //再根据型号、规格、标准,匹配出电压等级, //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若sDefaultDYDJID为空,则判断电压等级是否唯一,唯一则给电压等级赋默认值,否则不赋值。 if (sDefaultXLBZID.Equals("FirstBZ")) { bool bPPBZ = false; string stempDYDJID = ""; for (int i = 0; i < dicXLXX.Count; i++) { if (dicXLXX[i.ToString().Trim()].ToString().Split('*')[0].Trim().Equals(sXLBZID)) { bPPBZ = true; stempDYDJID = dicXLXX[i.ToString().Trim()].ToString().Split('*')[1]; break; } } if (!bPPBZ) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; } bool bDYDJIDOne = true; string sTmp = ""; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; } else { sDYDJID = ""; } } } else sDYDJID = stempDYDJID; } //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若当前电压等级存在则不赋值。 else if (sDefaultDYDJID.Equals("minDY") && !sXLBZID.Equals("")) { string stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; string sTmp = ""; bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { sDYDJID = stempDYDJID; } } } } } else if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS"))) { string sBABZFGDY = bjflxx.XLXSBJFL_BABZFGDY; if (!sBABZFGDY.Equals("Y") || sDYDJID.Trim().Equals("")) { if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); string sTmp = ""; string stempDYDJID = ""; bool bDYDJIDOne = true; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (stempDYDJID.Equals("")) { stempDYDJID = sTmp.Split('*')[1]; } if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; } else { sDYDJID = ""; } } } else { sDYDJID = stempDYDJID; } } } } //如果报价产品锁定了,型号、规格、标准、电压等级四要素变化时,不更新报价产品字段(无论参数BJU011什么值) if (!bBJCPSD) { if (sChangeBJCP.Equals("Y")) { if (string.IsNullOrEmpty(sDYDJID)) { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } } else { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { if (!sDYDJID.Equals("--")) { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } else { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } } } } else { if (sBJCP.Equals("")) { if (string.IsNullOrEmpty(sDYDJID)) { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } } else { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) { if (!sDYDJID.Equals("--")) { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } else { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } } } } else { if (e.RowData["XLXSBJDMX_BJCP"].ToString().Trim().Equals(e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim())) { if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID) && !string.IsNullOrEmpty(sDYDJID)) { if (!sDYDJID.Equals("--")) { e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); } } } } } } } #endregion Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-3"); #region 型号-规格-标准-电压等级-颜色 if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")||e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) { e.ResultPairs.Add("XLXSBJDMX_WLID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_WLID", ""); } #endregion Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4"); #region 型号-规格-标准-电压等级-计量单位 if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")||e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || e.EventFieldName.Equals("XLXSBJDMX_BJSL") || e.EventFieldName.Equals("XLXSBJDMX_WGCPBZ")) { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim(); string sXSQYID = e.MasterDataSet["cbxXSQYID"].Trim(); string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); string sJGBID = e.MasterDataSet["cbxJGBID"].Trim(); string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY.Trim(); string sBJRQ = e.MasterDataSet["datBJRQ"].Trim(); string sOldWGCPBZ = e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim(); //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); string sCPMLMC = e.RowData["XLXSBJDMX_CPMLMC"].ToString().Trim(); string sCPMLIDMC = ""; bool changeXLBZ = false;//标准、电压等级是否重新赋值了 bool changeDYDJ = false;//标准、电压等级是否重新赋值了 Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.1"); if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")) { if (!sXLXHID.Equals("") || !sXLGGID.Equals("")) { string sXLGGDW = GetXLGGDW(sXLXHID, sXLGGID); e.ResultPairs.Add("XLGGB_XLGGDW", sXLGGDW); if (sBJU064) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); if (dicXLXX.Count == 0) { sXLBZID = ""; sDYDJID = ""; e.ResultPairs.Add("XLXSBJDMX_XLBZID", ""); e.ResultPairs.Add("XLBZ_XLBZMS", ""); e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", ""); AddChangedField(dicChangedField, "XLBZ_XLBZMS", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); changeXLBZ = true; changeDYDJ = true; } else if (dicXLXX.Count == 1) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); AddChangedField(dicChangedField, "XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); changeXLBZ = true; changeDYDJ = true; } else if (dicXLXX.Count > 1) { //若sDefaultXLBZID=’ FirstBZ’,则在明细记录“型号”、“规格”发生变化时, //若根据型号、规格匹配到的“标准”记录超过1个,则判断原标准是否已匹配,匹配则不修改,否则赋值第一个标准。 //再根据型号、规格、标准,匹配出电压等级, //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若sDefaultDYDJID为空,则判断电压等级是否唯一,唯一则给电压等级赋默认值,否则不赋值。 if (sDefaultXLBZID.Equals("FirstBZ")) { bool bPPBZ = false; string stempDYDJID = ""; for (int i = 0; i < dicXLXX.Count; i++) { if (dicXLXX[i.ToString().Trim()].ToString().Split('*')[0].Trim().Equals(sXLBZID)) { bPPBZ = true; stempDYDJID = dicXLXX[i.ToString().Trim()].ToString().Split('*')[1]; break; } } if (!bPPBZ) { sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); AddChangedField(dicChangedField, "XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); changeXLBZ = true; } bool bDYDJIDOne = true; string sTmp = ""; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); changeDYDJ = true; } else { sDYDJID = ""; e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); changeDYDJ = true; } } } else { sDYDJID = stempDYDJID; e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); changeDYDJ = true; } } else if (sDefaultDYDJID.Equals("minDY") && !sXLBZID.Equals("")) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { string sTmp = ""; sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); changeDYDJ = true; } else { sDYDJID = ""; e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); changeDYDJ = true; } } } } } } } else if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS"))) { string sBABZFGDY = bjflxx.XLXSBJFL_BABZFGDY; if (!sBABZFGDY.Equals("Y") || sDYDJID.Trim().Equals("")) { if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) { Dictionary dicXLXX = new Dictionary(); dicXLXX.Clear(); GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); string sTmp = ""; string stempDYDJID = ""; bool bDYDJIDOne = true; for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (stempDYDJID.Equals("")) { stempDYDJID = sTmp.Split('*')[1]; } if (!sTmp.Split('*')[1].Equals(stempDYDJID)) { bDYDJIDOne = false; } } } if (!bDYDJIDOne) { bool isExist = false;//当前电压等级是否存在 for (int i = 0; i < dicXLXX.Count; i++) { sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); if (sTmp.Split('*')[0].Equals(sXLBZID)) { if (sTmp.Split('*')[1].Equals(sDYDJID)) { isExist = true; } } } if (!isExist) { if (sDefaultDYDJID.Equals("minDY")) { sDYDJID = stempDYDJID; if (sDYDJID.Equals("")) { e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); } else { e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); } changeDYDJ = true; } else { sDYDJID = ""; e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); changeDYDJ = true; } } } else { sDYDJID = stempDYDJID; if (sDYDJID.Equals("")) { e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); } else { e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); } changeDYDJ = true; } } } } Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.2"); //匹配下单线缆标准 string sXDXLBZID = XLBJDUtils.GetXDXLBZID(sXLXHID, sDYDJID, sXLGGID, sXLBZID); e.ResultPairs.Add("XLXSBJDMX_XDXLBZID", sXDXLBZID); e.ResultPairs.Add("XLXSBJDMX_XDXLXHID", sXLXHID); if (XLBJDUtils.ExistGYKH() && (!e.EventFieldName.Equals("XLXSBJDMX_GYKH") && !e.EventFieldName.Equals("XLXSBJDMX_KHWLID" ))) { string sGYKH = XLBJDUtils.GetGYKH(sXLBZID); e.ResultPairs.Add("XLXSBJDMX_GYKH", sGYKH); AddChangedField(dicChangedField, "XLXSBJDMX_GYKH", sGYKH); } if (XLBJDUtils.ISDZBZ(sXLBZID)) { e.ResultPairs.Add("XLXSBJDMX_DZSC", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_DZSC", "Y"); } else { e.ResultPairs.Add("XLXSBJDMX_DZSC", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_DZSC", "N"); } Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.3"); string sBJU018 = GetOption("BJU018"); string sJGBJLDW = XLBJDUtils.GetJGBJLDW(sJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018);//提前依据sBJU018判断是否取精确价格单位 string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); if (!e.EventFieldName.Equals("XLXSBJDMX_JLDW") && !sJGBJSDW.Equals("Km") && !sJGBJSDW.Equals("M")) { if (sMRJLDW.Equals("")) { e.ResultPairs.Add("XLXSBJDMX_JLDW", sJGBJLDW + "|" + sJGBJLDW); sJLDW = sJGBJLDW; } } Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.4"); //产品目录名称赋值 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) { e.ResultPairs.Add("XLXSBJDMX_CPMLMC", ""); e.ResultPairs.Add("HasCPMLID", ""); e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", ""); } else { e.ResultPairs.Add("XLXSBJDMX_CPMLMC", sCPMLIDMC.Split('|')[1].ToString().Trim()); e.ResultPairs.Add("HasCPMLID", sCPMLIDMC); e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", XLBJDUtils.GetZHCPMLMC(sCPMLIDMC.Split('|')[0].ToString().Trim())); } } else { e.ResultPairs.Add("XLXSBJDMX_CPMLMC", ""); e.ResultPairs.Add("HasCPMLID", ""); e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", ""); } Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.5"); //有无清单 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))) { e.ResultPairs.Add("HasCLQD", "Y"); AddChangedField(dicChangedField, "HasCLQD", "Y"); } else { e.ResultPairs.Add("HasCLQD", "N"); AddChangedField(dicChangedField, "HasCLQD", "N"); } string sCPJJ = ""; string sJJ = ""; string sCLCB = ""; string sBJDHQCLCB = ""; double dBJDJLDWHSBL = 1; string sWGCPBZ = "N"; string sJGFBZ = "N"; int iJGBTJYZYC = 1; if (e.EventFieldName.Equals("XLXSBJDMX_WGCPBZ")) { sWGCPBZ = e.EventFieldValue=="Y"?"Y":"N"; } else if (XLBJDUtils.IsWGCP(sXLXHID, sXLGGID, sXLBZID, sDYDJID)) sWGCPBZ = "Y"; if (XLBJDUtils.IsJGFJGBMX(e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID)) { sJGFBZ = "Y"; double dJGFJJ = 0; double dJGFBJ = 0; string sJGFJLDW = ""; XLBJDUtils.GetJGBJJ_JGF(e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), 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(); e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); } else if (sWGCPBZ.Equals("Y")) { dBJDJLDWHSBL = 1; sCPJJ = "0"; sJJ = "0"; sCLCB = "0"; sBJDHQCLCB = "0"; e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); } else { Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.6"); if (!XLBJDUtils.IsJGEJGB(e.MasterDataSet["cbxJGBID"].Trim()))//是否表价实时计算价格表 { //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); } if (e.MasterDataSet["txtJGBTJYS"].Trim().Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 { #region 因素3 bool bExistBJDHQ = false; if (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 { if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) bExistBJDHQ = true; } } string sTJ = "0"; string sLJ = "0"; if (e.MasterDataSet.ContainsKey("txtTJ")) sTJ = e.MasterDataSet["txtTJ"].Trim(); if (e.MasterDataSet.ContainsKey("txtLJ")) sLJ = e.MasterDataSet["txtLJ"].Trim(); Dictionary dicJJYZList = new Dictionary(); XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), iXSWS, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGBIDS"].Trim(), sJLDW, sBJU003, sBJU018, e.MasterDataSet["txtJSBLFS"].Trim(), bjflxx.XLXSBJFL_TBJCLID.Trim(), bjflxx.XLXSBJFL_LBJCLID.Trim(), sTJ, sLJ, bExistBJDHQ, ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); e.ResultPairs.Add("UpdJJYZList", dicJJYZList["JZ01"].ToString().Trim() + "|" + dicJJYZList["JZ02"].ToString().Trim() + "|" + dicJJYZList["JZ03"].ToString().Trim() + "|" + dicJJYZList["JZ04"].ToString().Trim() + "|" + dicJJYZList["JZ05"].ToString().Trim() + "|" + dicJJYZList["JZ06"].ToString().Trim() + "|" + dicJJYZList["JZ07"].ToString().Trim() + "|" + dicJJYZList["JZ08"].ToString().Trim() + "|" + dicJJYZList["JZ09"].ToString().Trim() + "|" + dicJJYZList["JZ10"].ToString().Trim() + "|" + dicJJYZList["JZ11"].ToString().Trim() + "|" + dicJJYZList["JZ12"].ToString().Trim() + "|" + dicJJYZList["JZ13"].ToString().Trim() + "|" + dicJJYZList["JZ14"].ToString().Trim() + "|" + dicJJYZList["JZ15"].ToString().Trim() + "|" + dicJJYZList["JZ16"].ToString().Trim() + "|" + dicJJYZList["JZ17"].ToString().Trim() + "|" + dicJJYZList["JZ18"].ToString().Trim() + "|" + dicJJYZList["JZ19"].ToString().Trim() + "|" + dicJJYZList["JZ20"].ToString().Trim() + "|" + dicJJYZList["YSJDZ"].ToString().Trim()); //这里根据换算比例将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 (e.MasterDataSet["txtJGBTJYS"].Trim().Equals("1")) { //因素1先将衍生产品四要素替换成所依四要素 bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); } if (e.MasterDataSet["txtBJLY"].Trim().Equals("D") || e.MasterDataSet["txtBJLY"].Trim().Equals("C")) { GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) { if (bExistedSYJGBMX) XLBJDUtils.GetJGBMXBySYXH(e.MasterDataSet["cbxJGBID"].Trim(), iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, sJGBID, e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); if (bExistedSYJGBMX) { sXLXHID = tmpXLXHID; sXLGGID = tmpXLGGID; sXLBZID = tmpXLBZID; sDYDJID = tmpDYDJID; } JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) { 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}'", e.MasterDataSet["cbxBJFLID"].Trim()))) { if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), XLBJDUtils.JQJSXSWS.ToString(), e.MasterDataSet["cbxBJFLID"].Trim(), sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } else { XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), iXSWS.ToString(), e.MasterDataSet["cbxBJFLID"].Trim(), sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); } } else { GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } else { GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); } } string sHasCLQD = string.Empty; if (dicChangedField.ContainsKey("HasCLQD")) sHasCLQD = dicChangedField["HasCLQD"]; else sHasCLQD = e.RowData["HasCLQD"].ToString().Trim(); if (bExistedSYJGBMX && sHasCLQD.Equals("N")) { //记录衍生产品原四要素 tmpXLXHID = sXLXHID; tmpXLGGID = sXLGGID; tmpXLBZID = sXLBZID; tmpDYDJID = sDYDJID; XLBJDUtils.GetJGBMXBySYXH(e.MasterDataSet["cbxJGBID"].Trim(), 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 (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); else sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); } else { if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) 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 (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 { if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) { Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID); if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) { 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(sJGBID, e.MasterDataSet["txtJGCIDS"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") { sJJ = sBJDHQCLCB; sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), iXSWS), e.MasterDataSet["cbxJGBID"].ToString().Trim(), e.MasterDataSet["txtJGCIDS"].ToString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID), iXSWS) * 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 && sHasCLQD.Equals("N")) { 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 (sHasCLQD.Equals("N") && (sCPLJGS == "3")) { double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sJGBJLDW, sBJU003); sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); } } } else//表价实时计算价格表 { Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.7"); //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 sTJ = "0"; string sLJ = "0"; if (e.MasterDataSet.ContainsKey("txtTJ")) sTJ = e.MasterDataSet["txtTJ"].Trim(); if (e.MasterDataSet.ContainsKey("txtLJ")) sLJ = e.MasterDataSet["txtLJ"].Trim(); bool bExistBJDHQ = false; if (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 { if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) bExistBJDHQ = true; } } Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID.Trim(), bjflxx.XLXSBJFL_LBJCLID.Trim(), sTJ, sLJ, e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), bExistBJDHQ, e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["cbxBJFLID"].Trim()); JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; sCLCB = dicJGE["CLCB"].ToString(); sCPJJ = sCLCB; sJJ = sCLCB; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); } else { sBJDHQCLCB = sCLCB; } DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); XLBJDUtils.GetdsJGBYZ_JGE(e.MasterDataSet["cbxJGBID"].Trim(), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID); Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.0.8"); 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()); dicXLJBXX_JGE.Add("TJ", e.MasterDataSet["txtTJ"].Trim()); dicXLJBXX_JGE.Add("LJ", e.MasterDataSet["txtLJ"].Trim()); dicXLJBXX_JGE.Add("JLDW", sJLDW); dicXLJBXX_JGE.Add("BJSL", e.RowData["XLXSBJDMX_BJSL"].ToString().Trim()); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(e.MasterDataSet["cbxJGBID"].Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.1"); string srs = XLBJDUtils.GetCJ(sBJRQ,dicXLJBXX_JGE, sCLCB, sBJDHQCLCB, e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].Trim() + "|0"); string sCJ = srs.Split(',')[0]; string sJJlist = srs.Split(',')[1]; e.ResultPairs.Add("XLXSBJDMX_CJ",sCJ); Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.2"); string[] strJJYZZ = sJJlist.ToString().Trim().Split('|'); for (int i = 1; i <= strJJYZZ.Length; i++) { dicJGBTZYZGS_JGE["JZ" + i.ToString().PadLeft(2, '0')] = strJJYZZ[i - 1]; Mac.MacLog.TraceFormat("strJJYZZ" + i.ToString() + ":" + strJJYZZ[i - 1]); } Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-4.3"); AddChangedField(dicChangedField, "UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].Trim() + "|0"); Dictionary dicJGBTJYZ = GetJGBBTYZ(e.MasterDataSet["cbxJGBID"].Trim());//因子值不为0的价格表因子 if (dicJGBTJYZ.Count > 0) { foreach (string sKey in dicJGBTJYZ.Keys) { if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == 0) { iJGBTJYZYC = -1; break; } } } Dictionary dicJGBFGQCPYZ = GetJGBFGQCPYZ(e.MasterDataSet["cbxJGBID"].Trim());//覆盖全产品的价格表因子 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), iXSWS).ToString().Trim(); string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), 5).ToString().Trim(); double dZBZ = CMISproConvert.StrToFloat(sTempCLCB); 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 { sJSGS = XLBJDUtils.GetJGBJSGS(e.MasterDataSet["cbxJGBID"].Trim()); for (int i = 1; i <= strJJYZZ.Length; i++) { sJSGS = sJSGS.Replace("JZ" + i.ToString().PadLeft(2, '0'), strJJYZZ[i - 1]); } sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); Mac.MacLog.TraceFormat("sTmpGS:" + sTmpGS); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } Dictionary dicJDYZXS = new Dictionary(); for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) { string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); else dicJDYZXS.Add(sYZID, 1); } for (int i = 1; i <= 20; i++) { string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) { double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); Mac.MacLog.TraceFormat("dicJGBTZYZGS_JGE" + i.ToString() + ":" + sYZZ.ToString()); } } e.ResultPairs.Add("UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].ToString().Trim() + "|0"); AddChangedField(dicChangedField, "UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].ToString().Trim() + "|0"); } else { e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|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); double dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); double 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, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); } else { dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); 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; e.ResultPairs.Add("XLXSBJDMX_JGBBJ", dCPJJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_JGBBJTZ", "N"); e.ResultPairs.Add("XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBJJ", dJJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCB", dCLCB.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCBTZ", "N"); e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", sWGCPBZ); e.ResultPairs.Add("XLXSBJDMX_JGFBZ", sJGFBZ); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBJJ", dJJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCB", dCLCB.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCBTZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_WGCPBZ", sWGCPBZ); AddChangedField(dicChangedField, "XLXSBJDMX_JGFBZ", sJGFBZ); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) {//研发自测:王威2025/5/21 15:45:29 double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } e.ResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); } else { e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", "0"); } #region 报价单因子的作用过程 //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); //如果外购产品标志变了,则需要重新获取调价因素为空的调价因子值 Dictionary dicYZZ_ = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",空,")) { if (!sOldWGCPBZ.Equals(sWGCPBZ) || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZ_ = XLBJDUtils.GetBJDYZZ0(e.MasterDataSet["cbxBJFLID"].Trim(), sWGCPBZ.Equals("Y"), true, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ_.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); if (dicValueContained(dicTYZZYZID,sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ_[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ_[sYZID]; } } } } Dictionary dicYZZ1 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",1,")) { if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZ1 = XLBJDUtils.GetBJDYZZ1(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxPJLX"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ1.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ1[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ1[sYZID]; } } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",2,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(e.MasterDataSet["cbxBJFLID"].Trim(), sDYDJID, dTmpBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ2.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ2[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ2[sYZID]; } } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",3,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ3.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ3[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ3[sYZID]; } } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",E,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || changeDYDJ) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID,sXLXHID); dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZE.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZE[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZE[sYZID]; } } } } } Dictionary dicYZZG = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",G,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || changeDYDJ) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZG.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZG[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZG[sYZID]; } } } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“F|电压等级&芯线结构&报价数量区间加价/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",F,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || changeDYDJ) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZF[sYZID]; } } } } } Dictionary dicYZZH = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZH.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; } } } } } Dictionary dicYZZK = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",K,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZK.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZK[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZK[sYZID]; } } } } } //如果线缆型号变了,则需要重新获取按“4|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",4,")) { if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ4.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ4[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ4[sYZID]; } } } } //型号,规格,标准,电压等级都会引起调价因素为5的因子值变化 Dictionary dicYZZ5 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",5,") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { //解析主芯截面 string fZXJM = XLBJDUtils.GetZXJMByXLGGID(sXLGGID, sXLXHID); dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ5.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ5[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ5[sYZID]; } } } //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 //重新获取按“6|报价数量区间调价米数/报价数量”的报价因子值 Dictionary dicYZZ6 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",6,")) { if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ6.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ6[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ6[sYZID]; } } } } //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 Dictionary dicYZZ7 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",7,")) { if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ7.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ7[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ7[sYZID]; } } } } Dictionary dicYZZ8 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",8,")) { if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZ8 = XLBJDUtils.GetBJDYZZ8(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxFKQXNR"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ8.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ8[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ8[sYZID]; } } } } //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 Dictionary dicYZZ9 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZ9.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ9[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ9[sYZID]; } } } //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 Dictionary dicYZZA = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZA.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); if (sXSJEYZ.Contains(sYZID)) { if (XLBJDUtils.GetYZXXByYZID(sYZID.Trim()).XLXSTZYZ_JJFS == "JJ") e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dicYZZA[sYZID] * dBJSL, 2).ToString().Trim()); else e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * dicYZZA[sYZID] / 100.00 * dBJSL, 2).ToString().Trim()); } AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZA[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZA[sYZID]; } } } Dictionary dicYZZBZPF = new Dictionary(); //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID); foreach (string sYZID in dicYZZBZPF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZBZPF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZBZPF[sYZID]; } } } Dictionary dicYZZCPWJPF = new Dictionary(); //产品外径盘费 string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sCPWJPFYZID.Equals("")) { sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); foreach (string sYZID in dicYZZCPWJPF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZCPWJPF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZCPWJPF[sYZID]; } } } Dictionary dicYZZYF = new Dictionary(); //运费 string sYFYZID = XLBJDUtils.GetBJFLSYYFYZID(sBJFLID); if (!sYFYZID.Equals("")) { string sXZQH = string.Empty; if (!e.MasterDataSet["cbxKHSZDCITY"].Trim().Equals("")) { sXZQH = e.MasterDataSet["cbxKHSZDCITY"].Trim(); } else if (!e.MasterDataSet["cbxKHSZDPRO"].Trim().Equals("")) { sXZQH = e.MasterDataSet["cbxKHSZDPRO"].Trim(); } else { sXZQH = ""; } Mac.MacLog.TraceFormat("sYFYZID-1"); sYFYZID = sYFYZID.Split('|')[0]; dicYZZYF = XLBJDUtils.GetYFYZZ(sYFYZID, sXZQH, sXLXHID, CMISproConvert.StrToFloat(e.MasterDataSet["txtTJ"].Trim()), CMISproConvert.StrToFloat(e.MasterDataSet["txtLJ"].Trim())); Mac.MacLog.TraceFormat("sYFYZID-2"); foreach (string sYZID in dicYZZYF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZYF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZYF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZYF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZYF[sYZID]; } } } Dictionary dicYZZB = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",B,")) { if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { dicYZZB = XLBJDUtils.GetBJDYZZB(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxSYDWID"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZB.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZB[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZB[sYZID]; } } } } //获取调价因素为“C|产品目录&主芯截面范围&产品特性”的报价因子值 Dictionary dicYZZC = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",C,")) { if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZC = XLBJDUtils.GetBJDYZZC(e.MasterDataSet["txtBJDID"].Trim(), sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID); foreach (string sYZID in dicYZZC.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZC[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZC[sYZID]; } } } } Dictionary dicYZZD = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); foreach (string sYZID in dicYZZD.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZD[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZD[sYZID]; } } } double dCPBJ = 0.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 { if (dCPJJ != 0) { //除了dicYZZ_、dicYZZ2、dicYZZ3、dicYZZE、dicYZZF、dicYZZ4、dicYZZ5、dicYZZ6、dicYZZ7,dicYZZ9,dicYZZA,dicYZZC,dicYZZBZPF,dicYZZCPWJPF 将剩余的因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZ8.ContainsKey(sFieldName.Substring(5)) && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ4.ContainsKey(sFieldName.Substring(5)) && !dicYZZ5.ContainsKey(sFieldName.Substring(5)) && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZ7.ContainsKey(sFieldName.Substring(5)) && !dicYZZD.ContainsKey(sFieldName.Substring(5)) && !dicYZZ9.ContainsKey(sFieldName.Substring(5)) && !dicYZZA.ContainsKey(sFieldName.Substring(5)) && !dicYZZBZPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZYF.ContainsKey(sFieldName.Substring(5)) && !dicYZZB.ContainsKey(sFieldName.Substring(5)) && !dicYZZC.ContainsKey(sFieldName.Substring(5)) && !dicYZZ_.ContainsKey(sFieldName.Substring(5)) && !dicYZZ1.ContainsKey(sFieldName.Substring(5)) && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) && !dicYZZK.ContainsKey(sFieldName.Substring(5)) ) { if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //下面构建调价格类型因子的值 foreach (string sYZID in dicYZZ_.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ_[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ2.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ2[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ3.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ3[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZE.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZE[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZG.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZG[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZH.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZH[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZK.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZK[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ4.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ4[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ5.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ5[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ6.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ6[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ7.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ7[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ9.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ9[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZA.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZA[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZBZPF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZBZPF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZCPWJPF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZCPWJPF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZYF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZYF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZC.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZC[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZD.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZD[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } //除了dicYZZ_、dicYZZ2、dicYZZ3、dicYZZE、dicYZZF、dicYZZ4、dicYZZ5、dicYZZ6、 dicYZZ7,dicYZZ9,dicYZZA,dicYZZBZPF,dicYZZCPWJPF,dicYZZC 将剩余的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ4.ContainsKey(sFieldName.Substring(5)) && !dicYZZ5.ContainsKey(sFieldName.Substring(5)) && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZ7.ContainsKey(sFieldName.Substring(5)) && !dicYZZ1.ContainsKey(sFieldName.Substring(5)) && !dicYZZ9.ContainsKey(sFieldName.Substring(5)) && !dicYZZA.ContainsKey(sFieldName.Substring(5)) && !dicYZZBZPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZYF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ8.ContainsKey(sFieldName.Substring(5)) && !dicYZZC.ContainsKey(sFieldName.Substring(5)) && !dicYZZ_.ContainsKey(sFieldName.Substring(5)) && !dicYZZB.ContainsKey(sFieldName.Substring(5)) && !dicYZZD.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) && !dicYZZK.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } dCPBJ = dCPJJ; double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #endregion #region 必填因子校验 string sBTYZ = e.MasterDataSet["txtBTYZ"]; if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 DoAfterCalcCPBJ(e, bBJSDBZ, dCLCB, dBJDHQCLCB, dCPJJ, dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); } #endregion Mac.MacLog.TraceFormat("grdXLBJDMX_CalculateField-5"); #region 颜色 //如果线缆颜色变了,则需要重新获取按“D|颜色”设置的调价因子值 if (e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim(); Dictionary dicYZZD = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); } Dictionary dicYZZH = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZH = XLBJDUtils.GetBJDYZZH(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); foreach (string sYZID in dicYZZD.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZD[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZD[sYZID]; } } foreach (string sYZID in dicYZZH.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; } } if (dicYZZD.Count > 0 || dicYZZH.Count > 0) { #region 因子作用过程 double dCPBJ = 0.0; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 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 (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0) { //除了dicYZZD,将剩余的因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZD.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5))) { if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //下面构建调价格类型因子的值 foreach (string sYZID in dicYZZD.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZD[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZH.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZH[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } //除了dicYZZD,将剩余的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZD.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicYZZD.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZD[sFieldName.Substring(5)]; else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZH[sFieldName.Substring(5)]; else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 #endregion #region 必填因子校验 string sBTYZ = e.MasterDataSet["txtBTYZ"]; if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion DoAfterCalcCPBJ(e, bBJSDBZ, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()), dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); } } #endregion #region 报价数量-报价 if (e.EventFieldName.Equals("XLXSBJDMX_CPBJ")) { if (e.EventFieldName.Equals("XLXSBJDMX_BJSL")) { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim(); string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); //如果报价数量变了,则需要重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",2,")) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(e.MasterDataSet["cbxBJFLID"].Trim(), sDYDJID, dTmpBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); } //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",3,")) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } //重新按“6|报价数量区间调价米数/报价数量”设置的调价因子值 Dictionary dicYZZ6 = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",6,")) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } //重新按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",E,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZE = XLBJDUtils.GetBJDYZZE(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); } Dictionary dicYZZG = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",G,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZG = XLBJDUtils.GetBJDYZZG(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } //重新按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",F,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZF = XLBJDUtils.GetBJDYZZF(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } Dictionary dicYZZH = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); dicYZZH = XLBJDUtils.GetBJDYZZH(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); } Dictionary dicYZZK = new Dictionary(); if (e.MasterDataSet["txtTJYSList"].Contains(",K,")) { dicYZZK = XLBJDUtils.GetBJDYZZK(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); } Dictionary dicYZZCPWJPF = new Dictionary(); //产品外径盘费 string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sCPWJPFYZID.Equals("")) { sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); foreach (string sYZID in dicYZZCPWJPF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZCPWJPF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZCPWJPF[sYZID]; } } } Dictionary dicYZZYF = new Dictionary(); //运费 string sYFYZID = XLBJDUtils.GetBJFLSYYFYZID(sBJFLID); if (!sYFYZID.Equals("")) { sYFYZID = sYFYZID.Split('|')[0]; string sXZQH = string.Empty; if (!e.MasterDataSet["cbxKHSZDCITY"].Trim().Equals("")) { sXZQH = e.MasterDataSet["cbxKHSZDCITY"].Trim(); } else if (!e.MasterDataSet["cbxKHSZDPRO"].Trim().Equals("")) { sXZQH = e.MasterDataSet["cbxKHSZDPRO"].Trim(); } else { sXZQH = ""; } dicYZZYF = XLBJDUtils.GetYFYZZ(sYFYZID, sXZQH, sXLXHID, CMISproConvert.StrToFloat(e.MasterDataSet["txtTJ"].Trim()), CMISproConvert.StrToFloat(e.MasterDataSet["txtLJ"].Trim())); foreach (string sYZID in dicYZZYF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZYF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZYF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZYF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZYF[sYZID]; } } } foreach (string sYZID in dicYZZ2.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ2[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ2[sYZID]; } } foreach (string sYZID in dicYZZ3.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ3[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ3[sYZID]; } } foreach (string sYZID in dicYZZ6.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZ6[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZ6[sYZID]; } } foreach (string sYZID in dicYZZE.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZE[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZE[sYZID]; } } foreach (string sYZID in dicYZZG.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZG[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZG[sYZID]; } } foreach (string sYZID in dicYZZF.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZF[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZF[sYZID]; } } foreach (string sYZID in dicYZZH.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; } } foreach (string sYZID in dicYZZK.Keys) { e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); if (dicValueContained(dicTYZZYZID, sYZID)) { if (!dicTYZZYZIDValue.ContainsKey(sYZID)) dicTYZZYZIDValue.Add(sYZID, dicYZZK[sYZID]); else dicTYZZYZIDValue[sYZID] += dicYZZK[sYZID]; } } if (!sXSJEYZ.Equals("")) { foreach (string sXSJEYZID in sXSJEYZ.Split(',')) { if (XLBJDUtils.GetYZXXByYZID(sXSJEYZID.Trim()).XLXSTZYZ_JJFS == "JJ") e.ResultPairs.Add("TZYZJE_" + sXSJEYZID, NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["TZYZ_" + sXSJEYZID].ToString().Trim()) * dBJSL, 2).ToString().Trim()); else e.ResultPairs.Add("TZYZJE_" + sXSJEYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * CMISproConvert.StrToFloat(e.RowData["TZYZ_" + sXSJEYZID].ToString().Trim()) / 100.0 * dBJSL, 2).ToString().Trim()); } } //报价数量变动影响调价因子,需要重算报价 if (dicYZZ2.Count > 0 || dicYZZ3.Count > 0 || dicYZZ6.Count > 0 || dicYZZE.Count > 0 || dicYZZG.Count > 0 || dicYZZF.Count > 0 || dicYZZH.Count > 0 || dicYZZK.Count > 0 || dicYZZCPWJPF.Count > 0) { #region 因子作用过程 double dCPBJ = 0.0; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 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 (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0) { //除了dicYZZ2、dicYZZ3、dicYZZ6、dicYZZE、dicYZZF,将剩余的因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) && !dicYZZK.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //下面构建调价格类型因子的值 foreach (string sYZID in dicYZZ2.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ2[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ3.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ3[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZ6.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZ6[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZE.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZE[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZG.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZG[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZH.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZH[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZK.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZK[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } foreach (string sYZID in dicYZZCPWJPF.Keys) { string tmpTJYZID = dicTJYZID[sYZID]; double tmpYZZ = dicYZZCPWJPF[sYZID]; string tmpTYZZYZID = dicTYZZYZID[sYZID]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } //除了dicYZZ2、dicYZZ3、dicYZZ6、dicYZZE、dicYZZF,将剩余的因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) && !dicYZZK.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZ2[sFieldName.Substring(5)]; else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZ3[sFieldName.Substring(5)]; else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZ6[sFieldName.Substring(5)]; else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZE[sFieldName.Substring(5)]; else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZG[sFieldName.Substring(5)]; else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZF[sFieldName.Substring(5)]; else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZH[sFieldName.Substring(5)]; else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZK[sFieldName.Substring(5)]; else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicYZZCPWJPF[sFieldName.Substring(5)]; else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 #endregion #region 必填因子校验 string sBTYZ = e.MasterDataSet["txtBTYZ"]; if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion DoAfterCalcCPBJ(e, bBJSDBZ, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()), dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); } else //报价数量变动没有影响到调价因子,则不需要重算报价 { double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0), 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); } } 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_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); 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_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) { string sCKXLXHID = string.Empty; string sCKXLGGID = string.Empty; string sCKXLBZID = string.Empty; string sCKDYDJID = string.Empty; bool isHBWCP=GetCKCPXX(e.MasterDataSet["txtBJDID"].Trim(), e.RowData["XLXSBJDMX_XH"].ToString().Trim(), ref sCKXLXHID, ref sCKXLGGID,ref sCKXLBZID,ref sCKDYDJID); double fCLZL = 0; if(isHBWCP) fCLZL = XLBJDUtils.GetCLZL(sCKXLXHID, sCKXLGGID, sCKXLBZID, sCKDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); else fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); double dBJU003_BJD_JLDWHSBL = 1; if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); fCLZL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJU003_BJD_JLDWHSBL; } else { dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); fCLZL = fCLZL * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; } e.ResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); } else { e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", "0"); } } else //报价发生变化,反算调整报价(%) { double dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); if (!sFSYZ.Equals("")) { #region 报价手动调整反算因子值 string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (sTZQCPBJGS.Equals(""))//使用公式计算报价的情况,由于公式的不确定性无法反算因子值 { string sFSYZTJFS = ""; string sFSYZCLM = ""; Dictionary dicTJYZIDValue_QT = new Dictionary(); #region 获取当前因子值 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 < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) { dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); } else { dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //将因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; double tmpYZZ = 0; tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } if (sFSYZ.Equals(sFieldName.Substring(5))) { sFSYZTJFS = tmpTJYZID; } else { if (!dicTJYZIDValue_QT.ContainsKey(tmpTJYZID)) { dicTJYZIDValue_QT.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue_QT[tmpTJYZID] += tmpYZZ; } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } #endregion double dJGBBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dTempBJ = 0; double dFSYZZ = 0; bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); bool FSYZJJ=false;//反算因子类型 bool bYZZYC = false;//因子值异常,计算出现除0,则不反算 double dTZYZ_JJ = 0; double dQTYZ_JJ = 0;//除反算因子外的加价因子值 for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; if (!sFSYZ.Equals(sFieldName.Substring(5))) { dQTYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (sFSYZ.Equals(sFieldName.Substring(5))) FSYZJJ = true;//反算因子值计算方式为加价 } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { if (FSYZJJ) { #region 先加价--反算因子加价 dTempBJ = dCPBJ; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].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); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } dFSYZZ = dTempBJ - dJGBBJ - dQTYZ_JJ; #endregion } else { #region 先加价--反算因子非加价 dTempBJ = dCPBJ; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } if (sFSYZTJFS.Equals(sFieldName.Substring(5))) { sFSYZCLM = sColName; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } double JJ = dJGBBJ + dTZYZ_JJ; double TZHYZZ = 0; if (JJ == 0 || dTempBJ == 0) { bYZZYC = true; } else { if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (1 - JJ / dTempBJ) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (JJ / dTempBJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) TZHYZZ = (dTempBJ / JJ) * 100; } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); TZHYZZ = (dTempBJ / JJ); } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); TZHYZZ = (JJ / dTempBJ); } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { if (dicTJYZIDValue[sFSYZTJFS] >= 0) { //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (1 - JJ / dTempBJ) * 100; } else { //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } } } } if (dicTJYZIDValue_QT.ContainsKey(sFSYZTJFS)) { dFSYZZ = TZHYZZ - dicTJYZIDValue_QT[sFSYZTJFS]; } else { dFSYZZ = TZHYZZ; } #endregion } } else { if (FSYZJJ) { #region 后加价--反算因子加价 dTempBJ = dJGBBJ; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); else dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } dFSYZZ = dCPBJ - dTempBJ - dQTYZ_JJ; #endregion } else { #region 后加价--反算因子非加价 dTempBJ = dCPBJ - dTZYZ_JJ; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else bYZZYC = true; } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } if (sFSYZTJFS.Equals(sFieldName.Substring(5))) { sFSYZCLM = sColName; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } double JJ = dJGBBJ; double TZHYZZ = 0; if (JJ == 0 || dTempBJ == 0) { bYZZYC = true; } else { if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (1 - JJ / dTempBJ) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (JJ / dTempBJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) TZHYZZ = (dTempBJ / JJ) * 100; } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); TZHYZZ = (dTempBJ / JJ); } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); TZHYZZ = (JJ / dTempBJ); } } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) { if (dicTJYZIDValue[sFSYZTJFS] >= 0) { //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (1 - JJ / dTempBJ) * 100; } else { //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); TZHYZZ = (dTempBJ / JJ - 1) * 100; } } } } if (dicTJYZIDValue_QT.ContainsKey(sFSYZTJFS)) { dFSYZZ = TZHYZZ - dicTJYZIDValue_QT[sFSYZTJFS]; } else { dFSYZZ = TZHYZZ; } #endregion } } if (!bYZZYC) { dFSYZZ = NumberUtils.RoundX(dFSYZZ, 2); e.ResultPairs.Add("TZYZ_" + sFSYZ, dFSYZZ.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sFSYZ, dFSYZZ.ToString()); } } #endregion e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); } else { //不需要反算因子值时,才更新调整报价 double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); } double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); } } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "SSBJ"); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); 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_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "SSBJ"); } } #endregion #region 产品报价限价 if(e.EventFieldName.Equals("XLXSBJDMX_CPBJXJ")) { double dCPBJXJ=CMISproConvert.StrToFloat(e.EventFieldValue.Trim(),0); double dCPBJ = 0; double dTZJG = 0; if (!bBJSDBZ) { //这里程序做了制约:不变调整金额,变调整报价(%) double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].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); dCPBJ = XLBJDUtils.RoundSZ(dTZQCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); if (dBJSL != 0) { double dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().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()); if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; //重算料价价差率 double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } 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_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); 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_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "BJXJ"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "BJXJ"); } else//报价锁定=Y { dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); } double XJBJCE = dCPBJXJ - dCPBJ; e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); } #endregion #region 勾选外购产品时是否同步清空报价因子值 if (e.EventFieldName.Equals("XLXSBJDMX_WGCPBZ")) { e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_WGCPBZ", e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim()); if (sBJU060.Equals("Y") && e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y")) { for (int i = 1; i <= 20; i++) { string fieldName = "TZYZ_BJ" + i.ToString("00"); e.ResultPairs.Add(fieldName, "0"); AddChangedField(dicChangedField, fieldName, "0"); } IsTZTJYZ = true; sorYZZ01 = "0.0"; sorYZZ02 = "0.0"; sorYZZ03 = "0.0"; sorYZZ04 = "0.0"; sorYZZ05 = "0.0"; sorYZZ06 = "0.0"; sorYZZ07 = "0.0"; sorYZZ08 = "0.0"; sorYZZ09 = "0.0"; sorYZZ10 = "0.0"; sorYZZ11 = "0.0"; sorYZZ12 = "0.0"; sorYZZ13 = "0.0"; sorYZZ14 = "0.0"; sorYZZ15 = "0.0"; sorYZZ16 = "0.0"; sorYZZ17 = "0.0"; sorYZZ18 = "0.0"; sorYZZ19 = "0.0"; sorYZZ20 = "0.0"; } } #endregion #region 表价-因子-截面比公式 bool IsBCYTJYZ = false; if (e.EventFieldName.IndexOf("TZYZ_") != -1 || IsTZTJYZ) { string sYZID = e.EventFieldName.Replace("TZYZ_", ""); double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_BCYTJ == "Y") IsBCYTJYZ = true; if (sXSJEYZ.Contains(sYZID)) { if (XLBJDUtils.GetYZXXByYZID(sYZID.Trim()).XLXSTZYZ_JJFS == "JJ") e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) * dBJSL, 2).ToString().Trim()); else e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * CMISproConvert.StrToFloat(e.EventFieldValue) / 100.0 * dBJSL, 2).ToString().Trim()); } } if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ") || e.EventFieldName.Equals("XLXSBJDMX_LSJGBBJ") || (e.EventFieldName.IndexOf("TZYZ_") != -1 && !IsBCYTJYZ) || e.EventFieldName.Equals("XLXSBJDMX_JMBGS") || e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") || e.EventFieldName.Equals("XLXSBJDMX_ZDXJ") || IsTZTJYZ) { if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ")) { e.ResultPairs.Add("XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJTZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); } if (e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ")) { e.ResultPairs.Add("XLXSBJDMX_TZZDXJ",e.EventFieldValue.Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", e.EventFieldValue.Trim()); } string ReChangeYZID = "";//维护因子时,是否自动change为其最值 string ReChangYZZ = ""; string sMinYZZ = ""; string sMaxYZZ = ""; string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); #region 截面比公式 //截面比公式发生变化重新设置指定因子的值 if (e.EventFieldName.Equals("XLXSBJDMX_JMBGS")) { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); double dJGBGSResult = 0; gtExpression exp = new gtExpression(); try { dJGBGSResult = NumberUtils.RoundX(exp.Evaluate(e.EventFieldValue), 6); if (sJMBYZJJFS == "JD") dJGBGSResult = NumberUtils.RoundX((dJGBGSResult - 1) * 100,grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); if (sJMBYZJJFS == "MD") dJGBGSResult = NumberUtils.RoundX((1 - dJGBGSResult) * 100, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); if (sJMBYZJJFS == "MX") dJGBGSResult = NumberUtils.RoundX(dJGBGSResult, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); } catch { dJGBGSResult = 0; } e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, dJGBGSResult.ToString()); AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, dJGBGSResult.ToString()); ReChangeYZID = sJMBGSYZID; ReChangYZZ = dJGBGSResult.ToString(); double dHSBL = XLBJDUtils.GetHSBL(sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; sMinYZZ = XLBJDUtils.GetMinYZZ(sJMBGSYZID, dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZ(sJMBGSYZID, dHSBL);//因子最大值 if (XLBJDUtils.GetYZXXByYZID(sJMBGSYZID).XLXSTZYZ_TJYS == "B") { if (e.MasterDataSet.ContainsKey("cbxSYDWID")) { sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 } if (e.MasterDataSet.ContainsKey("cbxKHID")) { sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 } } if (!sMinYZZ.Equals(""))//若设置了最值 { //小于最小值按最小值计算 if (dJGBGSResult < CMISproConvert.StrToFloat(sMinYZZ, 0)) { e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, sMinYZZ); AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, sMinYZZ); ReChangeYZID = sJMBGSYZID; ReChangYZZ = sMinYZZ; } } if (!sMaxYZZ.Equals(""))//若设置了最值 { //大于最大值按最大值计算 if (dJGBGSResult > CMISproConvert.StrToFloat(sMaxYZZ, 0)) { e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, sMaxYZZ); AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, sMaxYZZ); ReChangeYZID = sJMBGSYZID; ReChangYZZ = sMaxYZZ; } } } //指定因子的值变化清空截面比公式 if (e.EventFieldName.Equals("TZYZ_" + sJMBGSYZID)) { e.ResultPairs.Add("XLXSBJDMX_JMBGS", ""); AddChangedField(dicChangedField, "XLXSBJDMX_JMBGS", ""); } #endregion if (e.EventFieldName.IndexOf("TZYZ_") != -1 || IsTZTJYZ) { string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); double dHSBL = XLBJDUtils.GetHSBL(sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; sMinYZZ = XLBJDUtils.GetMinYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 if (XLBJDUtils.GetYZXXByYZID(e.EventFieldName.Replace("TZYZ_", "")).XLXSTZYZ_TJYS == "B") { if (e.MasterDataSet.ContainsKey("cbxSYDWID")) { sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 } if (e.MasterDataSet.ContainsKey("cbxKHID")) { sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 } } 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 sTZQZDXJtmp = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); string stZDXJtmp = e.EventFieldValue.Trim(); double dZDXJ = CMISproConvert.StrToFloat(stZDXJtmp); double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJtmp); string stTZZDXJtmp = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); if (dTZQZDXJ != 0) stTZZDXJtmp = NumberUtils.RoundX((dZDXJ / dTZQZDXJ - 1) * 100, 15).ToString(); e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", stTZZDXJtmp); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", stTZZDXJtmp); e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJtmp); e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJtmp); AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJtmp); sorTZZDXJ = stTZZDXJtmp; } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZZDXJ != "Y" && !e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") && !e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", "0"); AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", "0"); sorTZZDXJ = "0"; } double dCPBJ = 0.0; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim())!=0) dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim(), 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 = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 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 (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0 || CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim()) != 0) { //获取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 < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (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); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //将因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); 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 = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (IsTZTJYZ) { string[] keys = new string[dicTJYZIDValue.Keys.Count]; dicTJYZIDValue.Keys.CopyTo(keys, 0); // 遍历临时数组,修改原字典 foreach (string key in keys) { dicTJYZIDValue[key] = 0; } } if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim()) != 0) dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim(), 0); else dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].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)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); } } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = e.MasterDataSet["txtBTYZ"]; if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 if (!bBJSDBZ && (!bjflxx.XLXSBJFL_TZBJBJBB.Equals("Y") || CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim()) == 0)) { //二次调价 e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); if (!e.EventFieldName.Equals("XLXSBJDMX_JGBBJ") && !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)); double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); } } e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ")) { e.ResultPairs.Add("XLXSBJDMX_BJLY ", "SSJGBBJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "SSJGBBJ"); } if (e.EventFieldName.IndexOf("TZYZ_") != -1 || e.EventFieldName.Equals("XLXSBJDMX_JMBGS")) { e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); 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_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.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_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } else//报价锁定=Y { e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); //报价锁定值 double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); double dTZJG = dCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dCPBJ) / dCPBJ); double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ_SD, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); } } dTZJG=NumberUtils.RoundX(dTZJG,15); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ_SD.ToString()); 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_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ_SD.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_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } } #endregion #region 调整报价(%) if (e.EventFieldName.Equals("XLXSBJDMX_TZCPBJ"))//若调整报价(%)发生变化,则要对报价进行二次调价 { if (!bBJSDBZ) { //二次调价 double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); double dCPBJ = XLBJDUtils.RoundSZ(dTZQCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); //if (!IsExist(e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(), e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(), e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(), e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim())) //{ // dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); // dBJDHQCLCB = dCLCB; // e.ResultPairs.Add("XLXSBJDMX_JGBJJ", dCLCB.ToString().Trim()); // e.ResultPairs.Add("XLXSBJDMX_CLCB", dCLCB.ToString().Trim()); // e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString().Trim()); //} double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE -dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); 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_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.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_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); } else//报价锁定=Y,应改不了调整报价(%) { double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); //报价锁定值 double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); double dTZJG = dTZQCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dTZQCPBJ) / dTZQCPBJ); dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); } } #endregion #region 调整报价金额 if (e.EventFieldName.Equals("XLXSBJDMX_TZBJJE")) { double dTZQBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQBJJE"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } #endregion #region 料价价差率 if (e.EventFieldName.Equals("XLXSBJDMX_CLCBJCL"))//料价价差率变化,重算报价金额、报价、调整报价(%) { if (!bBJSDBZ) { //仅报价单行情料价显示时显示按料价价差率算报价,更改料价价差率则标记按料价价差率算报价 if (bjflxx.XSBJDHQLJ()) { e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "Y"); } //这里程序做了制约:不变调整金额,变调整报价(%) double dCLCBLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } 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()); if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { e.ResultPairs.Add("XLXSBJDMX_BJLY", "JGBHQLJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBHQLJ"); } else { e.ResultPairs.Add("XLXSBJDMX_BJLY", "BJDHQLJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "BJDHQLJ"); } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "LJJCLTZ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "LJJCLTZ"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); 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("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); } } else//报价锁定=Y,应改不了料价价差率 { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dBJDHQLJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQLJ; if (dBJDHQLJ != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJDHQLJ, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); } } #endregion #region 表价价差率 if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJJCL"))//表价价差率变化,重算报价金额、报价、调整报价(%) { if (!bBJSDBZ) { //这里程序做了制约:不变调整金额,变调整报价(%) double dLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJJCL"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3"))//3|表价金额/调整后报价金额*100 { if (dLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (dLRL / 100), 2); dLRE = 0; } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); 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_BJTJCZ ", "BJJCLTZ"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); 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("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "BJJCLTZ"); } } else//报价锁定=Y,应改不了表价价差率 { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); } } #endregion #region 报价锁定、按料价价差率算报价 只能勾选其一 if (e.EventFieldName.Equals("XLXSBJDMX_BJSDBZ")) { if (e.RowData["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y")) { e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } } if (e.EventFieldName.Equals("XLXSBJDMX_CLCBJCLSDBZ")) { if (e.RowData["XLXSBJDMX_CLCBJCLSDBZ"].ToString().Trim().Equals("Y")) { e.ResultPairs.Add("XLXSBJDMX_BJSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJSDBZ", "N"); } } #endregion #region 最低限价、最低限价价差率 string stCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CLCB")) { stCLCB = dicChangedField["XLXSBJDMX_CLCB"]; isChanged = true; } else stCLCB = e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(); string stBJDHQCLCB = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJDHQCLCB")) { stBJDHQCLCB = dicChangedField["XLXSBJDMX_BJDHQCLCB"]; isChanged = true; } else stBJDHQCLCB = e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); string stJGBJJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBJJ")) { stJGBJJ = dicChangedField["XLXSBJDMX_JGBJJ"]; isChanged = true; } else stJGBJJ = e.RowData["XLXSBJDMX_JGBJJ"].ToString().Trim(); string stJGBBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JGBBJ")) { stJGBBJ = dicChangedField["XLXSBJDMX_JGBBJ"]; isChanged = true; } else stJGBBJ = e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(); string stCPBJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_CPBJ")) { stCPBJ = dicChangedField["XLXSBJDMX_CPBJ"]; isChanged = true; } else stCPBJ = e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(); string stYZZ01 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ01")) { stYZZ01 = dicChangedField["TZYZ_BJ01"]; isChanged = true; } else stYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); string stYZZ02 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ02")) { stYZZ02 = dicChangedField["TZYZ_BJ02"]; isChanged = true; } else stYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); string stYZZ03 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ03")) { stYZZ03 = dicChangedField["TZYZ_BJ03"]; isChanged = true; } else stYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); string stYZZ04 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ04")) { stYZZ04 = dicChangedField["TZYZ_BJ04"]; isChanged = true; } else stYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); string stYZZ05 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ05")) { stYZZ05 = dicChangedField["TZYZ_BJ05"]; isChanged = true; } else stYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); string stYZZ06 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ06")) { stYZZ06 = dicChangedField["TZYZ_BJ06"]; isChanged = true; } else stYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); string stYZZ07 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ07")) { stYZZ07 = dicChangedField["TZYZ_BJ07"]; isChanged = true; } else stYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); string stYZZ08 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ08")) { stYZZ08 = dicChangedField["TZYZ_BJ08"]; isChanged = true; } else stYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); string stYZZ09 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ09")) { stYZZ09 = dicChangedField["TZYZ_BJ09"]; isChanged = true; } else stYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); string stYZZ10 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ10")) { stYZZ10 = dicChangedField["TZYZ_BJ10"]; isChanged = true; } else stYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); string stYZZ11 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ11")) { stYZZ11 = dicChangedField["TZYZ_BJ11"]; isChanged = true; } else stYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); string stYZZ12 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ12")) { stYZZ12 = dicChangedField["TZYZ_BJ12"]; isChanged = true; } else stYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); string stYZZ13 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ13")) { stYZZ13 = dicChangedField["TZYZ_BJ13"]; isChanged = true; } else stYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); string stYZZ14 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ14")) { stYZZ14 = dicChangedField["TZYZ_BJ14"]; isChanged = true; } else stYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); string stYZZ15 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ15")) { stYZZ15 = dicChangedField["TZYZ_BJ15"]; isChanged = true; } else stYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); string stYZZ16 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ16")) { stYZZ16 = dicChangedField["TZYZ_BJ16"]; isChanged = true; } else stYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); string stYZZ17 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ17")) { stYZZ17 = dicChangedField["TZYZ_BJ17"]; isChanged = true; } else stYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); string stYZZ18 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ18")) { stYZZ18 = dicChangedField["TZYZ_BJ18"]; isChanged = true; } else stYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); string stYZZ19 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ19")) { stYZZ19 = dicChangedField["TZYZ_BJ19"]; isChanged = true; } else stYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); string stYZZ20 = ""; if (dicChangedField.ContainsKey("TZYZ_BJ20")) { stYZZ20 = dicChangedField["TZYZ_BJ20"]; isChanged = true; } else stYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); string stZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_ZDXJ")) { stZDXJ = dicChangedField["XLXSBJDMX_ZDXJ"]; isChanged = true; } else stZDXJ = e.RowData["XLXSBJDMX_ZDXJ"].ToString().Trim(); string sJSJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_JSJG")) { sJSJ = dicChangedField["XLXSBJDMX_JSJG"]; isChanged = true; } else sJSJ = e.RowData["XLXSBJDMX_JSJG"].ToString().Trim(); string stBJSL = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJSL")) { stBJSL = dicChangedField["XLXSBJDMX_BJSL"]; isChanged = true; } else stBJSL = e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(); string stBJJE = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_BJJE")) { stBJJE = dicChangedField["XLXSBJDMX_BJJE"]; isChanged = true; } else stBJJE = e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(); string stYXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_YXJG")) { stYXJ = dicChangedField["XLXSBJDMX_YXJG"]; isChanged = true; } else stYXJ = e.RowData["XLXSBJDMX_YXJG"].ToString().Trim(); string stTZZDXJ = ""; if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) { stTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; isChanged = true; } else stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); string sUpdJJYZList = ""; if (dicChangedField.ContainsKey("UpdJJYZList")) sUpdJJYZList = dicChangedField["UpdJJYZList"]; else sUpdJJYZList = e.RowData["UpdJJYZList"].ToString().Trim(); if (isChanged) { if (sUpdJJYZList.Equals("")) sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"; if (!e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) { double dTZQZDXJ = CMISproConvert.StrToFloat(stZDXJ); string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); 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, e.MasterDataSet["cbxBJFLID"].Trim(), 8, e.RowData["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).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, e.MasterDataSet["cbxBJFLID"].Trim(), 8, sUpdJJYZList); string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, stBJJE); e.ResultPairs.Add("XLXSBJDMX_JSJG", sJSJ); e.ResultPairs.Add("XLXSBJDMX_JSJJE", stJSJJE); e.ResultPairs.Add("XLXSBJDMX_JSJJCL", stJSJJCL); string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX.Trim(), stZDXJ, stBJSL, stBJJE, stBJDHQCLCB, stJGBBJ); string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); string stZDXJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(stZDXJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); e.ResultPairs.Add("XLXSBJDMX_YXJJCL", stYXJJCL); e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", stZDXJJCL); e.ResultPairs.Add("XLXSBJDMX_ZDXJJE", stZDXJJE); } #endregion #region 型号-规格-标准-电压等级-计量单位-报价数量 if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || e.EventFieldName.Equals("XLXSBJDMX_BJSL")) { if (!e.MasterDataSet["txtPFYZID"].Trim().Equals("")) { e.ResultPairs.Add("TZYZ_" + e.MasterDataSet["txtPFYZID"].Trim(), "0"); AddChangedField(dicChangedField, "TZYZ_" + e.MasterDataSet["txtPFYZID"].Trim(), "0"); } e.ResultPairs.Add("PFYSQKBZ", "Y"); AddChangedField(dicChangedField, "PFYSQKBZ", "Y"); } #endregion #region 报价单行情料价 if (e.EventFieldName.Equals("XLXSBJDMX_BJDHQCLCB")) { double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (e.RowData["XLXSBJDMX_CLCBJCLSDBZ"].ToString().Trim().Equals("Y") && (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2") || bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3") || bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4"))) { if (!bBJSDBZ) { //这里程序做了制约:不变调整金额,变调整报价(%) double dCLCBLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 { if (dCLCBLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100 { dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4"))//4|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 { 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 (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { 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 (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * dBJSL; double dtmpCPJE = dCPJJ * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } 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()); if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { e.ResultPairs.Add("XLXSBJDMX_BJLY", "JGBHQLJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBHQLJ"); } else { e.ResultPairs.Add("XLXSBJDMX_BJLY", "BJDHQLJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "BJDHQLJ"); } dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "LJJCLTZ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "LJJCLTZ"); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); 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("F6")); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); } } else//报价锁定=Y,应改不了料价价差率 { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dBJDHQLJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dCLCBLRE = dBJJE - dBJDHQLJ; if (dBJDHQLJ != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJDHQLJ, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); } } else { if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRL = 0.0; double dCLCBLRE = dBJJE - 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()); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRL = 0.0; double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); double dCLCBLRL = 0.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 dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); } e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); } e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCBTZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCBTZ", "Y"); AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB ", dBJDHQCLCB.ToString()); } #endregion } private string GetXLGGDW(string sXLXHID, string sXLGGID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLGGB_XLGGDW from XLGGB where XLGGB_XLGGID=:pXLGGID and XLGGB_XLGGJDGZ=(select XLXHB_XLGGJDGZ from XLXHB where XLXHB_XLXHID=:pXLXHID)"); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID.Replace("*","×"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } return ""; } private void DoAfterCalcCPBJ(CalculateFieldEventArgs e, bool bBJSDBZ, double dCLCB, double dBJDHQCLCB, double dCPJJ, double dCPBJ, double dBJSL, string sCPBJMRXSWS, ref Dictionary dicChangedField) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); if (!bBJSDBZ) { //二次调价 e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE -dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJDHQCLCB)) / dCPJE * 100,2); } } double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_BJLY ", "JGBBJ"); e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.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()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBBJ"); AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); } else//报价锁定=Y { e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); //报价锁定值 double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); double dTZJG = dCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dCPBJ) / dCPBJ); double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ_SD, 2); double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) dtmpLRE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dtmpCPJE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) { double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJDHQCLCB)) / dCPJE * 100,2); } } dTZJG = NumberUtils.RoundX(dTZJG, 15); e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ_SD.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ_SD.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()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); } } #region 主表客户,项目,详细地址加载 private void LoadUserandGroup() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); StringBuilder sUsers = new StringBuilder(); try { TSQL sql = new TSQL(dberp); DataSet ds; string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; if (sKHJSLY.Equals("")) { sql.Clear(); sql.Add(" select distinct XLXSBJD_KH from XLXSBJD "); sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); sql.Add(" order by XLXSBJD_KH"); ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim().Equals("")) { sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim()).ToUpper() + "$" + "$,"); } } } else if (sKHJSLY.Equals("KH") || sKHJSLY.Equals("KHXX")) { txtKH.AutoPostBack = true; } //其他情况使用代码助手加载 } catch { ShowMessage("打开数据集出错,请和系统管理员联系!"); return; } finally { hidKH.Text = sUsers.ToString().Trim(); } } private void LoadXMGroup() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); StringBuilder sUsers = new StringBuilder(); try { TSQL sql = new TSQL(dberp); DataSet ds; string sXMJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMJSLY)) sXMJSLY = pzxx.XLXSBJPZ_XMJSLY; //如果项目来源为空则需要动态检索框 if (sXMJSLY.Equals("")) { sql.Clear(); sql.Add(" select distinct XLXSBJD_KH,XLXSBJD_XMMC from XLXSBJD "); sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); sql.Add(" order by XLXSBJD_KH,XLXSBJD_XMMC"); ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim()).ToUpper() + "##" + ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "$" + "$,"); } } //其他情况使用代码助手加载 } catch { ShowMessage("打开数据集出错,请和系统管理员联系!"); return; } finally { hidXM.Text = sUsers.ToString().Trim(); } } private void LoadYZGroup() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); StringBuilder sUsers = new StringBuilder(); try { TSQL sql = new TSQL(dberp); DataSet ds; sql.Add(" select distinct XLXSBJD_XMMC,XLXSBJD_XXDZ from XLXSBJD "); sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); sql.Add(" order by XLXSBJD_XMMC,XLXSBJD_XXDZ"); ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_XXDZ"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_XXDZ"].ToString().Trim()).ToUpper() + "##" + ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim() + "$" + "$,"); } } catch { ShowMessage("打开数据集出错,请和系统管理员联系!"); return; } finally { hidYZ.Text = sUsers.ToString().Trim(); } } #endregion protected void btnRefreshDRBJDMX_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); //根据报价分类计算最低限价 XLBJDUtils.UpdateZDXJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU002")); XLBJDUtils.UpdateJSJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU002")); entity.BJDID = txtBJDID.Text.Trim(); //分页模式下,传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.DataBind(); grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; if (grdXLBJDMX.RowCount <= 0) { btnBJLR.Enabled = false; btnCLCB.Enabled = false; } else { btnBJLR.Enabled = true; btnCLCB.Enabled = true; } btnAGXJLUHZ.Enabled = btnBJLR.Enabled; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); UpdateXLXSBJD(dberp, SQL, bjflxx, false); #region 价差界面整单合计字段 if (!string.IsNullOrEmpty(txtBJDID.Text.Trim()) && CheckModule("100860008") && ControlState == TControlState.ctsBrowse) { LoadHJXX(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sHidJSLMList); } #endregion XLBJDUtils.UpdateXLXSBJDJCXJ4(dberp, SQL, txtBJDID.Text.Trim()); MenuAreaUpdate(); FormAreaUpdate(); } #region 表价按钮 protected void btnCLCB_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (CheckCLCB()) { bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); if (!XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) { TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLBJD_CLCBInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 pageParams.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); OpenModuleDialog(100860010, pageParams); } else//表价实时计算价格表 { DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); if (dsJGBYZ.Tables[0].Rows.Count > 0 && sJGBTJYSS.Equals("1")) { TPageParams tpp = new TPageParams(); tpp.CallAction = TPageCallAction.pcaBrowse; tpp.UrlPath = "XLBJD_CLCBInfo.aspx"; tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("BJRQ", datBJRQ.Text.Trim()); tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); tpp.AddString("TJ", txtTJ.Value.ToString()); tpp.AddString("LJ", txtLJ.Value.ToString()); tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); tpp.AddString("BJLY", txtBJLY.Text.Trim()); tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) OpenModuleDialog(100860010, tpp, btnRefreshCLHQTZ.ClientID); else OpenModuleDialog(100860010, tpp); } else { if (grdXLBJDMX.SelectedIndex < 0) { ShowMessage("请选择一报价产品!"); return; } string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.SelectedIndex).Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.SelectedIndex).Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.SelectedIndex).Trim().Split('|')[0].Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.SelectedIndex).Trim(); string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); TPageParams tpp = new TPageParams(); if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) tpp.UrlPath = "XLBJD_JGECBZSList.aspx"; else tpp.UrlPath = "XLBJD_CBZSList.aspx"; tpp.Title = "表价追溯"; tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("XH", sXH); tpp.AddString("BJRQ", datBJRQ.Text.Trim()); tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); tpp.AddString("XLXHID", sXLXHID); tpp.AddString("XLGGID", sXLGGID); tpp.AddString("XLBZID", sXLBZID); tpp.AddString("DYDJID", sDYDJID); tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); tpp.AddString("TJ", txtTJ.Value.ToString()); tpp.AddString("LJ", txtLJ.Value.ToString()); tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); tpp.AddString("BJLY", txtBJLY.Text.Trim()); tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) OpenModuleDialog(100860044, tpp, btnRefreshCLHQTZ.ClientID); else OpenModuleDialog(100860044, tpp); } } } else { TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLBJD_FBJXQList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); OpenDialog(pageParams); } } protected void btnCLCB_DropDown(object sender, EventArgs e) { btnCLCB.Nodes.Clear(); bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); if (bEdit) { btnCLCB.Nodes.Add(new gtTreeNode("WGCPBJ", "外购产品")); btnCLCB.Nodes.Add(new gtTreeNode("WBJCPBJ", "导出无表价产品")); btnCLCB.Nodes.Add(new gtTreeNode("WLJCPBJ", "导出无料价产品")); btnCLCB.Nodes.Add(new gtTreeNode("WLJCPBJ-DR", "导入", "WLJCPBJ")); btnCLCB.Nodes.Add(new gtTreeNode("SCBJ", "删除表价")); } if (DSActiveModule.IsActiveModule(102585016)) //是否注册102585016|参考其他产品工艺加点调价 btnCLCB.Nodes.Add(new gtTreeNode("GYJDCP", "工艺加点产品")); MenuAreaUpdate(); } //价格表行情料价调整 protected void btnCLCB_MenuItemClick(object sender, string value) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { txtPLSZAll.Value = "Y"; } else txtPLSZAll.Value = "N"; TPageParams pageParams = new TPageParams(); switch (value) { case "WGCPBJ": HandleCLCBPageParams("Y"); break; case "WBJCPBJ": HandleCLCBPageParams("N"); break; case "WLJCPBJ": DCWLJCP(txtBJDID.Text.Trim()); break; case "WLJCPBJ-DR": DRWLJCP(txtBJDID.Text.Trim(),cbxBJFLID.SelectedValue.Trim()); break; case "SCBJ": string sBJDXHList = ""; string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("txtBJSLCID", txtBJSL.ClientID); pageParams.Title = "批量删除表价"; pageParams.AddString("TZBZ", "SCBJ"); pageParams.AddString("JGBBJXSWS", grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace.ToString()); pageParams.AddString("TZJGBBJ", bjflxx.XLXSBJFL_TZJGBBJ); pageParams.AddString("sBJDXHList", sBJDXHList); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("txtJGBBJTZCID", txtJGBBJTZ.ClientID); pageParams.AddString("btnRefreshJGBBJSC", btnRefreshJGBBJSC.ClientID); OpenDialog(pageParams); break; case "GYJDCP": pageParams.UrlPath = "../Components/N_XLBJDTJ/GYCPJDList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); if (bEdit) pageParams.AddString("CanEdit", "Y"); else pageParams.AddString("CanEdit", "N"); OpenModuleDialog(102585016,pageParams, btnRefreshCLHQTZ.ClientID); break; } } #region 导出导入无料价产品 private void DCWLJCP(string sBJDID) { string sFileName = sBJDID+"无料价产品报价.xls"; string m_tmpFilePath = FileService.CombineTempPath(sFileName); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJDMX_XSSX,XLXSBJDMX_XH,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID, "); SQL.Add(" rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZID,"); SQL.Add(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSID, "); SQL.Add(" XLXSBJDMX_BJCP,"); SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL , 0 as XLXSBJDMX_JGBBJ,"); SQL.Add(" ' ' as XLXSBJDMX_BZ "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); SQL.Add(" where 1=1 "); SQL.Add(" and XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_JGBBJ=0 and XLXSBJDMX_CLCB=0 and XLXSBJDMX_BJDHQCLCB=0 "); SQL.Add(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH "); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); DataSet dsQry = new DataSet(); DataTable dt = new DataTable(); dt.TableName = "无料价产品报价"; dt.Columns.Add("显示顺序", typeof(double)); dt.Columns.Add("序号", typeof(double)); dt.Columns.Add("型号", typeof(string)); dt.Columns.Add("规格", typeof(string)); dt.Columns.Add("标准", typeof(string)); dt.Columns.Add("电压等级", typeof(string)); dt.Columns.Add("计量单位", typeof(string)); dt.Columns.Add("颜色", typeof(string)); dt.Columns.Add("报价产品", typeof(string)); dt.Columns.Add("报价数量", typeof(double)); dt.Columns.Add("料价", typeof(double)); dt.Columns.Add("表价", typeof(double)); dt.Columns.Add("备注", typeof(string)); dsQry.Tables.Add(dt); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dtrow = dt.NewRow(); dtrow["显示顺序"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); dtrow["序号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); dtrow["型号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); dtrow["规格"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); dtrow["标准"] = ds.Tables[0].Rows[i]["XLBZID"].ToString().Trim(); dtrow["电压等级"] = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); dtrow["计量单位"] = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); dtrow["颜色"] = ds.Tables[0].Rows[i]["XLYSID"].ToString().Trim(); dtrow["报价产品"] = ds.Tables[0].Rows[i]["XLXSBJDMX_BJCP"].ToString().Trim(); dtrow["报价数量"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); dtrow["料价"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJ"].ToString().Trim()); dtrow["表价"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJ"].ToString().Trim()); dtrow["备注"] = ds.Tables[0].Rows[i]["XLXSBJDMX_BZ"].ToString().Trim(); dsQry.Tables[0].Rows.Add(dtrow); } string smessage = ""; // NpoiSheetData sd = new NpoiSheetData(); sd.ColumnStyle = new System.Collections.Generic.Dictionary(); NpoiColumnStyle ct = new NpoiColumnStyle(); ct.DataFormat = "@"; sd.ColumnStyle.Add("D", ct); sd.ColumnType = new System.Collections.Generic.Dictionary(); sd.ColumnType.Add("J", NpoiColumnType.Double); sd.ColumnType.Add("K", NpoiColumnType.Double); sd.ColumnType.Add("L", NpoiColumnType.Double); TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsQry, true, null, sd, ref smessage); if (smessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=无料价产品" + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("OPENJLDC", jsript); } else { ShowMessage(smessage); } } else { ShowMessage("无记录可以导出!"); } } private void DRWLJCP(string sBJDID,string sBJFLID) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "DRWLJCP.aspx"; pageParams.Title = "导入无料价产品"; pageParams.AddString("BJDID", sBJDID); pageParams.AddString("BJFLID", sBJFLID); pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim()); pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim()); pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); OpenDialog(pageParams); } #endregion #endregion #region 料价按钮操作 protected void btnLJ_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLBJD_CLHQList.aspx"; pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("BJDRQHQJCLSX", GetOption("BJU022")); OpenModuleDialog(100860024, pageParams); } protected void btnLJ_DropDown(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); btnLJ.Nodes.Clear(); bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); //允许调整材料行情 if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y") && bEdit) { btnLJ.Nodes.Add(new gtTreeNode("CLHQTZ", "调整材料行情")); } //显示报价单行情料价 if (bjflxx.XSBJDHQLJ() && CheckModule("100860044")) { btnLJ.Nodes.Add(new gtTreeNode("BJDHQLJ", "报价单行情料价追溯")); if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) btnLJ.Nodes.Add(new gtTreeNode("BJDHQLJDC", "报价单行情料价整单导出")); btnLJ.Nodes.Add(new gtTreeNode("JGQSCL", "价格缺失材料")); } if (bjflxx.XLXSBJFL_TZYLBL.Equals("Y")) btnLJ.Nodes.Add(new gtTreeNode("CLYLBL", "调整材料用量比例")); MenuAreaUpdate(); } //价格表行情料价调整 protected void btnLJ_MenuItemClick(object sender, string value) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); switch (value) { case "CLHQTZ": TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_CLHQTZList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); pageParams.AddString("txtNEWBJDID", txtNEWBJDID.ClientID); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 OpenDialog(pageParams); break; case "BJDHQLJ"://报价单行情料价追溯 if (grdXLBJDMX.SelectedIndex < 0) { ShowMessage("请选择一条需要追溯的报价产品!"); return; } string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.SelectedIndex).Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.SelectedIndex).Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.SelectedIndex).Trim().Split('|')[0].Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.SelectedIndex).Trim(); string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); TPageParams tpp = new TPageParams(); if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) tpp.UrlPath = "XLBJD_JGECBZSList.aspx"; else tpp.UrlPath = "XLBJD_CBZSList.aspx"; tpp.Title = "报价单行情料价追溯"; tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("XH", sXH); tpp.AddString("BJRQ", datBJRQ.Text.Trim()); tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); tpp.AddString("XLXHID", sXLXHID); tpp.AddString("XLGGID", sXLGGID); tpp.AddString("XLBZID", sXLBZID); tpp.AddString("DYDJID", sDYDJID); tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); tpp.AddString("TJ", txtTJ.Value.ToString()); tpp.AddString("LJ", txtLJ.Value.ToString()); tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); tpp.AddString("BJLY", txtBJLY.Text.Trim()); tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) OpenModuleDialog(100860044, tpp, btnRefreshCLHQTZ.ClientID); else OpenModuleDialog(100860044, tpp); break; case "BJDHQLJDC": BJDHQLJDCJGE(); break; case "JGQSCL": TPageParams tpp1 = new TPageParams(); tpp1.UrlPath = "XLBJD_JGQSCLList.aspx"; tpp1.Title = "价格缺失材料"; tpp1.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(100860044, tpp1); break; case "CLYLBL": if (grdXLBJDMX.SelectedIndex < 0 && grdXLBJDMX.CheckedRows.Equals("")) { ShowMessage("请选择一条需要调整的报价产品!"); return; } string sBJDXH = ""; foreach (GridViewRow Row in grdXLBJDMX.NewRows) { if (grdXLBJDMX.RowIsChecked(Row)) { string sTmp = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", Row).Trim(); sBJDXH += sTmp + ","; } } sBJDXH = sBJDXH.TrimEnd(','); if(sBJDXH.Equals("")) sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); TPageParams pageParams1 = new TPageParams(); pageParams1.UrlPath = "XLBJD_CLYLBLList.aspx"; pageParams1.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams1.AddString("BJDID", txtBJDID.Text.Trim()); pageParams1.AddString("XH", sBJDXH); pageParams1.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); OpenDialog(pageParams1); break; } } /// /// 简单刷新界面,不做数据处理 /// /// /// protected void btnOnlyRefresh_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtNEWBJDID.Value)) { txtBJDID.Text = txtNEWBJDID.Value; txtNEWBJDID.Value = ""; } LoadRecord(); RefreshForm(); SetControlState(); SetComboxItems(); MenuAreaUpdate(); FormAreaUpdate(); } #endregion #region 批量调价按钮操作 protected void btnBJ_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { txtPLSZAll.Value = "Y"; } else txtPLSZAll.Value = "N"; txtBJSF.Value = ""; txtBJXF.Value = ""; txtPLSZYZList.Value = ""; TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MX_YZSInfo.aspx"; //用于设置因子显示问题 if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); pageParams.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text.Trim()); pageParams.AddString("ZDWPIDList", txtZDWPIDList.Text.Trim()); pageParams.AddString("WPID", txtWPID.Value.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); //报价上浮使用的控件 pageParams.AddString("txtBJSFCID", txtBJSF.ClientID); //报价下浮使用的控件 pageParams.AddString("txtBJXFCID", txtBJXF.ClientID); //报价单因子使用控件,此处保存的是一个list,例如:BJ01|20|Y|BJ02|22|Y pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); //是否整单调整 pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshBJPLTJ", btnRefreshBJPLTJ.ClientID); OpenDialog(pageParams); } //批量调价下拉加载 protected void btnBJ_DropDown(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); DataSet ds = null; string sZDWPIDList = txtZDWPIDList.Text.Trim(); string sWPID = txtWPID.Value.Trim(); string[] sReadOnly = txtReadOnlyYZ.Text.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] sZDWPIDs = txtZDWPIDList.Text.Trim().Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); btnBJ.Nodes.Clear(); SQL.Clear(); //100892076为UFC_20191806_N_XLA|青岛长城电力JSERP-XL10线缆产品部件定制部,暂特殊处理。 SQL.Add(" select AMID,AMNAME from ACTIVEMODULE "); SQL.Add(" where (AMSTDMD=100860050 or AMID = 100892076) "); SQL.Add(" order by AMID "); ds = dberp.OpenDataSet(SQL); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (CheckModule(ds.Tables[0].Rows[i][0].ToString().Trim())) { btnBJ.Nodes.Add(new gtTreeNode(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][1].ToString().Trim())); } } } //固定节点==="报价四舍五入到2位小数"、"报价下浮%"、"报价上浮%" string sPLTJKXX = XLBJDUtils.GetPLTJKXX(); btnBJ.Nodes.Add(new gtTreeNode("BJPLTJ", "按型号电压筛选明细")); if (grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible && !grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly && !bjflxx.XLXSBJFL_TZBJBJBB.Equals("Y")) btnBJ.Nodes.Add(new gtTreeNode("JGBBJTZ", "表价调整")); if (sPLTJKXX.Contains(",BJSSWR,")) btnBJ.Nodes.Add(new gtTreeNode("0", "报价四舍五入")); btnBJ.Nodes.Add(new gtTreeNode("BJSL", "报价数量")); btnBJ.Nodes.Add(new gtTreeNode("BJSD", "报价锁定")); btnBJ.Nodes.Add(new gtTreeNode("BJSD-SD", "锁定", "BJSD")); btnBJ.Nodes.Add(new gtTreeNode("BJSD-JS", "解锁", "BJSD")); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); SQL.Clear(); SQL.Add("select XLXSBJFL_BJJCLLX,XLXSBJFL_XSTZCPBJ,XLXSBJFL_LJJCLLX,XLXSBJFL_XSYXJ from XLXSBJFL where XLXSBJFL_BJFLID = :pBJFLID and ISNULL(XLXSBJFL_TYBZ,'N') <>'Y' "); SQL.ParamByName("pBJFLID").Value = sBJFLID; ds = dberp.OpenDataSet(SQL); //动态节点===意向价栏目显示增加按意向价报价 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XLXSBJFL_XSYXJ"].ToString().Trim().Equals("Y")) { btnBJ.Nodes.Add(new gtTreeNode("YXJBJ", "按意向价报价")); } } if (sPLTJKXX.Contains(",BJXF,")) btnBJ.Nodes.Add(new gtTreeNode("BJXF", "报价下浮%")); if (sPLTJKXX.Contains(",BJSF,")) btnBJ.Nodes.Add(new gtTreeNode("BJSF", "报价上浮%")); //动态节点===“料价价差率”---调价因素为控/不参与调价 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (!ds.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim().Equals("") && ds.Tables[0].Rows[0]["XLXSBJFL_XSTZCPBJ"].ToString().Trim().Equals("Y")) { btnBJ.Nodes.Add(new gtTreeNode("BJJCLLX", "表价价差率%")); } if (!ds.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim().Equals("")) { btnBJ.Nodes.Add(new gtTreeNode("LJJCLLX", "料价价差率%")); } } if (XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XSCPBJXJChecked()) btnBJ.Nodes.Add(new gtTreeNode("BJXJ", "产品报价限价")); if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") { btnBJ.Nodes.Add(new gtTreeNode("PFJE", "盘具金额")); } if (!XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Equals("")) { btnBJ.Nodes.Add(new gtTreeNode("BJBZPFYZID", XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Split('|')[1])); btnBJ.Nodes.Add(new gtTreeNode("BJBZPFYZIDCK", "查看", "BJBZPFYZID")); } if (!XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Equals("")) { btnBJ.Nodes.Add(new gtTreeNode("BJCPWJPFYZID", XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Split('|')[1])); } if (!XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XLXSBJFL_JMBGSYZID.Equals("")) { string sJMBGS = "截面比公式"; if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim(); btnBJ.Nodes.Add(new gtTreeNode("JMBGS", sJMBGS)); } int iYZZCount = 0; SQL.Clear(); SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,XLXSTZYZ_TJMDID, "); SQL.Add(" case when (XLXSTZYZ_TJYS=' ' or isnull(XLXSTZYZ_BCYTJ,'N') = 'Y' ) then 1 else 2 end as SY"); SQL.Add(" from XLXSBJFLYZ"); SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); //and (因子值只读='N' or (因子值只读='Y' and isnull(只读事务,' ')<>' ' and ','||rtrim(只读事务)||',' not like '%,0020,%')) SQL.Add(" and (isnull(XLXSTZYZ_YZZZD, 'N')='N' or "); SQL.Add(" ( isnull(XLXSTZYZ_YZZZD, 'N')='Y' and isnull(XLXSTZYZ_ZDWPIDLIST,' ')<>' ' and ','||rtrim(isnull(XLXSTZYZ_ZDWPIDLIST,' '))||',' not like :pCurWPID ) "); SQL.Add(" ) "); //去除包装方式包装长度调整盘费模块 SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860162 "); //SQL.Add(" and ( XLXSTZYZ_TJYS <> ' ' or isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' ) "); SQL.Add(" order by SY,XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); SQL.ParamByName("pBJFLID").Value = sBJFLID; SQL.ParamByName("pCurWPID").Value = "%," + sWPID + ",%"; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim(); string sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); string sTJYS = ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim(); string sYZIDChild = sYZID; //只有调价因子列可见才允许批量调价 if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sYZID).Visible) { int iTJMDID = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); if (iTJMDID != 100860071 && iTJMDID != 100860080) iYZZCount++; string sText = sYZMC; if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("DD") || sJJFS.Equals("MD")) { sText = sText + "(%)"; } else if (sJJFS.Equals("JJ")) { if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_TJLX == "1") sText = sText + "(元)"; } if (sYZMC=="资金比例") { btnBJ.Nodes.Add(new gtTreeNode("ZJBL|" + sYZID, sText)); } else if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("2") && !ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("C")) { btnBJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText)); if (!string.IsNullOrEmpty(sTJYS)) btnBJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID)); sYZIDChild = "CL" + sYZIDChild; btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID)); } else if (ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("C")) { if (CheckModule("100860072")) { sYZIDChild = "BJD_" + sYZIDChild; btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, sText)); } else { if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("2")) { btnBJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText)); if (!string.IsNullOrEmpty(sTJYS)) btnBJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID)); sYZIDChild = "CL" + sYZIDChild; btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID)); } } } else { btnBJ.Nodes.Add(new gtTreeNode(sYZID, sText)); } } } if (iYZZCount > 0) { btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ", "报价单因子值")); btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ-DC", "导出", "BJDYZZ")); btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ-DR", "导入", "BJDYZZ")); } MenuAreaUpdate(); } //批量调价下拉点击 protected void btnBJ_MenuItemClick(object sender, string value) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (value.StartsWith("ZJBL")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "../Components/N_XLBJPZ/BJDZQWHInfo.aspx"; tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("YZID", value.Split('|')[1]); tpp.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); tpp.AddString("btnRefreshCID", btnRefreshBJDYZ.ClientID); if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJDZQZB where XLXSBJDZQZB_BJDID='" + txtBJDID.Text.Trim() + "'")) tpp.CallAction = TPageCallAction.pcaBrowse; else tpp.CallAction = TPageCallAction.pcaInsert; OpenDialog(tpp); } else if (!value.Equals("BJXF") && !value.Equals("BJSF") && !value.Equals("BJJCLLX") && !value.Equals("LJJCLLX") && !value.Equals("BJPLTJ") && !value.Equals("PFJE") && !value.Equals("JMBGS") && !value.Equals("BJSL") && !value.Equals("BJSD") && value.IndexOf("BJ") == -1) { switch (value) { case "0": Round_TZBJ(); break; default: TZBJByModule(value); break; } } else if (value.Equals("BJBZPFYZIDCK")) { string sBJDXHList = ""; if ((grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } TPageParams tpp = new TPageParams(); tpp.UrlPath = "BJCPBZFSCDList.aspx"; tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("BJDXHList", sBJDXHList); OpenModuleDialog(100860124, tpp); } else if (value.Equals("BJBZPFYZID")) { //更新提示 Confirm.Register("IsQD", string.Format(string.Format("将更新{0},是否继续?",XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[1].Trim()))); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); Dictionary dicTJYZList = new Dictionary(); dicTJYZList.Add("sTJYSListPFBZ", XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[0].Trim()); string sErrorMsg = ""; XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), "M", dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } ShowMessage("更新完成!"); btnOnlyRefresh_Click(null, null); } else if (value.Equals("BJCPWJPFYZID")) { //更新提示 Confirm.Register("IsQD", string.Format(string.Format("将更新{0},是否继续?", XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[1].Trim()))); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); Dictionary dicTJYZList = new Dictionary(); dicTJYZList.Add("sTJYSListPFCPWJ", XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[0].Trim()); string sErrorMsg = ""; XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), "M", dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } ShowMessage("更新完成!"); btnOnlyRefresh_Click(null, null); } else if (value.Equals("YXJBJ")) { //更新提示 Confirm.Register("IsQD", string.Format("将按意向价更新{0},是否继续?", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM)); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDID = txtBJDID.Text.Trim(); string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); try { dberp.BeginTrans(); //更新非报价锁定记录 //string sqlCPBJ = "XLXSBJDMX_YXJG"; string sqlBJJE = "RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_YXJG+XLXSBJDMX_TZBJJE,2)"; SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add("XLXSBJDMX_CPBJ=XLXSBJDMX_YXJG,");//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 SQL.Add("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(XLXSBJDMX_YXJG-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); SQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_YXJG,2),"); SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'YXJGBJ',"); SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 SQL.Add(" and XLXSBJDMX_YXJG<>0.0");//跳过意向价为0的明细数据 SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("批量调价-按意向价报价出现错误,请联系系统管理员!" + ex.Message); dberp.RollbackTrans(); } btnRefreshDRBJDMX_Click(null, null); } else if (value.StartsWith("CLBJ")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); string sYZID = value.Replace("CL", ""); TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID); if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_YZID)) { string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim(); string sJJFS = yzxx.XLXSTZYZ_JJFS.Trim(); if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("DD") || sJJFS.Equals("MD")) sYZMC = sYZMC + "(%)"; else if (sJJFS.Equals("JJ")) sYZMC = sYZMC + "(元)"; //更新提示 Confirm.Register("IsQD", "即将清空当前记录所有明细的【" + sYZMC + "】是否继续?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } SQL.Clear(); SQL.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ" + sYZID.Replace("BJ", "") + " = 0 where XLXSBJDYZZ0_BJDID =:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); string sErrMsg = ""; XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrMsg); if (sErrMsg.Equals("")) { ShowMessage("更新完成!"); } else ShowMessage("更新失败!" + sErrMsg); btnOnlyRefresh_Click(null, null); } else { ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!"); return; } } else if (value.StartsWith("BJD_")) { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) txtPLSZAll.Value = "Y"; else txtPLSZAll.Value = "N"; string sYZID = value.Replace("BJD_", ""); string sJGBID = ""; TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID); if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_JGBID)) sJGBID = yzxx.XLXSTZYZ_JGBID; TBBJDYZZ_C(txtBJDID.Text.Trim(), sJGBID); TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZBJCList.aspx"; tpp.AddString("JGBID", sJGBID); tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("sBJU003", GetOption("BJU003")); tpp.AddString("sBJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("sBJU002", GetOption("BJU002")); tpp.AddString("PLSZAll", txtPLSZAll.Value); tpp.AddString("txtTZZCID", txtTZZ.ClientID); tpp.AddString("btnRefreshLJJCL", btnRefreshLJJCL.ClientID); tpp.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); OpenFuncModuleDialog(100860072, tpp, btnRefreshCLHQTZ.ClientID); } else if (value.Equals("PFJE") || value.Equals("JGBBJTZ") || value.Equals("JMBGS") || value.Equals("BJXJ") || value.Equals("BJXF") || value.Equals("BJSF") || value.Equals("BJJCLLX") || value.Equals("LJJCLLX") || value.IndexOf("BJ") >= 0) { bool bYFYZ = false;//是否运费因子,“100860071|线缆销售报价单运费”模块适用因子 if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860071 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) { bYFYZ = true; } bool bPFYZ = false;//是否盘费因子,“100860080|线缆销售报价单盘费”模块适用因子 if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860080 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) { bPFYZ = true; } bool bKJFYZ = false;//是否开机费因子,“102585000|开机费”模块适用因子 if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 102585000 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) { bKJFYZ = true; } string sYZID = value; string sBJFLID = cbxBJFLID.SelectedValue.Trim(); if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) txtPLSZAll.Value = "Y"; else txtPLSZAll.Value = "N"; txtPLSZYZList.Value = ""; txtBJSF.Value = ""; txtBJXF.Value = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (value.Equals("BJSD")) { return; } if (value.Equals("BJSD-SD") || value.Equals("BJSD-JS")) { string sSDBZ = ""; if (value.Equals("BJSD-SD")) sSDBZ = "Y"; else sSDBZ = "N"; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { string sBJDXH = ""; foreach (GridViewRow Row in grdXLBJDMX.NewRows) { if (grdXLBJDMX.RowIsChecked(Row)) { string sTmp = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", Row).Trim(); sBJDXH += sTmp + ","; } } sBJDXH = sBJDXH.TrimEnd(','); //更新锁定标志 SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJSDBZ = :pSDBZ where XLXSBJDMX_BJDID =:pBJDID "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXH)); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pSDBZ").Value = sSDBZ; dberp.ExecSQL(SQL); if (sSDBZ.Equals("Y")) ShowMessage("已将勾选明细报价锁定标记更新为锁定!"); else ShowMessage("已将勾选明细报价锁定标记更新为未锁定!"); } else { //更新锁定标志 SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJSDBZ = :pSDBZ where XLXSBJDMX_BJDID =:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pSDBZ").Value = sSDBZ; dberp.ExecSQL(SQL); if (sSDBZ.Equals("Y")) ShowMessage("已将整单明细报价锁定标记更新为锁定!"); else ShowMessage("已将整单明细报价锁定标记更新为未锁定!"); } btnOnlyRefresh_Click(null, null); } else if (sYZID.Equals("BJPLTJ")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_PLTJList.aspx"; pageParams.Title = "批量调价"; pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("XMMC", txtXM.Text.Trim()); pageParams.AddString("BJDJE", txtZJE.Value.ToString()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); pageParams.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text.Trim()); pageParams.AddString("ZDWPIDList", txtZDWPIDList.Text.Trim()); pageParams.AddString("WPID", txtWPID.Value.Trim()); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); pageParams.AddString("JMBGSYZID", bjflxx.XLXSBJFL_JMBGSYZID); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("BJDYZ", txtBJDYZ.Text); pageParams.AddString("TJYSList", txtTJYSList.Text); if (cbxPJLX.Style["display"] == "none") pageParams.AddString("HiddenPJLX", "Y"); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenDialogClickBtn(pageParams, btnRefresh1.ClientID); } else if (sYZID.Equals("JGBBJTZ") || sYZID.Equals("BJXJ") || sYZID.Equals("BJSL") || sYZID.Equals("BJXF") || sYZID.Equals("BJSF") || sYZID.Equals("BJJCLLX") || sYZID.Equals("LJJCLLX")) { if (sYZID.Equals("BJXF") || sYZID.Equals("BJSF")) { if (txtPLSZAll.Value == "Y") { if (grdXLBJDMX.SelectedIndex >= 0) txtPLSZAll.Value = "D"; } } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("txtBJSLCID", txtBJSL.ClientID); if (sYZID.Equals("BJSL")) { pageParams.Title = "批量调整报价数量"; pageParams.AddString("TZBZ", "BJSL"); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshBJSL", btnRefreshBJSL.ClientID); } else if (sYZID.Equals("JGBBJTZ")) { string sBJDXHList = ""; string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); pageParams.Title = "批量调整表价"; pageParams.AddString("TZBZ", "JGBBJTZ"); pageParams.AddString("JGBBJXSWS", grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace.ToString()); pageParams.AddString("TZJGBBJ", bjflxx.XLXSBJFL_TZJGBBJ); pageParams.AddString("sBJDXHList", sBJDXHList); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("txtJGBBJTZCID", txtJGBBJTZ.ClientID); pageParams.AddString("btnRefreshJGBBJTZ", btnRefreshJGBBJTZ.ClientID); } else if (sYZID.Equals("BJSF")) { pageParams.Title = "报价上浮%"; pageParams.AddString("TZBZ", "BJSF"); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtBJSFCID", txtBJSF.ClientID); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshBJSF", btnRefreshBJSF.ClientID); } else if (sYZID.Equals("BJXF")) { pageParams.Title = "报价下浮%"; pageParams.AddString("TZBZ", "BJXF"); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtBJXFCID", txtBJXF.ClientID); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshBJXF", btnRefreshBJXF.ClientID); } else if (sYZID.Equals("BJJCLLX")) { pageParams.Title = "表价价差率%"; pageParams.AddString("TZBZ", "BJJCLLX"); pageParams.AddString("BJFLID", sBJFLID); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtTZZCID", txtTZZ.ClientID); pageParams.AddString("btnRefreshBJJCL", btnRefreshBJJCL.ClientID); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); } else if (sYZID.Equals("LJJCLLX")) { pageParams.Title = "料价价差率%"; pageParams.AddString("TZBZ", "LJJCLLX"); pageParams.AddString("BJFLID", sBJFLID); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtTZZCID", txtTZZ.ClientID); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshLJJCL", btnRefreshLJJCL.ClientID); } else if (sYZID.Equals("BJXJ")) { pageParams.Title = "报价限价"; pageParams.AddString("TZBZ", "BJXJ"); pageParams.AddString("BJFLID", sBJFLID); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtTZZCID", txtTZZ.ClientID); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshBJXJ", btnRefreshBJXJ.ClientID); } OpenDialog(pageParams); } else if (value.StartsWith("CZ")) { string sWarning = string.Format("即将重置当前记录所有明细的【{0}】,是否继续?", value.Split('|')[2]); Confirm.Register("IsQD", sWarning); 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(); } Dictionary dicTJYZList = new Dictionary(); dicTJYZList.Add("sTJYSList" + value.Split('|')[3].Trim(), value.Split('|')[1].Trim()); string sErrorMsg = ""; XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), sBJFLID, GetOption("BJU003"), dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } ShowMessage("更新完成!"); btnOnlyRefresh_Click(null, null); } else if (value.Equals("PFJE")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJPF_FDList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("YZID", ""); pageParams.AddString("YZMC", ""); pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); } else if (value.Equals("JMBGS")) { SQL.Clear(); SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ"); SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID"); SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID "); SQL.ParamByName("pYZID").Value = bjflxx.XLXSBJFL_JMBGSYZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sJMBGS = "截面比公式"; if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim(); string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim(); string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim(); string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim(); string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(); string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; pageParams.AddString("JMBGS", "Y"); pageParams.AddString("YZID", bjflxx.XLXSBJFL_JMBGSYZID); pageParams.AddString("DefYZZ", sDefYZZ); pageParams.AddString("MinYZZ", sMinYZZ); pageParams.AddString("MaxYZZ", sMaxYZZ); pageParams.AddString("YZMC", sJMBGS); pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("txtPLSZJMBGSCID", txtPLSZJMBGS.ClientID); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("btnRefreshCID", btnRefreshBJDYZ.ClientID); OpenDialog(pageParams); } } else if (value.Equals("BJDYZZ-DC") || value.Equals("BJDYZZ-DR") || value.Equals("BJDYZZ")) { if (value.Equals("BJDYZZ-DC")) { //定义文件名和临时路径​ string sFILENAME = "线缆销售报价单因子值导入.xls"; string m_tmpFilePath = FileService.CombineTempPath(Guid.NewGuid().ToString() + sFILENAME); Dictionary DicYZLM = new Dictionary(); //创建DataTable并定义列结构​ DataTable dt = new DataTable(); dt.TableName = "sheet1"; dt.Columns.Add("序号", typeof(float)); dt.Columns.Add("型号", typeof(string)); dt.Columns.Add("规格", typeof(string)); dt.Columns.Add("标准", typeof(string)); dt.Columns.Add("电压等级", typeof(string)); dt.Columns.Add("颜色", typeof(string)); dt.Columns.Add("计量单位", typeof(string)); dt.Columns.Add("报价数量", typeof(float)); SQL.Clear(); SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS "); SQL.Add(" from XLXSBJFLYZ"); SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860071 and XLXSTZYZ_TJMDID <> 100860080 and XLXSTZYZ_TJMDID <> 100860162 "); SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID "); SQL.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sFLYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).Visible) { dt.Columns.Add(grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText, typeof(float)); if (!DicYZLM.ContainsValue(sFLYZID)) DicYZLM.Add(sFLYZID, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText); } } } if (DicYZLM.Count == 0) { ShowMessage("无可编辑的报价单因子!"); return; } SQL.Clear(); SQL.Add(" select XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID, "); SQL.Add(" case when isnull(XLBZ_XLBZID,' ') = ' ' then ' ' else rtrim(XLXSBJDMX_XLBZID) || '|' || XLBZ_XLBZLXMC end as XLBZ, "); SQL.Add(" XLYSB_XLYSMC,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL "); foreach (string stYZID in DicYZLM.Keys) { SQL.Add(" ,XLXSBJDYZZ0_YZZ" + stYZID.Substring(2)); } SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" order by XLXSBJDMX_XSSX "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow NewRow = dt.NewRow(); NewRow["序号"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()); NewRow["型号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); NewRow["规格"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); NewRow["标准"] = ds.Tables[0].Rows[i]["XLBZ"].ToString().Trim(); NewRow["电压等级"] = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); NewRow["颜色"] = ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(); NewRow["计量单位"] = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); NewRow["报价数量"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); foreach (string stYZID in DicYZLM.Keys) { NewRow[DicYZLM[stYZID]] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ" + stYZID.Substring(2)].ToString().Trim()); } dt.Rows.Add(NewRow); } } //创建DataSet并关联DataTable​,供Excel生成工具使用 DataSet dsDC = new DataSet(); dsDC.Tables.Add(dt); string sError = ""; NpoiCellData cd = new NpoiCellData(); cd.CellComment = new System.Collections.Generic.Dictionary(); //配置工作表数据类型(NpoiSheetData)​ NpoiSheetData sd = new NpoiSheetData(); sd.FreezePaneRows = 1; //生成Excel文件​ TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsDC, true, cd, sd, ref sError); if (string.IsNullOrEmpty(sError)) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=线缆销售报价单因子值导入" + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("YZZDC", jsript); } else { ShowMessage("导出模板失败!"); } } else if (value.Equals("BJDYZZ-DR")) { string sKYYZList = ""; SQL.Clear(); SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS "); SQL.Add(" from XLXSBJFLYZ"); SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); SQL.Add(" and (isnull(XLXSTZYZ_YZZZD, 'N')='N' or "); SQL.Add(" ( isnull(XLXSTZYZ_YZZZD, 'N')='Y' and isnull(XLXSTZYZ_ZDWPIDLIST,' ')<>' ' and ','||rtrim(isnull(XLXSTZYZ_ZDWPIDLIST,' '))||',' not like :pCurWPID ) "); SQL.Add(" ) "); SQL.Add(" and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860071 and XLXSTZYZ_TJMDID <> 100860080 and XLXSTZYZ_TJMDID <> 100860162 "); SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); SQL.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); SQL.ParamByName("pCurWPID").Value = "%," + txtWPID.Value.Trim() + ",%"; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sFLYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).Visible) { string stemp = sFLYZID + "|" + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText; if (!sKYYZList.Equals("")) sKYYZList += ","; sKYYZList += stemp; } } } if (sKYYZList.Equals("")) { ShowMessage("无可编辑的报价单因子!"); return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_YZZDRInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sKYYZList); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } } else //报价单因子 { if (sYZID.Contains("|")) sYZID = sYZID.Trim().Split('|')[1]; SQL.Clear(); SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_TJMDID,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ"); SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID"); SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID "); SQL.ParamByName("pYZID").Value = sYZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (!bYFYZ && !bPFYZ && !bKJFYZ)//非运费因子、非盘费因子 { string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim(); string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim(); string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim(); string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(); string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; if (ds.Tables[0].Rows[0]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("102577028")) { //若为中标服务费,打开中标服务费界面 pageParams.UrlPath = "XLBJD_YZ_ZBFWFInfo.aspx"; } pageParams.AddString("YZID", sYZID); pageParams.AddString("XMMC", txtXM.Text.Trim()); pageParams.AddString("BJDJE", txtZJE.Value.ToString()); pageParams.AddString("DefYZZ", sDefYZZ); pageParams.AddString("MinYZZ", sMinYZZ); pageParams.AddString("MaxYZZ", sMaxYZZ); string sBJDXHList = string.Empty; if (txtPLSZAll.Value == "N") { string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } pageParams.AddString("BJDXHList", sBJDXHList); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("TJMDID", ds.Tables[0].Rows[0]["XLXSTZYZ_TJMDID"].ToString().Trim()); pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("btnRefreshCID", btnRefreshBJDYZ.ClientID); OpenDialog(pageParams); } else if (bYFYZ)//运费因子 { if (txtXZQHID.Value.Trim().Equals("")) { ShowMessage("请先指定项目所在地!"); return; } if (!ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JD") && !ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("KD")) { ShowMessage("运费因子的调价方式必须是:乘以(1+加点(%))、除以(1-扣点(%))!"); return; } SQL.Clear(); SQL.Add("select XLXSBJDQYFZB_YFJSFS,XLXSBJDQYFZB_TCPBL,XLXSBJDQYFZB_LCPBL "); SQL.Add(" from XLXSBJDQYFZB "); SQL.Add("where XLXSBJDQYFZB_XZQHID=:pXZQHID "); SQL.ParamByName("pXZQHID").Value = txtXZQHID.Value.Trim(); DataSet dsYF = dberp.OpenDataSet(SQL); if (dsYF.Tables[0].Rows.Count > 0) { //运费计算方式 string sYFJSFS = dsYF.Tables[0].Rows[0]["XLXSBJDQYFZB_YFJSFS"].ToString().Trim(); if (sYFJSFS.Equals("1"))//1|运价运重,处理整单 { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJYF_YJYZTJInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); OpenDialog(pageParams); } else if (sYFJSFS.Equals("2"))//2|运金比例,处理整单 { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJYF_JEBLTJInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); pageParams.AddString("btnRefreshCID", btnRefreshYFYZ2.ClientID); OpenDialog(pageParams); } else if (sYFJSFS.Equals("3"))//3|运距运重 { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJYF_YZYJTJInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); pageParams.AddString("YFJSFS", sYFJSFS); double dBJU026 = CMISproConvert.StrToFloat(GetOption(100860071, "BJU026")); if (dBJU026 != 1) pageParams.AddString("btnRefreshCID", btnRefreshYFYZ3.ClientID); else pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); OpenDialog(pageParams); } else if (sYFJSFS.Contains("3") || sYFJSFS.Contains("4"))//3|运距运重,4|运距运件 { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJYF_YZYJList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); pageParams.AddString("YFJSFS", sYFJSFS); pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); OpenFuncModuleDialog(100860084, pageParams); } else { Confirm.Register("IsQD", string.Format(string.Format("将更新{0},是否继续?", XLBJDUtils.GetBJFLSYYFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[1].Trim()))); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp1 = TContextDatabases.GetDatabase("DBERP"); TSQL SQL1 = new TSQL(dberp1); Dictionary dicTJYZList = new Dictionary(); dicTJYZList.Add("sTJYSListYF", XLBJDUtils.GetBJFLSYYFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[0].Trim()); string sErrorMsg = ""; XLBJDUtils.AddXLXSBJDYZZ0(dberp1, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), "M", dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp1, SQL1, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); return; } ShowMessage("更新完成!"); btnOnlyRefresh_Click(null, null); } } else { ShowMessage(string.Format("项目所在地【{0}】尚未设置计算运费的规则!", cbxKHSZDPRO.SelectedItem.Text.Trim() + cbxKHSZDCITY.SelectedItem.Text.Trim() + cbxKHSZDCOUNTY.SelectedItem.Text.Trim())); return; } } else if (bPFYZ)//盘费因子 { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJPF_FDList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); } else if (bKJFYZ)//开机费因子 { if (GetOption(100860000, "BJU071").Equals("2")) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_YZZDRInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("KJF", "Y"); pageParams.AddString("YZID", sYZID.Trim() + "|" + ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } else { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_YZ_KJFInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("YZID", sYZID); pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } } } else { ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!"); return; } } } else { //除固定和N_XL8 } } private void TZBJByModule(string value) { //if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) //{ // ShowMessage("请先勾选记录!"); // return; //} string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); string sBJDXHList = ""; foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); //UFC_20191806_N_XL8 string path = "../components/"; ModuleInfo MdInfo = MacInfoUtils.GetModuleInfo(CMISproConvert.StrToInt(value)); if (MdInfo != null && MdInfo.MacInfo != null) { path = path + MdInfo.MacInfo.ClassId + "/" + MdInfo.PageFile; } else { return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = path; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddInt("iXSWS", iXSWS); pageParams.AddString("BJDXH", sBJDXHList); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } pageParams.AddString("BJDYZ", txtBJDYZ.Text.Trim()); pageParams.AddString("TJYSList", txtTJYSList.Text.Trim()); pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 //pageParams.AddString("btnRefresh1", btnRefresh1.ClientID.Trim()); OpenModuleDialog(CMISproConvert.StrToInt(value), pageParams, btnRefresh1.ClientID); } //因子在一个界面的刷新 protected void btnRefreshBJPLTJ_Click(object sender, EventArgs e) { string sPLSZYZList = txtPLSZYZList.Value; if (!txtBJSF.Value.Equals("") && !txtBJSF.Value.Equals("0")) { btnRefreshBJSF_Click(null, null); } if (!txtBJXF.Value.Equals("") && !txtBJXF.Value.Equals("0")) { btnRefreshBJXF_Click(null, null); } if (!sPLSZYZList.Equals("")) { string[] sTemp = sPLSZYZList.Split(new Char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 1; m <= sTemp.Length; m++) { if (m % 3 == 0) { txtPLSZYZList.Value = sTemp[m - 3] + "|" + sTemp[m - 2] + "|" + sTemp[m - 1]; btnRefreshBJDYZ_Click(null, null); } } } } //报价单因子 protected void btnRefreshBJDYZ_Click(object sender, EventArgs e) { if (txtPLSZYZList.Value.Trim().Equals("")) { return; } string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } DoRefreshBJDYZClick(sBJDXHList, false); } //运费因子--1|运价运重 protected void btnRefreshYFYZ1_Click(object sender, EventArgs e) { if (txtPLSZYZList.Value.Trim().Equals("")) { return; } DoRefreshBJDYZClick("", false); } //运费因子--2|运金比例 protected void btnRefreshYFYZ2_Click(object sender, EventArgs e) { if (txtPLSZYZList.Value.Trim().Equals("")) { return; } DoRefreshBJDYZClick("", true); } //运费因子--3|运重运距区分铜铝产品 protected void btnRefreshYFYZ3_Click(object sender, EventArgs e) { if (txtPLSZYZList.Value.Trim().Equals("")) { return; } DoRefreshBJDYZClick("", true); } /// /// 批量设置调价因素为空的因子值 /// /// 勾选的明细序号 /// 是否分铜铝产品设置因子值 private void DoRefreshBJDYZClick(string sBJDXHList, bool bTLCP) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDID = txtBJDID.Text.Trim(); string[] sYZZList = txtPLSZYZList.Value.Trim().Split('|'); string sYZID = sYZZList[0].Trim(); double fYZZ = 0.0; double fTcpYZZ = 0.0; double fLcpYZZ = 0.0; string sTcpList = ""; string sLcpList = ""; string sTLcpList = ""; if (bTLCP) { fTcpYZZ = CMISproConvert.StrToFloat(sYZZList[1].Split(';')[0]); fLcpYZZ = CMISproConvert.StrToFloat(sYZZList[1].Split(';')[1]); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860063); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TDTGSCLID)) sTcpList = pzxx.XLXSBJPZ_TDTGSCLID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LDTGSCLID)) sLcpList = pzxx.XLXSBJPZ_LDTGSCLID; sTLcpList = sTcpList + "," + sLcpList; sTLcpList = sTLcpList.TrimStart(',').TrimEnd(','); } else fYZZ = CMISproConvert.StrToFloat(sYZZList[1]); //调整范围 string sTJFW = sYZZList[2].Trim(); bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; bool bWG = false; bool bFWG = false; if (sTJFW.Split(',').Length > 1) { bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; } string sErrorMsg = ""; if (!txtPLSZJMBGS.Value.Equals("")) { //批量修改截面比公式 XLBJDUtils.UpdateJMBGS(sBJDID, sBJDXHList, txtPLSZJMBGS.Value); PLTJ_BJDYZ(sBJDXHList, 0, sBJDID, sYZID, fYZZ, bTLCP, sTLcpList, sTcpList, fTcpYZZ, sLcpList, fLcpYZZ, bYBJ, bWG, bFWG, "", CurSession.UserId, CurSession.UserName, GetOption("BJU002"), GetOption("BJU003"), ref sErrorMsg); } else { PLTJ_BJDYZ(sBJDXHList, 0, sBJDID, sYZID, fYZZ, bTLCP, sTLcpList, sTcpList, fTcpYZZ, sLcpList, fLcpYZZ, bYBJ, bWG, bFWG, bjflxx.XLXSBJFL_JMBGSYZID, CurSession.UserId, CurSession.UserName, GetOption("BJU002"), GetOption("BJU003"), ref sErrorMsg); } if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } btnOnlyRefresh_Click(null, null); } //报价数量 protected void btnRefreshBJSL_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); string sBJSL = txtBJSL.Value.Trim().Split('|')[0]; //调整范围 string sTJFW = txtBJSL.Value.Trim().Split('|')[1]; bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); sBJDXHList += sBJDXH + ","; } sBJDXHList = sBJDXHList.TrimEnd(','); } string sErrorMsg = ""; XLBJDCalcUtils.CalcWithBJSLChange(dberp, SQL, CMISproConvert.StrToFloat(sBJSL), sBJDID, 0, sBJDXHList, bYBJ, bWG, bFWG, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } btnOnlyRefresh_Click(null, null); } //价格表表价调整 protected void btnRefreshJGBBJTZ_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); string sJGBBJ = txtJGBBJTZ.Value.Trim().Split('|')[0]; //调整范围 string sTJFW = txtJGBBJTZ.Value.Trim().Split('|')[1]; bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); sBJDXHList += sBJDXH + ","; } sBJDXHList = sBJDXHList.TrimEnd(','); } SQL.Clear(); SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_JGBBJ=:pJGBBJ + XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,XLXSBJDMX_JGBBJTZ='Y' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (bYBJ) SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); if (bWG) SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); if (bFWG) SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); SQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJ); SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pstartBJDXH").Value = 0; dberp.ExecSQL(SQL); string sErrorMsg = ""; XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } SQL.Clear(); SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_BJTJCZ='JGBBJTZ' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (bYBJ) SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); if (bWG) SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); if (bFWG) SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); SQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJ); SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pstartBJDXH").Value = 0; dberp.ExecSQL(SQL); btnOnlyRefresh_Click(null, null); } protected void btnRefreshJGBBJSC_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sBJFLID = cbxBJFLID.SelectedValue.Trim(); //调整范围 string sTJFW = txtJGBBJTZ.Value.Trim().Split('|')[1]; bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); sBJDXHList += sBJDXH + ","; } sBJDXHList = sBJDXHList.TrimEnd(','); } SQL.Clear(); SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_JGBBJ=0.0,XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,XLXSBJDMX_JGBBJTZ='Y' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (bYBJ) SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); if (bWG) SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); if (bFWG) SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pstartBJDXH").Value = 0; dberp.ExecSQL(SQL); string sErrorMsg = ""; XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } SQL.Clear(); SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_BJTJCZ='JGBBJTZ' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); if (!sBJDXHList.Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); if (bYBJ) SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); if (bWG) SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); if (bFWG) SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pstartBJDXH").Value = 0; dberp.ExecSQL(SQL); btnOnlyRefresh_Click(null, null); } //上浮 protected void btnRefreshBJSF_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sBJSF = txtBJSF.Value; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } else if(txtPLSZAll.Value.Trim().Equals("D")) sBJDXHList = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex); string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); try { dberp.BeginTrans(); //更新非报价锁定记录 string sBJSFTJFS = XLBJDUtils.GetBJSFTJFS(); string sqlBJJE = ""; string sqlCPBJ = ""; if (sBJSFTJFS.Equals("UM")) { sqlCPBJ = "XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0)"; sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); } else { sqlCPBJ = "XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0)"; sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); } SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + "/{0},0)*{0},", sCPBJBLXSWS));//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}),2),", sCPBJBLXSWS)); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'BJSFJS',"); SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJSF); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("批量调价-上浮出现错误,请联系系统管理员!" + ex.Message); dberp.RollbackTrans(); } btnRefreshDRBJDMX_Click(null, null); } //下浮 protected void btnRefreshBJXF_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sBJXF = txtBJXF.Value; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } else if (txtPLSZAll.Value.Trim().Equals("D")) sBJDXHList = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex); string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); try { dberp.BeginTrans(); //更新非报价锁定记录 string sBJXFTJFS = XLBJDUtils.GetBJXFTJFS(); string sqlBJJE = ""; string sqlCPBJ = ""; if (sBJXFTJFS.Equals("DD")) { sqlCPBJ = "XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0)"; sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); } else { sqlCPBJ = "XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0)"; sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); } SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + "/{0},0)*{0},", sCPBJBLXSWS));//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}),2),", sCPBJBLXSWS)); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end,"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'BJXFJS',"); SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJXF); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("批量调价-下浮出现错误,请联系系统管理员!" + ex); dberp.RollbackTrans(); } btnRefreshDRBJDMX_Click(null, null); } //表价价差率 protected void btnRefreshBJJCL_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); string[] sTZZ = txtTZZ.Value.Split('|'); if (sTZZ.Length != 3) { return; } // TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) { tmpXSWS = 0; } else if (tmpXSWS > 8) { tmpXSWS = 8; } string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } try { dberp.BeginTrans(); string sqlBJJE = "0"; string sYZZ = ""; //仅调整外购产品 bool bTZWGCP = sTZZ[2].Trim().Equals("Y"); if (!sTZZ[0].Trim().Equals("BJ")) { sYZZ = string.Format("a.XLXSBJDYZZ0_YZZ{0}", sTZZ[0].Trim().Replace("BJ", "")); } else { sYZZ = "XLXSBJDMX_JGBBJJCL"; } //cbxBJJCLLX.Items.Add(new ListItem("(调整后报价金额-表价金额)/调整后报价金额*100", "1")); //cbxBJJCLLX.Items.Add(new ListItem("(表价金额-调整后报价金额)/表价金额*100", "2")); //cbxBJJCLLX.Items.Add(new ListItem("表价金额/调整后报价金额*100", "3")); if (sJCLLX.Equals("1")) { sqlBJJE = "RoundFix(case when (:pUpdCLCBLRL + " + sYZZ + ") = 100 or XLXSBJDMX_BJSL=0 then 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL/(1- (:pUpdJGBBJJCL + " + sYZZ + ")/100.0) end, 2)"; } else if (sJCLLX.Equals("2")) { sqlBJJE = "RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1- (:pUpdJGBBJJCL + " + sYZZ + ")/100.0), 2)"; } else if (sJCLLX.Equals("3")) { sqlBJJE = "RoundFix(case when (:pUpdJGBBJJCL + " + sYZZ + ") = 0 then 0 else XLXSBJDMX_JGBBJ/((:pUpdJGBBJJCL + " + sYZZ + ")/100.0) end, 2)"; } else if (sJCLLX.Equals("4")) { sqlBJJE = "RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1+ (:pUpdJGBBJJCL + " + sYZZ + ")/100.0), 2)"; } else { sqlBJJE = "0"; } SQL.Add(" update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_JGBBJJCL = :pUpdJGBBJJCL + " + sYZZ + ","); SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(" + sqlBJJE + " - XLXSBJDMX_TZBJJE,2),"); SQL.Add(" XLXSBJDMX_CPBJ=case when XLXSBJDMX_BJSL = 0 then 0 else RoundFix((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + " ) end, ");//保留精度高的 SQL.Add(" XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else { SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'BJJCLTZ',"); if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when (" + sqlBJJE + ")=0.0 then 0.0 else RoundFix(100*((" + sqlBJJE + ")-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when (" + sqlBJJE + ")=0.0 then 0.0 else RoundFix(100*((" + sqlBJJE + ")-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when (XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)=0.0 then 0.0 else RoundFix(100*((" + sqlBJJE + ")-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when (" + sqlBJJE + ")=0.0 then 0.0 else RoundFix(100*((XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0"); } SQL.Add(" from "); SQL.Add(" ( "); SQL.Add(" SELECT XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH as XH,"); SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); SQL.Add(" FROM XLXSBJDYZZ0 "); SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDYZZ0_BJDID AND XLXSBJDMX_XH = XLXSBJDYZZ0_XH "); SQL.Add(" WHERE 1 = 1 "); SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID "); SQL.Add(" and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); SQL.Add(" and XLXSBJDYZZ0_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bTZWGCP)//仅调整外购产品 { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); } SQL.Add(" ) a "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and a.XH=XLXSBJDMX_XH "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bTZWGCP)//仅调整外购产品 { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); } SQL.ParamByName("pUpdJGBBJJCL").Value = CMISproConvert.StrToFloat(sTZZ[1]); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); string sqlBJJE2 = string.Format("(RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE)", sCPBJBLXSWS); SQL.Clear(); SQL.Add(" update XLXSBJDMX set "); SQL.Add(string.Format(" XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0},", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*RoundFix((RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ,15) end,", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE2 + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE2 + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE2 + "," + tmpXSWS + "), "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } SQL.Add("XLXSBJDMX_BJTJCZ = 'BJJCLTZ',"); if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0"); } SQL.Add(" from XLXSBJDMX"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 if (bTZWGCP)//仅调整外购产品 { SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); } SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("批量调价-表价价差率出现错误,请联系系统管理员!" + ex); dberp.RollbackTrans(); } btnRefreshDRBJDMX_Click(null, null); } //料价价差率 //注意----跳过表价不为0的记录 protected void btnRefreshLJJCL_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; string sJYF = bjflxx.XLXSBJFL_JYF; string sYFWLID = bjflxx.XLXSBJFL_YFWLID; string sBJHYF = bjflxx.XLXSBJFL_BJHYF; string sBJFLID = cbxBJFLID.SelectedValue.Trim(); string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string[] sTZZ = txtTZZ.Value.Split('|'); if (sTZZ.Length != 5) { return; } string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录 string sCZLM = sTZZ[1].Trim(); double dCLCBLR = CMISproConvert.StrToFloat(sTZZ[2]); string sCLCBLX = sTZZ[3].Trim();//材料成本类型:相对值/固定值 //调整范围 string sTJFW = sTZZ[4].Trim(); bool bWBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; bool bFWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (sSZFW.Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sErrorMsg = ""; PLTJ_LJJCL(sBJDXHList, 0, sBJDID, sBJFLID, dCLCBLR, sCLCBLX, sCZLM, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, tmpXSWS, GetOption("BJU002"), bWBJ, bFWG, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } btnOnlyRefresh_Click(null, null); } protected void btnRefreshBJXJ_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sBJDID = txtBJDID.Text.Trim(); string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; string sJYF = bjflxx.XLXSBJFL_JYF; string sYFWLID = bjflxx.XLXSBJFL_YFWLID; string sBJHYF = bjflxx.XLXSBJFL_BJHYF; string[] sTZZ = txtTZZ.Value.Split('|'); if (sTZZ.Length != 4) { return; } string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录 double dKDYZ = CMISproConvert.StrToFloat(sTZZ[1].Trim(), 0); double dJJYZ = CMISproConvert.StrToFloat(sTZZ[2].Trim(), 0); //调整范围 string sTJFW = sTZZ[3].Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJDXHList = ""; if (sSZFW.Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } string sErrorMsg = ""; PLTJ_BJXJ(sBJDXHList, 0, sBJDID, cbxBJFLID.SelectedValue.Trim(), sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, GetOption("BJU002"), sTJFW, dKDYZ, dJJYZ, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ShowMessage(sErrorMsg); } btnOnlyRefresh_Click(null, null); } //批量调整标准 protected void btnRefreshPLTZBZ_Click(object sender, EventArgs e) { string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } UpdateBJCPByXLBZID(txtBJDID.Text.Trim(), sBJDXHList, XLBJDUtils.ISDZBZ(txtPLSZBZID.Value.Trim()) ? "Y" : "N"); } //批量调整客户物料编码 protected void btnKHWL_Click(object sender, EventArgs e) { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { ShowMessage("请勾选记录!"); return; } txtPLSZAll.Value = "N"; TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MX_BJCPInfo.aspx"; pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("txtPLSZKHWLID", txtPLSZKHWLID.ClientID); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); //是否整单调整 pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshKHWL", btnRefreshKHWL.ClientID); OpenDialog(pageParams); } protected void btnRefreshKHWL_Click(object sender, EventArgs e) { string sBJDXHList = ""; if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 { if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { return; } string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } } sBJDXHList = sBJDXHList.TrimEnd(','); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); #region 完成报价单明细的更新。 SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_KHWLID= :pXLXSBJDMX_KHWLID, "); SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.ParamByName("pXLXSBJDMX_BJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pXLXSBJDMX_KHWLID").Value = txtPLSZKHWLID.Value.Trim(); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion } #endregion #region 按钮操作 protected void btnDRCS_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLXSBJ_AFZNRDR.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJU003", GetOption("BJU003")); pageParams.AddString("BJU002", GetOption("BJU002")); pageParams.AddString("BJU018", GetOption("BJU018")); OpenModuleDialog(100860125, pageParams, btnRefreshOper.ClientID); } #endregion #region 价差按钮操作 protected void btnBJLR_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLBJD_BJLRList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked()?"Y":"N"); pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); //pageParams.AddString("BJLJJCL", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("XSBJLJJCL", bjflxx.XSBJLJJCL()?"Y":"N"); pageParams.AddString("HidJSLMList", sHidJSLMList); OpenModuleDialog(100860008, pageParams); } protected void btnAGXJLUHZ_Click(object sender, EventArgs e) { string sXHList = ""; if (grdXLBJDMX.CheckBox && !string.IsNullOrEmpty(grdXLBJDMX.CheckedRows)) { string[] rows = grdXLBJDMX.CheckedRows.Split(','); foreach (string rowIndex in rows) { int index = CMISproConvert.StrToInt(rowIndex.Trim()); string xh = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH",index); if (!string.IsNullOrEmpty(xh)) { sXHList += xh + ","; } } sXHList = sXHList.TrimEnd(','); } BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "XLBJD_BJLRList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("XHList", sXHList); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked() ? "Y" : "N"); pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); //pageParams.AddString("BJLJJCL", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("XSBJLJJCL", bjflxx.XSBJLJJCL() ? "Y" : "N"); pageParams.AddString("HidJSLMList", sHidJSLMList); OpenModuleDialog(100860008, pageParams); } #endregion #region 关联报价单按钮操作 protected void btnBDBJ_DropDown(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); DataSet ds = new DataSet(); string sBJDID = txtBJDID.Text.Trim(); Dictionary dicDropDown = new Dictionary(); string sValue = ""; string sText = ""; btnBDBJ.Nodes.Clear(); if (CheckModule("100860042")) { btnBDBJ.Nodes.Add(new gtTreeNode("BDBJ", "比对报价")); SQL.Clear(); SQL.Add("select distinct XLXSBJDBDMX_BDBJDID from XLXSBJDBDMX "); SQL.Add("where XLXSBJDBDMX_BJDID=:pBJDID and isnull(XLXSBJDBDMX_BDBJDID,' ') <> ' ' "); SQL.Add("order by XLXSBJDBDMX_BDBJDID desc "); SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sValue = ds.Tables[0].Rows[i]["XLXSBJDBDMX_BDBJDID"].ToString().Trim(); sText = sValue; btnBDBJ.Nodes.Add(new gtTreeNode(sValue, sText, "BDBJ")); } } if (_CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && entity.CanEdit()) { btnBDBJ.Nodes.Add(new gtTreeNode("HBBJ", "合并报价")); dicDropDown.Clear(); //先加载源自哪些报价单、再加载被哪些报价单引用 SQL.Clear(); SQL.Add("select XLXSBJD_YBJDIDS as BJDID from XLXSBJD where XLXSBJD_BJDID=:pBJDIDA and XLXSBJD_ZT='H'"); SQL.ParamByName("pBJDIDA").Value = sBJDID; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sValue = ds.Tables[0].Rows[i]["BJDID"].ToString().Trim(); string[] sTemp = sValue.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTemp.Length; m++) { if (!dicDropDown.ContainsKey(sTemp[m])) { dicDropDown.Add(sTemp[m], "1"); } } } SQL.Clear(); SQL.Add(" select XLXSBJD_BJDID as BJDID from XLXSBJD where ','||rtrim(isnull(XLXSBJD_YBJDIDS,' '))||',' like :pBJDIDB and XLXSBJD_ZT='H' "); SQL.ParamByName("pBJDIDB").Value = "%," + sBJDID + ",%"; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sValue = ds.Tables[0].Rows[i]["BJDID"].ToString().Trim(); if (!dicDropDown.ContainsKey(sValue)) { dicDropDown.Add(sValue, "2"); } } foreach (KeyValuePair kvp in dicDropDown) { if (kvp.Value.Equals("1")) { btnBDBJ.Nodes.Add(new gtTreeNode(kvp.Key, "源自:" + kvp.Key, "HBBJ")); } else { btnBDBJ.Nodes.Add(new gtTreeNode(kvp.Key, kvp.Key, "HBBJ")); } } btnBDBJ.Nodes.Add(new gtTreeNode("CFBJ", "拆分报价")); dicDropDown.Clear(); //先加载源自哪个报价单、再加载被哪些报价单引用 SQL.Clear(); SQL.Add("select XLXSBJD_YBJDIDS as BJDID from XLXSBJD where XLXSBJD_BJDID=:pBJDIDA and XLXSBJD_ZT='C'"); SQL.ParamByName("pBJDIDA").Value = sBJDID; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sValue = ds.Tables[0].Rows[i]["BJDID"].ToString().Trim(); string[] sTemp = sValue.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int m = 0; m < sTemp.Length; m++) { if (!dicDropDown.ContainsKey(sTemp[m])) { dicDropDown.Add(sTemp[m], "1"); } } } SQL.Clear(); SQL.Add("select XLXSBJD_BJDID as BJDID from XLXSBJD where ','||rtrim(isnull(XLXSBJD_YBJDIDS,' '))||',' like :pBJDIDB and XLXSBJD_ZT='C' "); SQL.ParamByName("pBJDIDB").Value = "%," + sBJDID + ",%"; ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sValue = ds.Tables[0].Rows[i]["BJDID"].ToString().Trim(); if (!dicDropDown.ContainsKey(sValue)) { dicDropDown.Add(sValue, "2"); } } foreach (KeyValuePair kvp in dicDropDown) { if (kvp.Value.Equals("1")) { btnBDBJ.Nodes.Add(new gtTreeNode(kvp.Key, "源自:" + kvp.Key, "CFBJ")); } else { btnBDBJ.Nodes.Add(new gtTreeNode(kvp.Key, kvp.Key, "CFBJ")); } } } MenuAreaUpdate(); } protected void btnBDBJ_MenuItemClick(object sender, string sValue) { gtTreeNode Node = btnBDBJ.Nodes.getTreeNodeByValue(sValue); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sFatNode = ""; string sNode = ""; if (Node.FatherValue != "") { //点击的二级菜单 sFatNode = Node.FatherValue; sNode = Node.Value; string sBJDID = sNode; string sWFID = ""; string sWFINST = ""; SQL.Clear(); SQL.Add(" SELECT XLXSBJD_BJDID,XLXSBJD_WFID,XLXSBJD_WFINST FROM XLXSBJD WHERE XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { sWFID = ds.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim(); sWFINST = ds.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString().Trim(); } TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJDInfo.aspx"; tpp.AddString("XLXSBJD_BJDID", sBJDID); tpp.AddString("WFID", sWFID); tpp.AddString("WFINST", sWFINST); tpp.CallAction = TPageCallAction.pcaBrowse; OpenDialog(tpp); } else { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); sNode = Node.Value; if (sNode.Equals("BDBJ")) { SetBDBJRecord(); } else { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLXSBJCXList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("KHSZDPRO", cbxKHSZDPRO.SelectedValue.Trim()); pageParams.AddString("KHSZDCITY", cbxKHSZDCITY.SelectedValue.Trim()); pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("TXY", GetTXYValue()); pageParams.AddString("KH", txtKH.Text.Trim()); pageParams.AddString("KHLXR", txtKHLXR.Text.Trim()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) { pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } } pageParams.AddString("BJDYZ", txtBJDYZ.Text); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("TJYSList", txtTJYSList.Text); pageParams.AddString("YZWPIDList", txtYZWPIDList.Text); pageParams.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text); pageParams.AddString("WPID", txtWPID.Value); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked() ? "Y" : "N"); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 if (sNode.Equals("HBBJ")) { pageParams.AddString("FromBJDINFO", "HBBJ"); OpenModuleDialog(100860069, pageParams); } else if (sNode.Equals("CFBJ")) { pageParams.AddString("FromBJDINFO", "CFBJ"); OpenModuleDialog(100860069, pageParams); } } } } private void SetBDBJRecord() { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); //说明存在过比对了 SQL.Clear(); SQL.Add(" select TOP 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID =:pBJDID and XLXSBJDBDMX_BDBZ <> '0' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet dsBJDBDMX = dberp.OpenDataSet(SQL); if (dsBJDBDMX.Tables[0].Rows.Count > 0) { //不做处理 } else { SQL.Clear(); SQL.Add(" delete from XLXSBJDBDMX where XLXSBJDBDMX_BJDID =:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); InsBDMXRecord(txtBJDID.Text.Trim()); } TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_BDBJList.aspx"; //------ //------ tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("BJRQ", datBJRQ.Text); tpp.AddString("KH", txtKH.Text.Trim()); tpp.AddString("XM", txtXM.Text.Trim()); tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); tpp.AddString("JGCIDS", txtJGCIDS.Text.Trim()); tpp.AddString("BJLY", txtBJLY.Text.Trim()); tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); tpp.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } tpp.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); tpp.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); tpp.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); tpp.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); tpp.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); tpp.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); tpp.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); tpp.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); tpp.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); tpp.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); if (_CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && entity.CanEdit()) { tpp.AddString("CanEdit","Y"); } else { tpp.AddString("CanEdit", "N"); } tpp.AddString("BJDYZ", txtBJDYZ.Text); tpp.AddString("TJYSList", txtTJYSList.Text); if (cbxPJLX.Style["display"] == "none") tpp.AddString("HiddenPJLX", "Y"); OpenDialogClickBtn(tpp, btnRefreshGLBJD.ClientID); } private void InsBDMXRecord(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" insert into XLXSBJDBDMX( "); SQL.Add(" XLXSBJDBDMX_BJDID, "); SQL.Add(" XLXSBJDBDMX_XH, "); SQL.Add(" XLXSBJDBDMX_CPBJ, "); SQL.Add(" XLXSBJDBDMX_CLCBJCL, "); SQL.Add(" XLXSBJDBDMX_JGBBJJCL, "); SQL.Add(" XLXSBJDBDMX_BDBZ, "); SQL.Add(" XLXSBJDBDMX_BDBJDID, "); SQL.Add(" XLXSBJDBDMX_BDXH) "); SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH, "); SQL.Add(" XLXSBJDMX_CPBJ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL, "); SQL.Add(" '0',' ',0 "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and not exists "); SQL.Add(" ( "); SQL.Add(" select 1 "); SQL.Add(" from XLXSBJDBDMX "); SQL.Add(" where XLXSBJDBDMX_BJDID=XLXSBJDMX_BJDID "); SQL.Add(" ) "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); } //刷新 protected void btnRefreshGLBJD_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); entity.BJDID = txtBJDID.Text.Trim(); //分页模式下,传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.DataBind(); grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; if (grdXLBJDMX.RowCount <= 0) { btnBJLR.Enabled = false; btnCLCB.Enabled = false; } else { btnBJLR.Enabled = true; btnCLCB.Enabled = true; } btnAGXJLUHZ.Enabled = btnBJLR.Enabled; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); UpdateXLXSBJD(dberp, SQL, bjflxx, false); //根据报价分类计算最低限价 XLBJDUtils.UpdateZDXJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU002")); XLBJDUtils.UpdateJSJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU002")); LoadRecord(); RefreshForm(); SetControlState(); TComboBox.SetComboBox("DBERP", cbxPJLX, string.Format("select SFPJ_PJLX,case isnull(SFPJ_TYBZ,' ') when 'Y' then rtrim(SFPJ_PJMC)||'(停用)' else SFPJ_PJMC end as Name from SFPJ where SFPJ_PJLX='{0}'", cbxPJLX.SelectedValue.Trim()), true); MenuAreaUpdate(); FormAreaUpdate(); } #endregion #region 撞单分析按钮 protected void btnZDFX_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "ZDFXList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(100860068, pageParams,btnRefreshCLHQTZ.ClientID); } #endregion #region 报价反馈按钮 protected void btnBJFK_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(" select AMID,AMNAME from ACTIVEMODULE "); SQL.Add(" where AMSTDMD=100860046 "); SQL.Add(" order by AMID "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sUFC_MDID = ds.Tables[0].Rows[0][0].ToString().Trim(); string path = "../components/"; ModuleInfo MdInfo = MacInfoUtils.GetModuleInfo(CMISproConvert.StrToInt(sUFC_MDID)); if (MdInfo != null && MdInfo.MacInfo != null) { path = path + MdInfo.MacInfo.ClassId + "/" + MdInfo.PageFile; } else { return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = path; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(CMISproConvert.StrToInt(sUFC_MDID), pageParams); } else { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "CXBJDList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); string sFunction = "function CallBackFun() {document.getElementById('" + btnReLoad.ClientID + "').click();}"; OpenModuleDialogWithCallBack(100860046, pageParams, "CallBackFun", sFunction); } } #endregion //重新加载记录 protected void btnReLoad_Click(object sender, EventArgs e) { //txtBJDID.Text = sBJDID;--打开指定记录 InitQueryString(); ControlState = TControlState.ctsBrowse; LoadRecord(); RefreshForm(); SetControlState(); SetComboxItems(); MenuAreaUpdate(); FormAreaUpdate(); } //protected void btnRefreshBJLR_Click(object sender, EventArgs e) //{ // entity.BJDID = txtBJDID.Text.Trim(); // entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); // entity.XLXSBJDMX.Query(); // grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; // grdXLBJDMX.DataBind(); // grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; // LoadRecord(); // FormAreaUpdate(); //} //bHSBZ:表价含税标志 public static void GetFromJGB(string sXLXHID, string sXLGGID, string sST, string sDYDJ, string sJGBID, string sJGCIDS, bool bHSBZ, string sBJU018, ref string sCPJJ, ref string sJJ, ref string sCLCB) { sDYDJ = sDYDJ.Equals("") ? " " : sDYDJ; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" select XLXSJGBMX_HSBJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSBJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJM,XLXSJGBMX_HSJJM,XLXSJGBMX_WSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW,XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGBMX_SYXH "); sql.Add(" from XLXSJGBMX "); //sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); else { sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); } sql.Add(" where XLXSJGBMX_XLXHID=:pTZ and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pBZ and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJ"); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); else { sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); sql.ParamByName("pJGBID").Value = sJGBID.Trim(); } sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); sql.ParamByName("pTZ").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pBZ").Value = sST; sql.ParamByName("pDYDJ").Value = sDYDJ; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { if (bHSBZ) { sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim(); } else { sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim(); } } else { if (bHSBZ) { sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim(); } else { sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim(); } } if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) { if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim()) == 0) { if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { //成本价、出厂价价格表的基价即材料成本 if (bHSBZ) { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); } else { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); } } else { //成本价、出厂价价格表的基价即材料成本 if (bHSBZ) { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); } else { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); } } } else { GetSYJGBCLCB(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim(), sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCLCB); } } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) { //区域价所依出厂价的基价即材料成本 string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); sql.Clear(); sql.Add("select XLXSJGBMX_JGBID,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW "); sql.Add("from XLXSJGBMX "); sql.Add("where " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); sql.Add(" order by XLXSJGBMX_JGBID"); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pXLBZID").Value = sST; sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); DataSet dsJGBMX = dberp.OpenDataSet(sql); if (dsJGBMX.Tables[0].Rows.Count > 0) { string sCCJLDW = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sCCJLDW.ToUpper())) { if (bHSBZ) { sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); } else { sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); } } else { if (bHSBZ) { sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); } else { sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); } } } else sCLCB = ""; } else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3")) { //现厂价所依出厂价的基价即材料成本 string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); double dHSBJ_JGBTJYS1 = 0; double dHSJJ_JGBTJYS1 = 0; double dWSBJ_JGBTJYS1 = 0; double dWSJJ_JGBTJYS1 = 0; double dHSBJ_JGBTJYS3 = 0; double dHSJJ_JGBTJYS3 = 0; double dWSBJ_JGBTJYS3 = 0; double dWSJJ_JGBTJYS3 = 0; //因素3报价产品 if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { dHSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); dHSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); dWSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); dWSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); } else { dHSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); dHSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); dWSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); dWSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); } double dCLCB = 0; //因素3型号加点对照产品没有清单 if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim()) == 0) { //根据因素3报价产品取因素1报价产品 sql.Clear(); sql.Add("select XLXSJGBMX_JGBID,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJM,XLXSJGBMX_HSJJM,XLXSJGBMX_WSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW "); sql.Add("from XLXSJGBMX "); sql.Add("where " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); sql.Add(" order by XLXSJGBMX_JGBID"); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pXLBZID").Value = sST; sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); DataSet dsJGBMX = dberp.OpenDataSet(sql); if (dsJGBMX.Tables[0].Rows.Count > 0) { string sCCJLDW = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sCCJLDW.ToUpper())) { if (bHSBZ) { dHSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); dHSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); } else { dWSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); dWSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); } } else { if (bHSBZ) { dHSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); dHSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); } else { dWSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); dWSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); } } } // if (bHSBZ) { dCLCB = dHSJJ_JGBTJYS3 - dHSBJ_JGBTJYS1 + dHSJJ_JGBTJYS1; } else { dCLCB = dWSJJ_JGBTJYS3 - dWSBJ_JGBTJYS1 + dWSJJ_JGBTJYS1; } } sCLCB = dCLCB.ToString().Trim(); } } else { sCPJJ = ""; sJJ = ""; sCLCB = ""; } } public static void GetSYJGBCLCB(string sJGBXH, string sJGBID, string sJGCIDS, bool bHSBZ, string sBJU018, ref string sCLCB) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" select XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW,XLXSJGB_TJYS,XLXSJGB_JGBIDS "); sql.Add(" from XLXSJGBMX "); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); else { sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); } sql.Add(" where XLXSJGBMX_XH=:pJGBXH "); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); else { sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); sql.ParamByName("pJGBID").Value = sJGBID.Trim(); } sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); sql.ParamByName("pJGBXH").Value = CMISproConvert.StrToFloat(sJGBXH); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) { string sJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) { //成本价、出厂价价格表的基价即材料成本 if (bHSBZ) { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); } else { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); } } else { //成本价、出厂价价格表的基价即材料成本 if (bHSBZ) { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); } else { sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); } } } } } protected bool IsExist(string sXLXHID, string sXLGGID, string sST, string sDYDJ, string sJGBID, string sJGCIDS) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); try { TSQL sql = new TSQL(dberp); DataSet ds; if (XLBJDUtils.IsJGEJGB(sJGBID))//表价实时计算价格表 { sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pTZ and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pBZ and XLXSCLQD_DYDJID=:pDYDJ and XLXSCLQD_WPID='ZZZZ'"); sql.ParamByName("pTZ").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pBZ").Value = sST; sql.ParamByName("pDYDJ").Value = sDYDJ; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { return true; } else return false; } else { sql.Add(" select 1 from XLXSJGBMX where XLXSJGBMX_XLXHID=:pTZ and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pBZ and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJ "); if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表 sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); else { sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); sql.ParamByName("pJGBID").Value = sJGBID; } sql.ParamByName("pTZ").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pBZ").Value = sST; sql.ParamByName("pDYDJ").Value = sDYDJ; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { return true; } else return false; } } catch (Exception ex) { ShowMessage(ex.Message); return false; } } #region 材料用量制定 protected void btnCLCYZD_DropDown(object sender, EventArgs e) { btnCLCYZD.Nodes.Clear(); btnCLCYZD.Nodes.Add(new gtTreeNode("XDBJCP", "修订报价产品")); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZD_WFID from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sWPID = TWorkflow.Utils.WFGetBZSWID(ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim(), ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim()); if (sWPID.Equals("0060") || ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim().Equals("ZZZZ")) { btnCLCYZD.Nodes[0].Enabled = true; } else { btnCLCYZD.Nodes[0].Enabled = false; } if (XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_YLZDMXTZ == "Y") { btnCLCYZD.Nodes.Add(new gtTreeNode("YLZDMXTZ", "用量制定申请明细调整")); btnCLCYZD.Nodes[1].Enabled = false; if( sWPID.Equals("0010")) btnCLCYZD.Nodes[1].Enabled = true; } } else { btnCLCYZD.Nodes[0].Enabled = false; } string sCLYLZJFS = string.Empty; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; if (sCLYLZJFS.Equals("4")) btnCLCYZD.Nodes[0].Enabled = false; MenuAreaUpdate(); } protected void btnCLCYZD_MenuItemClick(object sender, string value) { switch (value) { case "XDBJCP": UpdateBJCPByCLCYZD(txtBJDID.Text.Trim()); break; case "YLZDMXTZ": TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQTZOper.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); break; } } protected void btnYLZDFP_DropDown(object sender, EventArgs e) { btnYLZDFP.Nodes.Clear(); btnYLZDFP.Nodes.Add(new gtTreeNode("XDBJCP", "修订报价产品")); bool bXDBJCP = true; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZD_WFID from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow trow in ds.Tables[0].Rows) { string sWPID = TWorkflow.Utils.WFGetBZSWID(trow["XLXSBJYLZD_WFID"].ToString().Trim(), trow["XLXSBJYLZD_WPID"].ToString().Trim()); if (!sWPID.Equals("0060") && !trow["XLXSBJYLZD_WPID"].ToString().Trim().Equals("ZZZZ")) bXDBJCP = false; } } else bXDBJCP = false; btnYLZDFP.Nodes[0].Enabled = bXDBJCP; string sCLYLZJFS = string.Empty; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; if (sCLYLZJFS.Equals("4")) btnYLZDFP.Nodes[0].Enabled = false; MenuAreaUpdate(); } protected void btnYLZDFP_MenuItemClick(object sender, string value) { switch (value) { case "XDBJCP": UpdateBJCPByCLCYZD(txtBJDID.Text.Trim()); break; } } public static void UpdateSQL_BJDID(string sTableName,string sDZBJDID,string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sSQL= string.Format("update {0} set {0}_BJDID=:pDZBJDID where {0}_BJDID=:pBJDID ", sTableName); SQL.Clear(); SQL.Add(sSQL); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pDZBJDID").Value = sDZBJDID; dberp.ExecSQL(SQL); } protected void btnDZ_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sDZBJDID = string.Empty; string sDZ = "N"; if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJD where XLXSBJD_DZ='Y' and XLXSBJD_BJDID='" + txtBJDID.Text.Trim() + "'")) { sDZBJDID = txtBJDID.Text.Trim().Replace("定", ""); } else { sDZBJDID = txtBJDID.Text.Trim() + "定"; sDZ = "Y"; if (!sDZBJDID.Equals(XLBJDUtils.SubStringFunc(sDZBJDID, 20))) { ShowMessage("报价单号长度超长,无法增加“定”!"); return; } } SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_BJDID=:pDZBJDID,XLXSBJD_DZ=:pDZ where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pDZBJDID").Value = sDZBJDID; SQL.ParamByName("pDZ").Value = sDZ; dberp.ExecSQL(SQL); UpdateSQL_BJDID("XLXSBJDMX", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDYZZ0", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDMXFD", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDMXZP", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDCLCB", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDJJYZ", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDCLHQ", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDWLHQ", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDBDMX", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLWBBJDML", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLWBBJDLM", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLWBBJDNR", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLWBBJDMX", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDYZZC", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJZDCZ", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJKZXX", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJDGYJD", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJYLZD", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJFKCFMX", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("BJDCLYLBL", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("CLYLZDFP", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJAIWDJXRW", sDZBJDID, txtBJDID.Text.Trim()); UpdateSQL_BJDID("XLXSBJAIWD", sDZBJDID, txtBJDID.Text.Trim()); txtBJDID.Text = sDZBJDID; btnOnlyRefresh_Click(null, null); } protected void btnCLCYZD_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WFID,XLXSBJYLZD_WFINST from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds= dberp.OpenDataSet(SQL); if(ds.Tables[0].Rows.Count > 0) { //打开记录浏览 TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQInfo.aspx"; //列表页参数 pageParams.AddString("XLXSBJYLZD_SQDH", ds.Tables[0].Rows[0]["XLXSBJYLZD_SQDH"].ToString().Trim()); pageParams.AddString("WFID", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim()); pageParams.AddString("WFINST", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFINST"].ToString().Trim()); OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); } else { //“102579007|材料用量制定申请”模块中的页面CLYLZDSQOper.aspx TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQOper.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); } } protected void btnYLZDFP_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDPFList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(102579014, pageParams, btnRefresh1.ClientID); } /// /// 根据XLXSBJYLZD_BJDID、XLXSBJYLZDMX_BJDXH更新报价单明细记录的“型号”、“规格”、“标准”、“电压等级”, /// 并依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 /// (更新效果应和当下手动修订“型号”、“规格”、“标准”、“电压等级”触发的数据重算效果一致) /// /// private void UpdateBJCPByCLCYZD(string sBJDID) { string sTag = ""; if (ExitsCZBPS()) sTag = "【存在修订后产品正在派生用量中】"; Confirm.Register("IsQD", "将依“材料用量制定申请”修订后的产品更新对应的明细产品" + sTag + ",并重新报价,是否继续?"); 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(); } string sError = "0"; string sXH = ""; string sXHList = ""; string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; string sXLYSID = ""; string sDZSC = ""; string sXDXLBZID = ""; string sDateTime = DateTime.Now.ToString().Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" SELECT XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,isnull(CPMLMC,' ') as XLXSCPML_CPMLMC ,XLXSBJDMX_BJCPSD,isnull(ZHCPMLMC,' ') as ZHCPMLMC, "); SQL.Add(" XLXSBJYLZD_BJDID,XLXSBJYLZDMX_BJDXH, "); SQL.Add(" XLXSBJYLZDMX_BJDXLXHID,XLXSBJYLZDMX_BJDXLGGID,XLXSBJYLZDMX_BJDXLBZID, XLXSBJYLZDMX_BJDDYDJID, "); SQL.Add(" XLXSBJYLZDMX_XLXHID,XLXSBJYLZDMX_XLGGID,XLXSBJYLZDMX_XLBZID,XLXSBJYLZDMX_XDXLBZID, XLXSBJYLZDMX_DYDJID, "); SQL.Add(" XLXSBJYLZDMX_DZSC, "); SQL.Add(" XLXSBJDMX_BZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_XLYSID "); SQL.Add(" from XLXSBJYLZDMX "); SQL.Add(" left join XLXSBJYLZD ON XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH "); SQL.Add(" left join XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJYLZD_BJDID and XLXSBJDMX_XH = XLXSBJYLZDMX_BJDXH "); SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJYLZDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJYLZDMX_DYDJID, ' ') "); SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJYLZDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); //SQL.Add(" left join XLXSCPML DY on DY.XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(@" left join (select DY.XLXSCPML_CPMLID as CPMLID ,DY.XLXSCPML_CPMLMC as CPMLMC ,min(ZH.XLXSCPML_CPMLMC) as ZHCPMLMC from XLXSCPML DY left join XLXSCPML ZH on ','||rtrim(ZH.XLXSCPML_CPMLIDS)||',' like '%,'||rtrim(DY.XLXSCPML_CPMLID)||',%' group by DY.XLXSCPML_CPMLID,DY.XLXSCPML_CPMLMC ) CPML on CPML.CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end "); SQL.Add(" where 1=1 "); SQL.Add(" and isnull(XLXSBJYLZDMX_BZDBZ,'N') ='N' "); SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "); SQL.Add(" and XLXSBJYLZD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); double fBJSL = 0; string sBJFLID = ""; string sXSQYID = ""; string sPJLX = ""; string sFKQXNR = ""; string sSYDWID = ""; string sLJJCLLX = ""; string sJCLLX = ""; string sCPBJMRXSWS = ""; string sCPMLMC = ""; string sZHCPMLMC = ""; string sBJCPSD=""; try { dberp.BeginTrans(); #region 先完成报价单明细四要素的更新。 sError = "1"; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); sDZSC = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DZSC"].ToString().Trim(); sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); sXDXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XDXLBZID"].ToString().Trim(); sCPMLMC = ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(); sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); sBJCPSD=ds.Tables[0].Rows[i]["XLXSBJDMX_BJCPSD"].ToString().Trim(); SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_XLXHID = :pXLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID=:pXLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID = :pXLXSBJDMX_XLXHID, "); SQL.Add(" XLXSBJDMX_XLBZID= :pXLXSBJDMX_XLBZID, XLXSBJDMX_XDXLBZID= :pXLXSBJDMX_XDXLBZID,XLXSBJDMX_DYDJID=:pXLXSBJDMX_DYDJID,"); SQL.Add(" XLXSBJDMX_DZSC= :pXLXSBJDMX_DZSC,XLXSBJDMX_CPMLMC=:pCPMLMC,XLXSBJDMX_ZHCPMLMC=:pZHCPMLMC,XLXSBJDMX_GYKH=:pGYKH,"); SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); if (!sBJCPSD.Equals("Y") && GetOption("BJU011").Trim() == "Y") { SQL.Add(",XLXSBJDMX_BJCP=:pBJCP "); SQL.ParamByName("pBJCP").Value = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID); } SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID and XLXSBJDMX_XH=:pXLXSBJDMX_XH "); SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; SQL.ParamByName("pXLXSBJDMX_XH").Value = sXH; SQL.ParamByName("pXLXSBJDMX_XLXHID").Value = sXLXHID; SQL.ParamByName("pXLXSBJDMX_XLGGID").Value = sXLGGID; SQL.ParamByName("pXLXSBJDMX_XLBZID").Value = sXLBZID; SQL.ParamByName("pXLXSBJDMX_XDXLBZID").Value = sXDXLBZID; SQL.ParamByName("pXLXSBJDMX_DYDJID").Value = sDYDJID; SQL.ParamByName("pXLXSBJDMX_DZSC").Value = sDZSC; SQL.ParamByName("pCPMLMC").Value = sCPMLMC; SQL.ParamByName("pZHCPMLMC").Value = sZHCPMLMC; if (XLBJDUtils.ExistGYKH()) { SQL.ParamByName("pGYKH").Value = XLBJDUtils.GetGYKH(sXLBZID); } else { SQL.ParamByName("pGYKH").Value = ""; } SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, sBJDID); #endregion //依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 #region 修订报价产品时,补充新添加的报价材料行情 XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, sBJDID,datBJRQ.Text.Trim(),chkJZBJHS.Checked, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value, txtLJ.Value, CurSession.UserName, CurSession.UserId); #endregion #region 先调用公用方法完成表价料价等价格的赋值 sError = "2"; Dictionary dic = new Dictionary(); double fCLZL = 0; double dCPJJ = 0; double dJJ = 0; double dCLCB = 0; double dBJDHQCLCB = 0; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); dic.Clear(); dic.Add("sXH", sXH); dic.Add("fBJSL", ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); dic.Add("sJLDW", ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim()); dic.Add("iXSWS", iXSWS.ToString().Trim()); dic.Add("sXSQYID", cbxXSQYID.SelectedValue.Trim()); dic.Add("sBJFLID", cbxBJFLID.SelectedValue.Trim()); dic.Add("sJGBID", cbxJGBID.SelectedValue.Trim()); dic.Add("sBJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); dic.Add("sBJRQ", datBJRQ.Text.Trim()); dic.Add("sJGBIDS", txtJGBIDS.Text.Trim()); dic.Add("fJZBJHS", chkJZBJHS.Checked ? "Y" : "N"); dic.Add("sLJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); dic.Add("sJCLLX", bjflxx.XLXSBJFL_BJJCLLX); dic.Add("sBJLY", txtBJLY.Text.Trim()); dic.Add("sJSBLFS", txtJSBLFS.Text.Trim()); dic.Add("sTZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); dic.Add("sJGCIDS", txtJGCIDS.Text.Trim()); dic.Add("sJGBTJYS", txtJGBTJYS.Text.Trim()); dic.Add("sTBJCLID", bjflxx.XLXSBJFL_TBJCLID); dic.Add("sLBJCLID", bjflxx.XLXSBJFL_LBJCLID); dic.Add("sTJ", txtTJ.Value.ToString()); dic.Add("sLJ", txtLJ.Value.ToString()); dic.Add("sBJU003", GetOption("BJU003")); dic.Add("sBJU018", GetOption("BJU018")); 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("update XLXSBJDJJYZ set XLXSBJDJJYZ_YZZ01=:pYZZ01,XLXSBJDJJYZ_YZZ02=:pYZZ02,XLXSBJDJJYZ_YZZ03=:pYZZ03,XLXSBJDJJYZ_YZZ04=:pYZZ04,XLXSBJDJJYZ_YZZ05=:pYZZ05,"); SQL.Add(" XLXSBJDJJYZ_YZZ06=:pYZZ06,XLXSBJDJJYZ_YZZ07=:pYZZ07,XLXSBJDJJYZ_YZZ08=:pYZZ08,XLXSBJDJJYZ_YZZ09=:pYZZ09,XLXSBJDJJYZ_YZZ10=:pYZZ10,XLXSBJDJJYZ_YZZ11=:pYZZ11,XLXSBJDJJYZ_YZZ12=:pYZZ12,XLXSBJDJJYZ_YZZ13=:pYZZ13,XLXSBJDJJYZ_YZZ14=:pYZZ14,XLXSBJDJJYZ_YZZ15=:pYZZ15,XLXSBJDJJYZ_YZZ16=:pYZZ16,XLXSBJDJJYZ_YZZ17=:pYZZ17,XLXSBJDJJYZ_YZZ18=:pYZZ18,XLXSBJDJJYZ_YZZ19=:pYZZ19,XLXSBJDJJYZ_YZZ20=:pYZZ20 "); SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:pBJDXH"); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sXH; 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"]; SQL.ParamByName("pYZZ11").Value = dicJJYZList_JGE["JZ11"]; SQL.ParamByName("pYZZ12").Value = dicJJYZList_JGE["JZ12"]; SQL.ParamByName("pYZZ13").Value = dicJJYZList_JGE["JZ13"]; SQL.ParamByName("pYZZ14").Value = dicJJYZList_JGE["JZ14"]; SQL.ParamByName("pYZZ15").Value = dicJJYZList_JGE["JZ15"]; SQL.ParamByName("pYZZ16").Value = dicJJYZList_JGE["JZ16"]; SQL.ParamByName("pYZZ17").Value = dicJJYZList_JGE["JZ17"]; SQL.ParamByName("pYZZ18").Value = dicJJYZList_JGE["JZ18"]; SQL.ParamByName("pYZZ19").Value = dicJJYZList_JGE["JZ19"]; SQL.ParamByName("pYZZ20").Value = dicJJYZList_JGE["JZ20"]; dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_JGBBJ = :pJGBBJ, "); SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N', "); SQL.Add(" XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); SQL.Add(" XLXSBJDMX_JGBJJ = :pJGBJJ, "); SQL.Add(" XLXSBJDMX_CLCB = :pCLCB, "); SQL.Add(" XLXSBJDMX_BJDHQCLCB = :pBJDHQCLCB, "); SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N', "); SQL.Add(" XLXSBJDMX_WGCPBZ = :pWGCPBZ, "); SQL.Add(" XLXSBJDMX_JGFBZ = :pJGBZ, "); SQL.Add(" XLXSBJDMX_CLZL = :pCLZL "); SQL.Add(" where 1=1 "); SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pJGBBJ").Value = dCPJJ; SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pJGBJJ").Value = dJJ; SQL.ParamByName("pCLCB").Value = dCLCB; SQL.ParamByName("pBJDHQCLCB").Value = dBJDHQCLCB; SQL.ParamByName("pCLZL").Value = fCLZL; SQL.ParamByName("pWGCPBZ").Value = sWGCPBZ; SQL.ParamByName("pJGBZ").Value = sJGFBZ; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pXH").Value = sXH; dberp.ExecSQL(SQL); } #endregion #region 再调用公用函数 完成因子的赋值XLXSBJDYZZ0 sError = "3"; sBJFLID = cbxBJFLID.SelectedValue.Trim(); sXSQYID = cbxXSQYID.SelectedValue.Trim(); sPJLX = cbxPJLX.SelectedValue.Trim(); sFKQXNR = cbxFKQXNR.SelectedValue.Trim(); sSYDWID = cbxSYDWID.SelectedValue.Trim(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); sXLYSID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLYSID"].ToString().Trim(); fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); XLBJDUtils.InsertXLXSBJDYZZ0(dberp, SQL, sBJFLID, sBJDID, CMISproConvert.StrToInt(sXH), fBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sXSQYID, sPJLX, sFKQXNR, sSYDWID, ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(), GetOption("BJU003"), "N", sXLYSID); } #endregion #region 完成XLXSBJDCLCB更新 sError = "4"; //XLXSBJDCLCB TControlState tmpState = TControlState.ctsEdit; InsertCLCBandJJYZ(tmpState, sBJDID, cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption("BJU003"), chkJZBJHS.Checked); #endregion #region 最后调用公共函数完成根据因子从表价到报价的计算,价差率等计算 sError = "5"; sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXHList = sXHList + ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim() + ","; } sXHList = sXHList.TrimStart(',').TrimEnd(','); XLBJDUtils.DeleteBJDCLYLBL(dberp, sBJDID, sBJFLID, sXHList); XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, 0, false, false, false, "", DateTime.MinValue, true); #endregion #region 短米校验和修正 sError = "6"; XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, GetOption("BJU002"), GetOption("BJU003")); #endregion #region 完成主表记录的回填,总金额,总重量等 -- 最低限价毛利率计算 --刷新界面 sError = "7"; btnRefreshDRBJDMX_Click(null, null); #endregion ShowMessage("修订完成!"); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("修订报价产品出现异常,请联系系统管理员。详细信息:" + sError + "|" + ex.ToString().Trim()); } } } private bool ExitsCZBPS() { return CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBML where isnull(XLJGCZBML_PSCLYLZT,'R') = 'I' ");//SQL语句自测:刘青棚2024/12/21 02:30:00 } private void UpdateBJCPByXLBZID(string sBJDID, string sBJDXHList,string sDZSC) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sError = "0"; string sXH = ""; string sXHList = ""; string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; string sXLYSID = ""; string sXDXLBZID = ""; #region 先完成报价单明细四要素的更新。 sError = "1"; SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_XLBZID= :pXLXSBJDMX_XLBZID,XLXSBJDMX_DZSC=:pDZSC, "); SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; SQL.ParamByName("pXLXSBJDMX_XLBZID").Value = txtPLSZBZID.Value.Trim(); SQL.ParamByName("pDZSC").Value = sDZSC; SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion string sDateTime = DateTime.Now.ToString().Trim(); SQL.Clear(); SQL.Add(" SELECT XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLBZID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,"); SQL.Add(" XLXSBJDMX_BJSL,XLXSBJDMX_JLDW,XLXSBJDMX_XLYSID,XLXSBJDMX_BZ,XLXSBJDMX_WGCPBZ "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { #region 创建临时表 DateTime TimeStamp = MISproUtils.GetServerTime(); int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1; SQL.Clear(); SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )"); SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); if (!sBJDXHList.Trim().Equals("")) SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); SQL.ParamByName("pID").Value = VnewID; SQL.ParamByName("pTime").Value = TimeStamp; SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; dberp.ExecSQL(SQL); #endregion BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); double fBJSL = 0; string sBJFLID = ""; string sXSQYID = ""; string sPJLX = ""; string sFKQXNR = ""; string sSYDWID = ""; string sLJJCLLX = ""; string sJCLLX = ""; string sCPBJMRXSWS = ""; try { dberp.BeginTrans(); //依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 #region 先调用公用方法完成表价料价等价格的赋值 sError = "2"; Dictionary dic = new Dictionary(); double fCLZL = 0; double dCPJJ = 0; double dJJ = 0; double dCLCB = 0; double dBJDHQCLCB = 0; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXH = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); sXDXLBZID = sXLBZID; dic.Clear(); dic.Add("sXH", sXH); dic.Add("fBJSL", ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); dic.Add("sJLDW", ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim()); dic.Add("iXSWS", iXSWS.ToString().Trim()); dic.Add("sXSQYID", cbxXSQYID.SelectedValue.Trim()); dic.Add("sBJFLID", cbxBJFLID.SelectedValue.Trim()); dic.Add("sJGBID", cbxJGBID.SelectedValue.Trim()); dic.Add("sBJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); dic.Add("sBJRQ", datBJRQ.Text.Trim()); dic.Add("sJGBIDS", txtJGBIDS.Text.Trim()); dic.Add("fJZBJHS", chkJZBJHS.Checked ? "Y" : "N"); dic.Add("sLJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); dic.Add("sJCLLX", bjflxx.XLXSBJFL_BJJCLLX); dic.Add("sBJLY", txtBJLY.Text.Trim()); dic.Add("sJSBLFS", txtJSBLFS.Text.Trim()); dic.Add("sTZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); dic.Add("sJGCIDS", txtJGCIDS.Text.Trim()); dic.Add("sJGBTJYS", txtJGBTJYS.Text.Trim()); dic.Add("sTBJCLID", bjflxx.XLXSBJFL_TBJCLID); dic.Add("sLBJCLID", bjflxx.XLXSBJFL_LBJCLID); dic.Add("sTJ", txtTJ.Text.Trim()); dic.Add("sLJ", txtLJ.Text.Trim()); dic.Add("sBJU003", GetOption("BJU003")); dic.Add("sBJU018", GetOption("BJU018")); 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("update XLXSBJDJJYZ set XLXSBJDJJYZ_YZZ01=:pYZZ01,XLXSBJDJJYZ_YZZ02=:pYZZ02,XLXSBJDJJYZ_YZZ03=:pYZZ03,XLXSBJDJJYZ_YZZ04=:pYZZ04,XLXSBJDJJYZ_YZZ05=:pYZZ05,"); SQL.Add(" XLXSBJDJJYZ_YZZ06=:pYZZ06,XLXSBJDJJYZ_YZZ07=:pYZZ07,XLXSBJDJJYZ_YZZ08=:pYZZ08,XLXSBJDJJYZ_YZZ09=:pYZZ09,XLXSBJDJJYZ_YZZ10=:pYZZ10,XLXSBJDJJYZ_YZZ11=:pYZZ11,XLXSBJDJJYZ_YZZ12=:pYZZ12,XLXSBJDJJYZ_YZZ13=:pYZZ13,XLXSBJDJJYZ_YZZ14=:pYZZ14,XLXSBJDJJYZ_YZZ15=:pYZZ15,XLXSBJDJJYZ_YZZ16=:pYZZ16,XLXSBJDJJYZ_YZZ17=:pYZZ17,XLXSBJDJJYZ_YZZ18=:pYZZ18,XLXSBJDJJYZ_YZZ19=:pYZZ19,XLXSBJDJJYZ_YZZ20=:pYZZ20 "); SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:pBJDXH"); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sXH; 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"]; SQL.ParamByName("pYZZ11").Value = dicJJYZList_JGE["JZ11"]; SQL.ParamByName("pYZZ12").Value = dicJJYZList_JGE["JZ12"]; SQL.ParamByName("pYZZ13").Value = dicJJYZList_JGE["JZ13"]; SQL.ParamByName("pYZZ14").Value = dicJJYZList_JGE["JZ14"]; SQL.ParamByName("pYZZ15").Value = dicJJYZList_JGE["JZ15"]; SQL.ParamByName("pYZZ16").Value = dicJJYZList_JGE["JZ16"]; SQL.ParamByName("pYZZ17").Value = dicJJYZList_JGE["JZ17"]; SQL.ParamByName("pYZZ18").Value = dicJJYZList_JGE["JZ18"]; SQL.ParamByName("pYZZ19").Value = dicJJYZList_JGE["JZ19"]; SQL.ParamByName("pYZZ20").Value = dicJJYZList_JGE["JZ20"]; dberp.ExecSQL(SQL); } SQL.Clear(); SQL.Add("update XLXSBJDMX set "); SQL.Add(" XLXSBJDMX_JGBBJ = :pJGBBJ, "); SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N', "); SQL.Add(" XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); SQL.Add(" XLXSBJDMX_JGBJJ = :pJGBJJ, "); SQL.Add(" XLXSBJDMX_CLCB = :pCLCB, "); SQL.Add(" XLXSBJDMX_BJDHQCLCB = :pBJDHQCLCB, "); SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N', "); SQL.Add(" XLXSBJDMX_WGCPBZ = :pWGCPBZ, "); SQL.Add(" XLXSBJDMX_JGFBZ = :pJGBZ, "); SQL.Add(" XLXSBJDMX_CLZL = :pCLZL, "); SQL.Add(" XLXSBJDMX_XDXLBZID = :pXDXLBZID "); SQL.Add(" where 1=1 "); SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" and XLXSBJDMX_XH = :pXH "); SQL.ParamByName("pJGBBJ").Value = dCPJJ; SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); SQL.ParamByName("pJGBJJ").Value = dJJ; SQL.ParamByName("pCLCB").Value = dCLCB; SQL.ParamByName("pBJDHQCLCB").Value = dBJDHQCLCB; SQL.ParamByName("pCLZL").Value = fCLZL; SQL.ParamByName("pWGCPBZ").Value = sWGCPBZ; SQL.ParamByName("pJGBZ").Value = sJGFBZ; SQL.ParamByName("pXDXLBZID").Value = sXDXLBZID; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pXH").Value = sXH; dberp.ExecSQL(SQL); } #endregion XLBJDUtils.UpdateXDXLBZID(dberp, SQL, sBJDID, "", 0,VnewID, ref sError); #region 再调用公用函数 完成因子的赋值XLXSBJDYZZ0 sError = "3"; sBJFLID = cbxBJFLID.SelectedValue.Trim(); sXSQYID = cbxXSQYID.SelectedValue.Trim(); sPJLX = cbxPJLX.SelectedValue.Trim(); sFKQXNR = cbxFKQXNR.SelectedValue.Trim(); sSYDWID = cbxSYDWID.SelectedValue.Trim(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sWGCPBZ = ds.Tables[0].Rows[i]["XLXSBJDMX_WGCPBZ"].ToString().Trim(); sXH = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); sXLYSID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLYSID"].ToString().Trim(); fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); XLBJDUtils.InsertXLXSBJDYZZ0(dberp, SQL, sBJFLID, sBJDID, CMISproConvert.StrToInt(sXH), fBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sXSQYID, sPJLX, sFKQXNR, sSYDWID, ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(), GetOption("BJU003"), sWGCPBZ, sXLYSID); } #endregion #region 完成XLXSBJDCLCB更新 sError = "4"; //XLXSBJDCLCB TControlState tmpState = TControlState.ctsEdit; InsertCLCBandJJYZ(tmpState, sBJDID, cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption("BJU003"), chkJZBJHS.Checked); #endregion #region 最后调用公共函数完成根据因子从表价到报价的计算,价差率等计算 sError = "5"; sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sXHList = sXHList + ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim() + ","; } sXHList = sXHList.TrimStart(',').TrimEnd(','); XLBJDUtils.DeleteBJDCLYLBL(dberp, sBJDID, sBJFLID, "",VnewID); XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", 0, false, false, false, "", DateTime.MinValue, false, VnewID); #endregion #region 短米校验和修正 sError = "6"; XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, GetOption("BJU002"), GetOption("BJU003")); #endregion #region 完成主表记录的回填,总金额,总重量等 -- 最低限价毛利率计算 --刷新界面 sError = "7"; btnRefreshDRBJDMX_Click(null, null); #endregion ShowMessage("调整完成!"); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("批量调整标准出现异常,请联系系统管理员。详细信息:" + sError + "|" + ex.ToString().Trim()); } #region 删除临时表 SQL.Clear(); SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID "); SQL.ParamByName("pVID").Value = VnewID; SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); #endregion } } #endregion protected void btnBJSM_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_BJSMInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("KHMC", txtKH.Text.Trim()); pageParams.AddString("CanEdit", lblZJE.Enabled ? "Y" : "N"); //Master.CanEdit值失效,使用lblZJE.Enabled进行判断 OpenDialog(pageParams); } protected void btnBZGX_Click(object sender, EventArgs e) { if (grdXLBJDMX._SelectedIndex < 0) { ShowMessage("请选择一条明细!"); return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJCPFZGXList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("XLXHID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX._SelectedIndex)); pageParams.AddString("XLGGID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX._SelectedIndex)); pageParams.AddString("XLBZID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX._SelectedIndex)); pageParams.AddString("DYDJID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX._SelectedIndex)); OpenModuleDialog(100860122, pageParams, btnRefreshCLHQTZ.ClientID); } protected void btnWJGL_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "WJGLList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenDialog(pageParams); } #region 标签点击事件 //总金额 protected void lblZJE_Click(object sender, EventArgs e) { //比对过后不允许调整 string sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已经存在比对报价记录,不允许调整报价总金额!"); return; } BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_ZJEInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("iXSWS", iXSWS.ToString().Trim()); pageParams.AddString("ZJE", txtZJE.Value.ToString().Trim()); pageParams.AddString("YSFY", txtYSFY.Value.ToString().Trim()); //Y为含运费 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF); List lst = new List(); lst.Clear(); string sFirstXH = "0"; string sBJDXHList = ""; string sBJDXHList_GX_SD = ""; string sBJDXHList_GX_WSD = ""; if (grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows)) { string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); foreach (string sIndex in sTempArr) { int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); lst.Add(sBJDXH); if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { sBJDXHList += sBJDXH + ","; } if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) { if (grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", iRowIndex).ToString().Trim().Equals("Y")) { sBJDXHList_GX_SD += sBJDXH + ","; } else { sBJDXHList_GX_WSD += sBJDXH + ","; } } } } sBJDXHList = sBJDXHList.TrimStart(',').TrimEnd(','); sBJDXHList_GX_SD = sBJDXHList_GX_SD.TrimStart(',').TrimEnd(','); sBJDXHList_GX_WSD = sBJDXHList_GX_WSD.TrimStart(',').TrimEnd(','); if (lst.Count != 0) { pageParams.AddString("GXMX", "Y"); pageParams.AddString("sBJDXHList", sBJDXHList); pageParams.AddString("sBJDXHList_GX_SD", sBJDXHList_GX_SD); pageParams.AddString("sBJDXHList_GX_WSD", sBJDXHList_GX_WSD); foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("0") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).ToString().Trim().Equals("Y")) { if (lst.Contains(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim())) { sFirstXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim(); break; } } } } else { pageParams.AddString("GXMX", "N"); foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("0") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).ToString().Trim().Equals("Y")) { sFirstXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim(); break; } } } pageParams.AddString("FirstXH", sFirstXH); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; } pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("btnRefresh1", btnRefresh1.ClientID.Trim()); OpenDialog(pageParams); } //材料总重量 protected void linkZZL_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) pageParams.UrlPath = "../Components/N_XLBJCL/XLBJD_JGECLZLList.aspx"; else pageParams.UrlPath = "../Components/N_XLBJCL/XLBJD_CLZLList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(102579012, pageParams); } //关注材料重量 protected void lblZLGZCLS_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_ZLGZCLList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("ZLGZCLS", bjflxx.XLXSBJFL_ZLGZCLS); OpenDialog(pageParams); } //项目按钮 protected void linkXM_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select XLXSBJD_XMID,XLXSBJD_KH,XLXSBJD_XMMC,YXXM_WFID, YXXM_WFINST "); SQL.Add("from XLXSBJD "); SQL.Add("left join YXXM on YXXM_XMID = XLXSBJD_XMID "); SQL.Add("where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (!ds.Tables[0].Rows[0]["YXXM_WFID"].ToString().Trim().Equals("")) { //若XLXSBJD_XMID字段不为空,则点击“项目”标签,打开对应的“100958000|售前项目”记录; TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "../Components/N_SQXM/SQXMDJInfo.aspx"; pageParams.AddString("YXXM_XMID", ds.Tables[0].Rows[0]["XLXSBJD_XMID"].ToString().Trim()); pageParams.AddString("WFID", ds.Tables[0].Rows[0]["YXXM_WFID"].ToString().Trim()); pageParams.AddString("WFInst", ds.Tables[0].Rows[0]["YXXM_WFINST"].ToString().Trim()); OpenModuleDialog(100958000, pageParams); } else { if (!ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim().Equals("")) { //点击“项目”标签,以新建状态打开“100958000|售前项目”卡片页,将报价单“客户”、“项目”传递给售前项目记录的“业主方”、“项目”,在售前项目保存时,将生成的项目编号回填更新至XLXSBJD_XMID字段。 TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaInsert; pageParams.UrlPath = "../Components/N_SQXM/SQXMDJInfo.aspx"; pageParams.AddString("XLXSBJD_BJDID", txtBJDID.Text.Trim()); pageParams.AddString("XLXSBJD_KH", ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim()); pageParams.AddString("XLXSBJD_XMMC", ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim()); OpenModuleDialog(100958000, pageParams, btnRefreshCLHQTZ.ClientID); } } } } //付款说明 protected void lblFKSM_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MsgDefList.aspx"; pageParams.Title = "付款说明信息类助手"; pageParams.AddString("XLXSBJSM_ZDM", "FKSM"); pageParams.AddString("txtZDM", txtZDM.ClientID); pageParams.AddString("txtSMID", txtSMID.ClientID); pageParams.AddString("btnCODECLASS", btnCODECLASS.ClientID.Trim()); OpenDialog(pageParams); } //报价备注 protected void lblBZ_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_MsgDefList.aspx"; pageParams.Title = "报价备注信息类助手"; pageParams.AddString("XLXSBJSM_ZDM", "BZ"); pageParams.AddString("txtZDM", txtZDM.ClientID); pageParams.AddString("txtSMID", txtSMID.ClientID); pageParams.AddString("btnCODECLASS", btnCODECLASS.ClientID.Trim()); OpenDialog(pageParams); } //客户 protected void linkKH_Click(object sender, EventArgs e) { if (!txtKH.Text.Trim().Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select KHXX_CRMKHID, KHXX_MC "); SQL.Add("from KHXX "); SQL.Add("where KHXX_MC = :pMC "); SQL.ParamByName("pMC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "../Components/N_SQKH/KHDJInfo.aspx"; pageParams.AddString("CRMKHID", ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim()); OpenModuleDialog(100956000, pageParams); } else { TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaInsert; pageParams.UrlPath = "../Components/N_SQKH/KHDJInfo.aspx"; pageParams.AddString("FromXLXSBJD", "FromXLXSBJD"); pageParams.AddString("KH", txtKH.Text.Trim()); OpenModuleDialog(100956000, pageParams); } } } //B|销售单位 protected void linkSYDWID_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; pageParams.Title = "销售单位调整"; pageParams.AddString("TJYS", "B"); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); OpenDialog(pageParams); } //8|付款期限 protected void linkFKQXNR_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; pageParams.Title = "付款期限调整"; pageParams.AddString("TJYS", "8"); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); OpenDialog(pageParams); } //8|付款期限 protected void lblFKQXTJB_OnClientClick(object sender, EventArgs e) { string sJGBID = string.Empty; List jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("BJD"); foreach (JGBMLXX jgbxx in jgbxx_List) { if (jgbxx.XLXSJGB_TJYS.Equals("8")) { sJGBID = jgbxx.XLXSJGB_JGBID; break; } } if (!sJGBID.Trim().Equals("")) { TPageParams tpp = new TPageParams(); tpp.UrlPath = "TZYZBJ8List.aspx"; tpp.AddString("JGBID", sJGBID); OpenFuncModuleDialog(100860039, tpp, btnRefreshFKQXTJB.ClientID); } } //1|付款方式 protected void lblPJLX_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; pageParams.Title = "付款方式调整"; pageParams.AddString("TJYS", "1"); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); OpenDialog(pageParams); } #endregion #region 判断模块权限 //是否有100860008模块权限 private bool CheckLL() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860008); return (DSActiveModule.IsActiveModule(100860008) && UR.Open); } //是否有100860010模块权限 private bool CheckCLCB() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860010); return (DSActiveModule.IsActiveModule(100860010) && UR.Open); } //是否有100860024模块权限 private bool CheckLJ() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860024); return (DSActiveModule.IsActiveModule(100860024) && UR.Open); } //判断模块是否存在并且是否有权限 private bool CheckModule(string sUMID) { int iUMID = CMISproConvert.StrToInt(sUMID); UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, iUMID); return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); } //是否有100860039模块权限 private bool CheckFKQXTJB() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860039); return (DSActiveModule.IsActiveModule(100860039) && UR.Open); } //是否有102579014模块权限 private bool CheckYLZDFP() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 102579014); return (DSActiveModule.IsActiveModule(102579014) && UR.Open); } //是否有100860125模块权限 private bool CheckAFZNRDRBJCP() { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860125); return (DSActiveModule.IsActiveModule(100860125) && UR.Open); } //是否注册102709000模块 public static bool CheckXSYBJSQ_SS() { return DSActiveModule.IsActiveModule(102709000); } #endregion //同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录 public static void InsertCLQDorJGBMX(string sBJDID, string sJGBID, string sJGCIDS, CMISproSession cSession) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); InsertCLQDorJGBMX(dberp, SQL, sBJDID, sJGBID, sJGCIDS, cSession); } public static void InsertCLQDorJGBMX(TDatabase dberp, TSQL SQL, string sBJDID, string sJGBID, string sJGCIDS, CMISproSession cSession) { //是否有模块权限:102579008|报价材料用量 UserRight UR = OpRightUtils.GetUserRight(cSession.UserId, 102579008); bool bRight = (DSActiveModule.IsActiveModule(102579008) && UR.Open); if (!bRight) { return; } bool bInsCLQD = false; bool bInsJGBMX = false; string sBJU003 = cSession.GetOption(100860000, "BJU003"); Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) { //仅当XLXSBJPZ_CLYLZJFS含有“0|销售报价单明细无清单触发”,才需要插入“102579008|报价材料用量”记录; //仅当XLXSBJPZ_CLYLZJFS含有“1|销售价格表明细无清单触发”,才需要插入价格表明细记录; string sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; if (sCLYLZJFS.Contains("0")) { bInsCLQD = true; } if (sCLYLZJFS.Contains("1")) { bInsJGBMX = true; } } if (TWorkflow.Utils.QYWFByWFVID("XLXSBJCLYL") && bInsCLQD) { TWorkflow awf1 = new TWorkflow(cSession, null); awf1.UMID = 102579008; awf1.CurUserID = cSession.UserId; string sWFID = awf1.GetWFID("XLXSBJCLYL"); string sYWSW = TWorkflow.Utils.WFGetYHSWID(sWFID, "0010"); #region 查询与报价单明细不匹配的材料用量记录 SQL.Clear(); SQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); SQL.Add(" XLXSCLQD_WFID,XLXSCLQD_WFINST,XLXSCLQD_WFAWAITER"); SQL.Add(" from XLXSCLQD"); SQL.Add(" where XLXSCLQD_WFID=:pWFID"); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSCLQD_WPID", sYWSW)); SQL.Add(" and XLXSCLQD_BJDID=:pBJDID"); SQL.Add(" and not exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XLXSCLQD_BJDXH"); SQL.Add(" and XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID and isnull(XLXSBJDMX_DYDJID,' ')=XLXSCLQD_DYDJID)"); SQL.ParamByName("pWFID").Value = sWFID; SQL.ParamByName("pBJDID").Value = sBJDID; DataSet dsCLYL = dberp.OpenDataSet(SQL); if (dsCLYL.Tables[0].Rows.Count > 0) { Dictionary dicDelWfinst = new Dictionary(); for (int i = 0; i < dsCLYL.Tables[0].Rows.Count; i++) { double dWfinst = CMISproConvert.StrToFloat(dsCLYL.Tables[0].Rows[i]["XLXSCLQD_WFINST"].ToString()); string sAwaiter = dsCLYL.Tables[0].Rows[i]["XLXSCLQD_WFAWAITER"].ToString().Trim(); string sGH = sAwaiter.TrimStart(',').TrimEnd(',').Split(',')[0].Trim(); awf1.WFInfo(sWFID, dWfinst, sGH); bool bCanDel = awf1.WFRights.HasRight(TWFRight.wfrCanDelete); if (bCanDel) { awf1.WFDelete(sWFID, dWfinst, ""); dicDelWfinst.Add(dWfinst, sWFID); } } if (dicDelWfinst.Keys.Count > 0) { //批量删除 SQL.Clear(); SQL.Add("delete from XLXSCLQD"); SQL.Add(" where XLXSCLQD_WFID=:pWFID"); SQL.Add(" and ("); bool bFirst = true; foreach (double dKey in dicDelWfinst.Keys) { if (bFirst) { SQL.Add(string.Format(" XLXSCLQD_WFINST={0} ", dKey)); bFirst = false; } else SQL.Add(string.Format(" or XLXSCLQD_WFINST={0} ", dKey)); } SQL.Add(" )"); SQL.ParamByName("pWFID").Value = sWFID; dberp.ExecSQL(SQL); } } #endregion //查询在XLXSCLQD中没有的数据(需排除型号、规格、标准、电压等级相同的记录) SQL.Clear(); SQL.Add("select min(XLXSBJDMX_XH) as minXH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); SQL.Add("from XLXSBJDMX "); SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and not exists(select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID "); SQL.Add(" and XLXSCLQD_XLBZID=isnull(XLXSBJDMX_XLBZID,' ') and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ')) "); SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID = XLXSBJDMX_XLXHID )"); SQL.Add(" and exists(select 1 from XLGGB where XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH )"); SQL.Add("group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); SQL.Add("order by minXH"); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet dsCLQD = dberp.OpenDataSet(SQL); for (int i = 0; i < dsCLQD.Tables[0].Rows.Count; i++) { //创建线缆销售报价材料用量之工作流实例 string sDYDJ = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim().Equals("") ? " " : dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); SQL.Clear(); SQL.Add("insert into XLXSCLQD(XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_BZ,XLXSCLQD_WHR,XLXSCLQD_WHRID,XLXSCLQD_WHSJ,"); SQL.Add("XLXSCLQD_BJDID,XLXSCLQD_BJDXH,"); SQL.Add("XLXSCLQD_CLJGBL01,XLXSCLQD_CLJGBL02,XLXSCLQD_CLJGBL03,XLXSCLQD_CLJGBL04,XLXSCLQD_CLJGBL05,XLXSCLQD_CLJGBL06,XLXSCLQD_CLJGBL07,XLXSCLQD_CLJGBL08,XLXSCLQD_CLJGBL09,XLXSCLQD_CLJGBL10,"); SQL.Add("XLXSCLQD_CLJGBL11,XLXSCLQD_CLJGBL12,XLXSCLQD_CLJGBL13,XLXSCLQD_CLJGBL14,XLXSCLQD_CLJGBL15,XLXSCLQD_CLJGBL16,XLXSCLQD_CLJGBL17,XLXSCLQD_CLJGBL18,XLXSCLQD_CLJGBL19,XLXSCLQD_CLJGBL20,"); SQL.Add("XLXSCLQD_CLJGBL21,XLXSCLQD_CLJGBL22,XLXSCLQD_CLJGBL23,XLXSCLQD_CLJGBL24,XLXSCLQD_CLJGBL25,XLXSCLQD_CLJGBL26,XLXSCLQD_CLJGBL27,XLXSCLQD_CLJGBL28,XLXSCLQD_CLJGBL29,XLXSCLQD_CLJGBL30,"); SQL.Add("XLXSCLQD_CLJGBL31,XLXSCLQD_CLJGBL32,XLXSCLQD_CLJGBL33,XLXSCLQD_CLJGBL34,XLXSCLQD_CLJGBL35,XLXSCLQD_CLJGBL36,XLXSCLQD_CLJGBL37,XLXSCLQD_CLJGBL38,XLXSCLQD_CLJGBL39,XLXSCLQD_CLJGBL40,"); SQL.Add("XLXSCLQD_CLJGBL41,XLXSCLQD_CLJGBL42,XLXSCLQD_CLJGBL43,XLXSCLQD_CLJGBL44,XLXSCLQD_CLJGBL45,XLXSCLQD_CLJGBL46,XLXSCLQD_CLJGBL47,XLXSCLQD_CLJGBL48,XLXSCLQD_CLJGBL49,XLXSCLQD_CLJGBL50,"); SQL.Add("XLXSCLQD_CLJGBL51,XLXSCLQD_CLJGBL52,XLXSCLQD_CLJGBL53,XLXSCLQD_CLJGBL54,XLXSCLQD_CLJGBL55,XLXSCLQD_CLJGBL56,XLXSCLQD_CLJGBL57,XLXSCLQD_CLJGBL58,XLXSCLQD_CLJGBL59,XLXSCLQD_CLJGBL60,"); SQL.Add("XLXSCLQD_CLJGBL61,XLXSCLQD_CLJGBL62,XLXSCLQD_CLJGBL63,XLXSCLQD_CLJGBL64,XLXSCLQD_CLJGBL65,XLXSCLQD_CLJGBL66,XLXSCLQD_CLJGBL67,XLXSCLQD_CLJGBL68,XLXSCLQD_CLJGBL69,XLXSCLQD_CLJGBL70,"); SQL.Add("XLXSCLQD_CLJGBL71,XLXSCLQD_CLJGBL72,XLXSCLQD_CLJGBL73,XLXSCLQD_CLJGBL74,XLXSCLQD_CLJGBL75,XLXSCLQD_CLJGBL76,XLXSCLQD_CLJGBL77,XLXSCLQD_CLJGBL78,XLXSCLQD_CLJGBL79,XLXSCLQD_CLJGBL80) "); SQL.Add("values(:XLXSCLQD_XLXHID,:XLXSCLQD_XLGGID,:XLXSCLQD_XLBZID,:XLXSCLQD_DYDJID,:XLXSCLQD_BZ,:XLXSCLQD_WHR,:XLXSCLQD_WHRID,:XLXSCLQD_WHSJ,"); SQL.Add(" :XLXSCLQD_BJDID,:XLXSCLQD_BJDXH,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0)"); SQL.ParamByName("XLXSCLQD_XLXHID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); SQL.ParamByName("XLXSCLQD_XLGGID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); SQL.ParamByName("XLXSCLQD_XLBZID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); SQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJ; SQL.ParamByName("XLXSCLQD_BZ").Value = string.Format("由报价单明细记录[{0}]自动生成。", sBJDID + "|" + dsCLQD.Tables[0].Rows[i]["minXH"].ToString().Trim()); SQL.ParamByName("XLXSCLQD_WHR").Value = cSession.UserName; SQL.ParamByName("XLXSCLQD_WHRID").Value = cSession.UserId; SQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now; SQL.ParamByName("XLXSCLQD_BJDID").Value = sBJDID; SQL.ParamByName("XLXSCLQD_BJDXH").Value = dsCLQD.Tables[0].Rows[i]["minXH"].ToString().Trim(); dberp.ExecSQL(SQL); //增加工作流数据 TWorkflow awf = new TWorkflow(cSession, null); awf.UMID = 102579008; awf.CurUserID = cSession.UserId; awf.WFNewInst(awf.GetWFID("XLXSBJCLYL"), cSession.UserId); dberp.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}', XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}'", awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaNewInst), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(), sDYDJ)); #region 自动提交下一步 string ssWFID = awf.WFID; double WFINST = awf.WFInst; string sAWaiter = awf.Awaiter; string sNextAwaiter = ""; //提交下一步 awf.Enabled = true; string sUser; string[] sStr = sAWaiter.Split(','); try { sUser = sStr[1]; } catch { sUser = cSession.UserId; } awf.CurUserID = sUser; awf.WFInfo(ssWFID, WFINST, sUser); TWFActionParam param = new TWFActionParam(); param.sOpinion = "报价单自动提交!"; param.sNextWFID = ssWFID; string sNWPID = ""; //---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法 TStrings wfpName = new TStrings(); wfpName.Text = awf.WFGetNextWFP(ssWFID, awf.WFGetStartWPID(ssWFID)); try { if (wfpName.Count > 1) { sNWPID = wfpName.Names(1).Trim(); } } catch { continue; } //----- param.sNextWPID = sNWPID; param.sNextNotifier = ""; if (!sNWPID.Trim().Equals("ZZZZ")) { sNextAwaiter = awf.WFGetNextAwaiter(ssWFID, sNWPID); if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250) { continue; } } else { //第一步到结束过程需要手动提交,需要调整数据,此处不做处理。 continue; } param.sNextAwaiter = "," + sNextAwaiter + ","; if (!awf.WFIsStopWPID(ssWFID, sNWPID)) param.sWFState = TWorkflow.wfsRunning; else param.sWFState = TWorkflow.wfsDone; if (awf.WFWorkIsDone(ssWFID, WFINST, sUser)) { param.sWPState = TWorkflow.wpsSubmit; } else { param.sWPState = TWorkflow.wfsRunning; } awf.WFSubmit(ssWFID, WFINST, sUser, param); awf.dbe.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}', XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}'", awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaSubmit), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(), sDYDJ)); #endregion } } //因为报价单明细会被随便填写,不能就这样进基础数据表中。此处不补全基本信息 //if (1 == flag) //{ // //批量插入在XLXHB中没有的数据 // XLUtils.InsertXLXHBFromXLXSCLQD(); //} //批量插入在XLXSJGBMX中没有的数据 if (sJGCIDS.Trim().Equals("") && !XLBJDUtils.IsJGEJGB(sJGBID.Trim()) && bInsJGBMX)//组合产品目录价格表不执行以下语句,因为其没有明细实体,不知道要插到哪个JGCID中; //表价实时计算价格表也不执行以下语句 { SQL.Clear(); SQL.Add("insert into XLXSJGBMX( "); SQL.Add("XLXSJGBMX_JGBID,XLXSJGBMX_XH, "); SQL.Add("XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); SQL.Add("XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_JLDW, "); SQL.Add("XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ, "); SQL.Add("XLXSJGBMX_BZ,XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ) "); SQL.Add("select :pJGBID as JGBID, "); SQL.Add("(select isnull(max(XLXSJGBMX_XH),0.0) from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID)+row_number() "); SQL.Add("over(order by minXH) as XH, "); SQL.Add("XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,a.XLXSJGB_YXQS as JGBYXQS,a.XLXSJGB_YXQZ as JGBYXQZ,'" + sBJU003 + "',"); SQL.Add("isnull(WSCLCB,0.0) as WSCLCB,isnull(CLCB,0.0) as CLCB, "); //SQL.Add("case when isnull(WSCLCB,0.0)<>0.0 then (isnull(WSCLCB,0.0)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)+isnull(JJYZZ,0)) else 0.0 end as WSCPJJ, "); //SQL.Add("case when isnull(CLCB,0.0)<>0.0 then (isnull(CLCB,0.0)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)+isnull(JJYZZ,0)) else 0.0 end as CPJJ, "); SQL.Add("isnull(WSCLCB,0.0) as WSCPJJ,isnull(CLCB,0.0) as CPJJ, "); SQL.Add("'由报价单明细记录['||rtrim(XLXSBJDMX_BJDID)||'|'||rtrim(convert(char,minXH))||']自动生成。' as BZ, "); SQL.Add(":pWHRID,:pWHR,:pWHSJ "); SQL.Add("from "); SQL.Add("(select XLXSJGB_YXQS,XLXSJGB_YXQZ from XLXSJGB where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=(select XLXSBJD_JGBID from XLXSBJD where XLXSBJD_BJDID=:pBJDID)) a, "); //SQL.Add("(select "); //SQL.Add(" exp(sum(log(case when JJFS='JD' then (1.0+YZZ/100.0) else 1.0 end))) as JDYZZ,"); //SQL.Add(" exp(sum(log(case when JJFS='KD' then 1.0/(1.0-YZZ/100.0) else 1.0 end))) as KDYZZ,"); //SQL.Add(" sum(case when JJFS='JJ' then YZZ else 0.0 end) as JJYZZ"); //SQL.Add(" from (select sum(XLXSJGBYZZ_YZZ) as YZZ,XLXSTZYZ_JJFS as JJFS,XLXSTZYZ_TJYZID"); //SQL.Add(" from XLXSJGBYZZ,XLXSTZYZ"); //SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS=' ' and XLXSJGBYZZ_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ_YZID=XLXSTZYZ_YZID "); //SQL.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID=:pJGBID and XLXSJGBYZ_YZID=XLXSTZYZ_YZID)");//必须是当前价格表所用的调价因子 //SQL.Add(" group by XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID"); //SQL.Add(" ) bbb"); //SQL.Add(") b, "); SQL.Add("(select XLXSBJDMX_BJDID,min(XLXSBJDMX_XH) as minXH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJXLGGTHB_XLGGIDCH "); SQL.Add(" from XLXSBJDMX left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); foreach (string sKey in dicLenJLDWTD.Keys) { SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); } SQL.Add(" )"); SQL.Add(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJXLGGTHB_XLGGIDCH "); SQL.Add(") c "); SQL.Add("left join "); //取XLXLCLQD_WSCLCB\CLCB--begin SQL.Add(" ("); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); SQL.Add(" sum("); SQL.Add(" isnull(XLXSCLHQ_WSJG,0.0)"); SQL.Add(" *(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)"); SQL.Add(" *(1+(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)/100.0)"); SQL.Add(" *(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)"); SQL.Add(" ) as WSCLCB,"); SQL.Add(" sum("); SQL.Add(" isnull(XLXSCLHQ_HSJG,0.0)"); SQL.Add(" *(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)"); SQL.Add(" *(1+(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)/100.0)"); SQL.Add(" *(case "); for (int i = 1; i <= 80; i++) { SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); } SQL.Add(" end)"); SQL.Add(" ) as CLCB"); SQL.Add(" from XLXSCLQD,XLJGCZBLM"); SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); //SQL.Add(" LEFT JOIN XLJGCZBML on XLJGCZBML_JGCZBID = XLJGCZBLM_JGCZBID "); SQL.Add(" left join"); SQL.Add(" ("); SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG"); SQL.Add(" from XLXSCLHQ"); SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID"); SQL.Add(" ) b on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID"); SQL.Add(" where XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); SQL.Add(" ) lf on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); //取XLXLCLQD_WSCLCB\CLCB--end SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID = XLXSBJDMX_XLXHID )"); SQL.Add(" and exists(select 1 from XLGGB where XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH )"); SQL.Add(" and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID "); SQL.Add(" and isnull(XLXSJGBMX_XLBZID,' ')=isnull(XLXSBJDMX_XLBZID,' ') and isnull(XLXSJGBMX_DYDJID,' ')=isnull(XLXSBJDMX_DYDJID,' ')) "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pWHRID").Value = cSession.UserId; SQL.ParamByName("pWHR").Value = cSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pBJDID").Value = sBJDID; string ss = SQL.Text; dberp.ExecSQL(SQL); } } //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ BJU003|报价产品默认计量单位 public static void InsertCLCBandJJYZ(TControlState tmpState, string sBJDID, string sJGBID, string sUserID, string sUserMC, string sBJU003, bool bHSBZ) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); InsertCLCBandJJYZ(dberp, SQL, tmpState, sBJDID, sJGBID, GetBJRQbyBJDID(sBJDID), sUserID, sUserMC, sBJU003, bHSBZ); } public static void InsertCLCBandJJYZ(TDatabase dberp, TSQL SQL, TControlState tmpState, string sBJDID, string sJGBID, string sBJRQ, string sUserID, string sUserMC, string sBJU003, bool bHSBZ) { //bool IsJGEJGB = XLBJDUtils.IsJGEJGB(sJGBID.Trim()); SQL.Clear(); SQL.Add("select XLXSJGB_MXBH,XLXSJGB_TJYS from XLXSJGB where XLXSJGB_JGBID=:pJGBID"); SQL.ParamByName("pJGBID").Value = sJGBID.Trim(); DataSet dsJGB = dberp.OpenDataSet(SQL); bool IsJGEJGB = false; bool IsJGBID3 = false; if (dsJGB.Tables[0].Rows.Count > 0) { IsJGEJGB = dsJGB.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim().Equals("JGE"); IsJGBID3 = dsJGB.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3"); } //因素3价格表对应的所依价格表已经记录了材料清单,为减少不必要的开销、提高报价速度,因素3价格表不记录XLXSBJDCLCB、并且和JGE一样XLXSBJDJJYZ单独处理 if (IsJGBID3) return; if (tmpState == TControlState.ctsEdit) { //先删除价格表更新时间小于报价单明细的记录 SQL.Clear(); SQL.Add("delete from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=:pBJDID "); SQL.Add(" and not exists(select 1 from XLXSBJDMX where XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH "); SQL.Add(" and isnull(XLXSBJDCLCB_JGBBJGXSJ, convert(datetime, '1900-01-01')) = isnull(XLXSBJDMX_JGBBJGXSJ, convert(datetime, '1900-01-01')) ) "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); if (!IsJGEJGB)//JGE程序单独处理 { SQL.Clear(); SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID "); SQL.Add(" and not exists(select 1 from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=XLXSBJDJJYZ_BJDID and XLXSBJDCLCB_XH=XLXSBJDJJYZ_XH) "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); } } //处理XLXSBJDMX_JSYCBZ、XLXSBJDMX_JGBBJ字段 if (IsJGEJGB) { //先清空明细异常标志并重置表价 SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_JSYCBZ = ' ',XLXSBJDMX_JGBBJ=abs(XLXSBJDMX_JGBBJ) where XLXSBJDMX_BJDID =:pBJDID and isnull(XLXSBJDMX_JSYCBZ,' ')<>' ' "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); Dictionary dicJGBTJYZ = GetJGBBTYZ(sJGBID); Dictionary dicJGBFGQCPYZ = GetJGBFGQCPYZ(sJGBID); SQL.Clear(); SQL.Add(" merge into XLXSBJDMX tar "); SQL.Add(" using ( "); SQL.Add(" select XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH , "); SQL.Add(" case when XLXSBJDMX_BJDHQCLCB<0 then 'A,' else ' ' end "); foreach (string sKey in dicJGBTJYZ.Keys) { SQL.Add(" || case when XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = 0 then '" + GetJGBYZYCBZ(sKey) + ",' else ' ' end "); } foreach (string sKey in dicJGBFGQCPYZ.Keys) { SQL.Add(" || case when XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '" + GetJGBYZYCBZ(sKey) + "F,' else ' ' end "); } SQL.Add(" as JSYCBZ "); SQL.Add(" from XLXSBJDJJYZ "); SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID = XLXSBJDJJYZ_BJDID and XLXSBJDMX_XH = XLXSBJDJJYZ_XH "); SQL.Add(" where XLXSBJDJJYZ_BJDID = :pBJDID "); SQL.Add(" and ( XLXSBJDMX_BJDHQCLCB < 0 "); foreach (string sKey in dicJGBTJYZ.Keys) { SQL.Add(" or XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = 0 "); } foreach (string sKey in dicJGBFGQCPYZ.Keys) { SQL.Add(" or XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = -9999 "); } SQL.Add(" ) "); SQL.Add(" ) sor"); SQL.Add(" on ("); SQL.Add(" XLXSBJDMX_BJDID =:pBJDID "); SQL.Add(" and XLXSBJDMX_BJDID = XLXSBJDJJYZ_BJDID "); SQL.Add(" and XLXSBJDMX_XH = XLXSBJDJJYZ_XH and XLXSBJDMX_BJLY<>'SSJGBBJ' "); SQL.Add(" and isnull(XLXSBJDMX_JGFBZ,'N') <> 'Y' and isnull(XLXSBJDMX_WGCPBZ,'N') <> 'Y' "); SQL.Add(" ) "); SQL.Add(" when matched then update set XLXSBJDMX_JSYCBZ = JSYCBZ ,XLXSBJDMX_JGBBJ = ABS(XLXSBJDMX_JGBBJ) * -1 "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); } //再进行与报价单明细匹配 if (!IsJGEJGB)//是否需要按价格表报价 { SQL.Clear(); string sYZZFields_3 = ""; for (int i = 1; i <= 20; i++) { sYZZFields_3 += "XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + (i < 20 ? "," : ""); } SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, " + sYZZFields_3 + ",XLXSBJDJJYZ_YSJDZ) "); string sYZZFields_4 = ""; for (int i = 1; i <= 20; i++) { sYZZFields_4 += "isnull(XLXSJGBYZZ0_YZZ" + i.ToString().PadLeft(2, '0') + ",0)" + (i < 20 ? "," : ""); } SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH," + sYZZFields_4 + ",isnull(XLXSJGBMX_YSJDZ,0) "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID and XLXSJGBMX_XLBZID=XLXSBJDMX_XLBZID and XLXSJGBMX_DYDJID=XLXSBJDMX_DYDJID"); SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=:pJGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH"); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and not exists(select 1 from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH) "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pJGBID").Value = sJGBID; dberp.ExecSQL(SQL); } else { } #region 更新报价单行情 if (tmpState == TControlState.ctsEdit) { SQL.Clear(); SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJFL_JLBJDHQ, "); SQL.Add(" XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID"); SQL.Add(" from XLXSBJD"); SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); DataSet dsBJFL = dberp.OpenDataSet(SQL); if (dsBJFL.Tables[0].Rows.Count > 0) { string sTZCLHQ = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim(); if (!(sTZCLHQ.Equals("Y") && CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID)))) { string sBJFLID = dsBJFL.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); string sBJDHQLY = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim(); string sTBJCLID = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_TBJCLID"].ToString().Trim(); string sLBJCLID = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_LBJCLID"].ToString().Trim(); double fTJ = CMISproConvert.StrToFloat(dsBJFL.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString().Trim()); double fLJ = CMISproConvert.StrToFloat(dsBJFL.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString().Trim()); string sJLBJDHQ = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_JLBJDHQ"].ToString().Trim(); if (XLBJDUtils.IsJGEJGB(sJGBID)) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, sBJDHQLY, sBJDID, sBJRQ, bHSBZ, sTBJCLID, sLBJCLID, fTJ, fLJ, sUserMC, sUserID, sJGBID); } else { //JGB价格表判断是否勾选记录报价单行情 if (sJLBJDHQ.Equals("Y")) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(dberp, SQL, sBJDHQLY, sBJDID,sBJRQ, sUserMC, sUserID, sJGBID); XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, sBJDID, sTBJCLID, sLBJCLID, fTJ, fLJ, bHSBZ, sUserID, sUserMC); } } } } } #endregion //需先进行报价单明细表价异常计算,否则报价单明细异常导致的表价变化将不被记录 int maxLS = 80; SQL.Clear(); SQL.Add(" select top 1 XLJGCZBLM_CLQDL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" where XLXSBJDMX_BJDID= :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" order by XLJGCZBLM_CLQDL desc "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sQDL = ds.Tables[0].Rows[0]["XLJGCZBLM_CLQDL"].ToString().Trim(); string sLS = sQDL.Replace("第", "").Replace("列", ""); maxLS = CMISproConvert.StrToInt(sLS); } SQL.Clear(); SQL.Add("insert into XLXSBJDCLCB(XLXSBJDCLCB_BJDID, XLXSBJDCLCB_XH, XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW, "); SQL.Add(" XLXSBJDCLCB_BJSL,XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ"); for (int i = 1; i <= maxLS; i++) { SQL.Add(string.Format(",XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())); } if (maxLS < 80) { for (int i = maxLS + 1; i <= 80; i++)//因为XLXSBJDCLCB_CLID不为null,所以所有CLID字段都要插入 { SQL.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())); } } SQL.Add(" ,XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHSJ) "); SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,"); SQL.Add(" XLXSBJDMX_BJSL,"); if (bHSBZ) { SQL.Add(" XLXSBJDMX_JGBBJ as HSCPJJ,XLXSBJDMX_JGBBJ/(1+isnull(ZZSL,0.0)/100.0) as WSCPJJ,"); SQL.Add(" XLXSBJDMX_JGBJJ as HSCLCB,XLXSBJDMX_JGBJJ/(1+isnull(ZZSL,0.0)/100.0) as WSCLCB "); } else { SQL.Add(" XLXSBJDMX_JGBBJ*(1+isnull(ZZSL,0.0)/100.0) as HSCPJJ,XLXSBJDMX_JGBBJ as WSCPJJ,"); SQL.Add(" XLXSBJDMX_JGBJJ*(1+isnull(ZZSL,0.0)/100.0) as HSCLCB,XLXSBJDMX_JGBJJ as WSCLCB "); } //报价单材料成本材料数量的计量单位与材料清单保持一致,不再依据报价单计量单位进行换算。 for (int i = 1; i <= maxLS; i++) { SQL.Add(string.Format(",isnull(XLXSCLQD_SL{0},0)*isnull(XLXSCLQD_CLJGBL{0},0)*(1+isnull(XLXSCLQD_SHL{0},0)/100.0) as SL{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",max(case when (CLQDL='第{0}列' and BJHQ='1') then BJCLID when (CLQDL='第{0}列' and BJHQ='2') then BJCLID||'|'||CLID else ' ' end) as CLID{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",sum(isnull(case when (CLQDL='第{0}列' and BJHQ='1') then XLXSBJDCLHQ_HSJG when (CLQDL='第{0}列' and BJHQ='2' and isnull(XLXSBJDWLHQ_WLID,' ')<>' ') then XLXSBJDWLHQ_HSJG " + "when (CLQDL='第{0}列' and BJHQ='2' and isnull(XLXSBJDWLHQ_WLID,' ')=' ') then b.XLXSWLHQ_HSJG else 0 end,0)) as CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())); } if (maxLS < 80) { for (int i = maxLS + 1; i <= 80; i++)//因为XLXSBJDCLCB_CLID不为null,所以所有CLID字段都要插入 { SQL.Add(string.Format(",' ' as CLID{0} ", i.ToString().PadLeft(2, '0').Trim())); } } SQL.Add(" ,XLXSBJDMX_JGBBJGXSJ,:pWHRID,:pWHR,:pWHSJ "); SQL.Add("from XLXSBJDMX"); SQL.Add(" left join ("); SQL.Add(" select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as BJDXH,XLJGCZBLM_CLQDL as CLQDL,isnull(XLXSBJCL_BJHQ,'1') as BJHQ,rtrim(isnull(XLJGCZBLM_BJCLID,' ')) as BJCLID,"); SQL.Add(" case when isnull(XLXSBJCL_BJHQ,'1')='1' then isnull(XLJGCZBLM_BJCLID,' ') "); for (int i = 1; i <= maxLS; i++) { SQL.Add(string.Format(" when isnull(XLXSBJCL_BJHQ,'1')='2' and isnull(XLJGCZBLM_CLQDL,' ')='第{0}列' then isnull(XLXSCLQDWL_WLID{0},' ') ", i.ToString().PadLeft(2, '0').Trim())); } SQL.Add(" else ' ' end as CLID "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH "); SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" ) a on BJDID=XLXSBJDMX_BJDID and BJDXH=XLXSBJDMX_XH "); SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=BJCLID "); SQL.Add(" left join XLXSBJDWLHQ on XLXSBJDWLHQ_BJDID=:pBJDID and XLXSBJDWLHQ_WLID=CLID "); SQL.Add(" left join ( "); SQL.Add(" select WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG "); SQL.Add(" from XLXSWLHQ, "); SQL.Add(" (select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); SQL.Add(" from XLXSWLHQ where XLXSWLHQ_JGBID=' ' "); SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and (XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); SQL.Add(" group by XLXSWLHQ_WLID "); SQL.Add(" ) wlhq "); SQL.Add(" where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS "); SQL.Add(" ) b on b.WLID=CLID "); //获取增值税率,用于计算WSCPJJ SQL.Add(",(select max(XLXSBJCL_ZZSL) as ZZSL from XLXSBJCL where 1=1) SL "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and not exists(select 1 from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH) "); SQL.Add(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW, "); SQL.Add(" XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBJJ,ZZSL "); for (int i = 1; i <= maxLS; i++) { SQL.Add(string.Format(",XLXSCLQD_SL{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",XLXSCLQD_CLJGBL{0}", i.ToString().PadLeft(2, '0').Trim())); SQL.Add(string.Format(",XLXSCLQD_SHL{0}", i.ToString().PadLeft(2, '0').Trim())); } SQL.ParamByName("pWHRID").Value = sUserID; SQL.ParamByName("pWHR").Value = sUserMC; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJRQ").Value = sBJRQ; dberp.ExecSQL(SQL); if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ")) { SQL.Clear(); SQL.Add(" delete from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" insert into BJDLJZSBJRCBLM(BJDLJZSBJRCBLM_BJDID,BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH) "); SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH, substring(isnull(XLJGCZBLM_CLQDL,' '),2,2) from XLXSBJDMX "); SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); } } //依据价格表条件因子ID获取异常标志 public static string GetJGBYZYCBZ(string sYZID) { if (sYZID.Equals("JZ10")) return "0"; else return sYZID.Replace("JZ0", ""); } //获取价格表必填因子 public static Dictionary GetJGBBTYZ(string sJGBID) { Dictionary dicJGBTJYZ = new Dictionary(); List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); foreach (TZYZXX yzxx in yzxx_List) { if(yzxx.XLXSTZYZ_YZZBT=="Y") dicJGBTJYZ.Add(yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim()); } return dicJGBTJYZ; } //获取价格表覆盖全产品因子 public static Dictionary GetJGBFGQCPYZ(string sJGBID) { Dictionary dicJGBTJYZ = new Dictionary(); List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); foreach (TZYZXX yzxx in yzxx_List) { if (yzxx.XLXSTZYZ_FGQCP == "Y") dicJGBTJYZ.Add(yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim()); } return dicJGBTJYZ; } //依据报价单ID获取报价日期 public static string GetBJRQbyBJDID(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_BJRQ from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return CMISproConvert.StrToDateTime(ds.Tables[0].Rows[0][0].ToString().Trim()).ToShortDateString().Trim(); } else return ""; } public void LoadTJYZData() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" SELECT XLXSTZYZ_YZID, XLXSTZYZ_TJBZDYZZ, XLXSTZYZ_TJBZXYZZ FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH = 'BJD' "); DataSet ds = dberp.OpenDataSet(SQL); // 清空原有数据(如果需要重新加载) dicTJYZ.Clear(); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { TJYZEntity entity = new TJYZEntity(); entity.YZID = row["XLXSTZYZ_YZID"].ToString().Trim(); entity.TJBZDYZZ = Convert.ToDouble(row["XLXSTZYZ_TJBZDYZZ"]); entity.TJBZXYZZ = Convert.ToDouble(row["XLXSTZYZ_TJBZXYZZ"]); // 为 dicTJYZ 赋值 if (!dicTJYZ.ContainsKey(entity.YZID)) { dicTJYZ.Add(entity.YZID, entity); } } } } //按行重新计算报价、价差率等 private Dictionary CalcRow(GridViewRow row, Dictionary dicYZID_TJYZID, Dictionary dicTYZZYZID, string sCPBJMRXSWS) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); Dictionary Result = new Dictionary(); double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0); string sorYZZ01 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ01", row).Trim(); string sorYZZ02 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ02", row).Trim(); string sorYZZ03 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ03", row).Trim(); string sorYZZ04 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ04", row).Trim(); string sorYZZ05 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ05", row).Trim(); string sorYZZ06 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ06", row).Trim(); string sorYZZ07 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ07", row).Trim(); string sorYZZ08 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ08", row).Trim(); string sorYZZ09 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ09", row).Trim(); string sorYZZ10 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ10", row).Trim(); string sorYZZ11 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ11", row).Trim(); string sorYZZ12 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ12", row).Trim(); string sorYZZ13 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ13", row).Trim(); string sorYZZ14 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ14", row).Trim(); string sorYZZ15 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ15", row).Trim(); string sorYZZ16 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ16", row).Trim(); string sorYZZ17 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ17", row).Trim(); string sorYZZ18 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ18", row).Trim(); string sorYZZ19 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ19", row).Trim(); string sorYZZ20 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ20", row).Trim(); string sorTZZDXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row).Trim(); Dictionary dicChangedField = new Dictionary(); double dCPBJ = 0.0; string sXSJEYZ = txtXSJEYZ.Text.Trim(); double dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0); if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_LSJGBBJ", row)) != 0) dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_LSJGBBJ", row), 0); string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); 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 { if (dJGBBJ!=0) { Dictionary dicTJYZIDValue = new Dictionary(); Dictionary dicTYZZYZIDValue = new Dictionary(); //将因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //将因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); string tmpTJYZID = dicYZID_TJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { //此处无需考虑因子最小值限制 dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); dCPBJ = dJGBBJ; double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = txtBTYZ.Text.Trim(); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + stBTYZ, row).Trim(), 0); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 double dOLD_CPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJ", row), 0); //报价锁定需要计算调整报价 double dNEW_TZJG = 0; double dTmp_CPBJ = dCPBJ; bool bBJSDBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).Equals("Y");//报价锁定标志 if (bBJSDBZ) { if (dCPBJ != 0) { dNEW_TZJG = NumberUtils.RoundX((dOLD_CPBJ / dCPBJ - 1) * 100, 15); } //因为报价锁定,所以将计算出来的报价值还原,计算出来的值放在tmp中 dCPBJ = dOLD_CPBJ; } double dTZQBJJE = NumberUtils.RoundX(dBJSL * XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)), 2); double dTZJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZBJJE", row), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - dBJSL * dBJDHQCLCB) / dCPJE * 100,2); } } dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); double dQZDXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_ZDXJ", row)); string sUpdJJYZList = grdXLBJDMX.GetValueByFieldName("UpdJJYZList", row); if (sUpdJJYZList.Equals("")) sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"; //计算最低限价、最低限价价差率 dicChangedField.Add("XLXSBJDMX_CLCB", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row));//此处简单处理,只为能够触发计算 string sTZQZDXJ = XLBJDUtils.GetZDXJ(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), dCPBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZQZDXJ", row), cbxBJFLID.SelectedValue.Trim(), 8, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_ZDXJBJDID", row), sUpdJJYZList); string stTZZDXJ=grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row); string stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX, stZDXJ, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), dBJJE.ToString().Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row)); string stYXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_YXJG", row); string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); double dZDXJ = CMISproConvert.StrToFloat(stZDXJ, 0); double dZDXJJCL = CMISproConvert.StrToFloat(stZDXJJCL, 0); double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJ, 0); double dYXJJCL = CMISproConvert.StrToFloat(stYXJJCL, 0); double dZDXJJE = NumberUtils.RoundX(dZDXJ * dBJSL, 2); double dCPBJXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJXJ", row), 0); double XJBJCE = dCPBJXJ - dCPBJ; Result.Add("XLXSBJDMX_BJXJKD", 0); Result.Add("XLXSBJDMX_BJXJJJ", 0); Result.Add("XJBJCE", XJBJCE); Result.Add("XLXSBJDMX_TZQCPBJ", dTmp_CPBJ); Result.Add("XLXSBJDMX_TZCPBJ", dNEW_TZJG); Result.Add("XLXSBJDMX_CPBJ", dCPBJ); Result.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE); Result.Add("XLXSBJDMX_BJJE", dBJJE); Result.Add("TZHDJ", dBJSL == 0 ? 0 : dBJJE / dBJSL); Result.Add("XLXSBJDMX_JGBBJJCL", dLRL); Result.Add("XLXSBJDMX_JGBBJJCE", dLRE); Result.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL); Result.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL); Result.Add("XLXSBJDMX_TZQZDXJ", dTZQZDXJ); Result.Add("XLXSBJDMX_TZZDXJ", CMISproConvert.StrToFloat(stTZZDXJ)); Result.Add("XLXSBJDMX_ZDXJ", dZDXJ); Result.Add("XLXSBJDMX_ZDXJJCL", dZDXJJCL); Result.Add("XLXSBJDMX_YXJJCL", dYXJJCL); Result.Add("XLXSBJDMX_ZDXJJE", dZDXJJE); if (dZDXJ != dQZDXJ) AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", dZDXJ.ToString()); string sJSJ = XLBJDUtils.GetJSJ(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), dCPBJ.ToString(),dZDXJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JSJG", row), cbxBJFLID.SelectedValue.Trim(), 8, sUpdJJYZList); string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0), 2).ToString(); string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, dBJJE.ToString()); Result.Add("XLXSBJDMX_JSJG", CMISproConvert.StrToFloat(sJSJ)); Result.Add("XLXSBJDMX_JSJJE", CMISproConvert.StrToFloat(stJSJJE)); Result.Add("XLXSBJDMX_JSJJCL", CMISproConvert.StrToFloat(stJSJJCL)); return Result; } //按行重新计算报价、价差率等 private Dictionary CalcRow(DataRow row, Dictionary dicYZID_TJYZID, Dictionary dicTYZZYZID, string sCPBJMRXSWS) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); Dictionary Result = new Dictionary(); double dBJSL = CMISproConvert.StrToFloat(row["XLXSBJDMX_BJSL"].ToString(), 0); string sorYZZ01 = row["TZYZ_BJ01"].ToString().Trim(); string sorYZZ02 = row["TZYZ_BJ02"].ToString().Trim(); string sorYZZ03 = row["TZYZ_BJ03"].ToString().Trim(); string sorYZZ04 = row["TZYZ_BJ04"].ToString().Trim(); string sorYZZ05 = row["TZYZ_BJ05"].ToString().Trim(); string sorYZZ06 = row["TZYZ_BJ06"].ToString().Trim(); string sorYZZ07 = row["TZYZ_BJ07"].ToString().Trim(); string sorYZZ08 = row["TZYZ_BJ08"].ToString().Trim(); string sorYZZ09 = row["TZYZ_BJ09"].ToString().Trim(); string sorYZZ10 = row["TZYZ_BJ10"].ToString().Trim(); string sorYZZ11 = row["TZYZ_BJ11"].ToString().Trim(); string sorYZZ12 = row["TZYZ_BJ12"].ToString().Trim(); string sorYZZ13 = row["TZYZ_BJ13"].ToString().Trim(); string sorYZZ14 = row["TZYZ_BJ14"].ToString().Trim(); string sorYZZ15 = row["TZYZ_BJ15"].ToString().Trim(); string sorYZZ16 = row["TZYZ_BJ16"].ToString().Trim(); string sorYZZ17 = row["TZYZ_BJ17"].ToString().Trim(); string sorYZZ18 = row["TZYZ_BJ18"].ToString().Trim(); string sorYZZ19 = row["TZYZ_BJ19"].ToString().Trim(); string sorYZZ20 = row["TZYZ_BJ20"].ToString().Trim(); string sorTZZDXJ = row["XLXSBJDMX_TZZDXJ"].ToString().Trim(); Dictionary dicChangedField = new Dictionary(); double dCPBJ = 0.0; string sXSJEYZ = txtXSJEYZ.Text.Trim(); double dJGBBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0); if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(row["XLXSBJDMX_LSJGBBJ"].ToString()) != 0) dJGBBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_LSJGBBJ"].ToString(), 0); string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); 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 { if (dJGBBJ!=0) { Dictionary dicTJYZIDValue = new Dictionary(); Dictionary dicTYZZYZIDValue = new Dictionary(); //将因子纳入dicTYZZYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0)); else dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0); } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //将因子纳入dicTJYZIDValue for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); string tmpTJYZID = dicYZID_TJYZID[sFieldName.Substring(5)]; double tmpYZZ = CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0); string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) { //此处无需考虑因子最小值限制 dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); } else { dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } //true表示先加价 bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); dCPBJ = dJGBBJ; double dTZYZ_JJ = 0; for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) { string sFieldName = grdXLBJDMX.Columns[i].DataField; string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); } } string sYZID = sFieldName.Replace("TZYZ_", ""); if (sXSJEYZ.Contains(sYZID)) i++; } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } } } #region 必填因子校验 string sBTYZ = txtBTYZ.Text.Trim(); if (!sBTYZ.Equals("")) { foreach (string stBTYZ in sBTYZ.Split(',')) { double dYZZ = CMISproConvert.StrToFloat(row["TZYZ_" + stBTYZ].ToString().Trim(), 0); if (dYZZ == 0) { dCPBJ = Math.Abs(dCPBJ) * 0; break; } } } #endregion dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 double dOLD_CPBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_CPBJ"].ToString(), 0); //报价锁定需要计算调整报价 double dNEW_TZJG = 0; double dTmp_CPBJ = dCPBJ; bool bBJSDBZ = row["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y");//报价锁定标志 if (bBJSDBZ) { if (dCPBJ != 0) { dNEW_TZJG = NumberUtils.RoundX((dOLD_CPBJ / dCPBJ - 1) * 100, 15); } //因为报价锁定,所以将计算出来的报价值还原,计算出来的值放在tmp中 dCPBJ = dOLD_CPBJ; } double dTZQBJJE = NumberUtils.RoundX(dBJSL * NumberUtils.RoundX(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)), 2); double dTZJE = CMISproConvert.StrToFloat(row["XLXSBJDMX_TZBJJE"].ToString(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2) - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); //计算价差率 double dtmpLRE = 0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 dtmpLRE = dBJJE - CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) dtmpLRE = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL - dBJJE; else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) dtmpLRE = dBJJE - CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; double dtmpCPJE = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); double dLRL = 0.0; if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) { if (dtmpCPJE != 0) dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); } double dCLCB = CMISproConvert.StrToFloat(row["XLXSBJDMX_CLCB"].ToString(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(row["XLXSBJDMX_BJDHQCLCB"].ToString(), 0); double dCLCBLRL = 0.0; if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) { double dCLCBLRE = dBJJE - dCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) { double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) { double dCLCBLRE = dBJDHQCLCB * dBJSL; if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } double dJGBBJLJJCL = 0.0; if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) { if (dCPJE != 0) { dJGBBJLJJCL = NumberUtils.RoundX((dCPJE-dBJSL*dBJDHQCLCB)/dCPJE*100,2); } } dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); string sUpdJJYZList = row["UpdJJYZList"].ToString().Trim(); if (sUpdJJYZList.Equals("")) sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"; double dQZDXJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_ZDXJ"].ToString().Trim()); //计算最低限价、最低限价价差率 dicChangedField.Add("XLXSBJDMX_CLCB", row["XLXSBJDMX_CLCB"].ToString().Trim());//此处简单处理,只为能够触发计算 string sTZQZDXJ = XLBJDUtils.GetZDXJ(row["XLXSBJDMX_CLCB"].ToString().Trim(), row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), row["XLXSBJDMX_JGBJJ"].ToString().Trim(), row["XLXSBJDMX_JGBBJ"].ToString().Trim(), dCPBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, row["XLXSBJDMX_TZQZDXJ"].ToString().Trim(), cbxBJFLID.SelectedValue.Trim(), 8, row["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); string stTZZDXJ = row["XLXSBJDMX_TZZDXJ"].ToString().Trim(); string stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX, stZDXJ, row["XLXSBJDMX_BJSL"].ToString().Trim(), dBJJE.ToString().Trim(), row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), row["XLXSBJDMX_JGBBJ"].ToString().Trim()); double dZDXJ = CMISproConvert.StrToFloat(stZDXJ, 0); double dZDXJJCL = CMISproConvert.StrToFloat(stZDXJJCL, 0); double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJ, 0); string stYXJ = row["XLXSBJDMX_YXJG"].ToString().Trim(); string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); double dYXJJCL = CMISproConvert.StrToFloat(stYXJJCL, 0); double dZDXJJE = NumberUtils.RoundX(dZDXJ * dBJSL, 2); double dCPBJXJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); double XJBJCE = dCPBJXJ - dCPBJ; Result.Add("XLXSBJDMX_BJXJKD", 0); Result.Add("XLXSBJDMX_BJXJJJ", 0); Result.Add("XJBJCE", XJBJCE); Result.Add("XLXSBJDMX_YXJJCL", dYXJJCL); Result.Add("XLXSBJDMX_TZQCPBJ", dTmp_CPBJ); Result.Add("XLXSBJDMX_TZCPBJ", dNEW_TZJG); Result.Add("XLXSBJDMX_CPBJ", dCPBJ); Result.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE); Result.Add("XLXSBJDMX_BJJE", dBJJE); Result.Add("TZHDJ", dBJSL == 0 ? 0 : dBJJE / dBJSL); Result.Add("XLXSBJDMX_JGBBJJCL", dLRL); Result.Add("XLXSBJDMX_JGBBJJCE", dLRE); Result.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL); Result.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL); Result.Add("XLXSBJDMX_TZQZDXJ", dTZQZDXJ); Result.Add("XLXSBJDMX_TZZDXJ", CMISproConvert.StrToFloat(stTZZDXJ)); Result.Add("XLXSBJDMX_ZDXJ", dZDXJ); Result.Add("XLXSBJDMX_ZDXJJCL", dZDXJJCL); Result.Add("XLXSBJDMX_ZDXJJE", dZDXJJE); if (dZDXJ != dQZDXJ) AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", dZDXJ.ToString()); string sJSJ = XLBJDUtils.GetJSJ(row["XLXSBJDMX_CLCB"].ToString().Trim(), row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), row["XLXSBJDMX_JGBJJ"].ToString().Trim(), row["XLXSBJDMX_JGBBJ"].ToString().Trim(), dCPBJ.ToString(),dZDXJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, row["XLXSBJDMX_JSJG"].ToString().Trim(), cbxBJFLID.SelectedValue.Trim(), 8, sUpdJJYZList); string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(row["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2).ToString(); string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE,dBJJE.ToString()); Result.Add("XLXSBJDMX_JSJG", CMISproConvert.StrToFloat(sJSJ)); Result.Add("XLXSBJDMX_JSJJE", CMISproConvert.StrToFloat(stJSJJE)); Result.Add("XLXSBJDMX_JSJJCL", CMISproConvert.StrToFloat(stJSJJCL)); return Result; } private double GetZZSLByBJCLID(string sBJCLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select XLXSBJCL_ZZSL from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID "); sql.ParamByName("pBJCLID").Value = sBJCLID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) return CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim(),0); return 0; } private DataSet GetBJDMX(string sBJDID) { //分页模式下,传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = sBJDID; entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql = entity.XLXSBJDMX.SetQuerySql(); //sql.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; DataSet dsBJDMX = dberp.OpenDataSet(sql); return dsBJDMX; } private string GetYSIDXX(string sYSID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select rtrim(XLYSB_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSB_XLYSID from XLYSB where XLYSB_XLYSID = :pYSID"); SQL.ParamByName("pYSID").Value = sYSID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } //新建从表记录根据参数加载标准 private string GetXLBZXX(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ_XLBZID from XLBZ where XLBZ_XLBZID= :pXLBZID "); SQL.ParamByName("pXLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } //新建从表记录根据参数加载标准描述 private string GetXLBZMS(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLBZ_XLBZMS from XLBZ where XLBZ_XLBZID= :pXLBZID "); SQL.ParamByName("pXLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } private string GetBJFLID(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID= :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } //型号/规格->标准-电压等级 public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID) { GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBIDS, sJGFID, "", false); } public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID, bool bWBBJD) { GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBIDS, sJGFID, "", bWBBJD); } public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID,string sBJDID, bool bWBBJD) { if (!sJGFID.Equals("")) { if (!sJGBIDS.Equals("")) { sJGBIDS += "," + sJGFID; } else { sJGBIDS = sJGFID; } } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); if (!sXLGGID.Trim().Equals("")) { SQL.Add(" select top 1 XLXSBJCPMRBZDY_XLBZID,XLXSBJCPMRBZDY_DYDJID from XLXSBJCPMRBZDY where XLXSBJCPMRBZDY_XLXHID=:pXLXHID "); SQL.Add(" and (XLXSBJCPMRBZDY_XLGGID = :pXLGGID or XLXSBJCPMRBZDY_XLGGID = ' ') order by XLXSBJCPMRBZDY_XLGGID desc "); SQL.ParamByName("pXLGGID").Value = sXLGGID.Replace("×", "*"); } else SQL.Add(" select top 1 XLXSBJCPMRBZDY_XLBZID,XLXSBJCPMRBZDY_DYDJID from XLXSBJCPMRBZDY where XLXSBJCPMRBZDY_XLXHID=:pXLXHID order by XLXSBJCPMRBZDY_XLGGID "); SQL.ParamByName("pXLXHID").Value = sXLXHID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dicXLXX.Add("0", ds.Tables[0].Rows[0]["XLXSBJCPMRBZDY_XLBZID"].ToString().Trim() + "*" + ds.Tables[0].Rows[0]["XLXSBJCPMRBZDY_DYDJID"].ToString().Trim()); } else { if (sXLXHID.Trim().Equals("") || sXLGGID.Trim().Equals("")) return; //1|先材料清单再价格表检索 if (sBJCPFZJS.Equals("1")) { SQL.Clear(); SQL.Add(" select XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); SQL.Add(" from XLXSCLQD "); SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); SQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID =:pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); if (bWBBJD) SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); else { if (!sBJDID.Equals("")) { SQL.Add(" and (len(XLXSCLQD_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSCLQD_XLBZID))"); SQL.ParamByName("pBJDID").Value = sBJDID; } else { SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); } } SQL.Add(" ORDER BY XLBZ_PX,XLXSCLQD_XLBZID,XLDYDJB_XH "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count <= 0) { SQL.Clear(); SQL.Add(" select XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); SQL.Add(" where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID =:pXLGGID "); if (bWBBJD) SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); else { if (!sBJDID.Equals("")) { SQL.Add(" and (len(XLXSJGBMX_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSJGBMX_XLBZID))"); SQL.ParamByName("pBJDID").Value = sBJDID; } else { SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); } } SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); SQL.Add(" ORDER BY XLBZ_PX,XLXSJGBMX_XLBZID,XLDYDJB_XH "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(SQL); } } else { SQL.Clear(); SQL.Add(" select XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); SQL.Add(" from XLXSJGBMX "); SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); SQL.Add(" where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID =:pXLGGID "); if (bWBBJD) SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); else { if (!sBJDID.Equals("")) { SQL.Add(" and (len(XLXSJGBMX_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSJGBMX_XLBZID))"); SQL.ParamByName("pBJDID").Value = sBJDID; } else { SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); } } SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); SQL.Add(" ORDER BY XLBZ_PX,XLXSJGBMX_XLBZID,XLDYDJB_XH "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count <= 0) { SQL.Clear(); SQL.Add(" select XLXSCLQD_XLBZID,XLXSCLQD_DYDJID, "); SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); SQL.Add(" from XLXSCLQD "); SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); SQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID =:pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); if (bWBBJD) SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); else { if (!sBJDID.Equals("")) { SQL.Add(" and (len(XLXSCLQD_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSCLQD_XLBZID))"); SQL.ParamByName("pBJDID").Value = sBJDID; } else { SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); } } SQL.Add(" ORDER BY XLBZ_PX,XLXSCLQD_XLBZID,XLDYDJB_XH "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; ds = dberp.OpenDataSet(SQL); } } for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { //标准*电压等级 dicXLXX.Add(i.ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim() + "*" + ds.Tables[0].Rows[i][1].ToString().Trim()); } } } //标准与电压的转换传入与传出,格式XLXSCLQ_DYDJDID 或者XLXSJGBMX_DYDJID等,表明如果sValue传入电压,返回的则是标准。 private List GetBJCPValue_XLXSCLQDorXLXSJGBMX(string sXLXHID, string sXLGGID, string sValue, string sJGBID, string sLY) { List lst = new List(); lst.Clear(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); DataSet ds = new DataSet(); if (sLY.Contains("XLXSCLQD")) { sql.Clear(); if (sLY.Contains("XLXSCLQD_DYDJID")) { sql.Add(" SELECT XLXSCLQD_XLBZID FROM XLXSCLQD"); } else if (sLY.Contains("XLXSCLQD_XLBZID")) { sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); } else { sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); } sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID"); sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); if (sLY.Contains("XLXSCLQD_DYDJID")) { sql.Add(" and XLXSCLQD_DYDJID=:pDYDJID "); sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; } else if (sLY.Contains("XLXSCLQD_XLBZID")) { sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID "); sql.ParamByName("pXLBZID").Value = sValue; } else { sql.Add(" and 1<> 1 "); } sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } else if (sLY.Contains("XLXSJGBMX")) { sql.Clear(); if (sLY.Contains("XLXSJGBMX_DYDJID")) { sql.Add(" SELECT XLXSJGBMX_XLBZID FROM XLXSJGBMX "); } else if (sLY.Contains("XLXSJGBMX_XLBZID")) { sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); } else { sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); } sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3 on XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); if (sLY.Contains("XLXSJGBMX_DYDJID")) { sql.Add(" and XLXSJGBMX_DYDJID=:pDYDJID "); sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; } else if (sLY.Contains("XLXSJGBMX_XLBZID")) { sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); sql.ParamByName("pXLBZID").Value = sValue; } else { sql.Add(" and 1<> 1 "); } sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); ds = dberp.OpenDataSet(sql); } if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!lst.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) { lst.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); } } } return lst; } public static string GetYSID(string sYSMC) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLYSB_XLYSID from XLYSB where XLYSB_XLYSMC=:pMC order by XLYSB_XLYSID "); SQL.ParamByName("pMC").Value = sYSMC.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } //根据设置的线缆销售报价产品颜色,给XLXSBJDMX_XLYSID字段赋值 public static string GetDefaultYSID(string sXLXHID, string sXLGGID,string sXLYSID) { if(string.IsNullOrEmpty(sXLYSID)) sXLYSID = "BK"; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (!sXLXHID.Equals("")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); SQL.Add("select XLXSBJCPYS_XLYSID,"); SQL.Add(" case WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID<>' ' and XLXSBJCPYS_XXJGID=:pXXJGID then 1"); SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID=' ' then 2"); SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID=' ' and XLXSBJCPYS_XXJGID=' ' then 3"); SQL.Add(" else 9999 END AS PX,"); SQL.Add(" XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID"); SQL.Add(" from XLXSBJCPYS"); SQL.Add(" where 1=1"); SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_CPYT=XLXSBJCPYS_CPYT)"); SQL.Add(" and (XLXSBJCPYS_XLJBXHID =' '"); SQL.Add(" or exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_XLJBXHID=XLXSBJCPYS_XLJBXHID)) "); SQL.Add(" order by PX,XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXXJGID").Value = dicXLGGB["XXJGID"]; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (!ds.Tables[0].Rows[0]["PX"].ToString().Trim().Equals("9999")) { sXLYSID = ds.Tables[0].Rows[0]["XLXSBJCPYS_XLYSID"].ToString().Trim(); } } } return sXLYSID; } public static string GetDefaultYSID(string sXLXHID, string sXLGGID) { return GetDefaultYSID(sXLXHID, sXLGGID,""); } public static string GetMRJLDWByJBXH(string sXLXHID) { if (sXLXHID.Equals("")) return ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"select XLXSBJCPJLDW_JLDW from XLXSBJCPJLDW where exists (select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXSBJCPJLDW_XLJBXHID=XLXHB_XLJBXHID)"); SQL.ParamByName("pXLXHID").Value = sXLXHID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count <= 0) return ""; return ds.Tables[0].Rows[0][0].ToString().Trim(); } #region 报价单行情料价整单导出 #region 暂不使用 private DataSet GetCZBIDTable(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XSSX from XLXSBJDMX left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID where XLXSBJDMX_BJDID=:pBJDID order by XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSBJDMX_XSSX,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); sql.ParamByName("pBJDID").Value = sBJDID; return dberp.OpenDataSet(sql); } private Dictionary GetCZBLMTable(string sCZBID, string sCZBBBID) { Dictionary dicCZBLM = new Dictionary(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@" select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLXSBJCL_BJCLMC from XLJGCZBLM left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and XLJGCZBLM_ZDLMLX='4' "); sql.ParamByName("pJGCZBID").Value = sCZBID; sql.ParamByName("pJGCZBBBID").Value = sCZBBBID; DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sCLQDL = ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""); string sBJCLID = ds.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim(); string sBJHQ = ds.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); string sBJCLMC = ds.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(); if (!dicCZBLM.ContainsKey(sCLQDL)) { dicCZBLM.Add(sCLQDL, sBJCLID + "|" + sBJHQ + "|" + sBJCLMC); } } return dicCZBLM; } private Dictionary> GetCLQDTable(string sBJDID) { Dictionary> dicCLQD = new Dictionary>(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XSSX "); for (int i = 1; i <= 80; i++) { sql.Add(string.Format(",XLXSCLQD_SL{0},XLXSCLQD_SHL{0},XLXSCLQD_CLJGBL{0},XLXSCLQDWL_WLID{0} ", i.ToString().PadLeft(2, '0'))); } sql.Add(@" from XLXSBJDMX left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH where XLXSBJDMX_BJDID=:pBJDID order by XLXSBJDMX_XSSX "); sql.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Dictionary XLCLQDList = new Dictionary(); string sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); string sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); string sXSSX = ds.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); string sKey = sXLXHID + "|" + sXLGGID + "|" + sXLBZID + "|" + sDYDJID + "|" + sXSSX; if (!dicCLQD.ContainsKey(sKey)) { for (int j = 1; j <= 80; j++) { string sL = j.ToString().PadLeft(2, '0'); double dSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_SL" + sL].ToString().Trim(), 0); double dSHL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_SHL" + sL].ToString().Trim(), 0); double dCLJGBL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_CLJGBL" + sL].ToString().Trim(), 0); string sWLID = ds.Tables[0].Rows[i]["XLXSCLQDWL_WLID" + sL].ToString().Trim(); if (dSL > 0) { XLCLQDLEntity clqd = new XLCLQDLEntity(); clqd.CLQDL = sL; clqd.CLSL = dSL; clqd.SHL = dSHL; clqd.CLJGBL = dCLJGBL; clqd.WLID = sWLID; XLCLQDList.Add(sL, clqd); } } if (XLCLQDList.Count > 0) dicCLQD.Add(sKey, XLCLQDList); } } return dicCLQD; } private Dictionary GetCLHQDic() { Dictionary dicCLHQ = new Dictionary(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"select XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID=:pBJDID"); sql.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sBJCLID = ds.Tables[0].Rows[i]["XLXSBJDCLHQ_BJCLID"].ToString().Trim(); double dHSJG = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDCLHQ_HSJG"].ToString().Trim(), 0); if (!dicCLHQ.ContainsKey(sBJCLID)) dicCLHQ.Add(sBJCLID, dHSJG); } return dicCLHQ; } private Dictionary GetWLHQDic() { Dictionary dicWLHQ = new Dictionary(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"select XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_HSJG from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID=:pBJDID"); sql.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sBJCLID = ds.Tables[0].Rows[i]["XLXSBJDWLHQ_WLID"].ToString().Trim(); double dHSJG = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDWLHQ_HSJG"].ToString().Trim(), 0); if (!dicWLHQ.ContainsKey(sBJCLID)) dicWLHQ.Add(sBJCLID, dHSJG); } return dicWLHQ; } private Dictionary GetWLHQComDic() { Dictionary dicWLHQ = new Dictionary(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"select XLXSWLHQ_WLID,XLXSWLHQ_HSJG from XLXSWLHQ where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_YXQS<=:pBJRQ and (XLXSWLHQ_YXQZ is null or XLXSWLHQ_YXQZ>=:pBJRQ) "); sql.ParamByName("pBJRQ").Value = datBJRQ.Text.Trim(); DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sBJCLID = ds.Tables[0].Rows[i]["XLXSWLHQ_WLID"].ToString().Trim(); double dHSJG = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSWLHQ_HSJG"].ToString().Trim(), 0); if (!dicWLHQ.ContainsKey(sBJCLID)) dicWLHQ.Add(sBJCLID, dHSJG); } return dicWLHQ; } private void BJDHQLJDC() { DataSet dsCZB = GetCZBIDTable(txtBJDID.Text.Trim()); Dictionary dicCZBLM = new Dictionary(); Dictionary> dicCLQD = GetCLQDTable(txtBJDID.Text.Trim()); Dictionary dicCLHQ = GetCLHQDic(); Dictionary dicWLHQ = GetWLHQDic(); Dictionary dicWLHQCom = GetWLHQComDic(); string sLastCZBID = ""; string sLastCZBBBID = ""; for (int i = 0; i < dsCZB.Tables[0].Rows.Count; i++) { string sCZBID = dsCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBID"].ToString().Trim(); string sCZBBBID = dsCZB.Tables[0].Rows[i]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); string sXLXHID = dsCZB.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = dsCZB.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = dsCZB.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); string sDYDJID = dsCZB.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); string sXSSX = dsCZB.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); string sKey = sXLXHID + "|" + sXLGGID + "|" + sXLBZID + "|" + sDYDJID + "|" + sXSSX; if (!sCZBID.Equals(sLastCZBID) || !sCZBBBID.Equals(sLastCZBBBID)) { sLastCZBID = sCZBID; sLastCZBBBID = sCZBBBID; dicCZBLM = GetCZBLMTable(sCZBID, sCZBBBID); } if (dicCLQD.ContainsKey(sKey)) { for (int j = 1; j <= 80; j++) { string sL = j.ToString().PadLeft(2, '0'); if (dicCLQD[sKey].ContainsKey(sL) && dicCZBLM.ContainsKey(sL)) { dicCLQD[sKey][sL].LMMC = dicCZBLM[sL].Split('|')[2]; dicCLQD[sKey][sL].BJHQ = dicCZBLM[sL].Split('|')[1]; dicCLQD[sKey][sL].BJCLID = dicCZBLM[sL].Split('|')[0]; if (dicCLQD[sKey][sL].BJHQ.Equals("2")) { if (dicWLHQ.ContainsKey(dicCLQD[sKey][sL].WLID)) { dicCLQD[sKey][sL].CLJG = dicWLHQ[dicCLQD[sKey][sL].WLID]; } else if (dicWLHQCom.ContainsKey(dicCLQD[sKey][sL].WLID)) { dicCLQD[sKey][sL].CLJG = dicWLHQCom[dicCLQD[sKey][sL].WLID]; } else dicCLQD[sKey][sL].CLJG = 0; } else dicCLQD[sKey][sL].CLJG = dicCLHQ.ContainsKey(dicCLQD[sKey][sL].BJCLID) ? dicCLHQ[dicCLQD[sKey][sL].BJCLID] : 0; } } } } DataSet FinalExcelSet = new DataSet(); DataTable FinalTable = new DataTable(); FinalTable.TableName = "报价单行情材料成本"; FinalTable.Columns.Add("显示序号", typeof(double)); FinalTable.Columns.Add("型号", typeof(string)); FinalTable.Columns.Add("规格", typeof(string)); FinalTable.Columns.Add("标准", typeof(string)); FinalTable.Columns.Add("电压等级", typeof(string)); FinalTable.Columns.Add("材料编码", typeof(string)); FinalTable.Columns.Add("材料名称", typeof(string)); FinalTable.Columns.Add("材料价格(元/Kg)", typeof(double)); FinalTable.Columns.Add("材料用量", typeof(double)); FinalTable.Columns.Add("材料成本", typeof(double)); foreach (string sKey in dicCLQD.Keys) { bool flag = false;//记录产品是否添加过行 string sXLXHID = sKey.Split('|')[0]; string sXLGGID = sKey.Split('|')[1]; string sXLBZID = sKey.Split('|')[2]; string sDYDJID = sKey.Split('|')[3]; double dXSSX = CMISproConvert.StrToFloat(sKey.Split('|')[4]); foreach (string CLQDL in dicCLQD[sKey].Keys) { string sCLBM = dicCLQD[sKey][CLQDL].BJCLID; string sCLMC = dicCLQD[sKey][CLQDL].LMMC; double dCLJG = dicCLQD[sKey][CLQDL].CLJG; double dCLSL = NumberUtils.RoundX(dicCLQD[sKey][CLQDL].CLSL * (1 - dicCLQD[sKey][CLQDL].SHL / 100) * dicCLQD[sKey][CLQDL].CLJGBL, 6); double dCLCB = NumberUtils.RoundX(dicCLQD[sKey][CLQDL].CLJG * dicCLQD[sKey][CLQDL].CLSL * (1 - dicCLQD[sKey][CLQDL].SHL / 100) * dicCLQD[sKey][CLQDL].CLJGBL, 6); if (dCLSL == 0) continue; DataRow[] dr = FinalTable.Select("显示序号=" + dXSSX.ToString() + " and 材料编码='" + sCLBM + "'"); if (dr.Length > 0) { dr[0]["材料用量"] = CMISproConvert.StrToFloat(dr[0]["材料用量"].ToString(), 0) + dCLSL; dr[0]["材料成本"] = CMISproConvert.StrToFloat(dr[0]["材料成本"].ToString(), 0) + dCLCB; dr[0]["材料价格(元/Kg)"] = NumberUtils.RoundX(CMISproConvert.StrToFloat(dr[0]["材料成本"].ToString(), 0) / CMISproConvert.StrToFloat(dr[0]["材料用量"].ToString(), 0), 6); } else { DataRow newRow = FinalTable.NewRow(); newRow["显示序号"] = dXSSX; newRow["型号"] = sXLXHID; newRow["规格"] = sXLGGID; newRow["标准"] = sXLBZID; newRow["电压等级"] = sDYDJID; newRow["材料编码"] = sCLBM; newRow["材料名称"] = sCLMC; newRow["材料价格(元/Kg)"] = dCLJG; newRow["材料用量"] = dCLSL; newRow["材料成本"] = dCLCB; FinalTable.Rows.Add(newRow); } flag = true; } if (flag) { DataRow newRowBlank = FinalTable.NewRow(); FinalTable.Rows.Add(newRowBlank); } } FinalExcelSet.Tables.Add(FinalTable); NpoiSheetData sd = new NpoiSheetData(); sd.ColumnStyle = new System.Collections.Generic.Dictionary(); NpoiColumnStyle ct = new NpoiColumnStyle(); ct.DataFormat = "0;-0;;@"; sd.ColumnStyle.Add("A", ct); ct.DataFormat = "0.000;-0.000;;@"; sd.ColumnStyle.Add("H", ct); ct.DataFormat = "0.000000;-0.000000;;@"; sd.ColumnStyle.Add("I", ct); ct.DataFormat = "0.0000;-0.0000;;@"; sd.ColumnStyle.Add("J", ct); sd.ColumnType = new System.Collections.Generic.Dictionary(); string sLet = ""; sLet = TExcelData.ColIndexToReference(0); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(7); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(8); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(9); sd.ColumnType.Add(sLet, NpoiColumnType.Double); string sFileName = CurSession.UserId.Trim() + Guid.NewGuid().ToString() + "材料成本"; string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx"); string smessage = string.Empty; TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, FinalExcelSet, true, null, sd, ref smessage); if (smessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("OPENJLDC", jsript); } else { ShowMessage(smessage); } } #endregion #region JGE导出 private DataSet GetCLCBTable(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" select XLXSBJDMX_BJCP,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XSSX "); for (int i = 1; i <= 80; i++) { string sL = i.ToString().PadLeft(2, '0'); sql.Add(string.Format(",XLXSBJDCLCB_CLSL{0},XLXSBJDCLCB_CLDJ{0},XLXSBJDCLCB_CLID{0} ", sL)); } sql.Add(" from XLXSBJDCLCB "); sql.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=XLXSBJDCLCB_BJDID and XLXSBJDMX_XH=XLXSBJDCLCB_XH "); sql.Add(" where XLXSBJDCLCB_BJDID=:pBJDID "); sql.ParamByName("pBJDID").Value = sBJDID; return dberp.OpenDataSet(sql); } private Dictionary GetCLMCDic() { Dictionary dicCLHQ = new Dictionary(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(@"select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC from XLXSBJCL where 1=1 "); DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sBJCLID = ds.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim(); string sCLMC = ds.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(); if (!dicCLHQ.ContainsKey(sBJCLID)) dicCLHQ.Add(sBJCLID, sCLMC); } return dicCLHQ; } private Dictionary> GetCLQDTable() { DataSet ds = GetCLCBTable(txtBJDID.Text.Trim()); Dictionary dicCLMC = GetCLMCDic(); Dictionary> dicCLQD = new Dictionary>(); int estimatedCapacity = ds.Tables[0].Rows.Count; if (estimatedCapacity > 0) { dicCLQD = new Dictionary>(estimatedCapacity); } int bjcpIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_BJCP"); int xlxhIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLXHID"); int xlggIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLGGID"); int xlbzIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLBZID"); int dydjIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_DYDJID"); int xssxIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XSSX"); // 使用StringBuilder构建键 StringBuilder keyBuilder = new StringBuilder(100); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow row = ds.Tables[0].Rows[i]; // 使用StringBuilder构建键 keyBuilder.Length = 0; // 清空StringBuilder keyBuilder.Append(row[bjcpIndex].ToString().Trim()).Append("|"); keyBuilder.Append(row[xlxhIdIndex].ToString().Trim()).Append("|"); keyBuilder.Append(row[xlggIdIndex].ToString().Trim()).Append("|"); keyBuilder.Append(row[xlbzIdIndex].ToString().Trim()).Append("|"); keyBuilder.Append(row[dydjIdIndex].ToString().Trim()).Append("|"); keyBuilder.Append(row[xssxIndex].ToString().Trim()); string sKey = keyBuilder.ToString(); if (!dicCLQD.ContainsKey(sKey)) { Dictionary XLCLQDList = new Dictionary(80); for (int j = 1; j <= 80; j++) { string sL = j.ToString().PadLeft(2, '0'); // 缓存列名 string clslColumn = "XLXSBJDCLCB_CLSL" + sL; string cldjColumn = "XLXSBJDCLCB_CLDJ" + sL; string clidColumn = "XLXSBJDCLCB_CLID" + sL; double dSL = CMISproConvert.StrToFloat(row[clslColumn].ToString().Trim(), 0); if (dSL > 0) { string sCLID = row[clidColumn].ToString().Trim().Split('|')[0]; XLCLQDLEntity clqd = new XLCLQDLEntity(); clqd.CLQDL = sL; clqd.CLSL = dSL; clqd.CLJG = CMISproConvert.StrToFloat(row[cldjColumn].ToString().Trim(), 0); clqd.SHL = 0; clqd.CLJGBL = 1; clqd.BJCLID = sCLID; if (dicCLMC.ContainsKey(sCLID)) clqd.LMMC = dicCLMC[sCLID]; XLCLQDList.Add(sL, clqd); } } if (XLCLQDList.Count > 0) dicCLQD.Add(sKey, XLCLQDList); } } return dicCLQD; } private void BJDHQLJDCJGE() { Dictionary> dicCLQD = GetCLQDTable(); DataSet FinalExcelSet = new DataSet(); DataTable FinalTable = new DataTable(); FinalTable.TableName = "报价单行情材料成本"; FinalTable.Columns.Add("显示序号", typeof(double)); FinalTable.Columns.Add("报价产品", typeof(string)); FinalTable.Columns.Add("型号", typeof(string)); FinalTable.Columns.Add("规格", typeof(string)); FinalTable.Columns.Add("标准", typeof(string)); FinalTable.Columns.Add("电压等级", typeof(string)); FinalTable.Columns.Add("材料编码", typeof(string)); FinalTable.Columns.Add("材料名称", typeof(string)); FinalTable.Columns.Add("材料价格(元/Kg)", typeof(double)); FinalTable.Columns.Add("材料用量", typeof(double)); FinalTable.Columns.Add("材料成本", typeof(double)); // 使用字典提高查找效率 Dictionary rowDictionary = new Dictionary(); foreach (string sKey in dicCLQD.Keys) { bool flag = false; string[] keyParts = sKey.Split('|'); string sBJCP = keyParts[0]; string sXLXHID = keyParts[1]; string sXLGGID = keyParts[2]; string sXLBZID = keyParts[3]; string sDYDJID = keyParts[4]; double dXSSX = CMISproConvert.StrToFloat(keyParts[5], 0); foreach (string CLQDL in dicCLQD[sKey].Keys) { XLCLQDLEntity entity = dicCLQD[sKey][CLQDL]; string sCLBM = entity.BJCLID; string sCLMC = entity.LMMC; double dCLJG = entity.CLJG; double dCLSL = NumberUtils.RoundX(entity.CLSL * (1 - entity.SHL / 100) * entity.CLJGBL, 6); if (dCLSL == 0) continue; double dCLCB = NumberUtils.RoundX(dCLJG * dCLSL, 6); // 创建唯一键用于查找 string rowKey = dXSSX.ToString() + "|" + sCLBM; if (rowDictionary.ContainsKey(rowKey)) { DataRow dr = rowDictionary[rowKey]; double currentUsage = CMISproConvert.StrToFloat(dr["材料用量"].ToString(), 0); double currentCost = CMISproConvert.StrToFloat(dr["材料成本"].ToString(), 0); dr["材料用量"] = currentUsage + dCLSL; dr["材料成本"] = currentCost + dCLCB; dr["材料价格(元/Kg)"] = NumberUtils.RoundX((currentCost + dCLCB) / (currentUsage + dCLSL), 6); } else { DataRow newRow = FinalTable.NewRow(); newRow["显示序号"] = dXSSX; newRow["报价产品"] = sBJCP; newRow["型号"] = sXLXHID; newRow["规格"] = sXLGGID; newRow["标准"] = sXLBZID; newRow["电压等级"] = sDYDJID; newRow["材料编码"] = sCLBM; newRow["材料名称"] = sCLMC; newRow["材料价格(元/Kg)"] = dCLJG; newRow["材料用量"] = dCLSL; newRow["材料成本"] = dCLCB; FinalTable.Rows.Add(newRow); rowDictionary.Add(rowKey, newRow); } flag = true; } if (flag) { DataRow newRowBlank = FinalTable.NewRow(); FinalTable.Rows.Add(newRowBlank); } } // 其余代码保持不变... FinalExcelSet.Tables.Add(FinalTable); NpoiSheetData sd = new NpoiSheetData(); sd.ColumnStyle = new System.Collections.Generic.Dictionary(); NpoiColumnStyle ct = new NpoiColumnStyle(); ct.DataFormat = "0;-0;;@"; sd.ColumnStyle.Add("B", ct); ct.DataFormat = "0.000;-0.000;;@"; sd.ColumnStyle.Add("I", ct); ct.DataFormat = "0.000000;-0.000000;;@"; sd.ColumnStyle.Add("J", ct); ct.DataFormat = "0.0000;-0.0000;;@"; sd.ColumnStyle.Add("K", ct); sd.ColumnType = new System.Collections.Generic.Dictionary(); string sLet = ""; sLet = TExcelData.ColIndexToReference(0); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(8); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(9); sd.ColumnType.Add(sLet, NpoiColumnType.Double); sLet = TExcelData.ColIndexToReference(10); sd.ColumnType.Add(sLet, NpoiColumnType.Double); string sFileName = CurSession.UserId.Trim() + Guid.NewGuid().ToString() + "材料成本"; string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx"); string smessage = string.Empty; TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, FinalExcelSet, true, null, sd, ref smessage); if (smessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("OPENJLDC", jsript); } else { ShowMessage(smessage); } } #endregion private bool HasCLQD(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}' and XLXSCLQD_WPID='ZZZZ' ", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) return true; return false; } private string GetWLXX(string sWLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select WL_MC,WL_GG from WL where WL_WLID=:pWLID"); sql.ParamByName("pWLID").Value = sWLID.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) return sWLID.Trim() + "|" + ds.Tables[0].Rows[0]["WL_MC"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["WL_GG"].ToString().Trim(); else return sWLID.Trim(); } #endregion //报价下拉按钮-四舍五入 private void Round_TZBJ() { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_BJSSWRInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("btnRefresh1", btnRefresh1.ClientID); OpenDialog(pageParams); } //报价产品是否启动报价运费 private string bCPQYYF(string sBJDID, string sXH) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_BJFLID,case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end as CPMLID from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); SQL.Add(" left join XLXSBJDQYFZB on XLXSBJDQYFZB_XZQHID = XLXSBJD_XZQHID "); SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')"); SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); SQL.Add(" and (XLXSBJDQYFZB_YFJSFS like '%3%' or XLXSBJDQYFZB_YFJSFS like '%4%') "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(sXH); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); string sCPMLID = ds.Tables[0].Rows[0]["CPMLID"].ToString().Trim(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDQYFB4SY1 where XLXSBJDQYFB4SY1_CPMLID = '{0}'", sCPMLID))) { List yzxx_List = XLBJDUtils.GetBJFLYZOrderByXSXH(sBJFLID); foreach (TZYZXX yzxx in yzxx_List) { if(yzxx.XLXSTZYZ_TJMDID.Equals("100860071")) return "Y"; } } } return "N"; } //获取运费单价 public static double GetYSFY(string sYSJDID, string sGYSID, string sYFWLID, double fZZL) { double fYSFY = 0; if (sGYSID.Trim().Equals("")) { return fYSFY; } string sYSXLID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select YSXL_YSXLID from YSXL "); SQL.Add(" left join YSXLMX on YSXLMX_YSXLID = YSXL_YSXLID "); SQL.Add(" where isnull(YSXL_TYBZ,'N') <> 'Y' "); SQL.Add(" and exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID = :pYSXLMX_YSJDID) "); SQL.Add(" and not exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID <> :pYSXLMX_YSJDID) "); SQL.Add(" order by YSXL_YSXLID"); SQL.ParamByName("pYSXLMX_YSJDID").Value = sYSJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sYSXLID = ds.Tables[0].Rows[0][0].ToString().Trim(); SQL.Clear(); SQL.Add(" select CHJJJGBMX_WLJG from CHJJJGBMX "); SQL.Add(" left join CHJJJGB on CHJJJGB_JGBLX = CHJJJGBMX_JGBLX and CHJJJGB_JGBBH = CHJJJGBMX_JGBBH and CHJJJGB_JGBQH = CHJJJGBMX_JGBQH "); SQL.Add(" left join YFJZQJ on YFJZQJ_WLID = CHJJJGBMX_WLID and YFJZQJ_YFJZQH = SUBSTRING(CHJJJGBMX_JJPC,21,10) "); SQL.Add(" where CHJJJGBMX_JGBLX = 'YF' and CHJJJGBMX_JGBBH = :pCHJJJGBMX_JGBBH "); SQL.Add(" and CHJJJGBMX_WLID =:pCHJJJGBMX_WLID and CHJJJGBMX_JJPC like :pCHJJJGBMX_JJPC "); //此处有交叠问题 SQL.Add(" and YFJZQJ_YFJZSX > :pZZL and YFJZQJ_YFJZXX <= :pZZL "); SQL.Add(" and CHJJJGB_KSRQ<=:pRQ and IsNull(CHJJJGB_JSRQ,Convert(DateTime,'9999-12-31'))>=:pRQ "); SQL.ParamByName("pCHJJJGBMX_JGBBH").Value = sGYSID; SQL.ParamByName("pCHJJJGBMX_WLID").Value = sYFWLID; SQL.ParamByName("pCHJJJGBMX_JJPC").Value = sYSXLID.PadRight(10, ' ') + sYSJDID.PadRight(10, ' ') + "%"; SQL.ParamByName("pZZL").Value = fZZL; SQL.ParamByName("pRQ").Value = DateTime.Now; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { fYSFY = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); } } return fYSFY; } //字典value值模糊匹配 public static bool dicValueContained(Dictionary dic, string sValue) { foreach (string V in dic.Values) { if (V.Contains(sValue)) return true; } return false; } //根据调因子值因子返回调因子值后的因子值 public static double GetTYZZ(string sTZYZZIDs, double dYZZ, Dictionary dicTYZZYZIDValue) { string[] sTYZZYZIDList = sTZYZZIDs.Split(','); for (int i = 0; i < sTYZZYZIDList.Length; i++) { if (dicTYZZYZIDValue.ContainsKey(sTYZZYZIDList[i])) { if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[i]).XLXSTZYZ_JJFS == "JD") dYZZ = dYZZ * (1 + dicTYZZYZIDValue[sTYZZYZIDList[i]] / 100.0);//因子值先被“调因子值”因子作用 else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[i]).XLXSTZYZ_JJFS == "KD") { if (dicTYZZYZIDValue[sTYZZYZIDList[i]]!=100) dYZZ = dYZZ / (1 - dicTYZZYZIDValue[sTYZZYZIDList[i]] / 100.0);//因子值先被“调因子值”因子作用 } else dYZZ = dYZZ + dicTYZZYZIDValue[sTYZZYZIDList[i]];//因子值先被“调因子值”因子作用 } } return dYZZ; } // // // // // // // protected void btnMXOper_DropDown(object sender, EventArgs e) { bool bFromTQJGDFBJList = PageParam.GetRTrimString("FromTQJGDFBJList").Equals("Y"); string sXZMXKXX = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XZMXKXX)) sXZMXKXX = pzxx.XLXSBJPZ_XZMXKXX; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); bool bYXLRBJCP = YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim()); btnMXOper.Nodes.Clear(); if (!sXZMXKXX.Equals("")) { Dictionary dicMXKXX = new Dictionary(); dicMXKXX.Add("ZJBJ", "按价格表录入"); dicMXKXX.Add("WJDR", "按内置格式导入"); dicMXKXX.Add("FZDR", "按复制内容导入"); dicMXKXX.Add("QDDR", "按材料清单导入"); dicMXKXX.Add("HTDR", "按合同标的价格导入"); if (CheckModule("100860073")) { dicMXKXX.Add("WLDR", "按线缆物料导入"); } if (CheckModule("100860043")) { dicMXKXX.Add("WBBJD", "按外部报价单导入"); } if (CheckModule("100860053")) { dicMXKXX.Add("WBPIC", "按外部报价单图片导入"); } dicMXKXX.Add("GSDR", "按配置格式导入"); if (CheckModule("100860099")) { dicMXKXX.Add("WXCJD", "按微信查价单导入"); } if (CheckModule("102591003")) { dicMXKXX.Add("GWCP", "国网产品导入"); } if (CheckModule("102591004")) { dicMXKXX.Add("BYDCP", "比亚迪产品导入"); } if (CheckModule("102591005")) { dicMXKXX.Add("KHWLDR", "按客户物料导入"); } foreach (string sKXX in sXZMXKXX.Split(',')) { if (dicMXKXX.ContainsKey(sKXX)) { btnMXOper.Nodes.Add(new gtTreeNode(sKXX, dicMXKXX[sKXX])); } } if (CheckModule("100860043")) { XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860043); if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_KSDREJCD)) btnMXOper.Nodes.Add(new gtTreeNode(pzxx2.XLXSBJPZ_KSDREJCD, "型号 规格/型号-电压等级 规格", "WBBJD")); } } if (bFromTQJGDFBJList) btnMXOper.Nodes.Add(new gtTreeNode("TQJGDFDR", "按铜区间或固定费导入")); //价格模板 if (HasJGMB()) btnMXOper.Nodes.Add(new gtTreeNode("JGMBDC", "按价格模板导出")); //调整标准 if(bjflxx.XSXLBZMS()) btnMXOper.Nodes.Add(new gtTreeNode("TZBZ", "调整线缆标准描述")); else btnMXOper.Nodes.Add(new gtTreeNode("TZBZ", "调整标准")); //工作流域权限隐藏了“表价含税” if (chkJZBJHS.Style["display"] != "none") { if (chkJZBJHS.Checked) { btnMXOper.Nodes.Add(new gtTreeNode("JZBJHS", "无税报价")); } else { btnMXOper.Nodes.Add(new gtTreeNode("JZBJHS", "含税报价")); } } if (XLBJDUtils.ExistXSCPML()) { btnMXOper.Nodes.Add(new gtTreeNode("GXCPML", "更新产品目录")); } if (!bYXLRBJCP) { for (int i = 0; i < btnMXOper.Nodes.Count; i++) { if (btnMXOper.Nodes[i].Value.Equals("ZJBJ")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("WJDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("FZDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("QDDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("HTDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("GSDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("WXCJD")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("GWCP")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("BYDCP")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("KHWLDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("TQJGDFDR")) btnMXOper.Nodes[i].Enabled = false; if (btnMXOper.Nodes[i].Value.Equals("TZBZ")) btnMXOper.Nodes[i].Enabled = false; } } MenuAreaUpdate(); } protected void btnMXOper_MenuItemClick(object sender, string value) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); bool bYXLRBJCP = YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim()); TPageParams pageParams = new TPageParams(); switch (value) { case "ZJBJ": btnMXOper_Click(null, null); break; case "WJDR": pageParams.UrlPath = "DRBJDMX.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); break; case "FZDR": string sBJFLIDList = GetOption("BJU038"); if (!string.IsNullOrEmpty(sBJFLIDList) && sBJFLIDList.Contains(cbxBJFLID.SelectedValue.Trim())) { pageParams.UrlPath = "XLWBBJD_BZXZ.aspx"; pageParams.AddString("txtMRBZID", txtMRBZID.ClientID); OpenDialogClickBtn(pageParams, btnZDBZ.ClientID); } else { if (txtIsWebCtrl.Value.Equals("Y")) { OpenBB(); } else { OpenFZDRXInfo(); } } break; case "QDDR": pageParams.UrlPath = "XLBJD_PLDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID.ToString()); break; case "WLDR": pageParams.UrlPath = "XLBJD_WBXLWLDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenModuleDialog(100860073, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); break; case "GSDR": pageParams.UrlPath = "XLBJD_PZGSList.aspx"; pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); break; case "WBBJD": pageParams.UrlPath = "XLBJD_WBBJDDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); OpenModuleDialog(100860043, pageParams, btnRefreshWBBJD.ClientID); break; case "GWCP": pageParams.UrlPath = "../components/N_XLBJDR/GWCPDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); OpenModuleDialog(102591003, pageParams, btnRefreshWBBJD.ClientID); break; case "BYDCP": pageParams.UrlPath = "../components/N_XLBJDR/BYDCPDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); OpenModuleDialog(102591004, pageParams, btnRefreshWBBJD.ClientID); break; case "KHWLDR": pageParams.UrlPath = "../components/N_XLBJDR/AKHWLDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); OpenModuleDialog(102591005, pageParams, btnRefreshWBBJD.ClientID); break; case "WBPIC": pageParams.UrlPath = "XLBJD_WBPICDRList.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); OpenModuleDialog(100860053, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); break; case "WXCJD": pageParams.UrlPath = "WXXLCJDList.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(100860099, pageParams, btnRefreshCLHQTZ.ClientID); break; case "TQJGDFDR": pageParams.AddString("ImportMode", "Y"); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJHS", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("btnRefreshCID", btnRefreshOper.ClientID); OpenModuleDialog(100860109, pageParams, btnRefreshOper.ClientID); break; case "JGMBDC": ExportByJGMB(); break; case "JZBJHS": UpdateByJZBJHS(chkJZBJHS.Checked, true);//无税报价、含税报价切换 break; case "SZCPML": OpenCPML(pageParams); break; case "HTDR": pageParams.UrlPath = "XLBJD_HTBDJGDRInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); break; case "TZBZ": if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) { txtPLSZAll.Value = "Y"; } else txtPLSZAll.Value = "N"; pageParams.UrlPath = "XLBJD_MX_BJCPInfo.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("PLSZAll", txtPLSZAll.Value); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("txtPLSZBZID", txtPLSZBZID.ClientID); //是否整单调整 pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); pageParams.AddString("btnRefreshPLTZBZ", btnRefreshPLTZBZ.ClientID); OpenDialog(pageParams); break; case "1": pageParams.UrlPath = "XLBJD_JYDRInfo.aspx"; pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJRQ", datBJRQ.Text); pageParams.AddString("JLDW", GetOption("BJU003")); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); pageParams.AddString("BJLY", txtBJLY.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); } pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); OpenDialogClickBtn(pageParams, btnRefreshWBBJD.ClientID); break; case"GXCPML": GXCPML_Click(); break; } } private void GXCPML_Click() { string sWarning = "即将更新所有明细的产品目录,是否继续?"; Confirm.Register("IsQD", sWarning); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@" merge into XLXSBJDMX tar using( select XLXSBJDMX_XH as XH,case when CPMLMC is null then isnull(XLXSBJDMX_CPMLMC,' ') else CPMLMC end as CPMLMC, case when ZHCPMLMC is null then isnull(XLXSBJDMX_ZHCPMLMC,' ') else ZHCPMLMC end as ZHCPMLMC from XLXSBJDMX left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and isnull(A.XLXSBJXHML_DYDJID,' ') <> ' ' and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and isnull(B.XLXSBJXHML_DYDJID,' ') = ' ' left join (select DY.XLXSCPML_CPMLID as CPMLID ,DY.XLXSCPML_CPMLMC as CPMLMC ,min(ZH.XLXSCPML_CPMLMC) as ZHCPMLMC from XLXSCPML DY left join XLXSCPML ZH on ','||rtrim(ZH.XLXSCPML_CPMLIDS)||',' like '%,'||rtrim(DY.XLXSCPML_CPMLID)||',%' group by DY.XLXSCPML_CPMLID,DY.XLXSCPML_CPMLMC ) CPML on CPML.CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end where XLXSBJDMX_BJDID=:pBJDID ) sor on( tar.XLXSBJDMX_BJDID=:pBJDID and tar.XLXSBJDMX_XH=sor.XH ) when matched then update set tar.XLXSBJDMX_CPMLMC= sor.CPMLMC,tar.XLXSBJDMX_ZHCPMLMC= sor.ZHCPMLMC "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); ShowMessage("更新完成!"); btnOnlyRefresh_Click(null, null); } //按价格模板导出 private void ExportByJGMB() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJFL_JGMBGRPID from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { double dGroupID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJFL_JGMBGRPID"].ToString()); DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dGroupID); if (docFileInfo.Length > 0) { string sFileName = docFileInfo[0].FileName; MemoryStream oFileStream = new MemoryStream(); FileService.GetFile(docFileInfo[0].FileId, oFileStream); sql.Clear(); sql.Add("select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_CPBJ,:pSJ as UPDTIME"); sql.Add(" from XLXSBJDMX"); sql.Add(" where XLXSBJDMX_BJDID=:pBJDID "); sql.Add(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH"); sql.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); sql.ParamByName("pSJ").Value = DateTime.Now; DataSet dsMX = dberp.OpenDataSet(sql); Dictionary dicMatchedCol = new Dictionary(); dicMatchedCol.Add("B", "XLXSBJDMX_XLXHID"); dicMatchedCol.Add("C", "XLXSBJDMX_XLGGID"); dicMatchedCol.Add("D", "XLXSBJDMX_XLBZID"); dicMatchedCol.Add("E", "XLXSBJDMX_DYDJID"); Dictionary dicUpdateCol = new Dictionary(); dicUpdateCol.Add("F", "XLXSBJDMX_JLDW"); dicUpdateCol.Add("G", "XLXSBJDMX_BJSL"); dicUpdateCol.Add("H", "XLXSBJDMX_CPBJ"); //dicUpdateCol.Add("K", "UPDTIME"); NpoiSheetData sd = new NpoiSheetData(); sd.ColumnType = new System.Collections.Generic.Dictionary(); sd.ColumnType.Add("F", NpoiColumnType.String); sd.ColumnType.Add("G", NpoiColumnType.Double); sd.ColumnType.Add("H", NpoiColumnType.Double); //sd.ColumnType.Add("K", NpoiColumnType.DateTime); string errorMessage = ""; string m_tmpFilePath = TExcelData.UpdateExcel_NPOI(oFileStream, "Sheet1", true, dsMX, dicMatchedCol, dicUpdateCol, sd, true, ref errorMessage); if (errorMessage.Equals("")) { System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName; string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; AjaxRunScript("MXDC_EX", jsript); } else { ShowMessage("导出数据失败:" + errorMessage); } } } } private bool HasJGMB() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJFL_JGMBGRPID from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { double dGroupID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJFL_JGMBGRPID"].ToString()); DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dGroupID); if (docFileInfo.Length > 0) return true; } return false; } //明细按钮----无税报价、含税报价切换 private void UpdateByJZBJHS(bool bJZBJHS, bool NeedUpdateHSBZ) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); //铜铝价 string sTJBJCLID = bjflxx.XLXSBJFL_TBJCLID; string sLJBJCLID = bjflxx.XLXSBJFL_LBJCLID; string sHSBZ = bJZBJHS ? "Y" : "N"; string sErrMsg = ""; try { dberp.BeginTrans(); if (NeedUpdateHSBZ) { sHSBZ = bJZBJHS ? "N" : "Y"; //更新基准报价含税标志 SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_JZBJHS=:pHSBZ where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pHSBZ").Value = sHSBZ; SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); dberp.ExecSQL(SQL); chkJZBJHS.Checked = sHSBZ.Equals("Y"); } if (!sTJBJCLID.Equals("") || !sLJBJCLID.Equals("")) { SQL.Clear(); SQL.Add("select XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJG "); SQL.Add(" from XLXSBJDCLHQ"); SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); SQL.Add(" and (XLXSBJDCLHQ_BJCLID=:pTJBJCLID or XLXSBJDCLHQ_BJCLID=:pLJBJCLID)"); SQL.Add(" order by XLXSBJDCLHQ_BJCLID"); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pTJBJCLID").Value = sTJBJCLID; SQL.ParamByName("pLJBJCLID").Value = sLJBJCLID; DataSet dsTLJ = dberp.OpenDataSet(SQL); if (dsTLJ.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsTLJ.Tables[0].Rows.Count; i++) { if (dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_BJCLID"].ToString().Trim().Equals(sTJBJCLID)) { if (chkJZBJHS.Checked) { txtTJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_HSJG"].ToString(), 0); } else { txtTJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_WSJG"].ToString(), 0); } } else if (dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_BJCLID"].ToString().Trim().Equals(sLJBJCLID)) { if (chkJZBJHS.Checked) { txtLJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_HSJG"].ToString(), 0); } else { txtLJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_WSJG"].ToString(), 0); } } } } else { Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); } if (!sTJBJCLID.Equals("")) { //更新铜价 SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_TJ = :pTJ where 1=1 and XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pTJ").Value = txtTJ.Value; dberp.ExecSQL(SQL); } if (!sLJBJCLID.Equals("")) { //更新铝价 SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_LJ = :pLJ where 1=1 and XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pLJ").Value = txtLJ.Value; dberp.ExecSQL(SQL); } } XLBJDCalcUtils.CalcAfterHSBZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, GetOption("BJU002"), GetOption("BJU003"), GetOption("BJU018"), CurSession.UserId, CurSession.UserName, ref sErrMsg); dberp.CommitTrans(); //刷新 btnOnlyRefresh_Click(null, null); } catch (Exception ex) { ShowMessage(sErrMsg + " " + ex.Message); dberp.RollbackTrans(); } } protected void btnCXJS_Click(object sender, EventArgs e) { UpdateByJZBJHS(chkJZBJHS.Checked,false); } //明细按钮----直接报价 protected void btnMXOper_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); TPageParams tpp = new TPageParams(); tpp.UrlPath = "XLBJD_MXOper.aspx"; tpp.AddString("BJRQ", datBJRQ.Text); tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); tpp.AddString("BJDID", txtBJDID.Text.Trim()); tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); tpp.AddString("JGCIDS", txtJGCIDS.Text.Trim()); string sJGFID = XLBJDUtils.GetJGFID(datBJRQ.Text.Trim()); tpp.AddString("JGFID", sJGFID); tpp.AddString("BJLY", txtBJLY.Text.Trim()); tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); tpp.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); tpp.AddString("SQRID", txtSQRID.Value.Trim()); tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); if (txtBJDYZ.Text.Trim().Equals("")) { Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; txtTJYSList.Text = dicBJDYZ["TJYSList"]; txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; txtPFYZID.Text = dicBJDYZ["PFYZ"]; txtBTYZ.Text = dicBJDYZ["BTYZ"]; txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; } tpp.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); tpp.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); tpp.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); tpp.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); tpp.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); tpp.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); tpp.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); tpp.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); tpp.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); tpp.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) tpp.AddString("NeedUpdBJDHQCLCB", "Y"); } tpp.AddString("BJDYZ", txtBJDYZ.Text); tpp.AddString("BTYZ", txtBTYZ.Text.Trim());//研发自测:刘青棚 2025-03-20 20:40:00 tpp.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); tpp.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); tpp.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); tpp.AddString("TJYSList", txtTJYSList.Text); tpp.AddString("YZWPIDList", txtYZWPIDList.Text); tpp.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text); tpp.AddString("WPID", txtWPID.Value); tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); tpp.AddString("TJ", txtTJ.Value.ToString()); tpp.AddString("LJ", txtLJ.Value.ToString()); tpp.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked() ? "Y" : "N"); tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); tpp.AddString("TZJGBBJ", txtTZJGBBJ.Text.Trim()); tpp.AddString("TZBJDHQLJ", txtTZBJDHQLJ.Text.Trim()); tpp.AddString("TZBJ", bjflxx.XLXSBJFL_TZBJ); tpp.AddString("CPBJZDWPID", bjflxx.XLXSBJFL_CPBJZDWPID); tpp.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); tpp.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); tpp.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); tpp.AddString("JLRBJCP", bjflxx.XLXSBJFL_JLRBJCP); tpp.AddString("HidJSLMList", sHidJSLMList); tpp.AddString("XHGGYMHJS", bjflxx.XLXSBJFL_XHGGYMHJS); tpp.AddString("PFYZ", txtPFYZID.Text.Trim()); tpp.AddString("JMBGSYZID", bjflxx.XLXSBJFL_JMBGSYZID); tpp.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); tpp.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); tpp.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); tpp.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); tpp.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); tpp.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); tpp.AddString("XSBJLJJCL", bjflxx.XSBJLJJCL() ? "Y" : "N"); tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 OpenDialogClickBtn(tpp, btnRefreshOper.ClientID); } //明细按钮----设置产品目录 private void OpenCPML(TPageParams pageParams) { UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 101421007); if (UR.Insert) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("insert into XLXSBJXHML(XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID, XLXSBJXHML_CPMLID, "); SQL.Add(" XLXSBJXHML_WHR,XLXSBJXHML_WHRID,XLXSBJXHML_WHSJ)"); SQL.Add(" select distinct XLXSBJDMX_XLXHID as XLXHID,ISNULL(XLXSBJDMX_DYDJID,' ') as DYDJID, ' ' as CPMLID, "); SQL.Add(" :pWHR, :pWHRID, :pWHSJ "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" where 1=1 "); SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" and not exists (select 1 from XLXSBJXHML where XLXSBJXHML_XLXHID = ISNULL(XLXSBJDMX_XLXHID,' ') and "); SQL.Add(" ( (XLXSBJXHML_DYDJID = ISNULL(XLXSBJDMX_DYDJID,' ') and XLXSBJXHML_DYDJID <> ' ') or XLXSBJXHML_DYDJID = ' ') ) "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pWHR").Value = CurSession.UserName; SQL.ParamByName("pWHRID").Value = CurSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); } pageParams.UrlPath = "../Components/N_XLJC/CPML_XHMLList.aspx"; pageParams.Title = "设置产品目录"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenModuleDialog(101421007, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); } protected void btnRefreshOper_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); entity.BJDID = txtBJDID.Text.Trim(); //分页模式下,传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.DataBind(); grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; if (grdXLBJDMX.RowCount <= 0) { btnBJLR.Enabled = false; btnCLCB.Enabled = false; } else { btnBJLR.Enabled = true; btnCLCB.Enabled = true; } btnAGXJLUHZ.Enabled = btnBJLR.Enabled; LoadRecord(); RefreshForm(); SetControlState(); TComboBox.SetComboBox("DBERP", cbxPJLX, string.Format("select SFPJ_PJLX,case isnull(SFPJ_TYBZ,' ') when 'Y' then rtrim(SFPJ_PJMC)||'(停用)' else SFPJ_PJMC end as Name from SFPJ where SFPJ_PJLX='{0}'", cbxPJLX.SelectedValue.Trim()), true); MenuAreaUpdate(); FormAreaUpdate(); //同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录 XLBJDInfo.InsertCLQDorJGBMX(txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), txtJGCIDS.Text.Trim(), CurSession); //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ 只有页面刷新后,再能取到正确的chkJZBJHS值 XLBJDInfo.InsertCLCBandJJYZ(TControlState.ctsEdit, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption("BJU003"), chkJZBJHS.Checked); //短米校验 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); ShowBJSLYZZCheckOrZDFX(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption("BJU003"), bjflxx.XLXSBJFL_XTCPBJYZ); } protected void btnPFZP_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", grdXLBJDMX._SelectedIndex).ToUpper(); double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", grdXLBJDMX._SelectedIndex)); if ((sJLDW.Equals("M") || sJLDW.Equals("KM") || sJLDW.Equals("米") || sJLDW.Equals("千米") || dicLenJLDWTD.ContainsKey(sJLDW)) && dBJSL != 0) { TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(txtPFYZID.Text.Trim()); if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_YZID)) { string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim(); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJPF_ZPList.aspx"; pageParams.AddString("XLXSBJDMX_BJDID", txtBJDID.Text.Trim()); pageParams.AddString("XLXSBJDMX_XH", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex)); pageParams.AddString("YZID", txtPFYZID.Text.Trim()); pageParams.AddString("YZMC", sYZMC); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); pageParams.AddString("CPQYYF", bCPQYYF(txtBJDID.Text.Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex))); if(lblZJE.Enabled) pageParams.AddString("ENABLED", "Y"); else pageParams.AddString("ENABLED", "N"); OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); } } } protected void btnPFJE_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", grdXLBJDMX._SelectedIndex).ToUpper(); double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", grdXLBJDMX._SelectedIndex)); if ((sJLDW.Equals("M") || sJLDW.Equals("KM") || sJLDW.Equals("米") || sJLDW.Equals("千米") || dicLenJLDWTD.ContainsKey(sJLDW)) && dBJSL != 0) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJPF_ZPList.aspx"; pageParams.AddString("XLXSBJDMX_BJDID", txtBJDID.Text.Trim()); pageParams.AddString("XLXSBJDMX_XH", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex)); pageParams.AddString("YZID", ""); pageParams.AddString("YZMC", ""); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); pageParams.AddString("CPQYYF", bCPQYYF(txtBJDID.Text.Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex))); if (lblZJE.Enabled) pageParams.AddString("ENABLED", "Y"); else pageParams.AddString("ENABLED", "N"); OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); } } protected void btnZDBZ_Click(object sender, EventArgs e) { if (txtIsWebCtrl.Value.Equals("Y")) { OpenBB(); } else { OpenFZDRXInfo(); } } protected void btnShowFJXX_Click(object sender, EventArgs e) { bZDXSFJXX = false; if (ShowFJXX) ShowFJXX = false; else ShowFJXX = true; } #region 按钮回调集合 // 报价单备注以及报价说明助手 protected void btnCODECLASS_Click(object sender, EventArgs e) { if (!txtZDM.Value.Equals("")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select XLXSBJSM_ZDM,XLXSBJSM_SMID,XLXSBJSM_SMNR "); SQL.Add(" from XLXSBJSM "); SQL.Add(" where 1=1 and XLXSBJSM_ZDM = :pXLXSBJSM_ZDM and XLXSBJSM_SMID = :pXLXSBJSM_SMID "); SQL.ParamByName("pXLXSBJSM_ZDM").Value = txtZDM.Value.Trim(); SQL.ParamByName("pXLXSBJSM_SMID").Value = txtSMID.Value.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (txtZDM.Value.Equals("BZ")) { txtBZ.Text = ds.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); } else if (txtZDM.Value.Equals("FKSM")) { txtFKSM.Text = ds.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); } FormAreaUpdate(); } } } protected void btnRefreshYZZCheck_Click(object sender, EventArgs e) { btnOnlyRefresh_Click(null, null); BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); //只返回第一次不相同的----仅提示 if (!bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("N")) { // string sBJDID = txtBJDID.Text.Trim(); string WarningMsg = ""; XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption("BJU003"), ref WarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); if (!WarningMsg.Equals("")) { WarningMsg = String.Format("显示序号为【" + WarningMsg + "】的相同报价产品的{0}不同!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM); ShowMessage(WarningMsg); } } //自动撞单分析 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (pzxx.XLXSBJPZ_ZDZD=="Y") { SQL.Clear(); SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { btnZDFX_Click(null, null); } } } protected void btnRefreshFKQXTJB_Click(object sender, EventArgs e) { //付款期限 TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID ))" + " order by ID", true); FormAreaUpdate(); } #endregion #region 铜价、铝价 //铜价、铝价标签 protected void lblTJ_Click(object sender, EventArgs e) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_TLJInfo.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); pageParams.AddString("TJ", txtTJ.Value.ToString()); pageParams.AddString("LJ", txtLJ.Value.ToString()); pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); pageParams.AddString("MXBH", bjflxx.XLXSBJFL_MXBH); pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim()); pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); pageParams.AddString("txtNEWBJDID", txtNEWBJDID.ClientID); pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); OpenDialog(pageParams); } protected void lblJGBID_Click(object sender, EventArgs e) { if (txtTJ.Visible) return; TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_JGMLXZ.aspx"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); } //获取指定日铜价、铝价 public static Dictionary GetTLJByRQ(string sRQ, string sBJFLID, bool bHSBZ, string sJGBID) { Dictionary dicTLJG = new Dictionary(); dicTLJG.Add("TJ", ""); dicTLJG.Add("LJ", ""); dicTLJG.Add("TJWHSJ", ""); dicTLJG.Add("LJWHSJ", ""); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); if (CMISproDataBase.ExistsRecord("DBERP", "SELECT 1 FROM XLXSBJFL WHERE (XLXSBJFL_MXBH = 'JGE' OR (XLXSBJFL_MXBH = 'JGB' AND XLXSBJFL_BJDHQLY = '2')) AND XLXSBJFL_BJFLID = '" + sBJFLID + "'") || sJGBID.Equals("ZZZZZZZZ")) { sql.Add(" select XLXSCLHQ_BJCLID,TL,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); sql.Add(" from XLXSCLHQ, "); sql.Add(" ( "); sql.Add(" select XLXSCLHQ_BJCLID as BJCLID, "); sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); sql.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); sql.Add(" from XLXSCLHQ,XLXSBJFL "); sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); sql.Add(" and XLXSCLHQ_YXQS<=:pRQ and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ) "); sql.Add(" group by XLXSCLHQ_BJCLID,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID "); sql.Add(" ) b "); sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); sql.Add(" and XLXSCLHQ_BJCLID=BJCLID "); sql.Add(" and XLXSCLHQ_YXQS=maxYXQS "); sql.Add(" order by XLXSCLHQ_BJCLID"); sql.ParamByName("pBJFLID").Value = sBJFLID; sql.ParamByName("pRQ").Value = sRQ; } else { sql.Add(" select XLXSCLHQ_BJCLID,TL,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); sql.Add(" from XLXSCLHQ,"); sql.Add(" ("); sql.Add(" select XLXSCLHQ_BJCLID as BJCLID,"); sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); sql.Add(" max(XLXSCLHQ_YXQS)as maxYXQS"); sql.Add(" from XLXSCLHQ,XLXSBJCL,XLXSBJFL"); sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); sql.Add(" and XLXSCLHQ_YXQS<=:pBJRQ"); sql.Add(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); sql.Add(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); sql.Add(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料 sql.Add(" group by XLXSCLHQ_BJCLID,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID "); sql.Add(" ) x"); sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); sql.Add(" and XLXSCLHQ_BJCLID=BJCLID"); sql.Add(" and XLXSCLHQ_YXQS=maxYXQS"); sql.Add(" union all "); //报价单非报价日之材料行情 sql.Add(" select XLXSCLHQ_BJCLID, "); sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); sql.Add(" XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); sql.Add(" from XLXSCLHQ,XLXSBJCL,XLXSBJFL"); sql.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'"); sql.Add(" and XLXSCLHQ_JGBID=:pJGBID"); sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); sql.Add(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); sql.Add(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料 sql.ParamByName("pBJFLID").Value = sBJFLID; sql.ParamByName("pBJRQ").Value = sRQ; sql.ParamByName("pJGBID").Value = sJGBID; } DataSet ds = dberp.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["TL"].ToString().Trim().Equals("T")) { dicTLJG["TJWHSJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WHSJ"].ToString().Trim(); if (!bHSBZ) dicTLJG["TJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WSJG"].ToString().Trim(); else dicTLJG["TJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_HSJG"].ToString().Trim(); } if (ds.Tables[0].Rows[i]["TL"].ToString().Trim().Equals("L")) { dicTLJG["LJWHSJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WHSJ"].ToString().Trim(); if (!bHSBZ) dicTLJG["LJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WSJG"].ToString().Trim(); else dicTLJG["LJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_HSJG"].ToString().Trim(); } } return dicTLJG; } //获取指定日铜价、铝价 public static Dictionary GetTLJByRQ(string sRQ, string sBJFLID, bool bHSBZ) { return GetTLJByRQ(sRQ, sBJFLID, bHSBZ, "ZZZZZZZZ"); } //初始化铜价、铝价标签 private void InitLable_TLJ() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select isnull(XLXSBJD_TLJZD,'N') as TLJZD from XLXSBJD where XLXSBJD_BJDID='" + txtBJDID.Text.Trim() + "'"); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string sTLJZD = ds.Tables[0].Rows[0][0].ToString().Trim(); if (sTLJZD.Equals("Y")) { lblTJ.Text = "指定铜价"; lblLJ.Text = "指定铝价"; } else if (sTLJZD.Equals("T")) { lblTJ.Text = "指定铜价"; lblLJ.Text = "铝价"; } else if (sTLJZD.Equals("L")) { lblTJ.Text = "铜价"; lblLJ.Text = "指定铝价"; } else { lblTJ.Text = "铜价"; lblLJ.Text = "铝价"; } } else { lblTJ.Text = "铜价"; lblLJ.Text = "铝价"; } } protected void btnRefTLJ_Click(object sender, EventArgs e) { Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); FormAreaUpdate(); txtTJ_TextChanged(null, null); } protected void txtTJ_TextChanged(object sender, EventArgs e) { if (ControlState != TControlState.ctsBrowse && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim()))//表价实时计算价格表 { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); bool IsGridChanged = false;//标记grid有没有被修改过 bool NeedShowMsg = false; foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) IsGridChanged = true; } bool bExistBJDHQ = false; if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) bExistBJDHQ = true; } string sBJU018 = GetOption("BJU018"); string sBJU003 = GetOption("BJU003");//默认计量单位 double dBJDJLDWHSBL = 1; if (IsGridChanged) { foreach (GridViewRow row in grdXLBJDMX.NewRows) { if (!row.Attributes["EditAction"].Equals("D")) { //手输表价、外购产品不重算表价,以免冲掉手动维护的表价 if (grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY",row).Trim().Equals("SSJGBBJ") || grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim().Equals("Y") || grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGFBZ", row).Trim().Equals("Y")) { continue; } double dCPJJ = 0; double dJJ = 0; double dCLCB = 0; double dBJDHQCLCB = 0; bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).Trim().Split('|')[0].Trim(); string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).Trim(); string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).Trim(); string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).Trim().Split('|')[0].Trim(); string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).Trim(); //材料行情计量单位到报价单计量单位换算比例 if (XLBJDUtils.sJCJLDWList.IndexOf(sBJU003.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); } Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(datBJRQ.Text, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value.ToString(), txtLJ.Value.ToString(), chkJZBJHS.Checked, bExistBJDHQ, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim()); JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; dCLCB = dicJGE["CLCB"]; dJJ = dCLCB; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { dBJDHQCLCB = dCLCB * (-1); } else { dBJDHQCLCB = dCLCB; } DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); 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()); dicXLJBXX_JGE.Add("TJ", txtTJ.Value.ToString()); dicXLJBXX_JGE.Add("LJ", txtLJ.Value.ToString()); dicXLJBXX_JGE.Add("JLDW", sJLDW); dicXLJBXX_JGE.Add("BJSL", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).Trim()); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(cbxJGBID.SelectedValue.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); string srs = XLBJDUtils.GetCJ(datBJRQ.Text, dicXLJBXX_JGE, dCLCB.ToString(), dBJDHQCLCB.ToString(), txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), iXSWS, dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].Trim() + "|0"); string sCJ = srs.Split(',')[0]; string sJJlist = srs.Split(',')[1]; grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CJ", sCJ); string[] strJJYZZ = sJJlist.ToString().Trim().Split('|'); for (int i = 1; i <= strJJYZZ.Length; i++) { dicJGBTZYZGS_JGE["JZ" + i.ToString().PadLeft(2, '0')] = strJJYZZ[i - 1]; } //此处先进行保留,保证以下计算值来源一致。 dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); double dZBZ = dCLCB; if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + dCLCB.ToString().Trim() + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = dCLCB.ToString().Trim() + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sJSGS = XLBJDUtils.GetJGBJSGS(cbxJGBID.SelectedValue.Trim()); for (int i = 1; i <= strJJYZZ.Length; i++) { sJSGS.Replace("JZ" + i.ToString().PadLeft(2, '0'), strJJYZZ[i - 1]); } sTmpGS = sJSGS.Replace("JGBJJ", dCLCB.ToString().Trim()); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } Dictionary dicJDYZXS = new Dictionary(); for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) { string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); else dicJDYZXS.Add(sYZID, 1); } for (int i = 1; i <= 20; i++) { string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) { double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); } } grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].ToString().Trim() + "|0"); } else grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"); if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { dCPJJ = dZBZ * (-1); dJJ = dJJ * (-1); dCLCB = dCLCB * (-1); } else { dCPJJ = dZBZ; } if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sBJU003.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 { dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); } else { dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; } if (dJJ == 0) dCPJJ = 0; grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dCLCB.ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dJJ.ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); } } #region 根据铜价/铝价修改后的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (GridViewRow row in grdXLBJDMX.NewRows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); //仅重算了表价的明细才需更新报价来源 if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim().Equals("SSJGBBJ") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim().Equals("Y")) { grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); } grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); } #endregion grdXLBJDMX.CommitEdit(); } else { DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); foreach (DataRow row in dsBJDMX.Tables[0].Rows) { //手输表价、外购产品不重算表价,以免冲掉手动维护的表价 if (row["XLXSBJDMX_BJLY"].ToString().Trim().Equals("SSJGBBJ") || row["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y") || row["XLXSBJDMX_JGFBZ"].ToString().Trim().Equals("Y")) { continue; } double dCPJJ = 0; double dJJ = 0; double dCLCB = 0; double dBJDHQCLCB = 0; bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim().Split('|')[0].Trim(); string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); //材料行情计量单位到报价单计量单位换算比例 if (XLBJDUtils.sJCJLDWList.IndexOf(sBJU003.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); } Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(datBJRQ.Text, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value.ToString(), txtLJ.Value.ToString(), chkJZBJHS.Checked, bExistBJDHQ, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim()); JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; dCLCB = dicJGE["CLCB"]; dJJ = dCLCB; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { dBJDHQCLCB = dCLCB * (-1); } else { dBJDHQCLCB = dCLCB; } DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); 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()); dicXLJBXX_JGE.Add("TJ", txtTJ.Value.ToString()); dicXLJBXX_JGE.Add("LJ", txtLJ.Value.ToString()); dicXLJBXX_JGE.Add("JLDW", sJLDW); dicXLJBXX_JGE.Add("BJSL", row["XLXSBJDMX_BJSL"].ToString().Trim()); dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(cbxJGBID.SelectedValue.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); string srs = XLBJDUtils.GetCJ(datBJRQ.Text, dicXLJBXX_JGE, dCLCB.ToString(), dBJDHQCLCB.ToString(), txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), iXSWS, dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].Trim() + "|0"); string sCJ = srs.Split(',')[0]; string sJJlist = srs.Split(',')[1]; row["XLXSBJDMX_CJ"] = CMISproConvert.StrToFloat(sCJ); string[] strJJYZZ = sJJlist.ToString().Trim().Split('|'); for (int i = 1; i <= strJJYZZ.Length; i++) { dicJGBTZYZGS_JGE["JZ" + i.ToString().PadLeft(2, '0')] = strJJYZZ[i - 1]; } dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); double dZBZ = dCLCB; if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + dCLCB.ToString().Trim() + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = dCLCB.ToString().Trim() + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sJSGS = XLBJDUtils.GetJGBJSGS(cbxJGBID.SelectedValue.Trim()); for (int i = 1; i <= strJJYZZ.Length; i++) { sJSGS.Replace("JZ" + i.ToString().PadLeft(2, '0'), strJJYZZ[i - 1]); } sTmpGS = sJSGS.Replace("JGBJJ", dCLCB.ToString().Trim()); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } Dictionary dicJDYZXS = new Dictionary(); for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) { string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); else dicJDYZXS.Add(sYZID, 1); } for (int i = 1; i <= 20; i++) { string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) { double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); } } row["UpdJJYZList"] = dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ11"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ12"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ13"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ14"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ15"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ16"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ17"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ18"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ19"].ToString().Trim() + "|" + dicJGBTZYZGS_JGE["JZ20"].ToString().Trim() + "|0"; } else row["UpdJJYZList"] = "0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0"; if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { dCPJJ = dZBZ * (-1); dJJ = dJJ * (-1); dCLCB = dCLCB * (-1); } else { dCPJJ = dZBZ; } if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sBJU003.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 { dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); } else { dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); dJJ = NumberUtils.RoundX(dJJ, iXSWS); dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); dCPJJ = dCPJJ * dBJDJLDWHSBL; dJJ = dJJ * dBJDJLDWHSBL; dCLCB = dCLCB * dBJDJLDWHSBL; dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; } if (dJJ == 0) dCPJJ = 0; row["XLXSBJDMX_CLCB"] = dCLCB; row["XLXSBJDMX_JGBJJ"] = dJJ; row["XLXSBJDMX_JGBBJ"] = dCPJJ; row["XLXSBJDMX_JGBBJTZ"] = "N"; row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); row["XLXSBJDMX_BJDHQCLCB"] = dBJDHQCLCB; row["XLXSBJDMX_BJDHQCLCBTZ"] = "N"; } #region 根据铜价/铝价修改后的值重算报价 Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID foreach (DataRow row in dsBJDMX.Tables[0].Rows) { NeedShowMsg = true; Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); //仅重算了表价的明细才需更新报价来源 if (!row["XLXSBJDMX_BJLY"].ToString().Trim().Equals("SSJGBBJ") && !row["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y")) { row["XLXSBJDMX_BJLY"] = "JGBBJ"; } row["XLXSBJDMX_BJTJCZ"] = "TJYZJS"; row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); } #endregion grdXLBJDMX.DataSource = dsBJDMX; grdXLBJDMX.DataBind(); } InitLable_TLJ(); if (NeedShowMsg) ShowMessage(string.Format("已根据修改后价格重新计算了{0}!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM)); } } #endregion /// /// 客户IDchange /// /// /// protected void txtKHID_TextChanged(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select KH_MC,KH_LXR,KH_TEL,KH_TXY from KH where KH_KHID=:pKHID and isnull(KH_TYBZ,'N') <> 'Y' order by KH_KHID"); SQL.ParamByName("pKHID").Value = txtKHID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtKH.Text = ds.Tables[0].Rows[0]["KH_MC"].ToString().Trim(); txtKHLXR.Text = ds.Tables[0].Rows[0]["KH_LXR"].ToString().Trim(); txtLXDH.Text = ds.Tables[0].Rows[0]["KH_TEL"].ToString().Trim(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_TXY = '{0}' and KH_KHID = '{1}' ", GetTXYValue(), txtBGQKHID.Value.Trim())) || txtBGQKHID.Value.Trim().Equals("")) { string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); if (!sKHTXY.Equals("")) { SetTXYValue(sKHTXY); cbxTXY_SelectedIndexChanged(null, null); } } //FormAreaUpdate(); txtBGQKHID.Value = txtKHID.Text.Trim(); } else { txtKH.Text = ""; } } /// /// 客户change /// /// /// protected void txtKH_TextChanged(object sender, EventArgs e) { string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (sKHJSLY.Equals("KH")) { //客户检索来源=客户 SQL.Clear(); SQL.Add("select KH_LXR,KH_TEL,KH_TXY from KH where KH_MC=:pKHMC and isnull(KH_TYBZ,'N') <> 'Y' order by KH_KHID"); SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtKHLXR.Text = ds.Tables[0].Rows[0]["KH_LXR"].ToString().Trim(); txtLXDH.Text = ds.Tables[0].Rows[0]["KH_TEL"].ToString().Trim(); if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_TXY = '{0}' and KH_MC = '{1}' ", GetTXYValue(), txtBGQKH.Value.Trim())) || txtBGQKH.Value.Trim().Equals("")) { string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); if (!sKHTXY.Equals("")) { SetTXYValue(sKHTXY); cbxTXY_SelectedIndexChanged(null, null); } } //FormAreaUpdate(); txtBGQKH.Value = txtKH.Text.Trim(); } } else if (sKHJSLY.Equals("KHXX")) { //客户检索来源=售前客户 SQL.Clear(); SQL.Add(" select KHXX_FZRID,KHXX_FZRGH,KHXX_FZR,KHXX_CRMKHID from KHXX"); SQL.Add(" where 1=1 "); SQL.Add("and KHXX_MC = :pKHMC "); SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 1) { string sKHTXY = ds.Tables[0].Rows[0]["KHXX_FZR"].ToString().Trim(); //售前客户中的责任人、唯一的客户联系人、客户联系电话作为报价单销售员、报价单客户联系人、报价单客户联系电话 if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KHXX where KHXX_FZR = '{0}' and KHXX_MC = '{1}' ", GetTXYValue(), txtBGQKH.Value.Trim())) || txtBGQKH.Value.Trim().Equals("")) { if (!sKHTXY.Equals("")) { SetTXYValue(sKHTXY); cbxTXY_SelectedIndexChanged(null, null); } } SQL.Clear(); SQL.Add(" SELECT KHLXR_LXRID,KHLXR_BB,KHLXR_XM,KHLXR_CW,KHLXR_YDDH FROM KHLXR "); SQL.Add(" WHERE KHLXR_CRMKHID = :pCRMKHID and isnull(KHLXR_YZF,'N') = 'N' "); SQL.Add(" order by KHLXR_LXRID desc "); SQL.ParamByName("pCRMKHID").Value = ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 1) { if (!ds.Tables[0].Rows[0]["KHLXR_XM"].ToString().Trim().Equals("")) { txtKHLXR.Text = ds.Tables[0].Rows[0]["KHLXR_XM"].ToString().Trim(); } else { txtKHLXR.Text = ds.Tables[0].Rows[0]["KHLXR_CW"].ToString().Trim(); } txtLXDH.Text = ds.Tables[0].Rows[0]["KHLXR_YDDH"].ToString().Trim(); } //FormAreaUpdate(); txtBGQKH.Value = txtKH.Text.Trim(); } } } /// /// 项目change /// /// /// protected void txtXM_OnTextChanged(object sender, EventArgs e) { //启用售前项目备案管理 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (pzxx.XLXSBJPZ_SQXMBAGL=="Y") { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select YXXM_XMID,YXXM_MC from YXXM where YXXM_MC=:pMC order by YXXM_XMID"); SQL.ParamByName("pMC").Value =txtXM.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtXMID.Value = ds.Tables[0].Rows[0]["YXXM_XMID"].ToString().Trim(); } else { txtXMID.Value = ""; } } } /// /// 客户联系人change /// /// /// protected void txtKHLXR_OnTextChanged(object sender, EventArgs e) { string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (sKHJSLY.Equals("KHXX")) { //客户检索来源=售前客户 SQL.Clear(); SQL.Add(" select KHXX_FZRID,KHXX_FZRGH,KHXX_FZR,KHXX_CRMKHID from KHXX"); SQL.Add(" where 1=1 "); SQL.Add("and KHXX_MC = :pKHMC "); SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 1) { //售前客户中的责任人、唯一的客户联系人、客户联系电话作为报价单销售员、报价单客户联系人、报价单客户联系电话 SQL.Clear(); SQL.Add(" select KHLXR_YDDH "); SQL.Add(" from KHLXR A "); SQL.Add(" left join KHXX on KHXX_CRMKHID=A.KHLXR_CRMKHID "); SQL.Add(" where 1=1 "); SQL.Add(" and KHXX_CRMKHID = :pCRMKHID "); SQL.Add(" and (A.KHLXR_XM = :pXM or KHLXR_CW = :pXM)"); SQL.Add(" and A.KHLXR_BB=(select max(KHLXR_BB) as BB "); SQL.Add(" from KHLXR B "); SQL.Add(" where B.KHLXR_CRMKHID=A.KHLXR_CRMKHID and B.KHLXR_LXRID=A.KHLXR_LXRID "); SQL.Add(" and isnull(B.KHLXR_YZF,'N')<>'Y') "); SQL.Add("order by isnull(A.KHLXR_YZF,'N'), A.KHLXR_LXRID "); SQL.ParamByName("pCRMKHID").Value = ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim(); SQL.ParamByName("pXM").Value = txtKHLXR.Text.Trim(); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 1) { txtLXDH.Text = ds.Tables[0].Rows[0]["KHLXR_YDDH"].ToString().Trim(); } FormAreaUpdate(); } } } protected void btnRefreshWBBJD_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select top 1 XLXSBJDMX_XH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_WHSJ > :pWHSJ "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); SQL.ParamByName("pWHSJ").Value = CMISproConvert.StrToDateTime(txtDRSJ.Text.Trim()); if (dberp.OpenDataSet(SQL).Tables[0].Rows.Count <= 0) return; btnOnlyRefresh_Click(null, null); //自动撞单分析 XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); if (pzxx.XLXSBJPZ_ZDZD == "Y") { SQL.Clear(); SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { btnZDFX_Click(null, null); } } } protected void linkKHDH_Click(object sender, EventArgs e) { string sKHDHUrl = GetKHDHURL(); string jsript = @"window.open('" + sKHDHUrl + "');"; AjaxRunScript("linkKHDHOPen", jsript); } protected void btnJSCQFJ_Click(object sender, EventArgs e) { TAttachDocDlg attDoc = new TAttachDocDlg(); attDoc.AutoFillData = true; attDoc.IsWorkDB = false; attDoc.WorkTableName = "XLXSBJD"; attDoc.GRPIDFieldName = "XLXSBJD_JSCQDOCGRPID"; attDoc.GRPID = CMISproConvert.StrToFloat(txtJSCQDOCGRPID.Value,0); attDoc.Permission = "DEIXPVUSR"; attDoc.control = btnJSCQFJ; attDoc.UpdCondition = string.Format(" XLXSBJD_BJDID='{0}'", this.txtBJDID.Text.Trim()); attDoc.GRPIDComponentName = txtJSCQDOCGRPID.ClientID; attDoc.FJSComponentName = txtJSCQFJS.ClientID; attDoc.Invoke(); } protected void btnZCJH_Click(object sender, EventArgs e) { if (!CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJD where XLXSBJD_BJDID='" + txtBJDID.Text.Trim() + "' and XLXSBJD_YZBSP='Y'")) { ShowMessage("当前报价单预中标审批未通过,不允许生成主材计划!"); return; } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "../components/N_XLXSBJ/XLBJD_ZCWLXZInfo.aspx"; pageParams.Title = "主材物料指定"; pageParams.AddString("BJDID", txtBJDID.Text.Trim()); OpenDialog(pageParams); } #endregion #region 分页模式下,翻页控件事件 // 页面设置后保存单页记录数 void pgBar_PageSizeChanged(object sender, EventArgs e) { if (CurSession.DbId != "") { TGtPager.SavePageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJDInfo.aspx", pgBar); } } // 页面设置后刷新GRID数据 void pgBar_PageChanged(object sender, EventArgs e) { if (pgBar.PageSize > pgBar.MaxPageSize) pgBar.PageSize = pgBar.MaxPageSize; //btnReLoad_Click(null, null); SetRecordCount(pgBar, txtBJDID.Text.Trim(), txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); //传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.CheckedRows = ""; grdXLBJDMX.DataBind(); grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; } private void SetRecordCount(gtPager pgr, string sBJDID, string sXSSXFilter, string sXLXHIDFilter, string sXLGGIDFilter, string sXLBZIDFilter, string sDYDJIDFilter, string sXLYSIDFilter, string sBJCPFilter, string sJGBBJFilter, string sZDXJJCLFilter, string sCPMLFilter, string sZHCPMLFilter, string sBZFilter) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select count(1) as JLS from XLXSBJDMX "); sql.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); if (!sXLBZIDFilter.Equals("")) sql.Add("left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); if (!sXLYSIDFilter.Equals("")) sql.Add("left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); sql.Add("where XLXSBJDMX_BJDID=:pBJDID "); sql.ParamByName("pBJDID").Value = sBJDID; if (!sXSSXFilter.Equals("")) { sql.Add(" and XLXSBJDMX_XSSX=:pXSSX"); sql.ParamByName("pXSSX").Value = CMISproConvert.StrToFloat(sXSSXFilter, 0); } if (!sXLXHIDFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sXLXHIDFilter.Substring(0, 1); string sLastC = sXLXHIDFilter.Substring(sXLXHIDFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_XLXHID=:pXLXHID"); } else { sql.Add(" and XLXSBJDMX_XLXHID like :pXLXHID"); } sql.ParamByName("pXLXHID").Value = sXLXHIDFilter; } if (!sXLGGIDFilter.Equals("")) { if (sXLGGIDFilter.Split('-').Length>1) { string sStartNum = sXLGGIDFilter.Split('-')[0]; string sEndNum = sXLGGIDFilter.Split('-')[1]; double dStartNum = CMISproConvert.StrToFloat(sStartNum, 0); double dEndNum = CMISproConvert.StrToFloat(sEndNum, 0); sql.Add(@" and exists(select 1 from XLGGB left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID where XLGGB_XLGGID=XLXSBJXLGGTHB_XLGGIDCH and XLDTJMZHB_DTJM1>=:pStartNum "); if (dEndNum != 0) { sql.Add(" and XLDTJMZHB_DTJM1<=:pEndNum "); sql.ParamByName("pEndNum").Value = dEndNum; } sql.Add(")"); sql.ParamByName("pStartNum").Value = dStartNum; } else { string sQueryTag = "E"; string sFirstC = sXLGGIDFilter.Substring(0, 1); string sLastC = sXLGGIDFilter.Substring(sXLGGIDFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_XLGGID=:pXLGGID"); } else { sql.Add(" and XLXSBJDMX_XLGGID like :pXLGGID"); } sql.ParamByName("pXLGGID").Value = sXLGGIDFilter; } } if (!sXLBZIDFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sXLBZIDFilter.Substring(0, 1); string sLastC = sXLBZIDFilter.Substring(sXLBZIDFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and ( XLXSBJDMX_XLBZID=:pXLBZ or XLBZ_XLBZLXMC=:pXLBZ )"); } else { sql.Add(" and ( XLXSBJDMX_XLBZID like :pXLBZ or XLBZ_XLBZLXMC like :pXLBZ )"); } sql.ParamByName("pXLBZ").Value = sXLBZIDFilter; } if (!sDYDJIDFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sDYDJIDFilter.Substring(0, 1); string sLastC = sDYDJIDFilter.Substring(sDYDJIDFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_DYDJID=:pDYDJID"); } else { sql.Add(" and XLXSBJDMX_DYDJID like :pDYDJID"); } sql.ParamByName("pDYDJID").Value = sDYDJIDFilter; } if (!sXLYSIDFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sXLYSIDFilter.Substring(0, 1); string sLastC = sXLYSIDFilter.Substring(sXLYSIDFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and ( XLXSBJDMX_XLYSID=:pXLYS or XLYSB_XLYSMC=:pXLYS )"); } else { sql.Add(" and ( XLXSBJDMX_XLYSID like :pXLYS or XLYSB_XLYSMC like :pXLYS )"); } sql.ParamByName("pXLYS").Value = sXLYSIDFilter; } if (!sBJCPFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sBJCPFilter.Substring(0, 1); string sLastC = sBJCPFilter.Substring(sBJCPFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_BJCP=:pBJCP"); } else { sql.Add(" and XLXSBJDMX_BJCP like :pBJCP"); } sql.ParamByName("pBJCP").Value = sBJCPFilter; } if (!sJGBBJFilter.Equals("")) { sql.Add(" and XLXSBJDMX_JGBBJ=:pJGBBJ"); sql.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJFilter); } if (!sZDXJJCLFilter.Equals("")) { string tmpZDXJJCL = sZDXJJCLFilter.Replace(">=", "").Replace(">", "").Replace("<=", "").Replace("<","").Replace("=", ""); double dZDXJJCL = CMISproConvert.StrToFloat(tmpZDXJJCL, -999); if (dZDXJJCL == -999) { sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else if (sZDXJJCLFilter.StartsWith(">=")) { sql.Add(" and XLXSBJDMX_ZDXJJCL>=:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else if (sZDXJJCLFilter.StartsWith(">")) { sql.Add(" and XLXSBJDMX_ZDXJJCL>:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else if (sZDXJJCLFilter.StartsWith("<=")) { sql.Add(" and XLXSBJDMX_ZDXJJCL<=:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else if (sZDXJJCLFilter.StartsWith("<")) { sql.Add(" and XLXSBJDMX_ZDXJJCL<:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else if (sZDXJJCLFilter.StartsWith("=")) { sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } else { sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; } } if (!sCPMLFilter.Equals("")) { if (sCPMLFilter.Equals("空")) { sql.Add(" and isnull(XLXSBJDMX_CPMLMC,' ')=' ' "); } else { string sQueryTag = "E"; string sFirstC = sCPMLFilter.Substring(0, 1); string sLastC = sCPMLFilter.Substring(sCPMLFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_CPMLMC=:pCPMLMC"); } else { sql.Add(" and XLXSBJDMX_CPMLMC like :pCPMLMC"); } sql.ParamByName("pCPMLMC").Value = sCPMLFilter; } } if (!sZHCPMLFilter.Equals("")) { if (sZHCPMLFilter.Equals("空")) { sql.Add(" and isnull(XLXSBJDMX_ZHCPMLMC,' ')=' ' "); } else { string sQueryTag = "E"; string sFirstC = sZHCPMLFilter.Substring(0, 1); string sLastC = sZHCPMLFilter.Substring(sZHCPMLFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_ZHCPMLMC=:pZHCPMLMC"); } else { sql.Add(" and XLXSBJDMX_ZHCPMLMC like :pZHCPMLMC"); } sql.ParamByName("pZHCPMLMC").Value = sZHCPMLFilter; } } if (!sBZFilter.Equals("")) { string sQueryTag = "E"; string sFirstC = sBZFilter.Substring(0, 1); string sLastC = sBZFilter.Substring(sBZFilter.Length - 1, 1); if (sFirstC.Equals("%")) { sQueryTag = "L"; if (sLastC.Equals("%")) sQueryTag = "A"; } else { if (sLastC.Equals("%")) sQueryTag = "R"; } if (sQueryTag.Equals("E")) { sql.Add(" and XLXSBJDMX_BZ=:pBZ"); } else { sql.Add(" and XLXSBJDMX_BZ like :pBZ"); } sql.ParamByName("pBZ").Value = sBZFilter; } DataSet ds = dberp.OpenDataSet(sql); pgr.RecordCount = CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["JLS"].ToString()); } // 临时将当前页之后的记录显示序号*10000 private void SetXssxBeforeSave(string sBJDID, int curPageIndex, int curPageSize) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" merge into XLXSBJDMX tag "); sql.Add(" using "); sql.Add(" ( "); sql.Add(" select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum,XLXSBJDMX_XH as BJDXH,XLXSBJDMX_BJDID as BJDID "); sql.Add(" from XLXSBJDMX "); sql.Add(" where XLXSBJDMX_BJDID = :pBJDID "); sql.Add(" ) sor "); sql.Add(" on (tag.XLXSBJDMX_BJDID = sor.BJDID "); sql.Add(" and tag.XLXSBJDMX_XH = sor.BJDXH "); sql.Add(" and tag.XLXSBJDMX_BJDID = :pBJDID "); sql.Add(" and sor.RNum>= :pStartRow ) "); sql.Add(" when matched then update set tag.XLXSBJDMX_XSSX = tag.XLXSBJDMX_XSSX*10000 "); sql.ParamByName("pBJDID").Value = sBJDID; sql.ParamByName("pStartRow").Value = curPageSize * curPageIndex + 1; dberp.ExecSQL(sql); } private int SetXssxAfterSave(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" merge into XLXSBJDMX tag "); sql.Add(" using "); sql.Add(" ( "); sql.Add(" select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum,XLXSBJDMX_XH as BJDXH,XLXSBJDMX_BJDID as BJDID "); sql.Add(" from XLXSBJDMX "); sql.Add(" where XLXSBJDMX_BJDID = :pBJDID "); sql.Add(" ) sor "); sql.Add(" on (tag.XLXSBJDMX_BJDID = sor.BJDID "); sql.Add(" and tag.XLXSBJDMX_XH = sor.BJDXH "); sql.Add(" and tag.XLXSBJDMX_BJDID = :pBJDID )"); sql.Add(" when matched then update set tag.XLXSBJDMX_XSSX = sor.RNum "); sql.ParamByName("pBJDID").Value = sBJDID; return dberp.ExecSQL(sql); } //复制时,不允许操作明细 protected void btnCopyEx_Click(object sender, EventArgs e) { grdXLBJDMX.DataSource = null; grdXLBJDMX.DataBind(); grdXLBJDMX.EnabledToolBar = false; CanCopyMX.Value = "Y";//复制操作需要复制明细 } #endregion #region 行过滤 protected void grdXLBJDMX_ColumnFilter(object sender, ColumnFilterEventArgs e) { //string sField = e.ActiveField; //AutoDoFilter设为true的栏目可以取到正确的e.ActiveField if (txtXSSXFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XSSX")].Text.Trim()) && txtXSSXFilter.Value.Equals("") && txtXLXHIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLXHID")].Text.Trim()) && txtXLXHIDFilter.Value.Equals("") && txtXLGGIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLGGID")].Text.Trim()) && txtXLGGIDFilter.Value.Equals("") && txtXLBZIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLBZID")].Text.Trim()) && txtXLBZIDFilter.Value.Equals("") && txtDYDJIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_DYDJID")].Text.Trim()) && txtDYDJIDFilter.Value.Equals("") && txtXLYSIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLYSID")].Text.Trim()) && txtXLYSIDFilter.Value.Equals("") && txtBJCPFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BJCP")].Text.Trim()) && txtBJCPFilter.Value.Equals("") && txtCPMLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_CPMLMC")].Text.Trim()) && txtCPMLFilter.Value.Equals("") && txtZHCPMLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZHCPMLMC")].Text.Trim()) && txtZHCPMLFilter.Value.Equals("") && txtJGBBJFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_JGBBJ")].Text.Trim()) && txtJGBBJFilter.Value.Equals("") && txtZDXJJCLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZDXJJCL")].Text.Trim()) && txtZDXJJCLFilter.Value.Equals("") && txtBZFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BZ")].Text.Trim()) && txtBZFilter.Value.Equals("")) return;//若筛选条件未发生变化,且都为空,则不查询 txtXSSXFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XSSX")].Text.Trim(); txtXLXHIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLXHID")].Text.Trim(); txtXLGGIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLGGID")].Text.Trim(); txtXLBZIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLBZID")].Text.Trim(); txtDYDJIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_DYDJID")].Text.Trim(); txtXLYSIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLYSID")].Text.Trim(); txtBJCPFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BJCP")].Text.Trim(); txtCPMLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_CPMLMC")].Text.Trim(); txtZHCPMLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZHCPMLMC")].Text.Trim(); txtJGBBJFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_JGBBJ")].Text.Trim(); txtZDXJJCLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZDXJJCL")].Text.Trim(); txtBZFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BZ")].Text.Trim(); SetRecordCount(pgBar, txtBJDID.Text.Trim(), txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); //分页模式下,传入页数和每页显示数,用于控制明细查询结果 entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; entity.XLXSBJDMX.curPageSize = pgBar.PageSize; entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); entity.XLXSBJDMX.BJDID = this.txtBJDID.Text.Trim(); entity.XLXSBJDMX.Query(); grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; grdXLBJDMX.DataBind(); } //protected void grdXLBJDMX_GetFilterDropDownItems(object sender, GetDropDownColumnItemsEventArgs e) //{ // if (e.EventFieldName == "XLXSBJDMX_XLXHID") // { // TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); // DataSet ds = dberp.OpenDataSet(string.Format("select distinct XLXSBJDMX_XLXHID as XLXHID from XLXSBJDMX where XLXSBJDMX_BJDID='{0}' order by XLXHID", e.MasterDataSet["txtBJDID"].Trim())); // e.DropDownItems.Clear(); // e.DropDownItems.Add(new ListItem("", "")); // for (int i = 0; i < ds.Tables[0].Rows.Count; i++) // { // e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim())); // } // } //} /// /// 是否处于行过滤状态 /// /// private bool IsFilterState() { if (txtXSSXFilter.Value.Trim().Equals("") && txtXLXHIDFilter.Value.Trim().Equals("") && txtXLGGIDFilter.Value.Trim().Equals("") && txtXLBZIDFilter.Value.Trim().Equals("") && txtDYDJIDFilter.Value.Trim().Equals("") && txtXLYSIDFilter.Value.Trim().Equals("") && txtBJCPFilter.Value.Trim().Equals("") && txtJGBBJFilter.Value.Trim().Equals("") && txtZDXJJCLFilter.Value.Trim().Equals("") && txtCPMLFilter.Value.Trim().Equals("") && txtZHCPMLFilter.Value.Trim().Equals("") && txtBZFilter.Value.Trim().Equals("")) { return false; } else return true; } /// /// 清空隐藏控件值 /// private void ClearFilterCtrl() { txtXSSXFilter.Value = ""; txtXLXHIDFilter.Value = ""; txtXLGGIDFilter.Value = ""; txtXLBZIDFilter.Value = ""; txtDYDJIDFilter.Value = ""; txtXLYSIDFilter.Value = ""; txtBJCPFilter.Value = ""; txtCPMLFilter.Value = ""; txtZHCPMLFilter.Value = ""; txtJGBBJFilter.Value = ""; txtZDXJJCLFilter.Value = ""; txtBZFilter.Value = ""; } #endregion } #region 尺重表 public class XLCLQDLEntity { private string _CLQDL = string.Empty; public string CLQDL { get { return _CLQDL; } set { _CLQDL = value; } } private string _LMMC = string.Empty; public string LMMC { get { return _LMMC; } set { _LMMC = value; } } private string _BJHQ = string.Empty; public string BJHQ { get { return _BJHQ; } set { _BJHQ = value; } } private string _BJCLID = string.Empty; public string BJCLID { get { return _BJCLID; } set { _BJCLID = value; } } private string _WLID = string.Empty; public string WLID { get { return _WLID; } set { _WLID = value; } } private double _CLSL = 0; public double CLSL { get { return _CLSL; } set { _CLSL = value; } } private double _SHL = 0; public double SHL { get { return _SHL; } set { _SHL = value; } } private double _CLJGBL = 0; public double CLJGBL { get { return _CLJGBL; } set { _CLJGBL = value; } } private double _CLJG = 0; public double CLJG { get { return _CLJG; } set { _CLJG = value; } } } #endregion #region 调价因子 public class TJYZEntity { private string _YZID = string.Empty; public string YZID { get { return _YZID; } set { _YZID = value; } } private double _TJBZDYZZ = 0; public double TJBZDYZZ { get { return _TJBZDYZZ; } set { _TJBZDYZZ = value; } } private double _TJBZXYZZ = 0; public double TJBZXYZZ { get { return _TJBZXYZZ; } set { _TJBZXYZZ = value; } } } #endregion }