2653 lines
135 KiB
C#
2653 lines
135 KiB
C#
using System;
|
||
using System.Data;
|
||
using System.Configuration;
|
||
using System.Collections;
|
||
using System.Web;
|
||
using System.Web.Security;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using System.Web.UI.WebControls.WebParts;
|
||
using System.Web.UI.HtmlControls;
|
||
using GThinking.N_MODEL.Page;
|
||
using GThinking.N_MISPRO.Utility;
|
||
using GThinking.N_MISPRO;
|
||
using GThinking.N_CONTROL;
|
||
using GThinking.N_MISPRO.Data;
|
||
using GThinking.N_WORKFLOW;
|
||
using System.Text;
|
||
using System.Collections.Generic;
|
||
using GThinking.N_MISPRO.MISPROAS;
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public partial class XLBJD_CLCBInfo : SingleGridBase
|
||
{
|
||
XLBJD_CLCB entity = new XLBJD_CLCB();
|
||
XLBJD_CLCB_M queryentity = new XLBJD_CLCB_M();
|
||
Dictionary<string, string> dicJGBTJYZ = new Dictionary<string, string>();
|
||
//报价材料
|
||
Dictionary<string, string> dicBJCL = new Dictionary<string, string>();
|
||
Dictionary<string, string> dicBJCL_Visible = new Dictionary<string, string>();
|
||
Dictionary<string, string> dicBJCL_WL = new Dictionary<string, string>();
|
||
|
||
//材料物料
|
||
Dictionary<string, string> dicCLWL = new Dictionary<string, string>();
|
||
|
||
// IsTCP / IsLCP 静态缓存,避免循环内反复查库
|
||
private static readonly object _tcpLcpLock = new object();
|
||
private static Dictionary<string, bool> _tcpCache = new Dictionary<string, bool>();
|
||
private static Dictionary<string, bool> _lcpCache = new Dictionary<string, bool>();
|
||
|
||
#region Page_Load
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860010;
|
||
this.UMName = "线缆销售报价单表价";
|
||
this.CurMaster = Master;
|
||
this.ModuleGV = grdXLBJDMX;
|
||
this.CurEntity = entity;
|
||
this.CurQueryEntity = queryentity;
|
||
this.PageHeight = 500;
|
||
this.PageWidth = 700;
|
||
this.sQueryURLTarget = "XLBJD_CLCBQuery.aspx";
|
||
base.DataKeyNames = new string[] { "XLXSBJDMX_XLXHID", "XLXSBJDMX_XLGGID", "XLXSBJDMX_XLBZID", "XLXSBJDMX_DYDJID", "XLXSBJDMX_XH", "XLXSBJDMX_JSYCBZ" };
|
||
|
||
|
||
this.Master.EnableNewBtn = false;
|
||
this.Master.EnableCopyBtn = false;
|
||
this.Master.EnableViewBtn = false;
|
||
this.Master.EnableEditBtn = false;
|
||
this.Master.EnableDeleteBtn = false;
|
||
this.Master.EnableAttachBtn = false;
|
||
|
||
if (!IsPostBack)
|
||
{
|
||
CurQueryEntity.FieldByName("XSFBJYY").Value = "True";
|
||
CurQueryEntity.FieldByName("ZSBJZC").Value = "True";
|
||
CurQueryEntity.FieldByName("XSCLCB").Value = "True";
|
||
if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID")))
|
||
{
|
||
CurQueryEntity.FieldByName("ISJGE").Value = "Y";
|
||
}
|
||
else
|
||
{
|
||
CurQueryEntity.FieldByName("ISJGE").Value = "N";
|
||
}
|
||
}
|
||
|
||
base.InitPage();
|
||
|
||
this.ModuleGV.OnClientDblClick = "return false;";
|
||
if (!IsPostBack)
|
||
{
|
||
btnPLTJ.Visible = false;
|
||
if (CMISproDataBase.ExistsRecord("DBERP",string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_YXTZJGBYZ='Y' ", PageParam.GetRTrimString("BJFLID"))))
|
||
btnPLTJ.Visible = true;
|
||
Master_OnStandardQuery(null, null);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 模板继承事件
|
||
|
||
protected override void Master_OnStandardQuery(object sender, EventArgs e)
|
||
{
|
||
base.InitEntityByCondition();
|
||
entity.EntityTable.QuerySelSql = "select top 1 XLXSBJDMX_BJDID from XLXSBJDMX where 1<>1";
|
||
base.Master_OnStandardQuery(sender, e);
|
||
DataSet ds = GetSQLDataSet();
|
||
entity.GridDataBind(grdXLBJDMX, tSession);
|
||
entity.GridDataBind(grdXLBJDMX, ds.Tables[0], ds.Tables[0].Rows.Count);
|
||
grdXLBJDMX.DataSource = ds;
|
||
}
|
||
|
||
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
|
||
{
|
||
base.InitEntityByCondition();
|
||
entity.EntityTable.QuerySelSql = "select top 1 XLXSBJDMX_BJDID from XLXSBJDMX where 1<>1";
|
||
grdXLBJDMX.SelectedIndex = -1;
|
||
base.moduleGV_PageIndexChanging(sender, e);
|
||
DataSet ds = GetSQLDataSet();
|
||
entity.GridDataBind(grdXLBJDMX, tSession);
|
||
entity.GridDataBind(grdXLBJDMX, ds.Tables[0], ds.Tables[0].Rows.Count);
|
||
grdXLBJDMX.DataSource = ds;
|
||
}
|
||
|
||
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
|
||
{
|
||
InitDic();
|
||
if (e.Row.RowType == DataControlRowType.DataRow)
|
||
{
|
||
int indexFBJYY = grdXLBJDMX.Columns.IndexOf(grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSYCBZ"))+1;
|
||
if (indexFBJYY >= 0)
|
||
{
|
||
if ((e.Row.Cells[indexFBJYY].Text.Trim() != "") && (e.Row.Cells[indexFBJYY].Text.Trim() != " "))
|
||
{
|
||
e.Row.Cells[indexFBJYY].Text = XLBJD_FBJXQList.GetJSYCXQ(e.Row.Cells[indexFBJYY].Text.Trim(), dicJGBTJYZ);
|
||
}
|
||
}
|
||
}
|
||
base.moduleGV_RowDataBound(sender, e);
|
||
}
|
||
|
||
protected override void ReportRecordSetAdd()
|
||
{
|
||
DataSet ds = GetSQLDataSet();
|
||
AddUserReportDataSet("CX_XLXSBJDMX_CLCB", ds);
|
||
base.ReportRecordSetAdd();
|
||
|
||
}
|
||
|
||
protected override void ReportDataSetAdd()
|
||
{
|
||
DataSet ds = GetSQLDataSet();
|
||
for (int i = 0; i < grdXLBJDMX.Columns.Count; i++)
|
||
{
|
||
string sDataField = ((System.Web.UI.WebControls.BoundField)(grdXLBJDMX.Columns[i])).DataField.ToString().Trim();
|
||
string sHeaderText = grdXLBJDMX.Columns[i].HeaderText;
|
||
AddUserReportField("CX_XLXSBJDMX_CLCB", sDataField, sHeaderText, "S");
|
||
}
|
||
|
||
base.ReportDataSetAdd();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 自定义事件
|
||
|
||
private DataSet GetSQLDataSet()
|
||
{
|
||
bool bXSCLCB = false;
|
||
if (CurQueryEntity.FieldByName("XSCLCB").Value == "True")
|
||
{
|
||
bXSCLCB = true;
|
||
}
|
||
while (grdXLBJDMX.Columns.Count > 7)
|
||
{
|
||
grdXLBJDMX.Columns.RemoveAt(grdXLBJDMX.Columns.Count - 1);
|
||
}
|
||
DataTable dt1 = new DataTable();
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
Dictionary<string, string> DicJGYWLID = new Dictionary<string, string>();
|
||
#region 物料加工原物料ID
|
||
TSQL sql = new TSQL(dberp);
|
||
sql.Clear();
|
||
sql.Add(" select XLXSBJCLWL_WLID,XLXSBJCLWL_JGYWLID ");
|
||
sql.Add(" from XLXSBJCLWL ");
|
||
sql.Add(" where XLXSBJCLWL_JGYWLID <> '-' ");
|
||
DataSet dsWLJGYWL = dberp.OpenDataSet(sql);
|
||
if (dsWLJGYWL.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow trow in dsWLJGYWL.Tables[0].Rows)
|
||
{
|
||
string sWLID = trow["XLXSBJCLWL_WLID"].ToString().Trim();
|
||
string sJGYWLID = trow["XLXSBJCLWL_JGYWLID"].ToString().Trim();
|
||
if (!DicJGYWLID.ContainsKey(sWLID))
|
||
{
|
||
DicJGYWLID.Add(sWLID, sJGYWLID);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
TSQL SQL = new TSQL(dberp);
|
||
StringBuilder strSQL = new StringBuilder();
|
||
strSQL.AppendLine(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ,XLXSBJDMX_DYDJID,");
|
||
strSQL.AppendLine(" XLXSBJDMX_XLYSID,rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYS,XLXSBJDMX_BJCP,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBJJ");
|
||
dt1.Columns.Add("XLXSBJDMX_BJDID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_XH", typeof(double));
|
||
dt1.Columns.Add("XLXSBJDMX_XSSX", typeof(double));
|
||
dt1.Columns.Add("XLXSBJDMX_XLXHID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_XLGGID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_XLBZID", typeof(string));
|
||
dt1.Columns.Add("XLBZ", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_DYDJID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_XLYSID", typeof(string));
|
||
dt1.Columns.Add("XLYS", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_BJCP", typeof(string));
|
||
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
|
||
if (pzxx.XLXSBJPZ_XSPWQD == "Y")
|
||
{
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDWLMC", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDMS", typeof(string));
|
||
AddColumn("XLXSBJDMX_PWQDID", "配网清单ID", 100);
|
||
AddColumn("XLXSBJDMX_PWQDWLMC", "物料名称", 100);
|
||
AddColumn("XLXSBJDMX_PWQDMS", "描述", 100);
|
||
}
|
||
|
||
dt1.Columns.Add("XLXSBJDMX_JGBJJ", typeof(double));
|
||
|
||
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
|
||
{
|
||
AddColumn("XLXSBJDMX_JGBJJ", "含税基价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
}
|
||
else
|
||
{
|
||
AddColumn("XLXSBJDMX_JGBJJ", "无税基价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
}
|
||
|
||
bool bZSBJZC = CurQueryEntity.FieldByName("ZSBJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSBJZC)
|
||
{
|
||
strSQL.AppendLine(",round(XLXSBJDJJYZ_YZZ01*100*100/81.2655989526499/71.3980341706337,6) as SCRGF ");
|
||
string sYZZFields_1 = "";
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
sYZZFields_1 += ",XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + " as TZYZ_JZ" + i.ToString().PadLeft(2, '0') + " ";
|
||
}
|
||
strSQL.AppendLine(sYZZFields_1);
|
||
|
||
dt1.Columns.Add("SCRGF", typeof(double));
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
string colName = "TZYZ_JZ" + i.ToString("D2");
|
||
dt1.Columns.Add(colName, typeof(double));
|
||
}
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC,XLXSTZYZ_JJFS ");
|
||
SQL.Add(" from XLXSTZYZ");
|
||
SQL.Add(" where XLXSTZYZ_MXBH = 'JZJ' ");
|
||
if (!PageParam.GetRTrimString("JGBID").Equals(""))
|
||
{
|
||
SQL.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID=:pJGBID and XLXSJGBYZ_YZID=XLXSTZYZ_YZID)");//必须是当前价格表所用的调价因子
|
||
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
|
||
}
|
||
SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID ");
|
||
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
AddColumn("SCRGF", "生产人工费", 6, 80);
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
string sJJ = sJJFS.Equals("JJ") ? "(元)" : (sJJFS.Equals("") ? "" : "(%)");
|
||
string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJ;
|
||
string sYZID = "TZYZ_" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim();
|
||
int iDecimal = XLBJDUtils.JGBYZZDecimal;
|
||
if (sJJFS.Equals("JJ"))
|
||
iDecimal = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
|
||
AddColumn(sYZID, sYZMC, iDecimal, 80);
|
||
}
|
||
}
|
||
|
||
strSQL.AppendLine(" ,XLXSBJDMX_JGBBJ ");
|
||
dt1.Columns.Add("XLXSBJDMX_JGBBJ", typeof(double));
|
||
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
|
||
AddColumn("XLXSBJDMX_JGBBJ", "含税表价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
else
|
||
AddColumn("XLXSBJDMX_JGBBJ", "无税表价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
|
||
strSQL.AppendLine(" ,XLXSBJDMX_JSYCBZ ");
|
||
dt1.Columns.Add("XLXSBJDMX_JSYCBZ", typeof(string));
|
||
bool bXSFBJYY = CurQueryEntity.FieldByName("XSFBJYY").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bXSFBJYY)
|
||
{
|
||
AddColumn("XLXSBJDMX_JSYCBZ", "负表价原因", 100);
|
||
}
|
||
Dictionary<string, string> DicBJRCLCBLM = new Dictionary<string, string>();
|
||
bool bZSJJZC = CurQueryEntity.FieldByName("ZSJJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSJJZC)
|
||
{
|
||
#region 不计入成本栏目
|
||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "))
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID ");
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsJRCBLM = dberp.OpenDataSet(SQL);
|
||
if (dsJRCBLM.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow trow in dsJRCBLM.Tables[0].Rows)
|
||
{
|
||
string sKey = trow["BJDLJZSBJRCBLM_XH"].ToString().Trim() + "," + trow["BJDLJZSBJRCBLM_BJDCLCBLMH"].ToString().Trim();
|
||
if (!DicBJRCLCBLM.ContainsKey(sKey))
|
||
DicBJRCLCBLM.Add(sKey, sKey);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
strSQL.AppendLine(" ,'"+GetOption(100860000,"BJU003")+"' as JLDW ");
|
||
dt1.Columns.Add("JLDW", typeof(string));
|
||
AddColumn("JLDW", "计量单位", 80);
|
||
|
||
strSQL.AppendLine(" ,0 as CLZL ");
|
||
dt1.Columns.Add("CLZL", typeof(double));
|
||
AddColumn("CLZL", "材料重量",3, 80);
|
||
|
||
int iDecimal = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
|
||
|
||
//构建物料信息字典
|
||
if (dicCLWL.Count <= 0)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select WL_WLID,WL_MC,WL_GG ");
|
||
SQL.Add(" from XLXSBJCLWL ");
|
||
SQL.Add(" left join WL on XLXSBJCLWL_WLID = WL_WLID ");
|
||
SQL.Add(" where 1=1 ");
|
||
SQL.Add(" order by XLXSBJCLWL_WLID ");
|
||
DataSet dsWL = dberp.OpenDataSet(SQL);
|
||
foreach (DataRow wlRow in dsWL.Tables[0].Rows)
|
||
{
|
||
string sWLID = wlRow["WL_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
string sWLXX = wlRow["WL_MC"].ToString().Trim() + " " + wlRow["WL_GG"].ToString().Trim();
|
||
if (!dicCLWL.ContainsKey(sWLID))
|
||
{
|
||
dicCLWL.Add(sWLID, sWLXX);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (dicBJCL_WL.Count <= 0)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select distinct XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC ");
|
||
SQL.Add(" from XLXSBJCL ");
|
||
SQL.Add(" where 1=1 ");
|
||
//此处需要注意保存的dicBJCLCloums_Index不一定能囊括所有列,所有直接查询80列
|
||
//SQL.Add(" and (");
|
||
//for (int i = 1; i <= 80; i++)
|
||
//{
|
||
// if (i != 1)
|
||
// SQL.Add(" or ");
|
||
// SQL.Add(" exists ( select top 1 XLXSBJDCLCB_XH from XLXSBJDCLCB where XLXSBJDCLCB_BJDID =:pBJDID ");
|
||
// SQL.Add(string.Format(" and charindex('|',XLXSBJDCLCB_CLID{0}) > 0 and case when charindex('|',XLXSBJDCLCB_CLID{0}) > 0 then left(XLXSBJDCLCB_CLID{0},charindex('|',XLXSBJDCLCB_CLID{0})-1) else XLXSBJDCLCB_CLID{0} end = XLXSBJCL_BJCLID ) ", i.ToString().PadLeft(2, '0').Trim()));
|
||
//}
|
||
//SQL.Add(" ) ");
|
||
SQL.Add(" and exists ( select top 1 XLXSBJDCLCB_XH from XLXSBJDCLCB where XLXSBJDCLCB_BJDID =:pBJDID ");
|
||
SQL.Add(" and (");
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
if (i != 1)
|
||
SQL.Add(" or ");
|
||
SQL.Add(string.Format(" XLXSBJDCLCB_CLID{0} like rtrim(XLXSBJCL_BJCLID)||'|%'", i.ToString().PadLeft(2, '0')));
|
||
}
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" order by XLXSBJCL_BJCLID ");
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsBJCL_WL = dberp.OpenDataSet(SQL);
|
||
foreach (DataRow bjclRow in dsBJCL_WL.Tables[0].Rows)
|
||
{
|
||
string sBJCLID = bjclRow["XLXSBJCL_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
string sBJCLMC = bjclRow["XLXSBJCL_BJCLMC"].ToString().Trim();
|
||
if (!dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
dicBJCL_WL.Add(sBJCLID, sBJCLMC);
|
||
}
|
||
}
|
||
}
|
||
//报价材料是否显示
|
||
dicBJCL_Visible.Clear();
|
||
//构建报价材料字典和查询列
|
||
if (dicBJCL.Count > 0)
|
||
{
|
||
foreach (string sBJCLID in dicBJCL.Keys)
|
||
{
|
||
dicBJCL_Visible.Add(sBJCLID, "N");
|
||
string sBJCLMC = dicBJCL[sBJCLID];
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_SL ");
|
||
dt1.Columns.Add(sBJCLID + "_SL", typeof(string));
|
||
AddColumn(sBJCLID + "_SL", sBJCLMC,6, 60);
|
||
if (dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_WLXX ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_WLXX", typeof(string));
|
||
dt1.Columns.Add(sBJCLID + "_WLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_WLCB", typeof(double));
|
||
AddColumn(sBJCLID + "_WLXX", "材料物料", 80);
|
||
AddColumn(sBJCLID + "_WLJG", "物料价格(元/Kg)",XLBJDUtils.BJCLPriceDecimal, 60);
|
||
if (bXSCLCB)
|
||
AddColumn(sBJCLID + "_WLCB", "物料成本", iDecimal, 60);
|
||
}
|
||
else
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_CLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_CLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_CLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_CLCB", typeof(double));
|
||
AddColumn(sBJCLID + "_CLJG", "材料价格(元/Kg)", XLBJDUtils.BJCLPriceDecimal, 60);
|
||
if (bXSCLCB)
|
||
AddColumn(sBJCLID + "_CLCB", "材料成本", iDecimal, 60);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select distinct XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC ");
|
||
SQL.Add(" from XLXSBJCL ");
|
||
SQL.Add(" where 1=1 ");
|
||
//此处需要注意保存的dicBJCLCloums_Index不一定能囊括所有列,所有直接查询80列
|
||
//SQL.Add(" and ( ");
|
||
//for (int i = 1; i <= 80; i++)
|
||
//{
|
||
// if (i != 1)
|
||
// SQL.Add(" or ");
|
||
// SQL.Add(" exists ( select top 1 XLXSBJDCLCB_XH from XLXSBJDCLCB where XLXSBJDCLCB_BJDID =:pBJDID ");
|
||
// SQL.Add(string.Format(" and case when charindex('|',XLXSBJDCLCB_CLID{0}) > 0 then left(XLXSBJDCLCB_CLID{0},charindex('|',XLXSBJDCLCB_CLID{0})-1) else XLXSBJDCLCB_CLID{0} end = XLXSBJCL_BJCLID ) ", i.ToString().PadLeft(2, '0').Trim()));
|
||
//}
|
||
//SQL.Add(" ) ");
|
||
SQL.Add(" and exists ( select top 1 XLXSBJDCLCB_XH from XLXSBJDCLCB where XLXSBJDCLCB_BJDID =:pBJDID ");
|
||
SQL.Add(" and (");
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
if (i != 1)
|
||
SQL.Add(" or ");
|
||
SQL.Add(string.Format(" XLXSBJDCLCB_CLID{0} like rtrim(XLXSBJCL_BJCLID)||'%'", i.ToString().PadLeft(2, '0')));
|
||
}
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" order by XLXSBJCL_BJCLID ");
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsBJCL = dberp.OpenDataSet(SQL);
|
||
foreach (DataRow bjclRow in dsBJCL.Tables[0].Rows)
|
||
{
|
||
string sBJCLID = bjclRow["XLXSBJCL_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
string sBJCLMC = bjclRow["XLXSBJCL_BJCLMC"].ToString().Trim();
|
||
if (!dicBJCL.ContainsKey(sBJCLID))
|
||
{
|
||
dicBJCL.Add(sBJCLID, sBJCLMC);
|
||
dicBJCL_Visible.Add(sBJCLID, "N");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_SL ");
|
||
dt1.Columns.Add(sBJCLID + "_SL", typeof(string));
|
||
AddColumn(sBJCLID + "_SL", sBJCLMC,6, 60);
|
||
if (dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_WLXX ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_WLXX", typeof(string));
|
||
dt1.Columns.Add(sBJCLID + "_WLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_WLCB", typeof(double));
|
||
AddColumn(sBJCLID + "_WLXX", "材料物料", 80);
|
||
AddColumn(sBJCLID + "_WLJG", "物料价格(元/Kg)", XLBJDUtils.BJCLPriceDecimal, 60);
|
||
if (bXSCLCB)
|
||
AddColumn(sBJCLID + "_WLCB", "物料成本", iDecimal, 60);
|
||
}
|
||
else
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_CLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_CLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_CLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_CLCB", typeof(double));
|
||
AddColumn(sBJCLID + "_CLJG", "材料价格(元/Kg)", XLBJDUtils.BJCLPriceDecimal, 60);
|
||
if (bXSCLCB)
|
||
AddColumn(sBJCLID + "_CLCB", "材料成本", iDecimal, 60);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
strSQL.AppendLine(string.Format(" ,XLXSBJDCLCB_CLSL{0},XLXSBJDCLCB_CLID{0},XLXSBJDCLCB_CLDJ{0} ", i.ToString().PadLeft(2, '0').Trim()));
|
||
}
|
||
}
|
||
|
||
bool bZSGYBZ = CurQueryEntity.FieldByName("GYBZ").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSGYBZ)
|
||
{
|
||
AddColumn("XLXSBJYLZDMX_GYBZ", "工艺备注", 100);
|
||
strSQL.AppendLine(" ,XLXSBJYLZDMX_GYBZ ");
|
||
dt1.Columns.Add("XLXSBJYLZDMX_GYBZ", typeof(string));
|
||
}
|
||
|
||
//栏目超限省略符号
|
||
strSQL.AppendLine(" ,'...' as LMCXSLF ");
|
||
dt1.Columns.Add("LMCXSLF", typeof(string));
|
||
|
||
strSQL.AppendLine(" from XLXSBJDMX ");
|
||
strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID ");
|
||
strSQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID ");
|
||
if (bZSBJZC)
|
||
{
|
||
strSQL.AppendLine(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH ");
|
||
}
|
||
if (bZSJJZC)
|
||
{
|
||
strSQL.AppendLine(" left join XLXSBJDCLCB on XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH ");
|
||
}
|
||
if (bZSGYBZ)
|
||
{
|
||
strSQL.AppendLine(" left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_GYBZ ");
|
||
strSQL.AppendLine(" from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :pBJDID ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH ");
|
||
}
|
||
strSQL.AppendLine(" where 1=1 and XLXSBJDMX_BJDID = :pBJDID ");
|
||
strSQL.AppendLine(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH ");
|
||
SQL.Clear();
|
||
SQL.Add(strSQL.ToString().Trim());
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsQry = dberp.OpenDataSet(SQL);
|
||
if (dsQry.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow towQry in dsQry.Tables[0].Rows)
|
||
{
|
||
DataRow dtrow = dt1.NewRow();
|
||
dtrow["XLXSBJDMX_BJDID"] = towQry["XLXSBJDMX_BJDID"].ToString().Trim();
|
||
string sXH = towQry["XLXSBJDMX_XH"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XH"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_XH"].ToString().Trim());
|
||
dtrow["XLXSBJDMX_XSSX"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_XSSX"].ToString().Trim());
|
||
dtrow["XLXSBJDMX_XLXHID"] = towQry["XLXSBJDMX_XLXHID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLGGID"] = towQry["XLXSBJDMX_XLGGID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLBZID"] = towQry["XLXSBJDMX_XLBZID"].ToString().Trim();
|
||
dtrow["XLBZ"] = towQry["XLBZ"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_DYDJID"] = towQry["XLXSBJDMX_DYDJID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLYSID"] = towQry["XLXSBJDMX_XLYSID"].ToString().Trim();
|
||
dtrow["XLYS"] = towQry["XLYS"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_BJCP"] = towQry["XLXSBJDMX_BJCP"].ToString().Trim();
|
||
if (pzxx.XLXSBJPZ_XSPWQD == "Y")
|
||
{
|
||
dtrow["XLXSBJDMX_PWQDID"] = towQry["XLXSBJDMX_PWQDID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_PWQDWLMC"] = towQry["XLXSBJDMX_PWQDWLMC"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_PWQDMS"] = towQry["XLXSBJDMX_PWQDMS"].ToString().Trim();
|
||
}
|
||
dtrow["XLXSBJDMX_JGBJJ"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_JGBJJ"].ToString().Trim());
|
||
dtrow["LMCXSLF"] = towQry["LMCXSLF"].ToString().Trim();
|
||
if (bZSBJZC)
|
||
{
|
||
dtrow["SCRGF"] = CMISproConvert.StrToFloat(towQry["SCRGF"].ToString().Trim());
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
string colName = "TZYZ_JZ" + i.ToString("D2");
|
||
object value = towQry[colName]; // 获取原始值
|
||
dtrow[colName] = CMISproConvert.StrToFloat(value.ToString().Trim());
|
||
}
|
||
}
|
||
|
||
if (bXSFBJYY)
|
||
{
|
||
dtrow["XLXSBJDMX_JSYCBZ"] = towQry["XLXSBJDMX_JSYCBZ"].ToString().Trim();
|
||
}
|
||
|
||
dtrow["XLXSBJDMX_JGBBJ"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_JGBBJ"].ToString().Trim());
|
||
|
||
if (bZSJJZC)
|
||
{
|
||
dtrow["JLDW"] = towQry["JLDW"].ToString().Trim();
|
||
double dCLZL = 0;
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
string sBJRCBLMKey = sXH + "," + i.ToString().PadLeft(2, '0');
|
||
string sCLID = towQry["XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
if (sCLID.Contains("|"))
|
||
{
|
||
string sWLID = sCLID.Split('|')[1];
|
||
if (DicJGYWLID.ContainsKey(sWLID))
|
||
sWLID = DicJGYWLID[sWLID];
|
||
sCLID = sCLID.Split('|')[0];
|
||
if (dicBJCL.ContainsKey(sCLID))
|
||
{
|
||
double dSL = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLSL" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
double dJG = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLDJ" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
if (dSL != 0)
|
||
dicBJCL_Visible[sCLID] = "Y";
|
||
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dSL;//相同栏目的用量要合并
|
||
|
||
if (dicCLWL.ContainsKey(sWLID))
|
||
{
|
||
if (dtrow[sCLID + "_WLXX"].ToString().Trim().Equals(""))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = sWLID + "|" + dicCLWL[sWLID];
|
||
}
|
||
else
|
||
{
|
||
if (!dtrow[sCLID + "_WLXX"].ToString().Trim().Contains(sWLID + "|" + dicCLWL[sWLID]))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = dtrow[sCLID + "_WLXX"].ToString().Trim() + "...";
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (dtrow[sCLID + "_WLXX"].ToString().Trim().Equals(""))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = sWLID;
|
||
}
|
||
else
|
||
{
|
||
if (!dtrow[sCLID + "_WLXX"].ToString().Trim().Contains(sWLID) || (sWLID.Equals("") && !dtrow[sCLID + "_WLXX"].ToString().Trim().Equals("")))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = dtrow[sCLID + "_WLXX"].ToString().Trim() + "...";
|
||
}
|
||
}
|
||
}
|
||
if (dtrow[sCLID + "_WLXX"].ToString().EndsWith("..."))
|
||
dtrow[sCLID + "_WLJG"] = 0;
|
||
else
|
||
dtrow[sCLID + "_WLJG"] = dJG;
|
||
dtrow[sCLID + "_WLCB"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_WLCB"].ToString(), 0.0) + dJG * dSL;
|
||
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
|
||
dtrow[sCLID + "_WLCB"] = 0;
|
||
dCLZL += dSL;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (dicBJCL.ContainsKey(sCLID))
|
||
{
|
||
double dSL = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLSL" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
double dJG = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLDJ" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
if (dSL != 0)
|
||
dicBJCL_Visible[sCLID] = "Y";
|
||
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dSL;//相同栏目的用量要合并
|
||
dtrow[sCLID + "_CLJG"] = dJG;
|
||
dtrow[sCLID + "_CLCB"] = dJG * CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0);
|
||
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
|
||
dtrow[sCLID + "_CLCB"] = 0;
|
||
dCLZL += dSL;
|
||
}
|
||
}
|
||
}
|
||
dtrow["CLZL"] = dCLZL;
|
||
}
|
||
if (bZSGYBZ)
|
||
{
|
||
dtrow["XLXSBJYLZDMX_GYBZ"] = towQry["XLXSBJYLZDMX_GYBZ"].ToString().Trim();
|
||
}
|
||
dt1.Rows.Add(dtrow);
|
||
}
|
||
}
|
||
foreach (string sBJCLID in dicBJCL_Visible.Keys)
|
||
{
|
||
if (dicBJCL_Visible[sBJCLID].Equals("N"))//不显示的栏目需要删除,否则记录导出时会因为最大栏目数256的限制导致栏目导出不全
|
||
{
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_SL"));
|
||
if (dt1.Columns.Contains(sBJCLID + "_SL"))
|
||
dt1.Columns.Remove(sBJCLID + "_SL");
|
||
|
||
if (dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_WLXX"));
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_WLJG"));
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_WLCB"));
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLXX"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLXX");
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLJG"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLJG");
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLCB"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLCB");
|
||
}
|
||
else
|
||
{
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_CLJG"));
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.FindColumnByFieldName(sBJCLID + "_CLCB"));
|
||
if (dt1.Columns.Contains(sBJCLID + "_CLJG"))
|
||
dt1.Columns.Remove(sBJCLID + "_CLJG");
|
||
if (dt1.Columns.Contains(sBJCLID + "_CLCB"))
|
||
dt1.Columns.Remove(sBJCLID + "_CLCB");
|
||
}
|
||
}
|
||
}
|
||
|
||
if (grdXLBJDMX.Columns.Count > 450)
|
||
{
|
||
for (int i = grdXLBJDMX.Columns.Count - 1; i >= 449; i--)
|
||
{
|
||
grdXLBJDMX.Columns.Remove(grdXLBJDMX.Columns[i]);
|
||
}
|
||
AddColumn("LMCXSLF", "...", 60, HorizontalAlign.Center);
|
||
}
|
||
|
||
DataSet dsResult = new DataSet();
|
||
dsResult.Tables.Add(dt1);
|
||
return dsResult;
|
||
}
|
||
|
||
private void InitDic()
|
||
{
|
||
if (dicJGBTJYZ.Count > 0)
|
||
return;
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add(" select XLXSTZYZ_YZID,XLXSTZYZ_YZMC from XLXSTZYZ where XLXSTZYZ_MXBH = 'JZJ' ");
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow trow in ds.Tables[0].Rows)
|
||
{
|
||
dicJGBTJYZ.Add(trow["XLXSTZYZ_YZID"].ToString().Trim(), trow["XLXSTZYZ_YZMC"].ToString().Trim());
|
||
}
|
||
}
|
||
}
|
||
|
||
private void PLTJ_JGBYZ(string sBJDID,string sBJFLID,string sJGBID, string sBJDXHList, int VnewID, string sYZID,double YZZ)
|
||
{//研发自测:王威 2026/01/07 00:21:36
|
||
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
|
||
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID);
|
||
|
||
string sTJYS = yzxx.XLXSTZYZ_TJYS;
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, ");
|
||
SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,");
|
||
SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,XLXSBJFL_TZYLBL,");
|
||
SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ");
|
||
SQL.Add(" from XLXSBJD ");
|
||
SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID ");
|
||
SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID");
|
||
SQL.Add(" where XLXSBJD_BJDID=:pBJDID");
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
DataSet dsBJD = dberp.OpenDataSet(SQL);
|
||
if (dsBJD.Tables[0].Rows.Count == 0)
|
||
{
|
||
return;
|
||
}
|
||
string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim();
|
||
string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim();
|
||
string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim();
|
||
string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim();
|
||
string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim();
|
||
bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y");
|
||
|
||
string sBJU002=GetOption(100860000,"BJU002");
|
||
int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002);
|
||
if (iXSWS < 0)
|
||
iXSWS = 0;
|
||
else if (iXSWS > 8)
|
||
iXSWS = 8;
|
||
int VID = CMISproDataBase.NewID("DBERP", "V_XSBJJSJGB");
|
||
DateTime TimeStamp = MISproUtils.GetServerTime();
|
||
dberp.BeginTrans();
|
||
try
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(string.Format(" update XLXSBJDJJYZ set XLXSBJDJJYZ_YZZ{0}=:pYZZ", sYZID.Replace("JZ", "")));
|
||
SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID ");
|
||
if (VnewID > 0)
|
||
{
|
||
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID=:pID and XLXSBJDJJYZ_BJDID=V_BJDXH_BJDID and XLXSBJDJJYZ_XH=V_BJDXH_BJDXH)");
|
||
SQL.ParamByName("pID").Value = VnewID;
|
||
}
|
||
else if (!string.IsNullOrEmpty(sBJDXHList))
|
||
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDJJYZ_XH", sBJDXHList));
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
SQL.ParamByName("pYZZ").Value = YZZ;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
|
||
//构建待计算临时表
|
||
SQL.Clear();
|
||
SQL.Add("insert into V_XSBJJSJGB(V_XSBJJSJGB_ID,V_XSBJJSJGB_TIMESTAMP,V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_JGBJJ,V_XSBJJSJGB_JGBJLDW) ");
|
||
SQL.Add("select :pID,:pTime,XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_JGBJJ,XLXSBJDMX_JLDW ");
|
||
SQL.Add(" from XLXSBJDMX");
|
||
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
|
||
if (VnewID > 0)
|
||
{
|
||
SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID=:pID and XLXSBJDMX_BJDID=V_BJDXH_BJDID and XLXSBJDMX_XH=V_BJDXH_BJDXH)");
|
||
SQL.ParamByName("pID").Value = VnewID;
|
||
}
|
||
else if (!string.IsNullOrEmpty(sBJDXHList))
|
||
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList));
|
||
SQL.ParamByName("pID").Value = VID;
|
||
SQL.ParamByName("pTime").Value = TimeStamp;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
DataSet dsJGBYZ = new DataSet();
|
||
XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ);
|
||
if (dsJGBYZ.Tables[0].Rows.Count > 0)
|
||
{
|
||
CalcUpdateJGBBJ(dberp, SQL, dsJGBYZ, VID, sBJDID, sBJFLID, sMXBH, sJGBID, iXSWS, sJSBLFS, tSession.UserId, tSession.UserName, sJGBIDS);
|
||
SQL.Clear();
|
||
SQL.Add("merge into XLXSBJDMX tar ");
|
||
SQL.Add("using(select V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_JGBBJ from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID ");
|
||
SQL.Add(" )sor ");
|
||
|
||
SQL.Add(" on (XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=V_XSBJJSJGB_BJDXH)");
|
||
SQL.Add(" when matched then update set XLXSBJDMX_JGBBJ=V_XSBJJSJGB_JGBBJ ");
|
||
SQL.ParamByName("pID").Value = VID;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("merge into XLXSBJDCLCB tar ");
|
||
SQL.Add("using(select V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_JGBBJ,(select max(XLXSBJCL_ZZSL) as ZZSL from XLXSBJCL where 1=1) as ZZSL from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID ");
|
||
SQL.Add(" )sor ");
|
||
|
||
SQL.Add(" on (XLXSBJDCLCB_BJDID=:pBJDID and XLXSBJDCLCB_XH=V_XSBJJSJGB_BJDXH)");
|
||
SQL.Add(" when matched then update set ");
|
||
if (bHSBZ)
|
||
{
|
||
SQL.Add(" XLXSBJDCLCB_HSJGBBJ=V_XSBJJSJGB_JGBBJ,XLXSBJDCLCB_WSJGBBJ=V_XSBJJSJGB_JGBBJ/(1+isnull(ZZSL,0.0)/100.0) ");
|
||
|
||
}else
|
||
SQL.Add(" XLXSBJDCLCB_HSJGBBJ=V_XSBJJSJGB_JGBBJ*(1+isnull(ZZSL,0.0)/100.0),XLXSBJDCLCB_WSJGBBJ=V_XSBJJSJGB_JGBBJ ");
|
||
//SQL.ParamByName("pZZSL").Value = 13;
|
||
SQL.ParamByName("pID").Value = VID;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_CPBJMRXSWS, sBJDXHList, 0, false, false, false, "", DateTime.MinValue, false, VnewID);
|
||
|
||
|
||
|
||
XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 0);
|
||
XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 0);
|
||
XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_ZDXJJCLLX, bjflxx.XLXSBJFL_JYF, "", "", bjflxx.XLXSBJFL_YFWLID, bjflxx.XLXSBJFL_BJHYF);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
dberp.CommitTrans();
|
||
}
|
||
catch(Exception ex)
|
||
{
|
||
dberp.RollbackTrans();
|
||
ShowMessage("批量调价失败:"+ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
//删除计算临时表
|
||
SQL.Clear();
|
||
SQL.Add("delete from V_XSBJJSJGB ");
|
||
SQL.Add(" where V_XSBJJSJGB_ID=:pID");
|
||
SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID");
|
||
SQL.ParamByName("pID").Value = VID;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 控件事件
|
||
protected void btnPLTJ_OnDropDown(object sender, EventArgs e)
|
||
{//研发自测:王威 2026/01/07 00:21:13
|
||
btnPLTJ.Nodes.Clear();
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
DataSet ds = null;
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS ");
|
||
SQL.Add(" from XLXSJGBYZ");
|
||
SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID ");
|
||
SQL.Add(" where XLXSJGBYZ_JGBID=:pJGBID and XLXSTZYZ_TJYS not in('2','5','6') ");
|
||
SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID");
|
||
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
|
||
ds = dberp.OpenDataSet(SQL);
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sYZID = ds.Tables[0].Rows[i]["XLXSJGBYZ_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;
|
||
|
||
string sText = sYZMC;
|
||
if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("SX") || sJJFS.Equals("DD") || sJJFS.Equals("MD"))
|
||
{
|
||
sText = sText + "(%)";
|
||
}
|
||
else if (sJJFS.Equals("JJ"))
|
||
{
|
||
if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_TJLX == "1")
|
||
sText = sText + "(元)";
|
||
}
|
||
btnPLTJ.Nodes.Add(new gtTreeNode(sYZID, sText));
|
||
}
|
||
MenuAreaUpdate();
|
||
}
|
||
|
||
protected void btnPLTJ_MenuItemClick(object sender, string ItemIndex)
|
||
{//研发自测:王威 2026/01/07 00:21:23
|
||
string sYZID = ItemIndex;
|
||
string sText =btnPLTJ.Nodes.getTreeNodeByValue(sYZID).Text;
|
||
if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRowIndexs)))
|
||
txtPLSZAll.Value = "C";
|
||
else
|
||
txtPLSZAll.Value = "N";
|
||
|
||
txtPLSZYZList.Value = "";
|
||
string sBJFLID = PageParam.GetRTrimString("BJFLID");
|
||
string sBJDID = PageParam.GetRTrimString("BJDID");
|
||
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
if (sYZID.Contains("|"))
|
||
sYZID = sYZID.Trim().Split('|')[1];
|
||
TPageParams pageParams = new TPageParams();
|
||
pageParams.UrlPath = "XLBJD_JGBYZInfo.aspx";
|
||
pageParams.AddString("YZID", sYZID);
|
||
pageParams.AddString("YZMC", sText);
|
||
pageParams.AddString("PLSZAll", txtPLSZAll.Value);
|
||
pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID);
|
||
pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID);
|
||
pageParams.AddString("btnRefreshCID", btnRefresh2.ClientID);
|
||
OpenDialog(pageParams);
|
||
|
||
}
|
||
|
||
protected void btnRefresh_Click(object sender, EventArgs e)
|
||
{
|
||
int tmpIndex = grdXLBJDMX.SelectedIndex;
|
||
|
||
moduleGV_PageIndexChanging(null, null);
|
||
grdXLBJDMX.SelectedIndex = tmpIndex;
|
||
}
|
||
|
||
protected void btnRefresh2_Click(object sender, EventArgs e)
|
||
{//研发自测:王威 2026/01/07 00:21:29
|
||
string sBJDID = PageParam.GetRTrimString("BJDID");
|
||
string sBJDXHList = "";
|
||
int VnewID = 0;
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录
|
||
{
|
||
string[] sTempArr = grdXLBJDMX.CheckedRowIndexs.Split(new char[] { ',' });
|
||
|
||
foreach (string sIndex in sTempArr)
|
||
{
|
||
int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim());
|
||
string sBJDXH = grdXLBJDMX.DataKeys[iRowIndex]["XLXSBJDMX_XH"].ToString().Trim();
|
||
if (!sBJDXH.Equals("") && !sBJDXH.Equals("0"))
|
||
{
|
||
sBJDXHList += sBJDXH + ",";
|
||
}
|
||
}
|
||
sBJDXHList = sBJDXHList.TrimEnd(',');
|
||
}
|
||
else if (txtPLSZAll.Value.Trim().Equals("C"))
|
||
{
|
||
#region 创建临时表
|
||
DateTime TimeStamp = MISproUtils.GetServerTime();
|
||
VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1;
|
||
base.InitEntityByCondition();
|
||
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(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
|
||
SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSBJDMX_DYDJID ");
|
||
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
|
||
SQL.Add(" left join XLGGB on XLGGB_XLGGID=XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
|
||
if (XLBJDUtils.ExistXSCPML())
|
||
{
|
||
SQL.Add(" left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') ");
|
||
SQL.Add(" left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
|
||
SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID= (case when XHMLA.XLXSBJXHML_CPMLID is null then XHMLB.XLXSBJXHML_CPMLID else XHMLA.XLXSBJXHML_CPMLID end ) ");
|
||
}
|
||
SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID ");
|
||
SQL.ParamByName("pID").Value = VnewID;
|
||
SQL.ParamByName("pTime").Value = TimeStamp;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
#endregion
|
||
}
|
||
|
||
string[] sYZZList = txtPLSZYZList.Value.Trim().Split('|');
|
||
string sYZID = sYZZList[0].Trim();
|
||
double fYZZ = CMISproConvert.StrToFloat(sYZZList[1]);
|
||
|
||
string sBJFLID = PageParam.GetRTrimString("BJFLID");
|
||
string sJGBID = PageParam.GetRTrimString("JGBID");
|
||
|
||
PLTJ_JGBYZ(sBJDID, sBJFLID, sJGBID,sBJDXHList, VnewID, sYZID, fYZZ);
|
||
|
||
if (VnewID > 0)
|
||
{
|
||
#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
|
||
}
|
||
//刷新
|
||
moduleGV_PageIndexChanging(null, null);
|
||
FormAreaUpdate();
|
||
}
|
||
|
||
|
||
|
||
protected void btnHSJJ_Click(object sender, EventArgs e)
|
||
{
|
||
if (grdXLBJDMX.SelectedIndex < 0)
|
||
{
|
||
ShowMessage("请选择处理记录!");
|
||
return;
|
||
}
|
||
|
||
string sXLXHID = grdXLBJDMX.DataKeys[grdXLBJDMX.SelectedIndex]["XLXSBJDMX_XLXHID"].ToString().Trim();
|
||
string sXLGGID = grdXLBJDMX.DataKeys[grdXLBJDMX.SelectedIndex]["XLXSBJDMX_XLGGID"].ToString().Trim();
|
||
string sXLBZID = grdXLBJDMX.DataKeys[grdXLBJDMX.SelectedIndex]["XLXSBJDMX_XLBZID"].ToString().Trim();
|
||
string sDYDJID = grdXLBJDMX.DataKeys[grdXLBJDMX.SelectedIndex]["XLXSBJDMX_DYDJID"].ToString().Trim();
|
||
string sXH = grdXLBJDMX.DataKeys[grdXLBJDMX.SelectedIndex]["XLXSBJDMX_XH"].ToString().Trim();
|
||
|
||
TPageParams tpp = new TPageParams();
|
||
if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID")))
|
||
tpp.UrlPath = "XLBJD_JGECBZSList.aspx";
|
||
else
|
||
tpp.UrlPath = "XLBJD_CBZSList.aspx";
|
||
tpp.CallAction = TPageCallAction.pcaBrowse;
|
||
tpp.AddString("XLXHID", sXLXHID);
|
||
tpp.AddString("XLGGID", sXLGGID);
|
||
tpp.AddString("XLBZID", sXLBZID);
|
||
tpp.AddString("DYDJID", sDYDJID);
|
||
|
||
tpp.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
|
||
tpp.AddString("XH", sXH);
|
||
tpp.AddString("BJRQ", PageParam.GetRTrimString("BJRQ"));
|
||
tpp.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
|
||
tpp.AddString("JGBID", PageParam.GetRTrimString("JGBID"));
|
||
tpp.AddString("JGBIDS", PageParam.GetRTrimString("JGBIDS"));
|
||
tpp.AddString("HSBZ", PageParam.GetRTrimString("HSBZ"));
|
||
tpp.AddString("BJDHQLY", PageParam.GetRTrimString("BJDHQLY"));
|
||
|
||
tpp.AddString("TBJCLID", PageParam.GetRTrimString("TBJCLID"));
|
||
tpp.AddString("LBJCLID", PageParam.GetRTrimString("LBJCLID"));
|
||
tpp.AddString("TJ", PageParam.GetRTrimString("TJ"));
|
||
tpp.AddString("LJ", PageParam.GetRTrimString("LJ"));
|
||
|
||
tpp.AddString("JCLLX", PageParam.GetRTrimString("JCLLX"));
|
||
tpp.AddString("LJJCLLX", PageParam.GetRTrimString("LJJCLLX"));
|
||
tpp.AddString("BJLY", PageParam.GetRTrimString("BJLY"));
|
||
tpp.AddString("CPBJMRXSWS", PageParam.GetRTrimString("CPBJMRXSWS"));
|
||
tpp.AddString("TZCLHQ", PageParam.GetRTrimString("TZCLHQ"));//是否允许调整材料行情
|
||
tpp.AddString("CANEDIT", PageParam.GetRTrimString("CANEDIT"));//报价单是否允许编辑
|
||
tpp.AddString("ZDXJJCLLX", PageParam.GetRTrimString("ZDXJJCLLX"));
|
||
|
||
tpp.AddString("JYF", PageParam.GetRTrimString("JYF"));//计运费
|
||
tpp.AddString("YSJDID", PageParam.GetRTrimString("YSJDID"));//运输节点
|
||
tpp.AddString("GYSID", PageParam.GetRTrimString("GYSID"));//运输单位
|
||
tpp.AddString("YFWLID", PageParam.GetRTrimString("YFWLID"));//运费物料
|
||
tpp.AddString("BJHYF", PageParam.GetRTrimString("BJHYF"));//报价含运费
|
||
if (PageParam.GetRTrimString("TZCLHQ").Equals("Y"))
|
||
OpenModuleDialog(100860044, tpp, btnRefresh.ClientID);
|
||
else
|
||
OpenModuleDialog(100860044, tpp);
|
||
}
|
||
|
||
#region 导出数据
|
||
|
||
protected void btnSJDC_Click(object sender, EventArgs e)
|
||
{
|
||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJDMX where isnull(XLXSBJDMX_JSYCBZ,' ' )='A' and XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'"))
|
||
{
|
||
Confirm.Register("IsQD", "当前报价单明细存在材料价缺失/有用量栏目未指定材料的产品记录,是否确认导出?");
|
||
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();
|
||
}
|
||
}
|
||
base.InitEntityByCondition();
|
||
short tcpys = 0;
|
||
short lcpys = 0;
|
||
string sTCPList = string.Empty;
|
||
string sLCPList = string.Empty;
|
||
|
||
if (!XLBJDUtils.GetXLXSBJPZXX(100860010).XLXSBJPZ_TCPBSYS.Trim().Equals(""))
|
||
tcpys = (short)CMISproConvert.StrToInt(XLBJDUtils.GetXLXSBJPZXX(100860010).XLXSBJPZ_TCPBSYS.Trim(), 0);
|
||
|
||
if (!XLBJDUtils.GetXLXSBJPZXX(100860010).XLXSBJPZ_LCPBSYS.Trim().Equals(""))
|
||
lcpys = (short)CMISproConvert.StrToInt(XLBJDUtils.GetXLXSBJPZXX(100860010).XLXSBJPZ_LCPBSYS.Trim(), 0);
|
||
|
||
|
||
bool bXSCLCB = false;
|
||
if (CurQueryEntity.FieldByName("XSCLCB").Value == "True")
|
||
{
|
||
bXSCLCB = true;
|
||
}
|
||
int iNumberDecimal = XLBJDUtils.BJCLPriceDecimal;
|
||
string sBJDID = PageParam.GetRTrimString("BJDID");
|
||
string sFileName = "";
|
||
sFileName = sBJDID + "报价单表价";
|
||
string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx");
|
||
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
Dictionary<string, string> DicJGYWLID = new Dictionary<string, string>();
|
||
#region 物料加工原物料ID
|
||
TSQL sql = new TSQL(dberp);
|
||
sql.Clear();
|
||
sql.Add(" select XLXSBJCLWL_WLID,XLXSBJCLWL_JGYWLID ");
|
||
sql.Add(" from XLXSBJCLWL ");
|
||
sql.Add(" where XLXSBJCLWL_JGYWLID <> '-' ");
|
||
DataSet dsWLJGYWL = dberp.OpenDataSet(sql);
|
||
if (dsWLJGYWL.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow trow in dsWLJGYWL.Tables[0].Rows)
|
||
{
|
||
string sWLID = trow["XLXSBJCLWL_WLID"].ToString().Trim();
|
||
string sJGYWLID = trow["XLXSBJCLWL_JGYWLID"].ToString().Trim();
|
||
if (!DicJGYWLID.ContainsKey(sWLID))
|
||
{
|
||
DicJGYWLID.Add(sWLID, sJGYWLID);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
TSQL SQL = new TSQL(dberp);
|
||
Dictionary<string, string> dicColumns = new Dictionary<string, string>();
|
||
DataTable dt1 = new DataTable();
|
||
dt1.Columns.Add("XLXSBJDMX_BJDID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_XH", typeof(double));
|
||
dt1.Columns.Add("XLXSBJDMX_XSSX", typeof(double));
|
||
dicColumns.Add("XLXSBJDMX_XSSX", "显示序号");
|
||
dt1.Columns.Add("XLXSBJDMX_XLXHID", typeof(string));
|
||
dicColumns.Add("XLXSBJDMX_XLXHID", "型号");
|
||
dt1.Columns.Add("XLXSBJDMX_XLGGID", typeof(string));
|
||
dicColumns.Add("XLXSBJDMX_XLGGID", "规格");
|
||
dt1.Columns.Add("XLXSBJDMX_XLBZID", typeof(string));
|
||
dt1.Columns.Add("XLBZ", typeof(string));
|
||
dicColumns.Add("XLBZ", "标准");
|
||
dt1.Columns.Add("XLXSBJDMX_DYDJID", typeof(string));
|
||
dicColumns.Add("XLXSBJDMX_DYDJID", "电压等级");
|
||
dt1.Columns.Add("XLXSBJDMX_XLYSID", typeof(string));
|
||
dt1.Columns.Add("XLYS", typeof(string));
|
||
dicColumns.Add("XLYS", "颜色");
|
||
dt1.Columns.Add("XLXSBJDMX_BJCP", typeof(string));
|
||
dicColumns.Add("XLXSBJDMX_BJCP", "报价产品");
|
||
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
|
||
if (pzxx.XLXSBJPZ_XSPWQD == "Y")
|
||
{
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDID", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDWLMC", typeof(string));
|
||
dt1.Columns.Add("XLXSBJDMX_PWQDMS", typeof(string));
|
||
dicColumns.Add("XLXSBJDMX_PWQDID", "配网清单ID");
|
||
dicColumns.Add("XLXSBJDMX_PWQDWLMC", "物料名称");
|
||
dicColumns.Add("XLXSBJDMX_PWQDMS", "描述");
|
||
}
|
||
dt1.Columns.Add("XLXSBJDMX_JGBJJ", typeof(double));
|
||
|
||
StringBuilder strSQL = new StringBuilder();
|
||
strSQL.AppendLine(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ,XLXSBJDMX_DYDJID,");
|
||
strSQL.AppendLine(" XLXSBJDMX_XLYSID,rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYS,XLXSBJDMX_BJCP,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBJJ");
|
||
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
|
||
//AddColumn("XLXSBJDMX_JGBJJ", "含税基价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
dicColumns.Add("XLXSBJDMX_JGBJJ", "含税基价");
|
||
else
|
||
dicColumns.Add("XLXSBJDMX_JGBJJ", "无税基价");
|
||
|
||
bool bZSBJZC = CurQueryEntity.FieldByName("ZSBJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSBJZC)
|
||
{
|
||
strSQL.AppendLine(",round(XLXSBJDJJYZ_YZZ01*100*100/81.2655989526499/71.3980341706337,6) as SCRGF ");
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
string num = i.ToString("D2");
|
||
strSQL.AppendLine(",XLXSBJDJJYZ_YZZ" + num + " as TZYZ_JZ" + num + " ");
|
||
}
|
||
dt1.Columns.Add("SCRGF", typeof(double));
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
string colName = "TZYZ_JZ" + i.ToString("D2");
|
||
dt1.Columns.Add(colName, typeof(double));
|
||
}
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC,XLXSTZYZ_JJFS ");
|
||
SQL.Add(" from XLXSTZYZ");
|
||
SQL.Add(" where XLXSTZYZ_MXBH = 'JZJ' ");
|
||
if (!PageParam.GetRTrimString("JGBID").Equals(""))
|
||
{
|
||
SQL.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID=:pJGBID and XLXSJGBYZ_YZID=XLXSTZYZ_YZID)");//必须是当前价格表所用的调价因子
|
||
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
|
||
}
|
||
SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID ");
|
||
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
dicColumns.Add("SCRGF", "生产人工费");
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
string sJJ = sJJFS.Equals("JJ") ? "(元)" : (sJJFS.Equals("") ? "" : "(%)");
|
||
string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJ;
|
||
string sYZID = "TZYZ_" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim();
|
||
//int iDecimal = XLBJDUtils.JGBYZZDecimal;
|
||
//if (sJJFS.Equals("JJ"))
|
||
// iDecimal = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
|
||
dicColumns.Add(sYZID, sYZMC);
|
||
}
|
||
}
|
||
|
||
strSQL.AppendLine(" ,XLXSBJDMX_JGBBJ ");
|
||
dt1.Columns.Add("XLXSBJDMX_JGBBJ", typeof(double));
|
||
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
|
||
//AddColumn("XLXSBJDMX_JGBBJ", "含税表价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
|
||
dicColumns.Add("XLXSBJDMX_JGBBJ", "含税表价");
|
||
else
|
||
dicColumns.Add("XLXSBJDMX_JGBBJ", "无税表价");
|
||
|
||
strSQL.AppendLine(" ,XLXSBJDMX_JSYCBZ ");
|
||
dt1.Columns.Add("XLXSBJDMX_JSYCBZ", typeof(string));
|
||
bool bXSFBJYY = CurQueryEntity.FieldByName("XSFBJYY").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bXSFBJYY)
|
||
{
|
||
dicColumns.Add("XLXSBJDMX_JSYCBZ", "负表价原因");
|
||
}
|
||
Dictionary<string, string> DicBJRCLCBLM = new Dictionary<string, string>();
|
||
bool bZSJJZC = CurQueryEntity.FieldByName("ZSJJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSJJZC)
|
||
{
|
||
#region 不计入成本栏目
|
||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "))
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID ");
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsJRCBLM = dberp.OpenDataSet(SQL);
|
||
if (dsJRCBLM.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow trow in dsJRCBLM.Tables[0].Rows)
|
||
{
|
||
string sKey = trow["BJDLJZSBJRCBLM_XH"].ToString().Trim() + "," + trow["BJDLJZSBJRCBLM_BJDCLCBLMH"].ToString().Trim();
|
||
if (!DicBJRCLCBLM.ContainsKey(sKey))
|
||
DicBJRCLCBLM.Add(sKey, sKey);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
strSQL.AppendLine(" ,'" + GetOption(100860000, "BJU003") + "' as JLDW ");
|
||
dt1.Columns.Add("JLDW", typeof(string));
|
||
dicColumns.Add("JLDW", "计量单位");
|
||
|
||
strSQL.AppendLine(" ,0 as CLZL ");
|
||
dt1.Columns.Add("CLZL", typeof(double));
|
||
//AddColumn("CLZL", "材料重量", 3, 80);
|
||
dicColumns.Add("CLZL", "材料重量");
|
||
|
||
int iDecimal = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
|
||
|
||
//构建物料信息字典
|
||
if (dicCLWL.Count <= 0)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" select WL_WLID,WL_MC,WL_GG ");
|
||
SQL.Add(" from XLXSBJCLWL ");
|
||
SQL.Add(" left join WL on XLXSBJCLWL_WLID = WL_WLID ");
|
||
SQL.Add(" where 1=1 ");
|
||
SQL.Add(" order by XLXSBJCLWL_WLID ");
|
||
DataSet dsWL = dberp.OpenDataSet(SQL);
|
||
foreach (DataRow wlRow in dsWL.Tables[0].Rows)
|
||
{
|
||
string sWLID = wlRow["WL_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
string sWLXX = wlRow["WL_MC"].ToString().Trim() + " " + wlRow["WL_GG"].ToString().Trim();
|
||
if (!dicCLWL.ContainsKey(sWLID))
|
||
{
|
||
dicCLWL.Add(sWLID, sWLXX);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 一次性加载当前报价单实际使用的报价材料(含带物料的材料)
|
||
LoadBJCLInfo(sBJDID, dberp);
|
||
|
||
// 报价材料是否显示
|
||
dicBJCL_Visible.Clear();
|
||
|
||
// 根据实际使用的材料构建查询列(延迟创建,避免先增后删)
|
||
foreach (string sBJCLID in dicBJCL.Keys)
|
||
{
|
||
dicBJCL_Visible.Add(sBJCLID, "N");
|
||
string sBJCLMC = dicBJCL[sBJCLID];
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_SL ");
|
||
dt1.Columns.Add(sBJCLID + "_SL", typeof(string));
|
||
dicColumns.Add(sBJCLID + "_SL", sBJCLMC);
|
||
if (dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_WLXX ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_WLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_WLXX", typeof(string));
|
||
dt1.Columns.Add(sBJCLID + "_WLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_WLCB", typeof(double));
|
||
dicColumns.Add(sBJCLID + "_WLXX", "材料物料");
|
||
dicColumns.Add(sBJCLID + "_WLJG", "物料价格(元/Kg)");
|
||
if (bXSCLCB)
|
||
dicColumns.Add(sBJCLID + "_WLCB", "物料成本");
|
||
}
|
||
else
|
||
{
|
||
strSQL.AppendLine(" ,' ' as " + sBJCLID + "_CLJG ");
|
||
strSQL.AppendLine(" ,0 as " + sBJCLID + "_CLCB ");
|
||
dt1.Columns.Add(sBJCLID + "_CLJG", typeof(double));
|
||
dt1.Columns.Add(sBJCLID + "_CLCB", typeof(double));
|
||
dicColumns.Add(sBJCLID + "_CLJG", "材料价格(元/Kg)");
|
||
if (bXSCLCB)
|
||
dicColumns.Add(sBJCLID + "_CLCB", "材料成本");
|
||
}
|
||
}
|
||
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
strSQL.AppendLine(string.Format(" ,XLXSBJDCLCB_CLSL{0},XLXSBJDCLCB_CLID{0},XLXSBJDCLCB_CLDJ{0} ", i.ToString().PadLeft(2, '0').Trim()));
|
||
}
|
||
}
|
||
bool bZSGYBZ = CurQueryEntity.FieldByName("GYBZ").Value.ToString().Trim().ToUpper().Equals("TRUE");
|
||
if (bZSGYBZ)
|
||
{
|
||
dicColumns.Add("XLXSBJYLZDMX_GYBZ", "工艺备注");
|
||
strSQL.AppendLine(" ,XLXSBJYLZDMX_GYBZ ");
|
||
dt1.Columns.Add("XLXSBJYLZDMX_GYBZ", typeof(string));
|
||
}
|
||
|
||
//if (tcpys != 0 || lcpys != 0)
|
||
// strSQL.AppendLine(" ,XLXSCLQD_TZL,XLXSCLQD_LZL ");
|
||
//else
|
||
// strSQL.AppendLine(" ,0 as XLXSCLQD_TZL,0 as XLXSCLQD_LZL ");
|
||
strSQL.AppendLine(" from XLXSBJDMX ");
|
||
strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID ");
|
||
strSQL.AppendLine(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID ");
|
||
if (bZSBJZC)
|
||
{
|
||
strSQL.AppendLine(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH ");
|
||
}
|
||
if (bZSJJZC)
|
||
{
|
||
strSQL.AppendLine(" left join XLXSBJDCLCB on XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH ");
|
||
}
|
||
if (bZSGYBZ)
|
||
{
|
||
strSQL.AppendLine(" left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_GYBZ ");
|
||
strSQL.AppendLine(" from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :pBJDID ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH ");
|
||
}
|
||
strSQL.AppendLine(" where 1=1 and XLXSBJDMX_BJDID = :pBJDID ");
|
||
strSQL.AppendLine(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH ");
|
||
SQL.Clear();
|
||
SQL.Add(strSQL.ToString().Trim());
|
||
SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID").Trim();
|
||
DataSet dsQry = dberp.OpenDataSet(SQL);
|
||
if (dsQry.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow towQry in dsQry.Tables[0].Rows)
|
||
{
|
||
//double dTZL = CMISproConvert.StrToFloat(towQry["XLXSCLQD_TZL"].ToString().Trim());
|
||
//double dLZL = CMISproConvert.StrToFloat(towQry["XLXSCLQD_LZL"].ToString().Trim());
|
||
DataRow dtrow = dt1.NewRow();
|
||
dtrow["XLXSBJDMX_BJDID"] = towQry["XLXSBJDMX_BJDID"].ToString().Trim();
|
||
string sXH = towQry["XLXSBJDMX_XH"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XH"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_XH"].ToString().Trim());
|
||
dtrow["XLXSBJDMX_XSSX"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_XSSX"].ToString().Trim());
|
||
dtrow["XLXSBJDMX_XLXHID"] = towQry["XLXSBJDMX_XLXHID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLGGID"] = towQry["XLXSBJDMX_XLGGID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLBZID"] = towQry["XLXSBJDMX_XLBZID"].ToString().Trim();
|
||
dtrow["XLBZ"] = towQry["XLBZ"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_DYDJID"] = towQry["XLXSBJDMX_DYDJID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_XLYSID"] = towQry["XLXSBJDMX_XLYSID"].ToString().Trim();
|
||
dtrow["XLYS"] = towQry["XLYS"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_BJCP"] = towQry["XLXSBJDMX_BJCP"].ToString().Trim();
|
||
if (pzxx.XLXSBJPZ_XSPWQD == "Y")
|
||
{
|
||
dtrow["XLXSBJDMX_PWQDID"] = towQry["XLXSBJDMX_PWQDID"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_PWQDWLMC"] = towQry["XLXSBJDMX_PWQDWLMC"].ToString().Trim();
|
||
dtrow["XLXSBJDMX_PWQDMS"] = towQry["XLXSBJDMX_PWQDMS"].ToString().Trim();
|
||
}
|
||
dtrow["XLXSBJDMX_JGBJJ"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_JGBJJ"].ToString().Trim());
|
||
//if (dTZL > 0)
|
||
// sTCPList += towQry["XLXSBJDMX_XSSX"].ToString().Trim() + ",";
|
||
//else if (dLZL > 0)
|
||
// sLCPList += towQry["XLXSBJDMX_XSSX"].ToString().Trim() + ",";
|
||
|
||
|
||
if (bZSBJZC)
|
||
{
|
||
dtrow["SCRGF"] = CMISproConvert.StrToFloat(towQry["SCRGF"].ToString().Trim());
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
string col = "TZYZ_JZ" + i.ToString("D2");
|
||
dtrow[col] = CMISproConvert.StrToFloat(towQry[col].ToString().Trim());
|
||
}
|
||
}
|
||
|
||
if (bXSFBJYY)
|
||
{
|
||
dtrow["XLXSBJDMX_JSYCBZ"] = XLBJD_FBJXQList.GetJSYCXQ(towQry["XLXSBJDMX_JSYCBZ"].ToString().Trim(), dicJGBTJYZ);
|
||
}
|
||
dtrow["XLXSBJDMX_JGBBJ"] = CMISproConvert.StrToFloat(towQry["XLXSBJDMX_JGBBJ"].ToString().Trim());
|
||
|
||
if (bZSJJZC)
|
||
{
|
||
dtrow["JLDW"] = towQry["JLDW"].ToString().Trim();
|
||
double dCLZL = 0;
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
string sBJRCBLMKey = sXH + "," + i.ToString().PadLeft(2, '0');
|
||
string sCLID = towQry["XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
if (sCLID.Contains("|"))
|
||
{
|
||
string sWLID = sCLID.Split('|')[1];
|
||
if (DicJGYWLID.ContainsKey(sWLID))
|
||
sWLID = DicJGYWLID[sWLID];
|
||
sCLID = sCLID.Split('|')[0];
|
||
if (dicBJCL.ContainsKey(sCLID))
|
||
{
|
||
double dSL = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLSL" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
double dJG = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLDJ" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
if (dSL != 0)
|
||
dicBJCL_Visible[sCLID] = "Y";
|
||
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dSL;//相同栏目的用量要合并
|
||
|
||
if (dicCLWL.ContainsKey(sWLID))
|
||
{
|
||
if (dtrow[sCLID + "_WLXX"].ToString().Trim().Equals(""))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = sWLID + "|" + dicCLWL[sWLID];
|
||
}
|
||
else
|
||
{
|
||
if (!dtrow[sCLID + "_WLXX"].ToString().Trim().Contains(sWLID + "|" + dicCLWL[sWLID]))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = dtrow[sCLID + "_WLXX"].ToString().Trim() + "...";
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (dtrow[sCLID + "_WLXX"].ToString().Trim().Equals(""))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = sWLID;
|
||
}
|
||
else
|
||
{
|
||
if (!dtrow[sCLID + "_WLXX"].ToString().Trim().Contains(sWLID) || (sWLID.Equals("") && !dtrow[sCLID + "_WLXX"].ToString().Trim().Equals("")))
|
||
{
|
||
dtrow[sCLID + "_WLXX"] = dtrow[sCLID + "_WLXX"].ToString().Trim() + "...";
|
||
}
|
||
}
|
||
}
|
||
if (dtrow[sCLID + "_WLXX"].ToString().EndsWith("..."))
|
||
dtrow[sCLID + "_WLJG"] = 0;
|
||
else
|
||
dtrow[sCLID + "_WLJG"] = dJG;
|
||
|
||
dtrow[sCLID + "_WLCB"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_WLCB"].ToString(), 0.0) + dJG * dSL;
|
||
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
|
||
dtrow[sCLID + "_WLCB"] = 0;
|
||
dCLZL += dSL;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (dicBJCL.ContainsKey(sCLID))
|
||
{
|
||
double dSL = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLSL" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
double dJG = CMISproConvert.StrToFloat(towQry["XLXSBJDCLCB_CLDJ" + i.ToString().PadLeft(2, '0').Trim()].ToString().Trim());
|
||
if (dSL != 0)
|
||
dicBJCL_Visible[sCLID] = "Y";
|
||
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dSL;//相同栏目的用量要合并
|
||
dtrow[sCLID + "_CLJG"] = dJG;
|
||
dtrow[sCLID + "_CLCB"] = dJG * CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0);
|
||
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
|
||
dtrow[sCLID + "_CLCB"] = 0;
|
||
dCLZL += dSL;
|
||
}
|
||
}
|
||
}
|
||
dtrow["CLZL"] = dCLZL;
|
||
}
|
||
if (bZSGYBZ)
|
||
{
|
||
dtrow["XLXSBJYLZDMX_GYBZ"] = towQry["XLXSBJYLZDMX_GYBZ"].ToString().Trim();
|
||
}
|
||
dt1.Rows.Add(dtrow);
|
||
}
|
||
}
|
||
foreach (string sBJCLID in dicBJCL_Visible.Keys)
|
||
{
|
||
if (dicBJCL_Visible[sBJCLID].Equals("N"))//不显示的栏目需要删除,否则记录导出时会因为最大栏目数256的限制导致栏目导出不全
|
||
{
|
||
dicColumns.Remove(sBJCLID + "_SL");
|
||
if (dt1.Columns.Contains(sBJCLID + "_SL"))
|
||
dt1.Columns.Remove(sBJCLID + "_SL");
|
||
|
||
if (dicBJCL_WL.ContainsKey(sBJCLID))
|
||
{
|
||
dicColumns.Remove(sBJCLID + "_WLXX");
|
||
dicColumns.Remove(sBJCLID + "_WLJG");
|
||
dicColumns.Remove(sBJCLID + "_WLCB");
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLXX"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLXX");
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLJG"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLJG");
|
||
if (dt1.Columns.Contains(sBJCLID + "_WLCB"))
|
||
dt1.Columns.Remove(sBJCLID + "_WLCB");
|
||
}
|
||
else
|
||
{
|
||
dicColumns.Remove(sBJCLID + "_CLJG");
|
||
dicColumns.Remove(sBJCLID + "_CLCB");
|
||
if (dt1.Columns.Contains(sBJCLID + "_CLJG"))
|
||
dt1.Columns.Remove(sBJCLID + "_CLJG");
|
||
if (dt1.Columns.Contains(sBJCLID + "_CLCB"))
|
||
dt1.Columns.Remove(sBJCLID + "_CLCB");
|
||
}
|
||
}
|
||
}
|
||
DataSet dsResult = new DataSet();
|
||
dsResult.Tables.Add(dt1);
|
||
|
||
string sColName = "";
|
||
|
||
//循环列名,进行赋值
|
||
for (int i = 0; i < dsResult.Tables[0].Columns.Count; i++)
|
||
{
|
||
if (dicColumns.ContainsKey(dsResult.Tables[0].Columns[i].ColumnName))
|
||
{
|
||
sColName = dsResult.Tables[0].Columns[i].ColumnName;
|
||
dsResult.Tables[0].Columns[i].Caption = "待处理列&_" + dicColumns[sColName];
|
||
}
|
||
|
||
}
|
||
|
||
//循环,删除列
|
||
for (int i = dsResult.Tables[0].Columns.Count - 1; i >= 0; i--)
|
||
{
|
||
if (dsResult.Tables[0].Columns[i].Caption.StartsWith("待处理列&_"))
|
||
{
|
||
dsResult.Tables[0].Columns[i].Caption = dsResult.Tables[0].Columns[i].Caption.Replace("待处理列&_", "");
|
||
}
|
||
else
|
||
{
|
||
dsResult.Tables[0].Columns.RemoveAt(i);
|
||
}
|
||
}
|
||
|
||
if (dsResult.Tables[0].Rows.Count > 0)
|
||
{
|
||
string smessage = "";
|
||
string sLet = "";
|
||
//
|
||
NpoiSheetData sd = new NpoiSheetData();
|
||
sd.ColumnStyle = new System.Collections.Generic.Dictionary<string, NpoiColumnStyle>();
|
||
NpoiColumnStyle ct = new NpoiColumnStyle();
|
||
ct.DataFormat = "@";
|
||
sd.ColumnStyle.Add("B", ct);
|
||
sd.ColumnType = new System.Collections.Generic.Dictionary<string, NpoiColumnType>();
|
||
|
||
string sCellStr = "";
|
||
string sCellStrBJ = GetBJJSGS(PageParam.GetRTrimString("JGBID"));
|
||
if (!bZSBJZC)
|
||
sCellStrBJ = "";
|
||
string sJJLM = "";
|
||
string sBJLM = "";
|
||
Dictionary<int, string> sCLJGCellIndexs = new Dictionary<int, string>();
|
||
List<int> CellIndexsList = new List<int>();
|
||
for (int k = 0; k < dicColumns.Count; k++)
|
||
{
|
||
if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("XLXSBJDMX_XSSX"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("XLXSBJDMX_JGBJJ"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
sJJLM = GetLMZF(k + 1);
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("XLXSBJDMX_JGBBJ"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
sBJLM = GetLMZF(k + 1);
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("TZYZ_JZ"))//因子值要设为数值型
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
string sYZNAME = dsResult.Tables[0].Columns[k].ColumnName;
|
||
sYZNAME = sYZNAME.Replace("TZYZ_", "");
|
||
sCellStrBJ = sCellStrBJ.Replace(sYZNAME, GetLMZF(k + 1) + "row");
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("CLZL"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_SL"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
sCellStr += "+" + GetLMZF(k + 1) + "row";
|
||
if (IsTCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sTCPList += GetLMZF(k + 1) + "1" + ",";
|
||
else if (IsLCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sLCPList += GetLMZF(k + 1) + "1" + ",";
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_WLJG"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
sCellStr += "*" + GetLMZF(k + 1) + "row";
|
||
if (IsTCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sTCPList += GetLMZF(k + 1) + "1" + ",";
|
||
else if (IsLCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sLCPList += GetLMZF(k + 1) + "1" + ",";
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_WLCB"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
if (IsTCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sTCPList += GetLMZF(k + 1) + "1" + ",";
|
||
else if (IsLCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sLCPList += GetLMZF(k + 1) + "1" + ",";
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_CLJG"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
sCellStr += "*" + GetLMZF(k + 1) + "row";
|
||
sCLJGCellIndexs.Add(k + 1, "1");
|
||
CellIndexsList.Add(k + 1);
|
||
if (IsTCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sTCPList += GetLMZF(k + 1) + "1" + ",";
|
||
else if (IsLCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sLCPList += GetLMZF(k + 1) + "1" + ",";
|
||
}
|
||
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_CLCB"))
|
||
{
|
||
sLet = TExcelData.ColIndexToReference(k);
|
||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||
if (IsTCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sTCPList += GetLMZF(k + 1) + "1" + ",";
|
||
else if (IsLCP(dsResult.Tables[0].Columns[k].ColumnName.Split('_')[0].Trim()))
|
||
sLCPList += GetLMZF(k + 1) + "1" + ",";
|
||
}
|
||
|
||
}
|
||
|
||
NpoiCellData cd = new NpoiCellData();
|
||
cd.CellFormula = new Dictionary<string, string>();
|
||
if (!sCellStr.Equals("") || !sCellStrBJ.Equals(""))
|
||
{
|
||
for (int k = 0; k < dsResult.Tables[0].Rows.Count; k++)
|
||
{
|
||
int tk = k + 2;
|
||
string sk = tk.ToString().Trim();
|
||
if (!sCellStr.Equals(""))
|
||
{
|
||
sCellStr = sCellStr.TrimStart('+');
|
||
string stCellStr = sCellStr.Replace("row", sk);
|
||
cd.CellFormula.Add(sJJLM + sk, stCellStr);
|
||
foreach (int cellIndex in CellIndexsList)
|
||
{
|
||
double dSL = CMISproConvert.StrToFloat(dsResult.Tables[0].Rows[k][cellIndex - 1].ToString(), 0);
|
||
if (dSL == 0)
|
||
continue;
|
||
if (sCLJGCellIndexs[cellIndex].Equals("1"))
|
||
{
|
||
sCLJGCellIndexs[cellIndex] = sk;
|
||
continue;
|
||
}
|
||
cd.CellFormula.Add(GetLMZF(cellIndex) + sk, GetLMZF(cellIndex) + sCLJGCellIndexs[cellIndex]);
|
||
}
|
||
}
|
||
if (!sCellStrBJ.Equals(""))
|
||
{
|
||
if (!sCellStr.Equals(""))
|
||
sCellStrBJ = sCellStrBJ.Replace("JGBJJ", "(" + sCellStr + ")");
|
||
else
|
||
sCellStrBJ = sCellStrBJ.Replace("JGBJJ", sJJLM + "row");
|
||
string stCellStrBJ = sCellStrBJ.Replace("row", sk);
|
||
cd.CellFormula.Add(sBJLM + sk, stCellStrBJ);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!sTCPList.Equals("") || !sLCPList.Equals(""))
|
||
{
|
||
cd.CellColor = new Dictionary<string, short>();
|
||
cd.CellFillPattern = new Dictionary<string, gtFillPattern>();
|
||
|
||
string []sTCPLists = sTCPList.TrimEnd(',').Split(',');
|
||
string[] sLCPLists = sLCPList.TrimEnd(',').Split(',');
|
||
foreach (string sLm in sTCPLists)
|
||
{
|
||
cd.CellColor.Add(sLm, tcpys);
|
||
cd.CellFillPattern.Add(sLm, gtFillPattern.SolidForeground);
|
||
}
|
||
|
||
foreach (string sLm in sLCPLists)
|
||
{
|
||
cd.CellColor.Add(sLm, lcpys);
|
||
cd.CellFillPattern.Add(sLm, gtFillPattern.SolidForeground);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, dsResult, true, cd, sd, ref smessage);
|
||
if (smessage.Equals(""))
|
||
{
|
||
System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath);
|
||
string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension;
|
||
string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';"
|
||
+ " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';"
|
||
+ "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);";
|
||
AJAXRunScript(this, "OPENJLDC", jsript);
|
||
}
|
||
else
|
||
{
|
||
ShowMessage(smessage);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowMessage("无记录可以导出!");
|
||
}
|
||
}
|
||
|
||
protected void btnHQDC_Click(object sender, EventArgs e)
|
||
{
|
||
BJDHQLJDCJGE();
|
||
}
|
||
|
||
#region JGE导出
|
||
|
||
private DataSet GetCLCBTable(string sBJDID)
|
||
{
|
||
|
||
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++)
|
||
{
|
||
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<string, string> GetCLMCDic()
|
||
{
|
||
Dictionary<string, string> dicCLHQ = new Dictionary<string, string>();
|
||
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<string, Dictionary<string, XLCLQDLEntity>> GetCLQDTable()
|
||
{
|
||
DataSet ds = GetCLCBTable(PageParam.GetRTrimString("BJDID"));
|
||
Dictionary<string, string> dicCLMC = GetCLMCDic();
|
||
Dictionary<string, Dictionary<string, XLCLQDLEntity>> dicCLQD = new Dictionary<string, Dictionary<string, XLCLQDLEntity>>();
|
||
int estimatedCapacity = ds.Tables[0].Rows.Count;
|
||
if (estimatedCapacity > 0)
|
||
{
|
||
dicCLQD = new Dictionary<string, Dictionary<string, XLCLQDLEntity>>(estimatedCapacity);
|
||
}
|
||
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[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<string, XLCLQDLEntity> XLCLQDList = new Dictionary<string, XLCLQDLEntity>(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<string, Dictionary<string, XLCLQDLEntity>> 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("材料价格(元/Kg)", typeof(double));
|
||
FinalTable.Columns.Add("材料用量", typeof(double));
|
||
FinalTable.Columns.Add("材料成本", typeof(double));
|
||
// 使用字典提高查找效率
|
||
Dictionary<string, DataRow> rowDictionary = new Dictionary<string, DataRow>();
|
||
foreach (string sKey in dicCLQD.Keys)
|
||
{
|
||
bool flag = false;
|
||
string[] keyParts = sKey.Split('|');
|
||
string sXLXHID = keyParts[0];
|
||
string sXLGGID = keyParts[1];
|
||
string sXLBZID = keyParts[2];
|
||
string sDYDJID = keyParts[3];
|
||
double dXSSX = CMISproConvert.StrToFloat(keyParts[4], 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["型号"] = 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<string, NpoiColumnStyle>();
|
||
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, NpoiColumnType>();
|
||
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 = tSession.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(this,"OPENJLDC", jsript);
|
||
}
|
||
else
|
||
{
|
||
ShowMessage(smessage);
|
||
}
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
private bool IsTCP(string sBJCLID)
|
||
{
|
||
if (string.IsNullOrEmpty(sBJCLID)) return false;
|
||
|
||
if (!_tcpCache.ContainsKey(sBJCLID))
|
||
{
|
||
bool result = CMISproDataBase.ExistsRecord("DBERP",
|
||
"select 1 from XLXSBJCL where XLXSBJCL_JTZ='Y' and XLXSBJCL_BJCLID='" + sBJCLID + "'");
|
||
lock (_tcpLcpLock)
|
||
{
|
||
if (!_tcpCache.ContainsKey(sBJCLID))
|
||
_tcpCache.Add(sBJCLID, result);
|
||
}
|
||
}
|
||
return _tcpCache[sBJCLID];
|
||
}
|
||
|
||
private bool IsLCP(string sBJCLID)
|
||
{
|
||
if (string.IsNullOrEmpty(sBJCLID)) return false;
|
||
|
||
if (!_lcpCache.ContainsKey(sBJCLID))
|
||
{
|
||
bool result = CMISproDataBase.ExistsRecord("DBERP",
|
||
"select 1 from XLXSBJCL where XLXSBJCL_JLZ='Y' and XLXSBJCL_BJCLID='" + sBJCLID + "'");
|
||
lock (_tcpLcpLock)
|
||
{
|
||
if (!_lcpCache.ContainsKey(sBJCLID))
|
||
_lcpCache.Add(sBJCLID, result);
|
||
}
|
||
}
|
||
return _lcpCache[sBJCLID];
|
||
}
|
||
|
||
/// <summary>
|
||
/// 一次性加载当前报价单实际使用到的报价材料(含带物料的材料)
|
||
/// 替代原 80 OR LIKE 子查询,避免数据库全表扫描
|
||
/// </summary>
|
||
private void LoadBJCLInfo(string sBJDID, TDatabase dberp)
|
||
{
|
||
if (dicBJCL.Count > 0) return;
|
||
|
||
TSQL SQL = new TSQL(dberp);
|
||
|
||
// 1. 取出当前报价单所有 CLID01~CLID80 的值,在内存中解析出 BJCLID
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.AppendLine("SELECT ");
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
if (i > 1) sb.AppendLine(",");
|
||
sb.Append("XLXSBJDCLCB_CLID").Append(i.ToString().PadLeft(2, '0'));
|
||
}
|
||
sb.AppendLine(" FROM XLXSBJDCLCB WHERE XLXSBJDCLCB_BJDID = :pBJDID");
|
||
SQL.Add(sb.ToString());
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
DataSet dsCLID = dberp.OpenDataSet(SQL);
|
||
|
||
Dictionary<string, string> dicBJCLID = new Dictionary<string, string>();
|
||
Dictionary<string, string> dicBJCLID_WL = new Dictionary<string, string>();
|
||
|
||
foreach (DataRow row in dsCLID.Tables[0].Rows)
|
||
{
|
||
for (int i = 1; i <= 80; i++)
|
||
{
|
||
string sCLID = row["XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0')].ToString().Trim();
|
||
if (string.IsNullOrEmpty(sCLID)) continue;
|
||
|
||
bool bHasWL = sCLID.Contains("|");
|
||
string sBJCLID = bHasWL ? sCLID.Split('|')[0] : sCLID;
|
||
if (string.IsNullOrEmpty(sBJCLID)) continue;
|
||
|
||
if (!dicBJCLID.ContainsKey(sBJCLID))
|
||
dicBJCLID.Add(sBJCLID, sBJCLID);
|
||
if (bHasWL && !dicBJCLID_WL.ContainsKey(sBJCLID))
|
||
dicBJCLID_WL.Add(sBJCLID, sBJCLID);
|
||
}
|
||
}
|
||
|
||
if (dicBJCLID.Count == 0) return;
|
||
|
||
// 2. 一次性查询 XLXSBJCL 获取材料名称(分批,避免参数过多)
|
||
List<string> listBJCLID = new List<string>(dicBJCLID.Keys);
|
||
int iBatchSize = 500;
|
||
for (int iBatch = 0; iBatch < listBJCLID.Count; iBatch += iBatchSize)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" SELECT XLXSBJCL_BJCLID, XLXSBJCL_BJCLMC ");
|
||
SQL.Add(" FROM XLXSBJCL ");
|
||
SQL.Add(" WHERE XLXSBJCL_BJCLID IN (");
|
||
|
||
int idx = 0;
|
||
int iEnd = Math.Min(iBatch + iBatchSize, listBJCLID.Count);
|
||
for (int i = iBatch; i < iEnd; i++)
|
||
{
|
||
if (idx > 0) SQL.Add(",");
|
||
string sParam = "pID" + idx.ToString();
|
||
SQL.Add(":"+sParam);
|
||
SQL.ParamByName(sParam).Value = listBJCLID[i];
|
||
idx++;
|
||
}
|
||
SQL.Add(") ");
|
||
SQL.Add(" ORDER BY XLXSBJCL_BJCLID ");
|
||
DataSet dsBJCL = dberp.OpenDataSet(SQL);
|
||
|
||
foreach (DataRow row in dsBJCL.Tables[0].Rows)
|
||
{
|
||
string sBJCLID_Raw = row["XLXSBJCL_BJCLID"].ToString().Trim();
|
||
string sBJCLID = sBJCLID_Raw
|
||
.Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
|
||
string sBJCLMC = row["XLXSBJCL_BJCLMC"].ToString().Trim();
|
||
if (!dicBJCL.ContainsKey(sBJCLID))
|
||
{
|
||
dicBJCL.Add(sBJCLID, sBJCLMC);
|
||
if (dicBJCLID_WL.ContainsKey(sBJCLID_Raw) && !dicBJCL_WL.ContainsKey(sBJCLID))
|
||
dicBJCL_WL.Add(sBJCLID, sBJCLMC);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
public static string GetLMZF(int i)
|
||
{
|
||
string sLMZF = "";
|
||
Dictionary<int, string> sZF = new Dictionary<int, string>();
|
||
sZF.Add(1, "A"); sZF.Add(2, "B"); sZF.Add(3, "C"); sZF.Add(4, "D"); sZF.Add(5, "E"); sZF.Add(6, "F"); sZF.Add(7, "G");
|
||
sZF.Add(8, "H"); sZF.Add(9, "I"); sZF.Add(10, "J"); sZF.Add(11, "K"); sZF.Add(12, "L"); sZF.Add(13, "M"); sZF.Add(14, "N");
|
||
sZF.Add(15, "O"); sZF.Add(16, "P"); sZF.Add(17, "Q"); sZF.Add(18, "R"); sZF.Add(19, "S"); sZF.Add(20, "T"); sZF.Add(21, "U");
|
||
sZF.Add(22, "V"); sZF.Add(23, "W"); sZF.Add(24, "X"); sZF.Add(25, "Y"); sZF.Add(26, "Z"); sZF.Add(0, ""); sZF.Add(-1, "");
|
||
int j = i / 26;
|
||
int k = i % 26;
|
||
if (k == 0)
|
||
sLMZF = sZF[j - 1] + "Z";
|
||
else
|
||
sLMZF = sZF[j] + sZF[k];
|
||
return sLMZF;
|
||
}
|
||
|
||
public static string GetBJJSGS(string sJGBID)
|
||
{
|
||
string sJSGS = "";
|
||
if (!XLBJDUtils.IsJGEJGB(sJGBID))
|
||
return sJSGS;
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSJGB_JSGS from XLXSJGB where XLXSJGB_JGBID=:pJGBID ");
|
||
SQL.ParamByName("pJGBID").Value = sJGBID;
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
sJSGS = ds.Tables[0].Rows[0]["XLXSJGB_JSGS"].ToString().Trim();
|
||
}
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
DataSet dsJGBYZ = new DataSet();
|
||
XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ);
|
||
Dictionary<string, string> DicTJYZ = new Dictionary<string, string>();
|
||
Dictionary<string, string> DicJJFS = new Dictionary<string, string>();
|
||
string sFistJJFS = "";
|
||
foreach (DataRow trow in dsJGBYZ.Tables[0].Rows)
|
||
{
|
||
string sTJYZ = trow["XLXSTZYZ_TJYZID"].ToString().Trim();
|
||
string sYZID = trow["XLXSJGBYZ_YZID"].ToString().Trim();
|
||
string sJJFS = trow["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
if (sJJFS.Equals("SX"))
|
||
return sJSGS;
|
||
if (sFistJJFS.Equals(""))
|
||
sFistJJFS = sJJFS;
|
||
if (!DicJJFS.ContainsKey(sTJYZ))
|
||
DicJJFS.Add(sTJYZ, sJJFS);
|
||
if (DicTJYZ.ContainsKey(sTJYZ))
|
||
{
|
||
string sTJYZGS = DicTJYZ[sTJYZ] + "+" + sYZID;
|
||
DicTJYZ[sTJYZ] = sTJYZGS;
|
||
}
|
||
else
|
||
DicTJYZ.Add(sTJYZ, sYZID);
|
||
}
|
||
string sJDGS = "";
|
||
string sJJGS = "";
|
||
string sKDGS = "";
|
||
foreach (string sKey in DicTJYZ.Keys)
|
||
{
|
||
if (DicJJFS[sKey].Equals("JD"))
|
||
{
|
||
sJDGS += "*(1+(" + DicTJYZ[sKey] + ")/100.00)";
|
||
}
|
||
else if (DicJJFS[sKey].Equals("JJ"))
|
||
{
|
||
sJJGS += "+" + DicTJYZ[sKey];
|
||
}
|
||
else if (DicJJFS[sKey].Equals("KD"))
|
||
{
|
||
sKDGS += "/(1-(" + DicTJYZ[sKey] + ")/100.00)";
|
||
}
|
||
}
|
||
sJSGS = "JGBJJ";
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
if (!sJJGS.Equals(""))
|
||
{
|
||
sJSGS += sJJGS;
|
||
sJSGS = "(" + sJSGS + ")";
|
||
}
|
||
if (!sJJGS.Equals(""))
|
||
sJSGS += sJJGS;
|
||
if (!sJDGS.Equals(""))
|
||
sJSGS += sJDGS;
|
||
if (!sKDGS.Equals(""))
|
||
sJSGS += sKDGS;
|
||
}
|
||
else
|
||
{
|
||
if (!sJDGS.Equals(""))
|
||
sJSGS += sJDGS;
|
||
if (!sKDGS.Equals(""))
|
||
sJSGS += sKDGS;
|
||
if (!sJJGS.Equals(""))
|
||
sJSGS += sJJGS;
|
||
}
|
||
}
|
||
return sJSGS;
|
||
}
|
||
|
||
public static void CalcUpdateJGBBJ(TDatabase dberp, TSQL SQL, DataSet dsJGBYZ, int VnewID, string sBJDID,string sBJFLID, string sMXBH, string sJGBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, string sJGBIDS)
|
||
{
|
||
|
||
string sJSGS = XLBJDUtils.GetJGBJSGS(sJGBID);
|
||
string sTJYSList_ = "";//记录调价因素为空的因子id
|
||
string sTJYSList1 = "";//记录调价因素为'1'的因子id
|
||
string sTJYSList3 = "";//记录调价因素为'3'的因子id
|
||
string sTJYSList4 = "";//记录调价因素为'4'的因子id
|
||
string sTJYSList5 = "";//记录调价因素为'5'的因子id
|
||
string sTJYSList8 = "";//记录调价因素为'8'的因子id
|
||
for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals(""))
|
||
{
|
||
sTJYSList_ += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("1"))
|
||
{
|
||
sTJYSList1 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("3"))
|
||
{
|
||
sTJYSList3 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("4"))
|
||
{
|
||
sTJYSList4 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("5"))
|
||
{
|
||
sTJYSList5 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("8"))
|
||
{
|
||
sTJYSList8 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ",";
|
||
}
|
||
}
|
||
sTJYSList_ = sTJYSList_.TrimEnd(',');
|
||
sTJYSList1 = sTJYSList1.TrimEnd(',');
|
||
sTJYSList3 = sTJYSList3.TrimEnd(',');
|
||
sTJYSList4 = sTJYSList4.TrimEnd(',');
|
||
sTJYSList5 = sTJYSList5.TrimEnd(',');
|
||
sTJYSList8 = sTJYSList8.TrimEnd(',');
|
||
string sJDSQL = "1";
|
||
string sKDSQL = "1";
|
||
string sJJSQL = "0";
|
||
string sSXSQL = "1";
|
||
string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim();
|
||
string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim()))
|
||
{
|
||
if (sJJFS.Equals("JD"))
|
||
sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)";
|
||
else if (sJJFS.Equals("KD"))
|
||
sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)";
|
||
else if (sJJFS.Equals("JJ"))
|
||
sJJSQL += "+JJYZZ_" + sTJYZID;
|
||
else if (sJJFS.Equals("SX"))
|
||
sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)";
|
||
|
||
sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim();
|
||
sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
}
|
||
}
|
||
if (sJJFS.Equals("JD"))
|
||
sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)";
|
||
else if (sJJFS.Equals("KD"))
|
||
sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)";
|
||
else if (sJJFS.Equals("JJ"))
|
||
sJJSQL += "+JJYZZ_" + sTJYZID;
|
||
else if (sJJFS.Equals("SX"))
|
||
sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)";
|
||
|
||
SQL.Clear();
|
||
SQL.Add(" merge into V_XSBJJSJGB tar ");
|
||
SQL.Add(" using ( ");
|
||
string sYZZFields_3 = "";
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
sYZZFields_3 += "XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + (i < 20 ? "," : "");
|
||
}
|
||
SQL.Add("select BJDID,BJDXH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ," + sYZZFields_3 + " ");
|
||
SQL.Add(" from ");
|
||
SQL.Add("(");
|
||
string sYZZFields_4 = "";
|
||
for (int i = 1; i <= 20; i++)
|
||
{
|
||
sYZZFields_4 += "XLXSBJDJJYZ_YZZ" + i.ToString().PadLeft(2, '0') + (i < 20 ? "," : "");
|
||
}
|
||
SQL.Add(" select XLXSBJDJJYZ_BJDID as BJDID,XLXSBJDJJYZ_XH as BJDXH," + sYZZFields_4 + ",");
|
||
SQL.Add(" (");
|
||
SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
|
||
|
||
sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim();
|
||
sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim()))
|
||
{
|
||
SQL.Add(string.Format("+XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
|
||
}
|
||
else
|
||
{
|
||
if (sJJFS.Equals("JD"))
|
||
SQL.Add(") as " + "JDYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("KD"))
|
||
SQL.Add(") as " + "KDYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("JJ"))
|
||
SQL.Add(") as " + "JJYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("SX"))
|
||
SQL.Add(") as " + "SXYZZ_" + sTJYZID);
|
||
|
||
sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim();
|
||
sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim();
|
||
SQL.Add(",(");
|
||
SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", "")));
|
||
}
|
||
}
|
||
if (sJJFS.Equals("JD"))
|
||
SQL.Add(") as " + "JDYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("KD"))
|
||
SQL.Add(") as " + "KDYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("JJ"))
|
||
SQL.Add(") as " + "JJYZZ_" + sTJYZID);
|
||
else if (sJJFS.Equals("SX"))
|
||
SQL.Add(") as " + "SXYZZ_" + sTJYZID);
|
||
|
||
SQL.Add(" from XLXSBJDJJYZ");
|
||
SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID ");
|
||
SQL.Add(" ) a");
|
||
SQL.Add(" ) sor ");
|
||
SQL.Add(" on( ");
|
||
SQL.Add(" V_XSBJJSJGB_ID=:pID ");
|
||
SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID ");
|
||
SQL.Add(" and V_XSBJJSJGB_BJDID=sor.BJDID ");
|
||
SQL.Add(" and V_XSBJJSJGB_BJDXH=BJDXH ");
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" when matched then update set ");
|
||
if (sMXBH == "JGB")
|
||
{
|
||
if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end)*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end)*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end),{0})/10)*10", iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end),{0})/10)*10", iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add("V_XSBJJSJGB_JGBBJ=(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end))");
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add("V_XSBJJSJGB_JGBBJ=(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))," + iXSWS + ")*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end))");
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), Math.Pow(10.0, iXSWS)));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS.ToString().Trim()));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (sJSGS.Equals(""))
|
||
{
|
||
//此处根据序号区分先加价还是先加点/扣点
|
||
if (XLBJDUtils.JJFirst_JGBYZ(sJGBID))
|
||
{
|
||
//先加价
|
||
SQL.Add("V_XSBJJSJGB_JGBBJ=RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")");
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
else
|
||
{
|
||
//先加点
|
||
SQL.Add("V_XSBJJSJGB_JGBBJ=RoundFix(abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")");
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS));
|
||
SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) ");
|
||
}
|
||
}
|
||
}
|
||
|
||
SQL.ParamByName("pID").Value = VnewID;
|
||
SQL.ParamByName("pBJDID").Value = sBJDID;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
|
||
#region GridView增加列
|
||
|
||
/// <summary>
|
||
/// 设置etCheckBox列的属性
|
||
/// </summary>
|
||
/// <param name="sDataField"></param>
|
||
/// <param name="HeadText"></param>
|
||
/// <param name="Width"></param>
|
||
/// <param name="CheckBox"></param>
|
||
private void AddColumn(string sDataField, string HeadText, int Width, TEditType CheckBox)
|
||
{
|
||
BoundField Column = new BoundField();
|
||
Column.DataField = sDataField;
|
||
Column.HeaderText = HeadText;
|
||
Column.ItemStyle.Width = (Unit)Width;
|
||
Column.HeaderStyle.Width = (Unit)Width;
|
||
grdXLBJDMX.Columns.Add(Column);
|
||
|
||
gtGridView_Column ColumnEx = new gtGridView_Column();
|
||
ColumnEx.DataField = sDataField;
|
||
ColumnEx.EditType = TEditType.etCheckBox;
|
||
grdXLBJDMX.ColumnsEx.Insert(0, ColumnEx);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置etString列的属性
|
||
/// </summary>
|
||
/// <param name="sDataField"></param>
|
||
/// <param name="HeadText"></param>
|
||
/// <param name="Width"></param>
|
||
private void AddColumn(string sDataField, string HeadText, int Width)
|
||
{
|
||
BoundField Column = new BoundField();
|
||
Column.DataField = sDataField;
|
||
Column.HeaderText = HeadText;
|
||
Column.ItemStyle.Width = (Unit)Width;
|
||
Column.HeaderStyle.Width = (Unit)Width;
|
||
grdXLBJDMX.Columns.Add(Column);
|
||
|
||
gtGridView_Column ColumnEx = new gtGridView_Column();
|
||
ColumnEx.DataField = sDataField;
|
||
ColumnEx.EditType = TEditType.etString;
|
||
ColumnEx.ShowHint = true;
|
||
grdXLBJDMX.ColumnsEx.Insert(0, ColumnEx);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置etString列的属性
|
||
/// </summary>
|
||
/// <param name="sDataField"></param>
|
||
/// <param name="HeadText"></param>
|
||
/// <param name="Width"></param>
|
||
/// <param name="Align"></param>
|
||
private void AddColumn(string sDataField, string HeadText, int Width, HorizontalAlign Align)
|
||
{
|
||
BoundField Column = new BoundField();
|
||
Column.DataField = sDataField;
|
||
Column.HeaderText = HeadText;
|
||
Column.ItemStyle.Width = (Unit)Width;
|
||
Column.ItemStyle.HorizontalAlign = Align;
|
||
Column.HeaderStyle.Width = (Unit)Width;
|
||
grdXLBJDMX.Columns.Add(Column);
|
||
|
||
gtGridView_Column ColumnEx = new gtGridView_Column();
|
||
ColumnEx.DataField = sDataField;
|
||
ColumnEx.EditType = TEditType.etString;
|
||
ColumnEx.ShowHint = true;
|
||
grdXLBJDMX.ColumnsEx.Insert(0, ColumnEx);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置etNumber列的属
|
||
/// </summary>
|
||
/// <param name="sDataField"></param>
|
||
/// <param name="HeadText"></param>
|
||
/// <param name="NumberDecimalPlace"></param>
|
||
/// <param name="Width"></param>
|
||
private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width)
|
||
{
|
||
BoundField Column = new BoundField();
|
||
Column.DataField = sDataField;
|
||
Column.HeaderText = HeadText;
|
||
Column.ItemStyle.Width = (Unit)Width;
|
||
Column.HeaderStyle.Width = (Unit)Width;
|
||
Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
|
||
grdXLBJDMX.Columns.Add(Column);
|
||
|
||
gtGridView_Column ColumnEx = new gtGridView_Column();
|
||
ColumnEx.DataField = sDataField;
|
||
ColumnEx.EditType = TEditType.etNumber;
|
||
ColumnEx.ShowHint = true;
|
||
ColumnEx.NumberDecimalPlace = NumberDecimalPlace;
|
||
grdXLBJDMX.ColumnsEx.Insert(0, ColumnEx);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置etDateTime列的属性
|
||
/// </summary>
|
||
/// <param name="sDataField"></param>
|
||
/// <param name="HeadText"></param>
|
||
/// <param name="DateTimeKind"></param>
|
||
/// <param name="Width"></param>
|
||
private void AddColumn(string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind)
|
||
{
|
||
BoundField Column = new BoundField();
|
||
Column.DataField = sDataField;
|
||
Column.HeaderText = HeadText;
|
||
Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72);
|
||
Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72);
|
||
grdXLBJDMX.Columns.Add(Column);
|
||
|
||
gtGridView_Column ColumnEx = new gtGridView_Column();
|
||
ColumnEx.DataField = sDataField;
|
||
ColumnEx.EditType = TEditType.etDateTime;
|
||
ColumnEx.DateTimeEditKins = DateTimeKind;
|
||
grdXLBJDMX.ColumnsEx.Insert(0, ColumnEx);
|
||
}
|
||
|
||
#endregion
|
||
|
||
}
|
||
}
|