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 = ""; byte[] b4 = new byte[0]; b4 = Encoding.Default.GetBytes(sXML); byte[] zipbuf4 = ZlibCompress.CompressBytes(b4); sBBMB = Convert.ToBase64String(zipbuf4); try { string sRun = string.Format("document.all.ActiveXBBForBBYS.OperationType = 'DesignReport';document.all.ActiveXBBForBBYS.EncodedReport = \'{0}\';", sBBMB); sBBYSJS = @" "; TPageParams tpp = new TPageParams(); tpp.Title = "按复制内容导入"; tpp.UrlPath = "../N_MODEL/Dialog/BBYS_YSSJ.aspx"; tpp.AddString("BBLink", "Y"); tpp.AddExtString("sRun", sRun.Trim()); tpp.AddExtString("Save", sBBYSJS); tpp.AddExtString("Wizard", sWizard); tpp.AddExtString("ReportWizard", sReportizard); tpp.AddString("FormTitle", "报表样式"); OpenFuncModuleDialog(100210034, tpp); } catch { ShowMessage("打开报表失败!"); } } public void ReadBBYS(string sRep, string sCPWLML) { Dictionary dicDRMXBZ = new Dictionary(); 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增加列 /// /// 设置etCheckBox列的属性 /// /// /// /// /// 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); } /// /// 设置etString列的属性 /// /// /// /// 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); } /// /// 设置etNumber列的属 /// /// /// /// /// 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); } /// /// 设置etDateTime列的属性 /// /// /// /// /// 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 } }