2026821
This commit is contained in:
@@ -0,0 +1,824 @@
|
||||
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.Data;
|
||||
using GThinking.N_MISPRO;
|
||||
using GThinking.N_WORKFLOW;
|
||||
using System.Collections.Generic;
|
||||
using GThinking.N_MISPRO.MISPROAS;
|
||||
using System.Text;
|
||||
|
||||
namespace GThinking.N_XLXSBJ
|
||||
{
|
||||
public partial class CLCBList : SingleGridBase
|
||||
{
|
||||
CLCB entity = new CLCB();
|
||||
CLCB_M queryentity = new CLCB_M();
|
||||
//报价材料
|
||||
Dictionary<string, string> dicHeaderTextCLMC = new Dictionary<string, string>();
|
||||
Dictionary<string, string> dicHeaderTextCLJG = new Dictionary<string, string>();
|
||||
|
||||
//材料物料
|
||||
Dictionary<string, string> dicHeaderTextCLWL = new Dictionary<string, string>();
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.UMID = 100860034;
|
||||
this.UMName = "线缆销售报价材料成本";
|
||||
this.CurMaster = Master;
|
||||
this.ModuleGV = ContentGrid;
|
||||
this.CurEntity = entity;
|
||||
this.CurQueryEntity = queryentity;
|
||||
this.PageHeight = 500;
|
||||
this.PageWidth = 700;
|
||||
this.sURLTarget = "CLCBInfo.aspx";
|
||||
this.sQueryURLTarget = "CLCBQuery.aspx";
|
||||
base.DataKeyNames = new string[] { "XLXSCLQD_XLXHID", "XLXSCLQD_XLGGID", "XLXSCLQD_XLBZID", "XLXSCLQD_DYDJID", "HSJGBZ" };
|
||||
|
||||
if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).Equals("M"))
|
||||
{
|
||||
ContentGrid.FindColumnExByFieldName("CLCB").NumberDecimalPlace = 5;
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
ContentGrid.FindColumnExByFieldName("CLJG" + i.ToString().PadLeft(2, '0')).NumberDecimalPlace = 5;
|
||||
}
|
||||
}
|
||||
|
||||
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("HSJGBZ").Value = "True";
|
||||
CurQueryEntity.FieldByName("PXFS").Value = "型号+序号";
|
||||
}
|
||||
|
||||
base.InitEntityByCondition();
|
||||
if (!CurQueryEntity.FieldByName("XSWLCB").Value.Trim().ToUpper().Equals("TRUE"))
|
||||
{
|
||||
ContentGrid.FindColumnByFieldName("WLID").Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("WLXX").Visible = false;
|
||||
}
|
||||
|
||||
base.InitPage();
|
||||
|
||||
//this.ModuleGV.OnClientDblClick = "return false;";
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
if (IsDefaultExecute)
|
||||
Master_OnStandardQuery(null, null);
|
||||
else
|
||||
{
|
||||
IfExistMC_Get();
|
||||
initGrid();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region 模板继承事件
|
||||
|
||||
protected override void Master_OnStandardQuery(object sender, EventArgs e)
|
||||
{
|
||||
base.InitEntityByCondition();
|
||||
base.Master_OnStandardQuery(sender, e);
|
||||
IfExistMC_Get();
|
||||
initGrid();
|
||||
entity.EntityTable.QuerySelSql = GetQuerySql().ToString();
|
||||
entity.GridDataBind(ContentGrid, tSession);
|
||||
}
|
||||
|
||||
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
|
||||
{
|
||||
base.InitEntityByCondition();
|
||||
IfExistMC_Get();
|
||||
initGrid();
|
||||
entity.EntityTable.QuerySelSql = GetQuerySql().ToString();
|
||||
ContentGrid.SelectedIndex = -1;
|
||||
base.moduleGV_PageIndexChanging(sender, e);
|
||||
}
|
||||
|
||||
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
|
||||
{
|
||||
if (e.Row.RowType == DataControlRowType.DataRow)
|
||||
{
|
||||
LinkPageParam.AddString("XLXSCLQD_XLXHID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLXHID"].ToString().Trim());
|
||||
LinkPageParam.AddString("XLXSCLQD_XLGGID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLGGID"].ToString().Trim());
|
||||
LinkPageParam.AddString("XLXSCLQD_XLBZID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_XLBZID"].ToString().Trim());
|
||||
LinkPageParam.AddString("XLXSCLQD_DYDJID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSCLQD_DYDJID"].ToString().Trim());
|
||||
LinkPageParam.AddString("HSJGBZ", ContentGrid.DataKeys[e.Row.RowIndex]["HSJGBZ"].ToString().Trim());
|
||||
}
|
||||
base.moduleGV_RowDataBound(sender, e);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 私有函数
|
||||
|
||||
private StringBuilder GetQuerySql()
|
||||
{
|
||||
bool bHSJGBZ = CurQueryEntity.FieldByName("HSJGBZ").Value.Trim().ToUpper().Equals("TRUE");
|
||||
|
||||
string sCZBLX = "";
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()))
|
||||
{
|
||||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||||
TSQL sql = new TSQL(dberp);
|
||||
sql.Clear();
|
||||
sql.Add(" SELECT XLJGCZBML_CZBLX from XLJGCZBML ");
|
||||
sql.Add(" where XLJGCZBML_JGCZBID=:pJGCZBID ");
|
||||
sql.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0];
|
||||
DataSet ds = dberp.OpenDataSet(sql);
|
||||
if (ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
sCZBLX = ds.Tables[0].Rows[0][0].ToString().Trim();
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder strSQL = new StringBuilder();
|
||||
strSQL.AppendLine(" select XLXSCLQD_XLXHID, XLXSCLQD_XLGGID, XLXSCLQD_XLBZID,RTRIM(XLXSCLQD_XLBZID)||'|'|| XLBZ_XLBZLXMC as XLBZ,XLXSCLQD_DYDJID,");
|
||||
if (CurQueryEntity.FieldByName("XSWLCB").Value.Trim().ToUpper().Equals("TRUE"))
|
||||
strSQL.AppendLine("ISNULL(tmpWL.WL_WLID,' ') as WLID, rtrim(ISNULL(tmpWL.WL_MC,' ')) || ' ' || rtrim(ISNULL(tmpWL.WL_GG,' ')) || ' ' || rtrim(ISNULL(tmpWL.WL_TZ,' ')) || ' ' || rtrim(ISNULL(tmpWL.WL_CL,' ')) as WLXX,");
|
||||
else
|
||||
strSQL.AppendLine(" ' ' as WLID,' ' as WLXX,");
|
||||
strSQL.AppendLine(" '" + GetOption("BJU003") + "' as JLDW, XLXSCLQD_CLZL,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL01, XLXSCLQD_SL02, XLXSCLQD_SL03, XLXSCLQD_SL04, XLXSCLQD_SL05, XLXSCLQD_SL06, XLXSCLQD_SL07, XLXSCLQD_SL08, XLXSCLQD_SL09, XLXSCLQD_SL10,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL11, XLXSCLQD_SL12, XLXSCLQD_SL13, XLXSCLQD_SL14, XLXSCLQD_SL15, XLXSCLQD_SL16, XLXSCLQD_SL17, XLXSCLQD_SL18, XLXSCLQD_SL19, XLXSCLQD_SL20,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL21, XLXSCLQD_SL22, XLXSCLQD_SL23, XLXSCLQD_SL24, XLXSCLQD_SL25, XLXSCLQD_SL26, XLXSCLQD_SL27, XLXSCLQD_SL28, XLXSCLQD_SL29, XLXSCLQD_SL30,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL31, XLXSCLQD_SL32, XLXSCLQD_SL33, XLXSCLQD_SL34, XLXSCLQD_SL35, XLXSCLQD_SL36, XLXSCLQD_SL37, XLXSCLQD_SL38, XLXSCLQD_SL39, XLXSCLQD_SL40,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL41, XLXSCLQD_SL42, XLXSCLQD_SL43, XLXSCLQD_SL44, XLXSCLQD_SL45, XLXSCLQD_SL46, XLXSCLQD_SL47, XLXSCLQD_SL48, XLXSCLQD_SL49, XLXSCLQD_SL50,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL51, XLXSCLQD_SL52, XLXSCLQD_SL53, XLXSCLQD_SL54, XLXSCLQD_SL55, XLXSCLQD_SL56, XLXSCLQD_SL57, XLXSCLQD_SL58, XLXSCLQD_SL59, XLXSCLQD_SL60,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL61, XLXSCLQD_SL62, XLXSCLQD_SL63, XLXSCLQD_SL64, XLXSCLQD_SL65, XLXSCLQD_SL66, XLXSCLQD_SL67, XLXSCLQD_SL68, XLXSCLQD_SL69, XLXSCLQD_SL70,");
|
||||
strSQL.AppendLine("XLXSCLQD_SL71, XLXSCLQD_SL72, XLXSCLQD_SL73, XLXSCLQD_SL74, XLXSCLQD_SL75, XLXSCLQD_SL76, XLXSCLQD_SL77, XLXSCLQD_SL78, XLXSCLQD_SL79, XLXSCLQD_SL80,");
|
||||
|
||||
string strCLCB = "(0";
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
//此处需要去除有物料的,变更为0
|
||||
string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列";
|
||||
if (dicHeaderTextCLJG.ContainsKey(sCLQDL) && !dicHeaderTextCLWL.ContainsKey(sCLQDL))
|
||||
{
|
||||
double tmpCLJG = CMISproConvert.StrToFloat(dicHeaderTextCLJG[sCLQDL].Replace("元/Kg", ""), 0);
|
||||
strSQL.AppendLine(string.Format("RoundFix(XLXSCLQD_SL{0},6)*{1}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100) as CLJG{0},", i.ToString().PadLeft(2, '0'), tmpCLJG));
|
||||
strCLCB += string.Format("+RoundFix(XLXSCLQD_SL{0},6)*{1}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)", i.ToString().PadLeft(2, '0'), tmpCLJG);
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(string.Format("0 as CLJG{0},", i.ToString().PadLeft(2, '0')));
|
||||
}
|
||||
|
||||
//增加物料列----对应列
|
||||
if (dicHeaderTextCLWL.ContainsKey(sCLQDL))
|
||||
{
|
||||
strSQL.AppendLine(string.Format("rtrim(XLXSCLQDWL_WLID{0}) || '|' || rtrim(ISNULL(WL{0}.WL_MC,' ')) || ' ' || rtrim(ISNULL(WL{0}.WL_GG,' ')) as XLXSCLWL{0},\r\n", i.ToString().PadLeft(2, '0')));
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(string.Format("' ' as XLXSCLWL{0},", i.ToString().PadLeft(2, '0')));
|
||||
}
|
||||
|
||||
if (dicHeaderTextCLWL.ContainsKey(sCLQDL))
|
||||
{
|
||||
//此处需要保持 CLJG01字段在
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
strSQL.AppendLine(string.Format(" isnull(XLXSWLHQ{0}.XLXSWLHQ_HSJG,0) as XLXSCLWLJG{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
strSQL.AppendLine(string.Format(" RoundFix(RoundFix(XLXSCLQD_SL{0},6)*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)*isnull(XLXSWLHQ{0}.XLXSWLHQ_HSJG,0), 5) as XLXSCLWLCB{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
|
||||
|
||||
strCLCB += string.Format(" +RoundFix(RoundFix(XLXSCLQD_SL{0},6)*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)*isnull(XLXSWLHQ{0}.XLXSWLHQ_HSJG,0), 5) ", i.ToString().PadLeft(2, '0'));
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(string.Format(" isnull(XLXSWLHQ{0}.XLXSWLHQ_WSJG,0) as XLXSCLWLJG{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
strSQL.AppendLine(string.Format(" RoundFix(RoundFix(XLXSCLQD_SL{0},6)*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)*isnull(XLXSWLHQ{0}.XLXSWLHQ_WSJG,0), 5) as XLXSCLWLCB{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
|
||||
strCLCB += string.Format(" +RoundFix(RoundFix(XLXSCLQD_SL{0},6)*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100)*isnull(XLXSWLHQ{0}.XLXSWLHQ_WSJG,0), 5) ", i.ToString().PadLeft(2, '0'));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(string.Format(" 0 as XLXSCLWLJG{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
strSQL.AppendLine(string.Format(" 0 as XLXSCLWLCB{0}, ", i.ToString().PadLeft(2, '0')));
|
||||
}
|
||||
}
|
||||
|
||||
strCLCB += ")";
|
||||
strSQL.AppendLine(strCLCB + " as CLCB,");
|
||||
strSQL.AppendLine(" XLXSCLQD_BZ, XLXSCLQD_WHR, XLXSCLQD_WHRID, XLXSCLQD_WHSJ, ");
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
strSQL.AppendLine("'Y' as HSJGBZ ");
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine("'N' as HSJGBZ ");
|
||||
}
|
||||
strSQL.AppendLine(" from XLXSCLQD ");
|
||||
if (CurQueryEntity.FieldByName("XSWLCB").Value.Trim().ToUpper().Equals("TRUE"))
|
||||
{
|
||||
strSQL.AppendLine(@"left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_WLID
|
||||
from (
|
||||
select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_WLID
|
||||
from XLXLB
|
||||
where 1=1
|
||||
and isnull(XLXLB_TYBZ,' ')<> 'Y'
|
||||
and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')
|
||||
and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID)
|
||||
) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID
|
||||
union all
|
||||
select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_WLID
|
||||
from XLXLB
|
||||
where isnull(XLXLB_TYBZ,' ')<>'Y'
|
||||
and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')
|
||||
and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID )
|
||||
) a on a.XLXHID=XLXSCLQD_XLXHID and a.XLGGID=replace(XLXSCLQD_XLGGID,'*','×') and a.XLBZID=XLXSCLQD_XLBZID and a.DYDJID=XLXSCLQD_DYDJID
|
||||
left join WL tmpWL on WL_WLID =XLXLB_WLID ");
|
||||
}
|
||||
|
||||
strSQL.AppendLine("left join XLBZ on XLBZ_XLBZID = XLXSCLQD_XLBZID ");
|
||||
strSQL.AppendLine(" left join XLXSCLQDWL ON XLXSCLQDWL_JGCZBID = XLXSCLQD_JGCZBID AND XLXSCLQDWL_JGCZBBBID = XLXSCLQD_JGCZBBBID and XLXSCLQD_JGCZBXH = XLXSCLQDWL_JGCZBXH AND XLXSCLQDWL_DRHH = XLXSCLQD_DRHH ");
|
||||
//增加物料列----使用关联的物料表
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
if (dicHeaderTextCLWL.ContainsKey("第" + i.ToString().PadLeft(2, '0') + "列"))
|
||||
{
|
||||
strSQL.AppendLine(string.Format("left join WL WL{0} ON WL{0}.WL_WLID =XLXSCLQDWL_WLID{0} ", i.ToString().PadLeft(2, '0')));
|
||||
strSQL.AppendLine(" left join ");
|
||||
strSQL.AppendLine(" ( ");
|
||||
strSQL.AppendLine(" select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,XLXSWLHQ_WSCGJG,XLXSWLHQ_HSCGJG,XLXSWLHQ_YXQS,XLXSWLHQ_YXQZ,XLXSWLHQ_BZ,XLXSWLHQ_WHRID,XLXSWLHQ_WHR,XLXSWLHQ_WHSJ ");
|
||||
strSQL.AppendLine(" from XLXSWLHQ, ");
|
||||
strSQL.AppendLine(" ( ");
|
||||
strSQL.AppendLine(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS ");
|
||||
strSQL.AppendLine(" from XLXSWLHQ ");
|
||||
strSQL.AppendLine(" where XLXSWLHQ_JGBID=' ' ");
|
||||
strSQL.AppendLine(" and XLXSWLHQ_YXQS<=:pCKRQ and (XLXSWLHQ_YXQZ is null or XLXSWLHQ_YXQZ>=:pCKRQ) ");
|
||||
strSQL.AppendLine(" group by XLXSWLHQ_WLID ");
|
||||
strSQL.AppendLine(" ) b ");
|
||||
strSQL.AppendLine(" where XLXSWLHQ_JGBID=' ' ");
|
||||
strSQL.AppendLine(" and XLXSWLHQ_WLID=WLID ");
|
||||
strSQL.AppendLine(" and XLXSWLHQ_YXQS=maxYXQS ");
|
||||
strSQL.AppendLine(string.Format(" ) XLXSWLHQ{0} on XLXSWLHQ{0}.XLXSWLHQ_WLID=WL{0}.WL_WLID ", i.ToString().PadLeft(2, '0')));
|
||||
}
|
||||
}
|
||||
if (dicHeaderTextCLWL.Count > 0)
|
||||
{
|
||||
entity.Param.Add("pCKRQ", DateTime.Now.ToShortDateString());
|
||||
}
|
||||
|
||||
if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("尺重表内容导入行号"))
|
||||
{
|
||||
if (sCZBLX.Equals("B"))
|
||||
{
|
||||
strSQL.AppendLine(" left join XLJGCZBNR on XLJGCZBNR_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBNR_JGCZBBBID = XLXSCLQD_JGCZBBBID and XLJGCZBNR_DRHH = XLXSCLQD_DRHH ");
|
||||
}
|
||||
else if (sCZBLX.Equals("Z") || sCZBLX.Equals("A") || sCZBLX.Equals("C") || sCZBLX.Equals("G"))
|
||||
{
|
||||
strSQL.AppendLine(" left join XLXHJGCZBNR on XLXHJGCZBNR_JGCZBID = XLXSCLQD_JGCZBID and XLXHJGCZBNR_JGCZBBBID = XLXSCLQD_JGCZBBBID ");
|
||||
strSQL.AppendLine(" and XLXHJGCZBNR_JGCZBXH = XLXSCLQD_JGCZBXH and XLXHJGCZBNR_DRHH = XLXSCLQD_DRHH ");
|
||||
}
|
||||
}
|
||||
|
||||
strSQL.AppendLine(" where 1=1 and XLXSCLQD_WPID ='ZZZZ' ");
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()))
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_JGCZBID = :pJGCZBID ");
|
||||
entity.Param.Add("pJGCZBID", CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()))
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_JGCZBBBID = :pJGCZBBBID ");
|
||||
entity.Param.Add("pJGCZBBBID", CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim());
|
||||
}
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim()))
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_XLXHID = :pXLXHID ");
|
||||
entity.Param.Add("pXLXHID", CurQueryEntity.FieldByName("XLXHID").Value.Trim());
|
||||
}
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim()))
|
||||
{
|
||||
if (CurQueryEntity.FieldByName("XLGGID").Value.Trim().Contains("*"))
|
||||
{
|
||||
strSQL.AppendLine(" and (XLXSCLQD_XLGGID like :pXLGG or XLXSCLQD_XLGGID like :pXLGG2)");
|
||||
entity.Param.Add("pXLGG", "%" + CurQueryEntity.FieldByName("XLGGID").Value.Trim() + "%");
|
||||
entity.Param.Add("pXLGG2", "%" + CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×") + "%");
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_XLGGID like :pXLGGID ");
|
||||
entity.Param.Add("pXLGGID", "%" + CurQueryEntity.FieldByName("XLGGID").Value.Trim() + "%");
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim()))
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_XLBZID = :pST ");
|
||||
entity.Param.Add("pST", CurQueryEntity.FieldByName("ST").Value.Trim());
|
||||
}
|
||||
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim()))
|
||||
{
|
||||
strSQL.AppendLine(" and XLXSCLQD_DYDJID = :pDYDJ ");
|
||||
entity.Param.Add("pDYDJ", CurQueryEntity.FieldByName("DYDJ").Value.Trim());
|
||||
}
|
||||
if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("型号+序号"))
|
||||
{
|
||||
strSQL.AppendLine("order by XLXSCLQD_XLXHID,XLXSCLQD_XH ");
|
||||
}
|
||||
else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("尺重表内容导入行号"))
|
||||
{
|
||||
if (sCZBLX.Equals("B"))
|
||||
{
|
||||
strSQL.AppendLine(" order by XLJGCZBNR_DRHH ");
|
||||
}
|
||||
else if (sCZBLX.Equals("Z") || sCZBLX.Equals("A") || sCZBLX.Equals("C") || sCZBLX.Equals("G"))
|
||||
{
|
||||
strSQL.AppendLine(" order by XLXHJGCZBNR_JGCZBXH,XLXHJGCZBNR_DRHH ");
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(" order by XLXSCLQD_XLXHID,XLXSCLQD_XH ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strSQL.AppendLine(" order by XLXSCLQD_XLXHID,XLXSCLQD_XH ");
|
||||
}
|
||||
return strSQL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void IfExistMC_Get()
|
||||
{
|
||||
dicHeaderTextCLMC.Clear();
|
||||
dicHeaderTextCLJG.Clear();
|
||||
dicHeaderTextCLWL.Clear();
|
||||
if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim()))
|
||||
{
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
ContentGrid.Columns[5 * i + 4].Visible = false;
|
||||
ContentGrid.Columns[5 * i + 5].Visible = false;
|
||||
ContentGrid.Columns[5 * i + 6].Visible = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int iNumberDecimal = XLBJDUtils.BJCLPriceDecimal;
|
||||
bool bHSJGBZ = CurQueryEntity.FieldByName("HSJGBZ").Value.Trim().ToUpper().Equals("TRUE");
|
||||
|
||||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||||
TSQL sql = new TSQL(dberp);
|
||||
|
||||
DataSet ds;
|
||||
sql.Add(" select XLJGCZBLM_CLQDL,XLXSBJCL_BJHQ, ");
|
||||
sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then XLJGCZBLM_CZBLMMC else XLXSBJCL_BJCLMC end as CLMC,");
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then 0 else isnull(XLXSCLHQ_HSJG,0.0) end as CLJG ");
|
||||
}
|
||||
else
|
||||
{
|
||||
sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then 0 else isnull(XLXSCLHQ_WSJG,0.0) end as CLJG ");
|
||||
}
|
||||
sql.Add(" from XLJGCZBLM ");
|
||||
sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
|
||||
//sql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID = XLJGCZBLM_JGCZBID");
|
||||
sql.Add(" left join");
|
||||
sql.Add(" ( ");
|
||||
sql.Add(" select XLXSCLHQ_BJCLID, ");
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
sql.Add(" XLXSCLHQ_HSJG ");
|
||||
}
|
||||
else
|
||||
{
|
||||
sql.Add(" XLXSCLHQ_WSJG ");
|
||||
}
|
||||
sql.Add(" from XLXSCLHQ, ");
|
||||
sql.Add(" ( ");
|
||||
sql.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS) as maxYXQS ");
|
||||
sql.Add(" from XLXSCLHQ ");
|
||||
sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
|
||||
sql.Add(" and XLXSCLHQ_YXQS<=:pRQ ");
|
||||
sql.Add(" and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ) ");
|
||||
sql.Add(" group by XLXSCLHQ_BJCLID ");
|
||||
sql.Add(" ) a ");
|
||||
sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
|
||||
sql.Add(" and XLXSCLHQ_BJCLID=BJCLID ");
|
||||
sql.Add(" and XLXSCLHQ_YXQS=maxYXQS ");
|
||||
sql.Add(" ) b on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID ");
|
||||
sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '");
|
||||
sql.Add(" order by XLJGCZBLM_CLQDL ");
|
||||
sql.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0];
|
||||
sql.ParamByName("pJGCZBBBID").Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim();
|
||||
sql.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
||||
ds = dberp.OpenDataSet(sql);
|
||||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
dicHeaderTextCLMC.Add((ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), ds.Tables[0].Rows[i]["CLMC"].ToString().Trim());
|
||||
|
||||
dicHeaderTextCLJG.Add((ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), XLBJDUtils.strPadRight(ds.Tables[0].Rows[i]["CLJG"].ToString().Trim(),iNumberDecimal) + "元/Kg");
|
||||
|
||||
//添加物料列
|
||||
if (ds.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))
|
||||
{
|
||||
dicHeaderTextCLWL.Add((ds.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), ds.Tables[0].Rows[i]["CLMC"].ToString().Trim());
|
||||
}
|
||||
}
|
||||
|
||||
SetColumnsVisible();
|
||||
}
|
||||
|
||||
private void initGrid()
|
||||
{
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列";
|
||||
string sExist = "";
|
||||
if (dicHeaderTextCLMC.ContainsKey(sCLQDL))
|
||||
{
|
||||
sExist = dicHeaderTextCLMC[sCLQDL].Trim();
|
||||
}
|
||||
if (!sExist.Equals(""))
|
||||
{
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLQD_SL" + i.ToString().PadLeft(2, '0')).HeaderText = sExist;
|
||||
}
|
||||
|
||||
string sExist2 = "";
|
||||
if (dicHeaderTextCLJG.ContainsKey(sCLQDL))
|
||||
{
|
||||
sExist2 = dicHeaderTextCLJG[sCLQDL].Trim();
|
||||
}
|
||||
if (!sExist2.Equals(""))
|
||||
{
|
||||
ContentGrid.FindColumnByFieldName("CLJG" + i.ToString().PadLeft(2, '0')).HeaderText = sExist2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetColumnsVisible()
|
||||
{
|
||||
if (dicHeaderTextCLMC.Count > 0)
|
||||
{
|
||||
for (int i = 1; i <= 80; i++)
|
||||
{
|
||||
string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列";
|
||||
string sExist = "";
|
||||
if (dicHeaderTextCLMC.ContainsKey(sCLQDL))
|
||||
{
|
||||
sExist = dicHeaderTextCLMC[sCLQDL].Trim();
|
||||
}
|
||||
if (sExist.Equals(""))
|
||||
{
|
||||
//报价材料
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLQD_SL" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("CLJG" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
//材料物料
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWL" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWLJG" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWLCB" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
}
|
||||
|
||||
if (!dicHeaderTextCLWL.ContainsKey(sCLQDL))
|
||||
{
|
||||
//材料物料
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWL" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWLJG" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
ContentGrid.FindColumnByFieldName("XLXSCLWLCB" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
ContentGrid.FindColumnByFieldName("CLJG" + i.ToString().PadLeft(2, '0')).Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//数字列号为字母列号 1-A 27->AA
|
||||
//入口为SL的前一列,所以开始列包含重量和成本时需要减去1,因为开始列本身已经前移,结束列则不需要减一
|
||||
public string GetNumTolet(int Index)
|
||||
{
|
||||
int dividend = Index;
|
||||
string columnName = string.Empty;
|
||||
|
||||
while (dividend > 0)
|
||||
{
|
||||
int modulo = (dividend - 1) % 26;
|
||||
columnName = Convert.ToChar(65 + modulo) + columnName;
|
||||
dividend = (dividend - modulo) / 26;
|
||||
}
|
||||
return columnName;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 导出数据
|
||||
protected void btnSJDC_Click(object sender, EventArgs e)
|
||||
{
|
||||
base.InitEntityByCondition();
|
||||
int iNumberDecimal = XLBJDUtils.BJCLPriceDecimal;
|
||||
bool bHSJGBZ = CurQueryEntity.FieldByName("HSJGBZ").Value.Trim().ToUpper().Equals("TRUE");
|
||||
|
||||
if (CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Equals(""))
|
||||
{
|
||||
ShowMessage("请先查询数据!");
|
||||
return;
|
||||
}
|
||||
dicHeaderTextCLMC.Clear();
|
||||
dicHeaderTextCLJG.Clear();
|
||||
dicHeaderTextCLWL.Clear();
|
||||
|
||||
string sFileName = "";
|
||||
string sDateNow = DateTime.Now.Year.ToString().Trim().PadLeft(2, '0') + DateTime.Now.Month.ToString().Trim().PadLeft(2, '0')
|
||||
+ DateTime.Now.Day.ToString().Trim().PadLeft(2, '0') + DateTime.Now.Hour.ToString().Trim().PadLeft(2, '0')
|
||||
+ DateTime.Now.Minute.ToString().Trim().PadLeft(2, '0');
|
||||
|
||||
sFileName = sDateNow + "材料成本";
|
||||
string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx");
|
||||
|
||||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||||
TSQL SQL = new TSQL(dberp);
|
||||
SQL.Clear();
|
||||
SQL.Add(" select XLJGCZBLM_CLQDL,XLXSBJCL_BJHQ, ");
|
||||
SQL.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then XLJGCZBLM_CZBLMMC else XLXSBJCL_BJCLMC end as CLMC,");
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
SQL.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then 0 else isnull(XLXSCLHQ_HSJG,0.0) end as CLJG ");
|
||||
}
|
||||
else
|
||||
{
|
||||
SQL.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then 0 else isnull(XLXSCLHQ_WSJG,0.0) end as CLJG ");
|
||||
}
|
||||
SQL.Add(" from XLJGCZBLM ");
|
||||
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
|
||||
SQL.Add(" left join");
|
||||
SQL.Add(" ( ");
|
||||
SQL.Add(" select XLXSCLHQ_BJCLID, ");
|
||||
if (bHSJGBZ)
|
||||
{
|
||||
SQL.Add(" XLXSCLHQ_HSJG ");
|
||||
}
|
||||
else
|
||||
{
|
||||
SQL.Add(" XLXSCLHQ_WSJG ");
|
||||
}
|
||||
SQL.Add(" from XLXSCLHQ, ");
|
||||
SQL.Add(" ( ");
|
||||
SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS) as maxYXQS ");
|
||||
SQL.Add(" from XLXSCLHQ ");
|
||||
SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
|
||||
SQL.Add(" and XLXSCLHQ_YXQS<=:pRQ ");
|
||||
SQL.Add(" and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ) ");
|
||||
SQL.Add(" group by XLXSCLHQ_BJCLID ");
|
||||
SQL.Add(" ) a ");
|
||||
SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
|
||||
SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID ");
|
||||
SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS ");
|
||||
SQL.Add(" ) b on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID ");
|
||||
SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '");
|
||||
SQL.Add(" order by XLJGCZBLM_CLQDL ");
|
||||
SQL.ParamByName("pJGCZBID").Value = CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0];
|
||||
SQL.ParamByName("pJGCZBBBID").Value = CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim();
|
||||
SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
||||
DataSet dsCLHQ = dberp.OpenDataSet(SQL);
|
||||
for (int i = 0; i < dsCLHQ.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
dicHeaderTextCLMC.Add((dsCLHQ.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), dsCLHQ.Tables[0].Rows[i]["CLMC"].ToString().Trim());
|
||||
|
||||
dicHeaderTextCLJG.Add((dsCLHQ.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), XLBJDUtils.strPadRight(dsCLHQ.Tables[0].Rows[i]["CLJG"].ToString().Trim(),iNumberDecimal) + "元/Kg");
|
||||
|
||||
//添加物料列
|
||||
if (dsCLHQ.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))
|
||||
{
|
||||
dicHeaderTextCLWL.Add((dsCLHQ.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()), dsCLHQ.Tables[0].Rows[i]["CLMC"].ToString().Trim());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Dictionary<string, string> dicColumns = new Dictionary<string, string>();
|
||||
dicColumns.Clear();
|
||||
dicColumns.Add("XLXSCLQD_XLXHID", "型号");
|
||||
dicColumns.Add("XLXSCLQD_XLGGID", "规格");
|
||||
dicColumns.Add("XLBZ", "标准");
|
||||
dicColumns.Add("XLXSCLQD_DYDJID", "电压等级");
|
||||
|
||||
if (CurQueryEntity.FieldByName("XSWLCB").Value.Trim().ToUpper().Equals("TRUE"))
|
||||
{
|
||||
dicColumns.Add("WLID", "物料编码");
|
||||
dicColumns.Add("WLXX", "物料信息");
|
||||
}
|
||||
|
||||
dicColumns.Add("JLDW", "计量单位");
|
||||
dicColumns.Add("XLXSCLQD_CLZL", "材料重量");
|
||||
dicColumns.Add("CLCB", "材料成本");
|
||||
|
||||
|
||||
string str = GetQuerySql().ToString();
|
||||
SQL.Clear();
|
||||
SQL.Add(str);
|
||||
foreach (string s in entity.Param.Keys)
|
||||
{
|
||||
SQL.ParamByName(s).Value = entity.Param[s];
|
||||
}
|
||||
DataSet dsQry = dberp.OpenDataSet(SQL);
|
||||
|
||||
|
||||
string sColName = "";
|
||||
//列标记
|
||||
int index = 0;
|
||||
//数值列标记
|
||||
int NumB = -1;
|
||||
int NumE = -1;
|
||||
string sColIndex = "";
|
||||
string sCLQDL = "XLXSCLQD_SL";
|
||||
string sCLJGL = "CLJG";
|
||||
string sCLWLL = "XLXSCLWL";
|
||||
string sWLJGL = "XLXSCLWLJG";
|
||||
string sWLCBL = "XLXSCLWLCB";
|
||||
|
||||
//循环固定列,进行赋值
|
||||
for (int i = 0; i < dsQry.Tables[0].Columns.Count; i++)
|
||||
{
|
||||
if (dicColumns.ContainsKey(dsQry.Tables[0].Columns[i].ColumnName))
|
||||
{
|
||||
sColName = dsQry.Tables[0].Columns[i].ColumnName;
|
||||
dsQry.Tables[0].Columns[i].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dicColumns[sColName];
|
||||
string ss = dsQry.Tables[0].Columns[i].ColumnName;
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<string, string> kvp in dicHeaderTextCLMC)
|
||||
{
|
||||
for (int i = 0; i < dsQry.Tables[0].Columns.Count; i++)
|
||||
{
|
||||
sColIndex = "";
|
||||
sCLQDL = "XLXSCLQD_SL";
|
||||
sCLJGL = "CLJG";
|
||||
sCLWLL = "XLXSCLWL";
|
||||
sWLJGL = "XLXSCLWLJG";
|
||||
sWLCBL = "XLXSCLWLCB";
|
||||
|
||||
|
||||
sColIndex = kvp.Key.Replace("第", "").Replace("列", "").Trim().PadLeft(2, '0');
|
||||
sCLQDL = sCLQDL + sColIndex;
|
||||
sCLJGL = sCLJGL + sColIndex;
|
||||
sCLWLL = sCLWLL + sColIndex;
|
||||
sWLJGL = sWLJGL + sColIndex;
|
||||
sWLCBL = sWLCBL + sColIndex;
|
||||
if (dsQry.Tables[0].Columns[i].ColumnName.Equals(sCLQDL))
|
||||
{
|
||||
if (NumB == -1)
|
||||
{
|
||||
//index从0开始,此时为7
|
||||
NumB = index;
|
||||
}
|
||||
//第01列--XLXSCLQD_SL01
|
||||
dsQry.Tables[0].Columns[i].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + kvp.Value;
|
||||
index++;
|
||||
|
||||
//第01列价格--CLJG01
|
||||
dsQry.Tables[0].Columns[sCLJGL].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dicHeaderTextCLJG[kvp.Key];
|
||||
index++;
|
||||
|
||||
if (dicHeaderTextCLWL.ContainsKey(kvp.Key))
|
||||
{
|
||||
//材料物料--XLXSCLWL01
|
||||
dsQry.Tables[0].Columns[sCLWLL].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dsQry.Tables[0].Columns[index].ColumnName;
|
||||
index++;
|
||||
|
||||
//物料价格(元/Kg)--XLXSCLWLJG01
|
||||
dsQry.Tables[0].Columns[sWLJGL].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dsQry.Tables[0].Columns[index].ColumnName;
|
||||
index++;
|
||||
|
||||
//物料成本--XLXSCLWLCB01
|
||||
dsQry.Tables[0].Columns[sWLCBL].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dsQry.Tables[0].Columns[index].ColumnName;
|
||||
index++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dicColumns.Clear();
|
||||
dicColumns.Add("XLXSCLQD_BZ", "备注");
|
||||
dicColumns.Add("XLXSCLQD_WHR", "维护人");
|
||||
dicColumns.Add("XLXSCLQD_WHSJ", "维护时间");
|
||||
//循环固定列,进行赋值
|
||||
for (int i = 0; i < dsQry.Tables[0].Columns.Count; i++)
|
||||
{
|
||||
if (dicColumns.ContainsKey(dsQry.Tables[0].Columns[i].ColumnName))
|
||||
{
|
||||
if (NumE == -1)
|
||||
{
|
||||
NumE = index;
|
||||
}
|
||||
sColName = dsQry.Tables[0].Columns[i].ColumnName;
|
||||
dsQry.Tables[0].Columns[i].SetOrdinal(index);
|
||||
dsQry.Tables[0].Columns[index].Caption = "待处理列&_" + dicColumns[sColName];
|
||||
string ss = dsQry.Tables[0].Columns[i].ColumnName;
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//循环,删除列
|
||||
for (int i = dsQry.Tables[0].Columns.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (dsQry.Tables[0].Columns[i].Caption.StartsWith("待处理列&_"))
|
||||
{
|
||||
dsQry.Tables[0].Columns[i].Caption = dsQry.Tables[0].Columns[i].Caption.Replace("待处理列&_", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
dsQry.Tables[0].Columns.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
if (dsQry.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>();
|
||||
|
||||
//从0开始计数,所以到XLXSCLQD_SL01虽然是7,但是NumB应该减去2以保证前两位都能计入。
|
||||
//因为入口是正确的,所以循环结束index会多加一位,所以NumE最后减去1
|
||||
NumB = NumB - 2;
|
||||
NumE = NumE - 1;
|
||||
if (NumB >= 0 && NumE >= 0)
|
||||
{
|
||||
|
||||
for (int k = NumB; k <= NumE; k++)
|
||||
{
|
||||
if (dsQry.Tables[0].Columns[k].ColumnName.StartsWith("XLXSCLWLJG"))//物料价格要设为数值型
|
||||
{
|
||||
sLet = TExcelData.ColIndexToReference(k);
|
||||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||||
}
|
||||
else if (dsQry.Tables[0].Columns[k].ColumnName.StartsWith("XLXSCLWLCB"))//物料成本要设为数值型
|
||||
{
|
||||
sLet = TExcelData.ColIndexToReference(k);
|
||||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||||
}
|
||||
else if (!dsQry.Tables[0].Columns[k].ColumnName.StartsWith("XLXSCLWL"))//除物料ID之外要设为数值型
|
||||
{
|
||||
sLet = TExcelData.ColIndexToReference(k);
|
||||
sd.ColumnType.Add(sLet, NpoiColumnType.Double);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, dsQry, true, null, sd, ref smessage);
|
||||
if (smessage.Equals(""))
|
||||
{
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath);
|
||||
string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + 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("无记录可以导出!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user