Files
N_XLXSBJ----MX/XLJGB_BJZSDCList.aspx.cs
2026-08-21 17:03:02 +08:00

1571 lines
81 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 XLJGB_BJZSDCList : SingleGridBase
{
XLJGB_BJZSDC entity = new XLJGB_BJZSDC();
XLJGB_BJZSDC_M queryentity = new XLJGB_BJZSDC_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> dicCZBLMCL = new Dictionary<string, string>();
//材料物料
Dictionary<string, string> dicCLWL = new Dictionary<string, string>();
Dictionary<string, double> dicCLHQ = new Dictionary<string, double>();
Dictionary<string, double> dicWLHQ = new Dictionary<string, double>();
#region Page_Load
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860001;
this.UMName = "表价追溯导出";
this.CurMaster = Master;
this.ModuleGV = grdXLJGBMX;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.PageHeight = 600;
this.PageWidth = 1000;
this.sQueryURLTarget = "XLJGB_BJZSDCQuery.aspx";
base.DataKeyNames = new string[] { "XLXSJGBMX_XLXHID", "XLXSJGBMX_XLGGID", "XLXSJGBMX_XLBZID", "XLXSJGBMX_DYDJID", "XLXSJGBMX_XH" };
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("ZSBJZC").Value = "True";
CurQueryEntity.FieldByName("HSBZ").Value = "True";
CurQueryEntity.FieldByName("XSCLCB").Value = "True";
CurQueryEntity.FieldByName("ZSJJZC").Value = "True";
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#endregion
#region 模板继承事件
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = "select top 1 XLXSJGBMX_JGBID from XLXSJGBMX where 1<>1";
base.Master_OnStandardQuery(sender, e);
DataSet ds = GetSQLDataSet();
entity.GridDataBind(grdXLJGBMX, tSession);
entity.GridDataBind(grdXLJGBMX, ds.Tables[0], ds.Tables[0].Rows.Count);
grdXLJGBMX.DataSource = ds;
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = "select top 1 XLXSJGBMX_JGBID from XLXSJGBMX where 1<>1";
grdXLJGBMX.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
DataSet ds = GetSQLDataSet();
entity.GridDataBind(grdXLJGBMX, tSession);
entity.GridDataBind(grdXLJGBMX, ds.Tables[0], ds.Tables[0].Rows.Count);
grdXLJGBMX.DataSource = ds;
}
protected override void ReportRecordSetAdd()
{
DataSet ds = GetSQLDataSet();
AddUserReportDataSet("CX_XLXSJGBMX_BJZS", ds);
base.ReportRecordSetAdd();
}
protected override void ReportDataSetAdd()
{
DataSet ds = GetSQLDataSet();
for (int i = 0; i < grdXLJGBMX.Columns.Count; i++)
{
string sDataField = ((System.Web.UI.WebControls.BoundField)(grdXLJGBMX.Columns[i])).DataField.ToString().Trim();
string sHeaderText = grdXLJGBMX.Columns[i].HeaderText;
AddUserReportField("CX_XLXSJGBMX_BJZS", sDataField, sHeaderText, "S");
}
base.ReportDataSetAdd();
}
#endregion
#region 自定义事件
private DataSet GetSQLDataSet()
{
Mac.MacLog.TraceFormat(String.Format("GetSQLDataSet-Begin"));
bool bXSCLCB = false;
if (CurQueryEntity.FieldByName("XSCLCB").Value == "True")
{
bXSCLCB = true;
}
while (grdXLJGBMX.Columns.Count > 5)
{
grdXLJGBMX.Columns.RemoveAt(grdXLJGBMX.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 XLXSJGBMX_JGBID,XLXSJGBMX_XH, XLXSJGBMX_XLXHID, XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID, rtrim(XLXSJGBMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ,XLXSJGBMX_DYDJID,");
dt1.Columns.Add("XLXSJGBMX_JGBID", typeof(string));
dt1.Columns.Add("XLXSJGBMX_XH", typeof(double));
dt1.Columns.Add("XLXSJGBMX_XLXHID", typeof(string));
dt1.Columns.Add("XLXSJGBMX_XLGGID", typeof(string));
dt1.Columns.Add("XLXSJGBMX_XLBZID", typeof(string));
dt1.Columns.Add("XLBZ", typeof(string));
dt1.Columns.Add("XLXSJGBMX_DYDJID", typeof(string));
dt1.Columns.Add("XLXSJGBMX_JJ", typeof(double));
bool bHSBZ = CurQueryEntity.FieldByName("HSBZ").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bHSBZ)
{
strSQL.AppendLine(" XLXSJGBMX_HSJJ as XLXSJGBMX_JJ");
AddColumn("XLXSJGBMX_JJ", "含税基价", CMISproConvert.StrToInt(GetOption("BJU002"), 5), 80);
}
else
{
strSQL.AppendLine(" XLXSJGBMX_WSJJ as XLXSJGBMX_JJ");
AddColumn("XLXSJGBMX_JJ", "无税基价", CMISproConvert.StrToInt(GetOption("BJU002"), 5), 80);
}
bool bZSBJZC = CurQueryEntity.FieldByName("ZSBJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bZSBJZC)
{
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ01 as TZYZ_JZ01 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ02 as TZYZ_JZ02 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ03 as TZYZ_JZ03 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ04 as TZYZ_JZ04 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ05 as TZYZ_JZ05 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ06 as TZYZ_JZ06 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ07 as TZYZ_JZ07 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ08 as TZYZ_JZ08 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ09 as TZYZ_JZ09 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ10 as TZYZ_JZ10 ");
dt1.Columns.Add("TZYZ_JZ01", typeof(double));
dt1.Columns.Add("TZYZ_JZ02", typeof(double));
dt1.Columns.Add("TZYZ_JZ03", typeof(double));
dt1.Columns.Add("TZYZ_JZ04", typeof(double));
dt1.Columns.Add("TZYZ_JZ05", typeof(double));
dt1.Columns.Add("TZYZ_JZ06", typeof(double));
dt1.Columns.Add("TZYZ_JZ07", typeof(double));
dt1.Columns.Add("TZYZ_JZ08", typeof(double));
dt1.Columns.Add("TZYZ_JZ09", typeof(double));
dt1.Columns.Add("TZYZ_JZ10", 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);
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("BJU002"), 2);
AddColumn(sYZID, sYZMC, iDecimal, 80);
}
}
dt1.Columns.Add("XLXSJGBMX_BJ", typeof(double));
if (bHSBZ)
{
strSQL.AppendLine(" ,XLXSJGBMX_HSBJ as XLXSJGBMX_BJ ");
AddColumn("XLXSJGBMX_BJ", "含税表价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
}
else
{
strSQL.AppendLine(" ,XLXSJGBMX_WSBJ as XLXSJGBMX_BJ ");
AddColumn("XLXSJGBMX_BJ", "无税表价", CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 5), 80);
}
bool bZSJJZC = CurQueryEntity.FieldByName("ZSJJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bZSJJZC)
{
strSQL.AppendLine(" ,'" + GetOption("BJU003") + "' as JLDW ");
dt1.Columns.Add("JLDW", typeof(string));
AddColumn("JLDW", "计量单位", 80);
strSQL.AppendLine(" ,XLXSCLQD_CLZL,XLXSCLQD_JGCZBID ");
dt1.Columns.Add("XLXSCLQD_CLZL", typeof(double));
AddColumn("XLXSCLQD_CLZL", "材料重量", 3, 80);
int iDecimal = CMISproConvert.StrToInt(GetOption("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);
}
}
}
dicCLHQ.Clear();
SQL.Clear();
SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
DataSet dsCLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow clhqRow in dsCLHQ.Tables[0].Rows)
{
string sBJCLID = clhqRow["XLXSCLHQ_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(clhqRow["XLXSCLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(clhqRow["XLXSCLHQ_WSJG"].ToString().Trim());
if (!dicCLHQ.ContainsKey(sBJCLID))
{
if (bHSBZ)
dicCLHQ.Add(sBJCLID, dHSJG);
else
dicCLHQ.Add(sBJCLID, dWSJG);
}
}
dicWLHQ.Clear();
if (XLJGB_CLJGTZList.NeedJGBJJFP())
{
SQL.Clear();
SQL.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG from XLXSWLHQ where XLXSWLHQ_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
DataSet dsWLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow wlhqRow in dsWLHQ.Tables[0].Rows)
{
string sWLID = wlhqRow["XLXSWLHQ_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_WSJG"].ToString().Trim());
if (!dicWLHQ.ContainsKey(sWLID))
{
if (bHSBZ)
dicWLHQ.Add(sWLID, dHSJG);
else
dicWLHQ.Add(sWLID, dWSJG);
}
}
}
if (dicWLHQ.Count <= 0)
{
SQL.Clear();
SQL.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG from XLXSWLHQ where 1=1 ");
SQL.Add(" and XLXSWLHQ_JGBID=' '");
SQL.Add(" and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)");
SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
DataSet dsWLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow wlhqRow in dsWLHQ.Tables[0].Rows)
{
string sWLID = wlhqRow["XLXSWLHQ_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_WSJG"].ToString().Trim());
if (!dicWLHQ.ContainsKey(sWLID))
{
if (bHSBZ)
dicWLHQ.Add(sWLID, dHSJG);
else
dicWLHQ.Add(sWLID, dWSJG);
}
}
}
Mac.MacLog.TraceFormat(String.Format("if (dicBJCL_WL.Count <= 0)"));
//构建包含物料的报价材料字典
if (dicBJCL_WL.Count <= 0)
{
Mac.MacLog.TraceFormat(String.Format("dicBJCL_WL-begin"));
SQL.Clear();
SQL.Add(" select XLXSCLQD_JGCZBID,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID, isnull(XLXSBJCL_BJHQ,'1') as BJHQ,XLXSBJCL_BJCLMC, ");
SQL.Add(" case when isnull(XLXSBJCL_BJHQ,'1')='1' then isnull(XLJGCZBLM_BJCLID,' ') ");
for (int i = 1; i <= 80; i++)
{
SQL.Add(string.Format(" when isnull(XLXSBJCL_BJHQ,'1')='2' and isnull(XLJGCZBLM_CLQDL,' ')='第{0}列' then isnull(XLXSCLQDWL_WLID{0},' ') ", i.ToString().PadLeft(2, '0').Trim()));
}
SQL.Add(" else ' ' end as CLID ");
SQL.Add(" from XLXSJGBMX ");
SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') ");
SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH ");
SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ");
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID ");
SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID ");
SQL.Add(" order by XLXSJGBMX_XH ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID").Trim();
DataSet dsBJCL_WL = dberp.OpenDataSet(SQL);
Mac.MacLog.TraceFormat(String.Format("dsBJCL_WL.Tables[0].Rows:" + dsBJCL_WL.Tables[0].Rows.Count.ToString().Trim()));
foreach (DataRow bjclRow in dsBJCL_WL.Tables[0].Rows)
{
string sJGCZBID = bjclRow["XLXSCLQD_JGCZBID"].ToString().Trim();
string sCLQDL = bjclRow["XLJGCZBLM_CLQDL"].ToString().Trim();
sCLQDL = sCLQDL.Replace("第", "").Replace("列", "");
string sKey = sJGCZBID + "|" + sCLQDL;
string sCLID = bjclRow["CLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
string sBJHQ = bjclRow["BJHQ"].ToString().Trim();
string sBJCLID = bjclRow["XLJGCZBLM_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
string sBJCLMC = bjclRow["XLXSBJCL_BJCLMC"].ToString().Trim();
if (!sBJCLID.Equals(""))
{
if (!dicBJCL.ContainsKey(sBJCLID))
{
dicBJCL.Add(sBJCLID, sBJCLMC);
}
if (sBJHQ.Equals("2"))
{
sCLID = sBJCLID + "|" + sCLID;
if (!dicBJCL_WL.ContainsKey(sBJCLID))
{
dicBJCL_WL.Add(sBJCLID, sCLID);
}
}
if (!dicCZBLMCL.ContainsKey(sKey))
{
dicCZBLMCL.Add(sKey, sCLID);
}
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_WL-end"));
}
Mac.MacLog.TraceFormat(String.Format("dicCZBLMCL.Count:" + dicCZBLMCL.Count.ToString().Trim()));
//报价材料是否显示
dicBJCL_Visible.Clear();
//构建报价材料字典和查询列
Mac.MacLog.TraceFormat(String.Format(" if (dicBJCL.Count :" + dicBJCL.Keys.Count.ToString().Trim()));
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);
}
}
}
for (int i = 1; i <= 80; i++)
{
strSQL.AppendLine(string.Format(" ,XLXSCLQD_SL{0} * (1+XLXSCLQD_SHL{0}/100) * XLXSCLQD_CLJGBL{0} as SL{0} ", i.ToString().PadLeft(2, '0').Trim()));
}
}
Mac.MacLog.TraceFormat(String.Format(" if (dicBJCL.Count > 0)-end"));
//栏目超限省略符号
strSQL.AppendLine(" ,'...' as LMCXSLF ");
dt1.Columns.Add("LMCXSLF", typeof(string));
strSQL.AppendLine(" from XLXSJGBMX ");
strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID ");
if (bZSBJZC)
{
strSQL.AppendLine(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH ");
}
if (bZSJJZC)
{
strSQL.AppendLine(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') ");
}
strSQL.AppendLine(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_SYXH = 0 ");
strSQL.AppendLine(" order by XLXSJGBMX_XH ");
SQL.Clear();
SQL.Add(strSQL.ToString().Trim());
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID").Trim();
Mac.MacLog.TraceFormat(String.Format("dberp.OpenDataSet(SQL)"));
DataSet dsQry = dberp.OpenDataSet(SQL);
Mac.MacLog.TraceFormat(String.Format("dsQry.Tables[0].Rows.Count" + dsQry.Tables[0].Rows.Count.ToString().Trim()));
int icount = 0;
if (dsQry.Tables[0].Rows.Count > 0)
{
foreach (DataRow towQry in dsQry.Tables[0].Rows)
{
DataRow dtrow = dt1.NewRow();
dtrow["XLXSJGBMX_JGBID"] = towQry["XLXSJGBMX_JGBID"].ToString().Trim();
dtrow["XLXSJGBMX_XH"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_XH"].ToString().Trim());
dtrow["XLXSJGBMX_XLXHID"] = towQry["XLXSJGBMX_XLXHID"].ToString().Trim();
dtrow["XLXSJGBMX_XLGGID"] = towQry["XLXSJGBMX_XLGGID"].ToString().Trim();
dtrow["XLXSJGBMX_XLBZID"] = towQry["XLXSJGBMX_XLBZID"].ToString().Trim();
dtrow["XLBZ"] = towQry["XLBZ"].ToString().Trim();
dtrow["XLXSJGBMX_DYDJID"] = towQry["XLXSJGBMX_DYDJID"].ToString().Trim();
dtrow["XLXSJGBMX_JJ"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_JJ"].ToString().Trim());
dtrow["LMCXSLF"] = towQry["LMCXSLF"].ToString().Trim();
if (bZSBJZC)
{
dtrow["TZYZ_JZ01"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ01"].ToString().Trim());
dtrow["TZYZ_JZ02"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ02"].ToString().Trim());
dtrow["TZYZ_JZ03"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ03"].ToString().Trim());
dtrow["TZYZ_JZ04"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ04"].ToString().Trim());
dtrow["TZYZ_JZ05"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ05"].ToString().Trim());
dtrow["TZYZ_JZ06"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ06"].ToString().Trim());
dtrow["TZYZ_JZ07"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ07"].ToString().Trim());
dtrow["TZYZ_JZ08"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ08"].ToString().Trim());
dtrow["TZYZ_JZ09"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ09"].ToString().Trim());
dtrow["TZYZ_JZ10"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ10"].ToString().Trim());
}
dtrow["XLXSJGBMX_BJ"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_BJ"].ToString().Trim());
if (bZSJJZC)
{
dtrow["JLDW"] = towQry["JLDW"].ToString().Trim();
dtrow["XLXSCLQD_CLZL"] = CMISproConvert.StrToFloat(towQry["XLXSCLQD_CLZL"].ToString().Trim());
string sJGCZBID = towQry["XLXSCLQD_JGCZBID"].ToString().Trim();
for (int i = 1; i <= 80; i++)
{
icount++;
string sLMH = i.ToString().PadLeft(2, '0').Trim();
string sKey = sJGCZBID + "|" + sLMH;
if (dicCZBLMCL.ContainsKey(sKey))
{
string sCLID = dicCZBLMCL[sKey];
double dYL = CMISproConvert.StrToFloat(towQry["SL" + sLMH].ToString().Trim());
if (sCLID.Contains("|"))
{
string sWLID = sCLID.Split('|')[1];
if (DicJGYWLID.ContainsKey(sWLID))
sWLID = DicJGYWLID[sWLID];
sCLID = sCLID.Split('|')[0];
if (dicBJCL.ContainsKey(sCLID))
{
double dJG = 0;
if (dicWLHQ.ContainsKey(sWLID))
dJG = dicWLHQ[sWLID];
if (dYL != 0)
dicBJCL_Visible[sCLID] = "Y";
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dYL;//相同栏目的用量要合并
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 * dYL;
}
}
else
{
if (dicBJCL.ContainsKey(sCLID))
{
double dJG = 0;
if (dicCLHQ.ContainsKey(sCLID))
dJG = dicCLHQ[sCLID];
if (dYL != 0)
dicBJCL_Visible[sCLID] = "Y";
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dYL;//相同栏目的用量要合并
dtrow[sCLID + "_CLJG"] = dJG;
dtrow[sCLID + "_CLCB"] = dJG * CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0);
}
}
}
}
}
dt1.Rows.Add(dtrow);
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_Visible-begin:" + icount.ToString().Trim()));
foreach (string sBJCLID in dicBJCL_Visible.Keys)
{
if (dicBJCL_Visible[sBJCLID].Equals("N"))//不显示的栏目需要删除,否则记录导出时会因为最大栏目数256的限制导致栏目导出不全
{
grdXLJGBMX.Columns.Remove(grdXLJGBMX.FindColumnByFieldName(sBJCLID + "_SL"));
if (dt1.Columns.Contains(sBJCLID + "_SL"))
dt1.Columns.Remove(sBJCLID + "_SL");
if (dicBJCL_WL.ContainsKey(sBJCLID))
{
grdXLJGBMX.Columns.Remove(grdXLJGBMX.FindColumnByFieldName(sBJCLID + "_WLXX"));
grdXLJGBMX.Columns.Remove(grdXLJGBMX.FindColumnByFieldName(sBJCLID + "_WLJG"));
grdXLJGBMX.Columns.Remove(grdXLJGBMX.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
{
grdXLJGBMX.Columns.Remove(grdXLJGBMX.FindColumnByFieldName(sBJCLID + "_CLJG"));
grdXLJGBMX.Columns.Remove(grdXLJGBMX.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");
}
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_Visible-end"));
if (grdXLJGBMX.Columns.Count > 450)
{
for (int i = grdXLJGBMX.Columns.Count - 1; i >= 449; i--)
{
grdXLJGBMX.Columns.Remove(grdXLJGBMX.Columns[i]);
}
AddColumn("LMCXSLF", "...", 60, HorizontalAlign.Center);
}
DataSet dsResult = new DataSet();
dsResult.Tables.Add(dt1);
Mac.MacLog.TraceFormat(String.Format("GetSQLDataSet-end"));
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());
}
}
}
#endregion
#region 控件事件
protected void btnRefresh_Click(object sender, EventArgs e)
{
int tmpIndex = grdXLJGBMX.SelectedIndex;
moduleGV_PageIndexChanging(null, null);
grdXLJGBMX.SelectedIndex = tmpIndex;
}
#region 导出数据
protected void btnSJDC_Click(object sender, EventArgs e)
{
Mac.MacLog.TraceFormat(String.Format("btnSJDC_Click-Begin"));
base.InitEntityByCondition();
bool bXSCLCB = false;
if (CurQueryEntity.FieldByName("XSCLCB").Value == "True")
{
bXSCLCB = true;
}
string sFileName = "";
sFileName = PageParam.GetRTrimString("JGBID") + "价格表表价";
string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx");
Dictionary<string, string> dicColumns = new Dictionary<string, string>();
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 XLXSJGBMX_JGBID,XLXSJGBMX_XH, XLXSJGBMX_XLXHID, XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID, rtrim(XLXSJGBMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ,XLXSJGBMX_DYDJID,");
dt1.Columns.Add("XLXSJGBMX_JGBID", typeof(string));
dt1.Columns.Add("XLXSJGBMX_XH", typeof(double));
dicColumns.Add("XLXSJGBMX_XH", "序号");
dt1.Columns.Add("XLXSJGBMX_XLXHID", typeof(string));
dicColumns.Add("XLXSJGBMX_XLXHID", "型号");
dt1.Columns.Add("XLXSJGBMX_XLGGID", typeof(string));
dicColumns.Add("XLXSJGBMX_XLGGID", "规格");
dt1.Columns.Add("XLXSJGBMX_XLBZID", typeof(string));
dt1.Columns.Add("XLBZ", typeof(string));
dicColumns.Add("XLBZ", "标准");
dt1.Columns.Add("XLXSJGBMX_DYDJID", typeof(string));
dicColumns.Add("XLXSJGBMX_DYDJID", "电压等级");
dt1.Columns.Add("XLXSJGBMX_JJ", typeof(double));
bool bHSBZ = CurQueryEntity.FieldByName("HSBZ").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bHSBZ)
{
dicColumns.Add("XLXSJGBMX_JJ", "含税基价");
strSQL.AppendLine(" XLXSJGBMX_HSJJ as XLXSJGBMX_JJ");
}
else
{
dicColumns.Add("XLXSJGBMX_JJ", "无税基价");
strSQL.AppendLine(" XLXSJGBMX_WSJJ as XLXSJGBMX_JJ");
}
bool bZSBJZC = CurQueryEntity.FieldByName("ZSBJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bZSBJZC)
{
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ01 as TZYZ_JZ01 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ02 as TZYZ_JZ02 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ03 as TZYZ_JZ03 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ04 as TZYZ_JZ04 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ05 as TZYZ_JZ05 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ06 as TZYZ_JZ06 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ07 as TZYZ_JZ07 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ08 as TZYZ_JZ08 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ09 as TZYZ_JZ09 ");
strSQL.AppendLine(",XLXSJGBYZZ0_YZZ10 as TZYZ_JZ10 ");
dt1.Columns.Add("TZYZ_JZ01", typeof(double));
dt1.Columns.Add("TZYZ_JZ02", typeof(double));
dt1.Columns.Add("TZYZ_JZ03", typeof(double));
dt1.Columns.Add("TZYZ_JZ04", typeof(double));
dt1.Columns.Add("TZYZ_JZ05", typeof(double));
dt1.Columns.Add("TZYZ_JZ06", typeof(double));
dt1.Columns.Add("TZYZ_JZ07", typeof(double));
dt1.Columns.Add("TZYZ_JZ08", typeof(double));
dt1.Columns.Add("TZYZ_JZ09", typeof(double));
dt1.Columns.Add("TZYZ_JZ10", 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);
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;
dicColumns.Add(sYZID, sYZMC);
}
}
dt1.Columns.Add("XLXSJGBMX_BJ", typeof(double));
if (bHSBZ)
{
dicColumns.Add("XLXSJGBMX_BJ", "含税表价");
strSQL.AppendLine(" ,XLXSJGBMX_HSBJ as XLXSJGBMX_BJ ");
}
else
{
dicColumns.Add("XLXSJGBMX_BJ", "无税表价");
strSQL.AppendLine(" ,XLXSJGBMX_WSBJ as XLXSJGBMX_BJ ");
}
bool bZSJJZC = CurQueryEntity.FieldByName("ZSJJZC").Value.ToString().Trim().ToUpper().Equals("TRUE");
if (bZSJJZC)
{
strSQL.AppendLine(" ,'" + GetOption("BJU003") + "' as JLDW ");
dt1.Columns.Add("JLDW", typeof(string));
dicColumns.Add("JLDW", "计量单位");
strSQL.AppendLine(" ,XLXSCLQD_CLZL,XLXSCLQD_JGCZBID ");
dt1.Columns.Add("XLXSCLQD_CLZL", typeof(double));
dicColumns.Add("XLXSCLQD_CLZL", "材料重量");
int iDecimal = CMISproConvert.StrToInt(GetOption("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);
}
}
}
dicCLHQ.Clear();
SQL.Clear();
SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
DataSet dsCLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow clhqRow in dsCLHQ.Tables[0].Rows)
{
string sBJCLID = clhqRow["XLXSCLHQ_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(clhqRow["XLXSCLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(clhqRow["XLXSCLHQ_WSJG"].ToString().Trim());
if (!dicCLHQ.ContainsKey(sBJCLID))
{
if (bHSBZ)
dicCLHQ.Add(sBJCLID, dHSJG);
else
dicCLHQ.Add(sBJCLID, dWSJG);
}
}
dicWLHQ.Clear();
if (XLJGB_CLJGTZList.NeedJGBJJFP())
{
SQL.Clear();
SQL.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG from XLXSWLHQ where XLXSWLHQ_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID");
DataSet dsWLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow wlhqRow in dsWLHQ.Tables[0].Rows)
{
string sWLID = wlhqRow["XLXSWLHQ_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_WSJG"].ToString().Trim());
if (!dicWLHQ.ContainsKey(sWLID))
{
if (bHSBZ)
dicWLHQ.Add(sWLID, dHSJG);
else
dicWLHQ.Add(sWLID, dWSJG);
}
}
}
if (dicWLHQ.Count <= 0)
{
SQL.Clear();
SQL.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG from XLXSWLHQ where 1=1 ");
SQL.Add(" and XLXSWLHQ_JGBID=' '");
SQL.Add(" and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)");
SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
DataSet dsWLHQ = dberp.OpenDataSet(SQL);
foreach (DataRow wlhqRow in dsWLHQ.Tables[0].Rows)
{
string sWLID = wlhqRow["XLXSWLHQ_WLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
double dHSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_HSJG"].ToString().Trim());
double dWSJG = CMISproConvert.StrToFloat(wlhqRow["XLXSWLHQ_WSJG"].ToString().Trim());
if (!dicWLHQ.ContainsKey(sWLID))
{
if (bHSBZ)
dicWLHQ.Add(sWLID, dHSJG);
else
dicWLHQ.Add(sWLID, dWSJG);
}
}
}
Mac.MacLog.TraceFormat(String.Format("if (dicBJCL_WL.Count <= 0)"));
//构建包含物料的报价材料字典
if (dicBJCL_WL.Count <= 0)
{
Mac.MacLog.TraceFormat(String.Format("dicBJCL_WL-begin"));
SQL.Clear();
SQL.Add(" select XLXSCLQD_JGCZBID,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID, isnull(XLXSBJCL_BJHQ,'1') as BJHQ,XLXSBJCL_BJCLMC, ");
SQL.Add(" case when isnull(XLXSBJCL_BJHQ,'1')='1' then isnull(XLJGCZBLM_BJCLID,' ') ");
for (int i = 1; i <= 80; i++)
{
SQL.Add(string.Format(" when isnull(XLXSBJCL_BJHQ,'1')='2' and isnull(XLJGCZBLM_CLQDL,' ')='第{0}列' then isnull(XLXSCLQDWL_WLID{0},' ') ", i.ToString().PadLeft(2, '0').Trim()));
}
SQL.Add(" else ' ' end as CLID ");
SQL.Add(" from XLXSJGBMX ");
SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') ");
SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH ");
SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ");
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID ");
SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID ");
SQL.Add(" order by XLXSJGBMX_XH ");
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID").Trim();
DataSet dsBJCL_WL = dberp.OpenDataSet(SQL);
Mac.MacLog.TraceFormat(String.Format("dsBJCL_WL.Tables[0].Rows:" + dsBJCL_WL.Tables[0].Rows.Count.ToString().Trim()));
foreach (DataRow bjclRow in dsBJCL_WL.Tables[0].Rows)
{
string sJGCZBID = bjclRow["XLXSCLQD_JGCZBID"].ToString().Trim();
string sCLQDL = bjclRow["XLJGCZBLM_CLQDL"].ToString().Trim();
sCLQDL = sCLQDL.Replace("第", "").Replace("列", "");
string sKey = sJGCZBID + "|" + sCLQDL;
string sCLID = bjclRow["CLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
string sBJHQ = bjclRow["BJHQ"].ToString().Trim();
string sBJCLID = bjclRow["XLJGCZBLM_BJCLID"].ToString().Trim().Replace("-", "_").Replace("(", "(").Replace(")", ")").Replace(")", "").Replace("(", "");
string sBJCLMC = bjclRow["XLXSBJCL_BJCLMC"].ToString().Trim();
if (!sBJCLID.Equals(""))
{
if (!dicBJCL.ContainsKey(sBJCLID))
{
dicBJCL.Add(sBJCLID, sBJCLMC);
}
if (sBJHQ.Equals("2"))
{
sCLID = sBJCLID + "|" + sCLID;
if (!dicBJCL_WL.ContainsKey(sBJCLID))
{
dicBJCL_WL.Add(sBJCLID, sCLID);
}
}
if (!dicCZBLMCL.ContainsKey(sKey))
{
dicCZBLMCL.Add(sKey, sCLID);
}
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_WL-end"));
}
//报价材料是否显示
dicBJCL_Visible.Clear();
//构建报价材料字典和查询列
Mac.MacLog.TraceFormat(String.Format(" if (dicBJCL.Count :" + dicBJCL.Keys.Count.ToString().Trim()));
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));
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(" ,XLXSCLQD_SL{0} * (1+XLXSCLQD_SHL{0}/100) * XLXSCLQD_CLJGBL{0} as SL{0} ", i.ToString().PadLeft(2, '0').Trim()));
}
}
Mac.MacLog.TraceFormat(String.Format(" if (dicBJCL.Count > 0)-end"));
strSQL.AppendLine(" from XLXSJGBMX ");
strSQL.AppendLine(" left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID ");
if (bZSBJZC)
{
strSQL.AppendLine(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=XLXSJGBMX_JGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH ");
}
if (bZSJJZC)
{
strSQL.AppendLine(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') ");
}
strSQL.AppendLine(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_SYXH = 0 ");
strSQL.AppendLine(" order by XLXSJGBMX_XH ");
SQL.Clear();
SQL.Add(strSQL.ToString().Trim());
SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("JGBID").Trim();
Mac.MacLog.TraceFormat(String.Format("dberp.OpenDataSet(SQL)"));
DataSet dsQry = dberp.OpenDataSet(SQL);
Mac.MacLog.TraceFormat(String.Format("dsQry.Tables[0].Rows.Count" + dsQry.Tables[0].Rows.Count.ToString().Trim()));
if (dsQry.Tables[0].Rows.Count > 0)
{
foreach (DataRow towQry in dsQry.Tables[0].Rows)
{
DataRow dtrow = dt1.NewRow();
dtrow["XLXSJGBMX_JGBID"] = towQry["XLXSJGBMX_JGBID"].ToString().Trim();
dtrow["XLXSJGBMX_XH"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_XH"].ToString().Trim());
dtrow["XLXSJGBMX_XLXHID"] = towQry["XLXSJGBMX_XLXHID"].ToString().Trim();
dtrow["XLXSJGBMX_XLGGID"] = towQry["XLXSJGBMX_XLGGID"].ToString().Trim();
dtrow["XLXSJGBMX_XLBZID"] = towQry["XLXSJGBMX_XLBZID"].ToString().Trim();
dtrow["XLBZ"] = towQry["XLBZ"].ToString().Trim();
dtrow["XLXSJGBMX_DYDJID"] = towQry["XLXSJGBMX_DYDJID"].ToString().Trim();
dtrow["XLXSJGBMX_JJ"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_JJ"].ToString().Trim());
if (bZSBJZC)
{
dtrow["TZYZ_JZ01"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ01"].ToString().Trim());
dtrow["TZYZ_JZ02"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ02"].ToString().Trim());
dtrow["TZYZ_JZ03"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ03"].ToString().Trim());
dtrow["TZYZ_JZ04"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ04"].ToString().Trim());
dtrow["TZYZ_JZ05"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ05"].ToString().Trim());
dtrow["TZYZ_JZ06"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ06"].ToString().Trim());
dtrow["TZYZ_JZ07"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ07"].ToString().Trim());
dtrow["TZYZ_JZ08"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ08"].ToString().Trim());
dtrow["TZYZ_JZ09"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ09"].ToString().Trim());
dtrow["TZYZ_JZ10"] = CMISproConvert.StrToFloat(towQry["TZYZ_JZ10"].ToString().Trim());
}
dtrow["XLXSJGBMX_BJ"] = CMISproConvert.StrToFloat(towQry["XLXSJGBMX_BJ"].ToString().Trim());
if (bZSJJZC)
{
dtrow["JLDW"] = towQry["JLDW"].ToString().Trim();
dtrow["XLXSCLQD_CLZL"] = CMISproConvert.StrToFloat(towQry["XLXSCLQD_CLZL"].ToString().Trim());
string sJGCZBID = towQry["XLXSCLQD_JGCZBID"].ToString().Trim();
for (int i = 1; i <= 80; i++)
{
string sLMH = i.ToString().PadLeft(2, '0').Trim();
string sKey = sJGCZBID + "|" + sLMH;
if (dicCZBLMCL.ContainsKey(sKey))
{
string sCLID = dicCZBLMCL[sKey];
double dYL = CMISproConvert.StrToFloat(towQry["SL" + sLMH].ToString().Trim());
if (sCLID.Contains("|"))
{
string sWLID = sCLID.Split('|')[1];
if (DicJGYWLID.ContainsKey(sWLID))
sWLID = DicJGYWLID[sWLID];
sCLID = sCLID.Split('|')[0];
if (dicBJCL.ContainsKey(sCLID))
{
double dJG = 0;
if (dicWLHQ.ContainsKey(sWLID))
dJG = dicWLHQ[sWLID];
if (dYL != 0)
dicBJCL_Visible[sCLID] = "Y";
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dYL;//相同栏目的用量要合并
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 * dYL;
}
}
else
{
if (dicBJCL.ContainsKey(sCLID))
{
double dJG = 0;
if (dicCLHQ.ContainsKey(sCLID))
dJG = dicCLHQ[sCLID];
if (dYL != 0)
dicBJCL_Visible[sCLID] = "Y";
dtrow[sCLID + "_SL"] = CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0) + dYL;//相同栏目的用量要合并
dtrow[sCLID + "_CLJG"] = dJG;
dtrow[sCLID + "_CLCB"] = dJG * CMISproConvert.StrToFloat(dtrow[sCLID + "_SL"].ToString(), 0.0);
}
}
}
}
}
dt1.Rows.Add(dtrow);
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_Visible-begin"));
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");
}
}
}
Mac.MacLog.TraceFormat(String.Format("dicBJCL_Visible-end"));
if (grdXLJGBMX.Columns.Count > 450)
{
for (int i = grdXLJGBMX.Columns.Count - 1; i >= 449; i--)
{
grdXLJGBMX.Columns.Remove(grdXLJGBMX.Columns[i]);
}
AddColumn("LMCXSLF", "...", 60, HorizontalAlign.Center);
}
DataSet dsResult = new DataSet();
dsResult.Tables.Add(dt1);
Mac.MacLog.TraceFormat(String.Format("dsResult.Tables.Add"));
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);
}
}
Mac.MacLog.TraceFormat(String.Format("dsResult.Tables[0].Rows.Count:" + dsResult.Tables[0].Rows.Count.ToString().Trim()));
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("XLXSJGBMX_XH"))
{
sLet = TExcelData.ColIndexToReference(k);
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
}
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_JJ"))
{
sLet = TExcelData.ColIndexToReference(k);
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
sJJLM = GetLMZF(k + 1);
}
else if (dsResult.Tables[0].Columns[k].ColumnName.StartsWith("XLXSJGBMX_BJ"))
{
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";
}
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";
}
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_WLCB"))
{
sLet = TExcelData.ColIndexToReference(k);
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
}
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);
}
else if (dsResult.Tables[0].Columns[k].ColumnName.EndsWith("_CLCB"))
{
sLet = TExcelData.ColIndexToReference(k);
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
}
}
Mac.MacLog.TraceFormat(String.Format("NpoiCellData cd = new NpoiCellData();"));
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);
}
}
}
Mac.MacLog.TraceFormat(String.Format("cd.CellFormula-end"));
TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, dsResult, true, cd, sd, ref smessage);
Mac.MacLog.TraceFormat(String.Format("CreateExcel_XLSX_NPOI-end"));
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("无记录可以导出!");
}
Mac.MacLog.TraceFormat(String.Format("btnSJDC_Click-end"));
}
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 = "";
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;
}
#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;
grdXLJGBMX.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etCheckBox;
grdXLJGBMX.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;
grdXLJGBMX.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdXLJGBMX.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;
grdXLJGBMX.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdXLJGBMX.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;
grdXLJGBMX.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etNumber;
ColumnEx.ShowHint = true;
ColumnEx.NumberDecimalPlace = NumberDecimalPlace;
grdXLJGBMX.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);
grdXLJGBMX.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etDateTime;
ColumnEx.DateTimeEditKins = DateTimeKind;
grdXLJGBMX.ColumnsEx.Insert(0, ColumnEx);
}
#endregion
}
}