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

825 lines
42 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.Data;
using GThinking.N_MISPRO;
using GThinking.N_CONTROL;
using System.Collections.Generic;
using GThinking.N_MISPRO.Utility;
using System.Text;
using System.Xml;
using GThinking.N_COMPRESS;
namespace GThinking.N_XLXSBJ
{
public partial class CPWLCLLYHZList : SingleGridBase
{
CPWLCLLYHZ entity = new CPWLCLLYHZ();
CPWLCLLYHZ_M queryentity = new CPWLCLLYHZ_M();
#region pageload 事件
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860045;
this.UMName = "产品物料材料用量汇总";
this.CurMaster = Master;
this.ModuleGV = this.grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sQueryURLTarget = "CPWLCLLYHZQuery.aspx";
this.sURLTarget = "";
this.PageHeight = 600;
this.PageWidth = 750;
this.Master.EnableCopyBtn = false;
this.Master.EnableDeleteBtn = false;
this.Master.EnableNewBtn = false;
this.Master.EnableEditBtn = false;
this.Master.EnableViewBtn = false;
if (!IsPostBack)
{
CurQueryEntity.FieldByName("ZSBZ").Value = "N";
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (Request.Form["BBYS"] != null)
{
string sRepXML = Request.Form["BBYS"].ToString();
string sCPWLML = Request.Form["CPWLML"].ToString();
ReadBBYS(sRepXML, sCPWLML);
}
}
#endregion
#region 模板事件继承
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = "select 1 from XLXSCPWLMX where 1<>1";
base.Master_OnStandardQuery(sender, e);
DataSet ds = GetTable();
entity.GridDataBind(grdContentGrid, tSession);
entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdContentGrid.DataSource = ds;
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = "select 1 from XLXSCPWLMX where 1<>1";
base.moduleGV_PageIndexChanging(sender, e);
grdContentGrid.SelectedIndex = -1;
DataSet ds = GetTable();
entity.GridDataBind(grdContentGrid, tSession);
entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdContentGrid.DataSource = ds;
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
base.moduleGV_RowDataBound(sender, e);
}
protected override void ReportRecordSetAdd()
{
base.InitEntityByCondition();
DataSet ds = GetTable();
AddUserReportDataSet("CX_CPWLCLYLHZ", ds);
base.ReportRecordSetAdd();
}
protected override void ReportDataSetAdd()
{
string strs = Getfield();
if (!strs.Equals(""))
{
foreach (string strx in strs.Split(';'))
{
AddUserReportField("CX_CPWLCLYLHZ", strx.Split(',')[0], strx.Split(',')[1], "S");
}
}
base.ReportDataSetAdd();
}
#endregion
#region 自定义函数
private bool IFCZKB(string sCPWLMLID) //是否有栏目栏未关联物料
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select top 1 XLXSCPWLMX_WLID,WL_MC,XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC ");
sql.Add(" from XLXSCPWLMX ");
sql.Add(" left join WL on WL_WLID = XLXSCPWLMX_WLID ");
sql.Add(" left join XLXLB on XLXLB_WLID=XLXSCPWLMX_WLID ");
sql.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end and XLXSCLQD_XLGGID=XLXLB_XLGGID and XLXSCLQD_XLBZID=XLXLB_XLBZID and XLXSCLQD_DYDJID=XLXLB_DYDJID ");
sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add(" where XLXSCPWLMX_CPWLMLID = :pCPWLMLID");
sql.Add(" and XLXSCLQD_WPID='ZZZZ' and isnull(XLXSCLQD_JGCZBID,' ')<>' ' and XLJGCZBLM_ZDLMLX='4' and isnull(XLJGCZBLM_BJCLID,' ')=' '");
sql.ParamByName("pCPWLMLID").Value = sCPWLMLID;
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
string sWL = ds.Tables[0].Rows[0]["XLXSCPWLMX_WLID"].ToString().Trim();
string sCZB = ds.Tables[0].Rows[0]["XLJGCZBLM_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["XLJGCZBLM_JGCZBBBID"].ToString().Trim();
string sYLLM = ds.Tables[0].Rows[0]["XLJGCZBLM_CZBLMBH"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["XLJGCZBLM_CZBLMMC"].ToString().Trim();
ShowMessage(sWL + "物料所属尺重表【" + sCZB + "】的用量栏目【" + sYLLM + "】尚未匹配报价材料!");
return true;
}
return false;
}
private DataSet GetTable()
{
base.InitEntityByCondition();
grdContentGrid.Columns.Clear();
DataTable dt = new DataTable();
dt.Columns.Add("XLXSCPWLMX_WLID", typeof(string));
AddColumn("XLXSCPWLMX_WLID", "物料编码", 100);
dt.Columns.Add("WLXX", typeof(string));
AddColumn("WLXX", "物料信息", 200);
dt.Columns.Add("XLXLB_XLXHID", typeof(string));
AddColumn("XLXLB_XLXHID", "型号", 120);
dt.Columns.Add("XLXLB_XLGGID", typeof(string));
AddColumn("XLXLB_XLGGID", "规格", 120);
dt.Columns.Add("XLBZ", typeof(string));
AddColumn("XLBZ", "标准", 80);
dt.Columns.Add("XLXLB_DYDJID", typeof(string));
AddColumn("XLXLB_DYDJID", "电压等级", 80);
if (CurQueryEntity.FieldByName("ZSBZ").Value.Trim().Equals("Y"))
{
dt.Columns.Add("JLDW", typeof(string));
AddColumn("JLDW", "尺重表计量单位", 100);
dt.Columns.Add("CLZL", typeof(double));
AddColumn("CLZL", "材料重量", 3, 80);
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select distinct XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC from XLXSBJCL, ");
sql.Add("(select distinct XLJGCZBLM_BJCLID from XLXSCPWLMX ");
sql.Add(" left join XLXLB on XLXLB_WLID=XLXSCPWLMX_WLID ");
sql.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end and XLXSCLQD_XLGGID=XLXLB_XLGGID and XLXSCLQD_XLBZID=XLXLB_XLBZID and XLXSCLQD_DYDJID=XLXLB_DYDJID ");
sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add(" where XLXSCPWLMX_CPWLMLID = :pCPWLMLID");
sql.Add(" and XLXSCLQD_WPID='ZZZZ' and isnull(XLXSCLQD_JGCZBID,' ')<>' ' and XLJGCZBLM_ZDLMLX='4') A where XLXSBJCL_BJCLID = A.XLJGCZBLM_BJCLID order by XLXSBJCL_BJCLID");
sql.ParamByName("pCPWLMLID").Value = CurQueryEntity.FieldByName("CPWLML").Value.Trim();
DataSet ds = dberp.OpenDataSet(sql);
string sKZLM = "";
int KZLMCount = 0;
if (ds.Tables[0].Rows.Count > 0)
{
KZLMCount = ds.Tables[0].Rows.Count;
foreach (DataRow row in ds.Tables[0].Rows)
{
if (!sKZLM.Equals(""))
{
sKZLM += ",";
}
dt.Columns.Add(row[0].ToString().Trim(), typeof(double));
AddColumn(row[0].ToString().Trim(), row[1].ToString().Trim(),6, 100);
sKZLM += row[0].ToString().Trim();
}
}
sql.Clear();
ds.Clear();
sql.Add("select XLXSCPWLMX_WLID,WL_MC,WL_GG,WL_TZ,WL_CL,case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end as XLXLB_XLXHID,XLXLB_XLGGID,rtrim(XLBZ_XLBZID) || '|' || XLBZ_XLBZLXMC as XLBZ,XLXLB_DYDJID,XLXSCLQD_CLZL,XLJGCZBML_CZBJLDW ");
sql.Add(" from XLXSCPWLMX left join WL on WL_WLID = XLXSCPWLMX_WLID ");
sql.Add(" left join XLXLB on XLXLB_WLID = XLXSCPWLMX_WLID ");
sql.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end and XLXSCLQD_XLGGID=XLXLB_XLGGID and XLXSCLQD_XLBZID=XLXLB_XLBZID and XLXSCLQD_DYDJID=XLXLB_DYDJID ");
sql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBML_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add(" left join XLBZ on XLBZ_XLBZID = XLXLB_XLBZID where 1=1 ");
sql.Add(" and XLXSCPWLMX_CPWLMLID = :pCPWLMLID");
sql.ParamByName("pCPWLMLID").Value = CurQueryEntity.FieldByName("CPWLML").Value.Trim();
sql.Add(" order by XLXSCPWLMX_WLID ");
ds = dberp.OpenDataSet(sql);
int rowsCount = 0;
if (ds.Tables[0].Rows.Count > 0)
{
rowsCount = ds.Tables[0].Rows.Count;
string sRow = "";
string sWLXX = "";
string sJLDW = "";
foreach (DataRow row in ds.Tables[0].Rows)
{
string sHSXS = "1";
string dJLDW = row["XLJGCZBML_CZBJLDW"].ToString().Trim();
if (dJLDW.Equals("1"))
sJLDW = "Km";
else if (dJLDW.Equals("2"))
sJLDW = "M";
string sBJU003 = string.IsNullOrEmpty(XLBJDUtils.GetDefaultBJU003(GetOption("BJU003"))) ? "Km" : XLBJDUtils.GetDefaultBJU003(GetOption("BJU003"));
if (!sBJU003.Equals(sJLDW))
{
if (dJLDW.Equals("1"))
sHSXS = "1000";
else if (dJLDW.Equals("2"))
sHSXS = "0.001";
}
sWLXX = row["WL_MC"].ToString().Trim() + " " + row["WL_GG"].ToString().Trim() + " " + row["WL_TZ"].ToString().Trim() + " " + row["WL_CL"].ToString().Trim();
sRow = row["XLXSCPWLMX_WLID"].ToString().Trim() + "," + sWLXX + "," + row["XLXLB_XLXHID"].ToString().Trim() + "," + row["XLXLB_XLGGID"].ToString().Trim();
sRow += "," + row["XLBZ"].ToString().Trim() + "," + row["XLXLB_DYDJID"].ToString().Trim() + "," + sJLDW + "," + sHSXS;
if (!sKZLM.Equals(""))
{
for (int i = 0; i < KZLMCount; i++)
{
sRow += ",0";
}
}
DataRow dtrow = dt.NewRow();
dtrow.ItemArray = sRow.Split(',');
dt.Rows.Add(dtrow);
}
}
sql.Clear();
sql.Add("select XLJGCZBLM_BJCLID,XLJGCZBLM_CLQDL,XLXLB_WLID,XLXSCLQD_CLZL, ");
sql.Add("XLXSCLQD_SL01,XLXSCLQD_SL02,XLXSCLQD_SL03,XLXSCLQD_SL04,XLXSCLQD_SL05,XLXSCLQD_SL06,XLXSCLQD_SL07,XLXSCLQD_SL08,XLXSCLQD_SL09,XLXSCLQD_SL10,");
sql.Add("XLXSCLQD_SL11,XLXSCLQD_SL12,XLXSCLQD_SL13,XLXSCLQD_SL14,XLXSCLQD_SL15,XLXSCLQD_SL16,XLXSCLQD_SL17,XLXSCLQD_SL18,XLXSCLQD_SL19,XLXSCLQD_SL20,");
sql.Add("XLXSCLQD_SL21,XLXSCLQD_SL22,XLXSCLQD_SL23,XLXSCLQD_SL24,XLXSCLQD_SL25,XLXSCLQD_SL26,XLXSCLQD_SL27,XLXSCLQD_SL28,XLXSCLQD_SL29,XLXSCLQD_SL30,");
sql.Add("XLXSCLQD_SL31,XLXSCLQD_SL32,XLXSCLQD_SL33,XLXSCLQD_SL34,XLXSCLQD_SL35,XLXSCLQD_SL36,XLXSCLQD_SL37,XLXSCLQD_SL38,XLXSCLQD_SL39,XLXSCLQD_SL40,");
sql.Add("XLXSCLQD_SL41,XLXSCLQD_SL42,XLXSCLQD_SL43,XLXSCLQD_SL44,XLXSCLQD_SL45,XLXSCLQD_SL46,XLXSCLQD_SL47,XLXSCLQD_SL48,XLXSCLQD_SL49,XLXSCLQD_SL50,");
sql.Add("XLXSCLQD_SL51,XLXSCLQD_SL52,XLXSCLQD_SL53,XLXSCLQD_SL54,XLXSCLQD_SL55,XLXSCLQD_SL56,XLXSCLQD_SL57,XLXSCLQD_SL58,XLXSCLQD_SL59,XLXSCLQD_SL60,");
sql.Add("XLXSCLQD_SL61,XLXSCLQD_SL62,XLXSCLQD_SL63,XLXSCLQD_SL64,XLXSCLQD_SL65,XLXSCLQD_SL66,XLXSCLQD_SL67,XLXSCLQD_SL68,XLXSCLQD_SL69,XLXSCLQD_SL70,");
sql.Add("XLXSCLQD_SL71,XLXSCLQD_SL72,XLXSCLQD_SL73,XLXSCLQD_SL74,XLXSCLQD_SL75,XLXSCLQD_SL76,XLXSCLQD_SL77,XLXSCLQD_SL78,XLXSCLQD_SL79,XLXSCLQD_SL80 ");
sql.Add("from XLXSCLQD ");
sql.Add("left join ");
sql.Add("(select case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end as XLXLB_XLXHID, ");
sql.Add(" XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_WLID");
sql.Add(" from XLXLB left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" ) XLXLB ");
sql.Add("on XLXLB_XLXHID = XLXSCLQD_XLXHID and XLXLB_XLGGID = XLXSCLQD_XLGGID and XLXLB_XLBZID = XLXSCLQD_XLBZID and XLXLB_DYDJID = XLXSCLQD_DYDJID ");
sql.Add("left join XLXSCPWLMX on XLXSCPWLMX_WLID = XLXLB_WLID ");
sql.Add("left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add("where XLXSCPWLMX_CPWLMLID = :pCPWLMLID and XLXLB_WLID = :pWLID and XLJGCZBLM_BJCLID = :pCLID ");
sql.Add(" and XLJGCZBLM_ZDLMLX='4' and XLXSCLQD_WPID='ZZZZ' and isnull(XLXSCLQD_JGCZBID,' ')<>' ' ");
for (int i = 0; i < rowsCount;i++ )
{
string sWLID = dt.Rows[i]["XLXSCPWLMX_WLID"].ToString().Trim();
double dCLZL = 0;
for (int j = 0; j < KZLMCount; j++)
{
double dYL = 0;
string sYL = "0";
double dLYL = 0;
string sSLL = "";
string sCLID = dt.Columns[j + 8].ColumnName.Trim();
double dHSXS = CMISproConvert.StrToFloat(dt.Rows[i]["CLZL"].ToString().Trim());
sql.ParamByName("pCPWLMLID").Value = CurQueryEntity.FieldByName("CPWLML").Value.Trim();
sql.ParamByName("pWLID").Value = sWLID;
sql.ParamByName("pCLID").Value = sCLID;
ds.Clear();
ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
sSLL = row["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("列", "");
sSLL = sSLL.Replace("第", "XLXSCLQD_SL");
dLYL = CMISproConvert.StrToFloat(row[sSLL].ToString().Trim());
dYL += dLYL;
}
dYL = dYL * dHSXS;
dYL = NumberUtils.RoundX(dYL, 6);
if (dYL != 0)
sYL = strPadRight(dYL.ToString().Trim(), 6);
}
dCLZL += dYL;
dt.Rows[i][j + 8] = sYL;
}
dCLZL = NumberUtils.RoundX(dCLZL, 3);
string stempCLZL = dCLZL.ToString().Trim();
if (stempCLZL.Equals("") || stempCLZL.Equals("0"))
stempCLZL = "0";
else
stempCLZL = strPadRight(stempCLZL, 3);
dt.Rows[i]["CLZL"] = stempCLZL;
}
}
else
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select XLXSCPWLMX_WLID,WL_MC,WL_GG,WL_TZ,WL_CL,case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end as XLXLB_XLXHID,XLXLB_XLGGID,rtrim(XLBZ_XLBZID) || '|' || XLBZ_XLBZLXMC as XLBZ,XLXLB_DYDJID ");
sql.Add(" from XLXSCPWLMX left join WL on WL_WLID = XLXSCPWLMX_WLID ");
sql.Add(" left join XLXLB on XLXLB_WLID = XLXSCPWLMX_WLID ");
sql.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" left join XLBZ on XLBZ_XLBZID = XLXLB_XLBZID where 1=1 ");
sql.Add(" and XLXSCPWLMX_CPWLMLID = :pCPWLMLID");
sql.ParamByName("pCPWLMLID").Value = CurQueryEntity.FieldByName("CPWLML").Value.Trim();
sql.Add(" order by XLXSCPWLMX_WLID ");
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
string sRow = "";
string sWLXX = "";
foreach (DataRow row in ds.Tables[0].Rows)
{
sWLXX = row["WL_MC"].ToString().Trim() + " " + row["WL_GG"].ToString().Trim() + " " + row["WL_TZ"].ToString().Trim() + " " + row["WL_CL"].ToString().Trim();
sRow = row["XLXSCPWLMX_WLID"].ToString().Trim() + "," + sWLXX + "," + row["XLXLB_XLXHID"].ToString().Trim() + "," + row["XLXLB_XLGGID"].ToString().Trim();
sRow += "," + row["XLBZ"].ToString().Trim() + "," + row["XLXLB_DYDJID"].ToString().Trim();
DataRow dtrow = dt.NewRow();
dtrow.ItemArray = sRow.Split(',');
dt.Rows.Add(dtrow);
}
}
}
DataSet dss = new DataSet();
dss.Tables.Add(dt);
return dss;
}
private string Getfield()
{
base.InitEntityByCondition();
string Restr = "";
Restr += "XLXSCPWLMX_WLID,物料编码";
Restr += ";WLXX,物料信息";
Restr += ";XLXLB_XLXHID,型号";
Restr += ";XLXLB_XLGGID,规格";
Restr += ";XLBZ,标准";
Restr += ";XLXLB_DYDJID,电压等级";
if (CurQueryEntity.FieldByName("ZSBZ").Value.Trim().Equals("Y"))
{
Restr += ";JLDW,尺重表计量单位";
Restr += ";CLZL,材料重量";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select distinct XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLJGCZBML_CZBJLDW from XLXSBJCL, ");
sql.Add("(select distinct XLJGCZBLM_BJCLID,XLJGCZBML_CZBJLDW from XLXSCPWLMX ");
sql.Add(" left join XLXLB on XLXLB_WLID=XLXSCPWLMX_WLID ");
sql.Add(" left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
sql.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=case when isnull(XSBJXHTH_BJXLXHID,' ') = ' ' then XLXLB_XLXHID else XSBJXHTH_BJXLXHID end and XLXSCLQD_XLGGID=XLXLB_XLGGID and XLXSCLQD_XLBZID=XLXLB_XLBZID and XLXSCLQD_DYDJID=XLXLB_DYDJID ");
sql.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBML_JGCZBBBID=XLXSCLQD_JGCZBBBID ");
sql.Add(" where XLXSCPWLMX_CPWLMLID = :pCPWLMLID");
sql.Add(" and XLXSCLQD_WPID='ZZZZ' and isnull(XLXSCLQD_JGCZBID,' ')<>' ' and XLJGCZBLM_ZDLMLX='4') A where XLXSBJCL_BJCLID = A.XLJGCZBLM_BJCLID order by XLXSBJCL_BJCLID");
sql.ParamByName("pCPWLMLID").Value = CurQueryEntity.FieldByName("CPWLML").Value.Trim();
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
Restr += ";" + row["XLXSBJCL_BJCLID"].ToString().Trim() + "," + row["XLXSBJCL_BJCLMC"].ToString().Trim();
}
}
}
return Restr;
}
static public bool SayYes(string sMessage, System.Web.UI.WebControls.HiddenField txtConfirmValue, string btnSaveName, System.Web.UI.Page page)
{
StringBuilder sScript = new StringBuilder();
sScript.Append("function ClearConfirmValue(txtName)");
sScript.Append("{ ");
sScript.Append(" var txtConfirmValue = document.getElementById(txtName);");
sScript.Append(" txtConfirmValue.value = '';");
sScript.Append("} ");
sScript.Append("function ShowConfirm(sMessage,btnName,txtName)");
sScript.Append("{ ");
sScript.Append(" try ");
sScript.Append(" { ");
sScript.Append(" var btnRunAfterConfirm = document.getElementById(btnName);");
sScript.Append(" if(btnRunAfterConfirm == null)");
sScript.Append(" { ");
sScript.Append(" alert('传入的按钮错误!');return;");
sScript.Append(" }");
sScript.Append(" var txtConfirmValue = document.getElementById(txtName);");
sScript.Append(" if(txtConfirmValue == null)");
sScript.Append(" {");
sScript.Append(" alert('传入控件错误!');return;");
sScript.Append(" }");
sScript.Append(" if(confirm(sMessage))");
sScript.Append(" { ");
sScript.Append(" txtConfirmValue.value = 'true'; ");
sScript.Append(" btnRunAfterConfirm.click(); ");
sScript.Append(" } ");
sScript.Append(" } ");
sScript.Append(" catch(e) ");
sScript.Append(" {} ");
sScript.Append("} ");
sScript.Append("function RunClearConfirmValue() ");
sScript.Append("{ ");
sScript.Append(" ClearConfirmValue('" + txtConfirmValue.ClientID + "');");
sScript.Append("} ");
sScript.Append("function RunShowConfirm() ");
sScript.Append("{ ");
sScript.Append(" ShowConfirm('" + sMessage.Replace("\r\n", "\\r").Replace("\n", "\\r") + "','" + btnSaveName + "','" + txtConfirmValue.ClientID + "');");
sScript.Append("} ");
sScript.Append("function RunOne() ");
sScript.Append("{ ");
sScript.Append(" window.setTimeout(\"RunClearConfirmValue()\",1);");
sScript.Append("} ");
sScript.Append("function RunTwo() ");
sScript.Append("{ ");
sScript.Append(" window.setTimeout(\"RunShowConfirm()\",1);");
sScript.Append("} ");
bool bIsNotNeedShowConfirm = txtConfirmValue.Value.Trim() == "true" ? true : false;
if (bIsNotNeedShowConfirm)
{
sScript.Append("RunOne(); ");
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "RunClearConfirmValue", sScript.ToString(), true);
return true;
}
else
{
sScript.Append("RunTwo();");
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "RunShowConfirm", sScript.ToString(), true);
return false;
}
}
protected void OpenBB(string sCPWLML)
{
string sWizard = "";
string sBBYSJS = "";
string sReportizard = "";
string sBBMB = "";
//导入前的缺省样式
string sXML = "<?xml version=\"1.0\" encoding=\"GB2312\"?><Report Version=\"1.3\" Name=\"新报表\" Created=\"2020-11-05 10:22:13\" Modified=\"2020-11-05 "
+ "10:22:13\" PaperWidth=\"8268\" PaperHeight=\"11693\" RowCount=\"1\" ColumnCount="
+ "\"7\"><DataSets></DataSets><Variables></Variables><AliasList></AliasList><Images></Images><Rows></Rows><Columns><Column Column=\"4\" Width="
+ "\"1271\"/></Columns><Cells><Style Type=\"A\" DisplayFormat=\"\" FontName=\"宋体\" FontSize=\"9\" FontColor=\"#000000\" FontBold=\"N\" "
+ "FontItalic=\"N\" FontUnderline=\"N\" FontStrikeout=\"N\" LeftBorderStyle=\"0\" LeftBorderColor=\"#000000\" LeftBorderWidth=\"0\" "
+ "TopBorderStyle=\"0\" TopBorderColor=\"#000000\" TopBorderWidth=\"0\" RightBorderStyle=\"0\" RightBorderColor=\"#000000\" RightBorderWidth="
+ "\"0\" BottomBorderStyle=\"0\" BottomBorderColor=\"#000000\" BottomBorderWidth=\"0\" DiagLT2RBStyle=\"0\" DiagLT2RBColor=\"#000000\" "
+ "DiagLT2RBWidth=\"0\" DiagLB2RTStyle=\"0\" DiagLB2RTColor=\"#000000\" DiagLB2RTWidth=\"0\" Color=\"#FFFFFF\" Transparent=\"N\" Pattern=\"1\" "
+ "PatternColor=\"#000000\" HAlignment=\"A\" VAlignment=\"C\" LeftMargin=\"39\" TopMargin=\"39\" RightMargin=\"39\" BottomMargin=\"39\" "
+ "ThreePartText=\"N\" TextControl=\"C\" LineSpace=\"1\" Locked=\"N\" Preview=\"Y\" Print=\"Y\" SmallFontWordWrap=\"N\" FormatFont=\"N\"><Cell "
+ "Row=\"0\" Column=\"0\" Name=\"新报表\"/></Style><Style FontSize=\"12\" FontBold=\"Y\" HAlignment=\"C\"><Cell Row=\"1\" Column=\"1\" Value=\"物料编码\"/>"
+ "</Style></Cells></Report>";
byte[] b4 = new byte[0];
b4 = Encoding.Default.GetBytes(sXML);
byte[] zipbuf4 = ZlibCompress.CompressBytes(b4);
sBBMB = Convert.ToBase64String(zipbuf4);
try
{
string sRun = string.Format("document.all.ActiveXBBForBBYS.OperationType = 'DesignReport';document.all.ActiveXBBForBBYS.EncodedReport = \'{0}\';", sBBMB);
sBBYSJS = @" <script language='JavaScript' for='ActiveXBBForBBYS' event='OnSave'> "
+ " function AddPostParam1(sParamsPref, sParamName, sParamValue) "
+ " { "
+ " if (sParamsPref.length > 0) "
+ " sParamsPref += '&'; "
+ " return sParamsPref + encodeURIComponent(sParamName) + '=' + "
+ " encodeURIComponent(sParamValue); "
+ " } "
+ " function ShowCodeClassDialog1(executor, eventArgs) "
+ " { "
+ " top._GT_CURRENT.owner.document.getElementById('ctl00_CPHButton_btnRefresh').click();"
+ " top._GT_CURRENT.owner.GT_MinWindow._close();"
+ " if (executor.get_responseAvailable()) "
+ " { "
+ " } "
+ " else "
+ " { "
+ " if (executor.get_timedOut()) "
+ " { "
+ " alert('连接超时!'); "
+ " } "
+ " else if (executor.get_aborted()) "
+ " { "
+ " alert('操作被终止!'); "
+ " } "
+ " } "
+ " } "
+ " function SaveBB(sBBYS) "
+ " { "
+ " var sParams = ''; "
+ " sParams = AddPostParam1(sParams, 'BBYS', sBBYS); "
+ " sParams = AddPostParam1(sParams, 'CPWLML', '" + sCPWLML + "'); "
+ " var wRequest = new Sys.Net.WebRequest(); "
+ " wRequest.set_url('../../components/N_XLXSBJ/CPWLCLLYHZList.aspx'); "
+ " wRequest.set_httpVerb('POST'); "
+ " wRequest.set_body(sParams); "
+ " wRequest.add_completed(ShowCodeClassDialog1); "
+ " wRequest.invoke(); "
+ " } "
+ " SaveBB(ActiveXBBForBBYS.EncodedReport); "
+ " </script> ";
TPageParams tpp = new TPageParams();
tpp.Title = "按复制内容导入";
tpp.UrlPath = "../N_MODEL/Dialog/BBYS_YSSJ.aspx";
tpp.AddString("BBLink", "Y");
tpp.AddExtString("sRun", sRun.Trim());
tpp.AddExtString("Save", sBBYSJS);
tpp.AddExtString("Wizard", sWizard);
tpp.AddExtString("ReportWizard", sReportizard);
tpp.AddString("FormTitle", "报表样式");
OpenFuncModuleDialog(100210034, tpp);
}
catch
{
ShowMessage("打开报表失败!");
}
}
public void ReadBBYS(string sRep, string sCPWLML)
{
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
dicDRMXBZ.Clear();
TContextDatabases.GetDatabase("DBERP").ExecSQL("delete from XLXSCPWLMX where XLXSCPWLMX_CPWLMLID = '" + sCPWLML + "'");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
byte[] b = Convert.FromBase64String(sRep);
string sBBMB = "";
string sRow = "";//sRow变量:记录元组的行号,用于在换行时赋值为上一条数据的问题
string sValue = "";
string sWLID = "";
string sCPWLMLID = sCPWLML;
byte[] zipbuf = new byte[0];
zipbuf = ZlibCompress.DecompressBytes(b);
sBBMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length);
if (!string.IsNullOrEmpty(sBBMB.Trim()))
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(sBBMB);
XmlNode XmlRoot = xml.SelectSingleNode("Report");
XmlNodeList XmlRootList = XmlRoot.SelectNodes("Cells");
try
{
dberp.BeginTrans();
foreach (XmlNode XmlKey in XmlRootList)
{
for (int i = 0; i < XmlKey.ChildNodes.Count; i++)
{
XmlNode XmlKeyC = XmlKey.ChildNodes[i];
for (int j = 0; j < XmlKeyC.ChildNodes.Count; j++)
{
if (float.Parse(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim()) >= 2)
{
//判断是否换行了
if (!sRow.Equals(XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim()))
{
#region 换行时,插入前一行数据
if (!sRow.Equals(""))
{
string tmpWLID = sWLID;
string tmpCPWLML = sCPWLMLID;
sSQL.Clear();
sSQL.Add(" insert into XLXSCPWLMX ");
sSQL.Add(" (XLXSCPWLMX_CPWLMLID,XLXSCPWLMX_WLID,XLXSCPWLMX_WHR,XLXSCPWLMX_WHRID,XLXSCPWLMX_WHSJ) ");
sSQL.Add(" values(");
sSQL.Add(" :XLXSCPWLMX_CPWLMLID,:XLXSCPWLMX_WLID,:XLXSCPWLMX_WHR,:XLXSCPWLMX_WHRID,:XLXSCPWLMX_WHSJ");
sSQL.Add(" )");
sSQL.ParamByName("XLXSCPWLMX_CPWLMLID").Value = tmpCPWLML;
sSQL.ParamByName("XLXSCPWLMX_WLID").Value = tmpWLID;
sSQL.ParamByName("XLXSCPWLMX_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSCPWLMX_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSCPWLMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
dberp.ExecSQL(sSQL);
}
#endregion
sRow = XmlKeyC.ChildNodes[j].Attributes["Row"].Value.Trim();
}
sValue = XmlKeyC.ChildNodes[j].Attributes["Value"].Value.Trim();
if (XmlKeyC.ChildNodes[j].Attributes["Column"].Value.Trim() == "1")
{
sWLID = sValue;
}
}
}
}
}
#region 插入最后一行
if (!sRow.Equals(""))
{
string tmpWLID = sWLID;
string tmpCPWLML = sCPWLMLID;
sSQL.Clear();
sSQL.Add(" insert into XLXSCPWLMX ");
sSQL.Add(" (XLXSCPWLMX_CPWLMLID,XLXSCPWLMX_WLID,XLXSCPWLMX_WHR,XLXSCPWLMX_WHRID,XLXSCPWLMX_WHSJ) ");
sSQL.Add(" values(");
sSQL.Add(" :XLXSCPWLMX_CPWLMLID,:XLXSCPWLMX_WLID,:XLXSCPWLMX_WHR,:XLXSCPWLMX_WHRID,:XLXSCPWLMX_WHSJ");
sSQL.Add(" )");
sSQL.ParamByName("XLXSCPWLMX_CPWLMLID").Value = tmpCPWLML;
sSQL.ParamByName("XLXSCPWLMX_WLID").Value = tmpWLID;
sSQL.ParamByName("XLXSCPWLMX_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSCPWLMX_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSCPWLMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
dberp.ExecSQL(sSQL);
}
#endregion
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
}
}
}
private string strPadRight(string s, int x)
{
string str = s;
if (str.Split('.').Length == 2)
{
str = str.Split('.')[0] + "." + str.Split('.')[1].PadRight(x, '0');
}
else
{
string tmp = "0";
if (x > 0)
{
tmp = tmp.PadRight(x, '0');
str = str + "." + tmp;
}
}
return str;
}
#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;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etCheckBox;
grdContentGrid.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;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdContentGrid.ColumnsEx.Insert(0, ColumnEx);
}
private void AddColumn(string sDataField, string HeadText,string sRight, 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;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdContentGrid.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;
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etNumber;
ColumnEx.ShowHint = true;
ColumnEx.ShowZero = false;
ColumnEx.NumberDecimalPlace = NumberDecimalPlace;
grdContentGrid.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);
grdContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etDateTime;
ColumnEx.DateTimeEditKins = DateTimeKind;
grdContentGrid.ColumnsEx.Insert(0, ColumnEx);
}
#endregion
#region 控件事件
protected void btnDR_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
if(CurQueryEntity.FieldByName("CPWLML").Value.Trim().Equals(""))
{
ShowMessage("请先选择产品物料目录进行查询!");
return;
}
if (CMISproDataBase.ExistsRecord("DBERP","select 1 from XLXSCPWLMX where XLXSCPWLMX_CPWLMLID = '" + CurQueryEntity.FieldByName("CPWLML").Value.Trim() + "'"))
{
if (!SayYes("是否清空已有记录重新导入?", txtInfo, btnDR.ClientID + "Button", this))
return;
}
OpenBB(CurQueryEntity.FieldByName("CPWLML").Value.Trim());
}
protected void btnZS_Click(object sender, EventArgs e)
{
base.InitEntityByCondition();
if (CurQueryEntity.FieldByName("CPWLML").Value.Trim().Equals(""))
{
ShowMessage("请先选择产品物料目录进行查询!");
return;
}
if (IFCZKB(CurQueryEntity.FieldByName("CPWLML").Value.Trim()))
return;
else
{
LoadQueryCondition();
queryentity.FieldByName("ZSBZ").Value = "Y";
UpdateQueryCondition();
Master_OnStandardQuery(null, null);
FormAreaUpdate();
}
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
Master_OnStandardQuery(null, null);
FormAreaUpdate();
}
#endregion
}
}