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 System.Collections.Generic; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO; namespace GThinking.U20261363_N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSCLQD", Umid = 100860174, IsWorkFlow = false, IsAttach = false, UseWhr = false)] public class XLBJD_JGECBZS : EntityManager { } public partial class XLBJD_JGECBZSList : SingleGridBase { XLBJD_JGECBZS entity = new XLBJD_JGECBZS(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860174; this.UMName = "成本追溯"; this.CurMaster = Master; this.ModuleGV = grdContentGrid; this.CurEntity = entity; this.PageWidth = 700; this.PageHeight = 500; Master.EnableQueryBtn = false; Master.EnableAttachBtn = false; Master.EnableNewBtn = false; Master.EnableViewBtn = false; Master.EnableEditBtn = false; Master.EnableCopyBtn = false; Master.EnableDeleteBtn = false; base.InitPage(); ModuleGV.OnClientDblClick = "return false;"; grdContentGrid.FindColumnByFieldName("px0").Visible = false; if (GetOption(100860000, "BJU002") != null) { grdContentGrid.FindColumnExByFieldName("CLCB").NumberDecimalPlace = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2); txtCLCB.DecimalPlaces = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2); } if (GetOption(100860000, "BJU003") != null) { grdContentGrid.FindColumnByFieldName("CLSL").HeaderText = "材料用量(Kg/" + GetOption(100860000, "BJU003") + ")"; grdContentGrid.FindColumnByFieldName("CLCB").HeaderText = "材料成本(元/" + GetOption(100860000, "BJU003") + ")"; lblDW.Text = "元/" + GetOption(100860000, "BJU003") + ""; } if (!IsPostBack) { Master_OnStandardQuery(null, null); lblBJCP.Text = GetBJCP(); } grdContentGrid.FindColumnExByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal; } #region 模板继承事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { entity.EntityTable.QuerySelSql = "select 1 from XLXSCLQD 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) { entity.EntityTable.QuerySelSql = "select 1 from XLXSCLQD 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) { if (e.Row.RowType == DataControlRowType.DataRow) { //TZCLHQ=Y说明可以调整材料行情 if (PageParam.GetRTrimString("TZCLHQ").Equals("Y") && PageParam.GetRTrimString("CANEDIT").Equals("Y")) { //材料价格 e.Row.Cells[4].Text = string.Format("" + strPadRight(e.Row.Cells[4].Text.ToString().Trim(), XLBJDUtils.BJCLPriceDecimal) + "", e.Row.Cells[0].Text.Trim(), e.Row.Cells[1].Text.Trim(), e.Row.Cells[3].Text.Trim()); } } base.moduleGV_RowDataBound(sender, e); } protected override void ReportRecordSetAdd() { DataSet ds = GetTable(); AddUserReportDataSet("XLXSBJDMXCLCB", ds); base.ReportRecordSetAdd(); } protected override void ReportDataSetAdd() { DataSet ds = GetTable(); for (int i = 0; i < grdContentGrid.Columns.Count; i++) { string sDataField = ((System.Web.UI.WebControls.BoundField)(grdContentGrid.Columns[i])).DataField.ToString().Trim(); string sHeaderText = grdContentGrid.Columns[i].HeaderText; AddUserReportField("XLXSBJDMXCLCB", sDataField, sHeaderText, "S"); } base.ReportDataSetAdd(); } #endregion #region 自定义事件 private DataSet GetTable() { string sBJDID = PageParam.GetRTrimString("BJDID"); string sXH = PageParam.GetRTrimString("XH"); DataSet dsResult = new DataSet(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); Dictionary DicJGYWLID = new Dictionary(); #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 #region 不计入成本栏目 Dictionary DicBJRCLCBLM = new Dictionary(); if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ")) { sql.Clear(); sql.Add(" select BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID and BJDLJZSBJRCBLM_XH=:pXH "); sql.ParamByName("pBJDID").Value = sBJDID; sql.ParamByName("pXH").Value = sXH; DataSet dsJRCBLM = dberp.OpenDataSet(sql); if (dsJRCBLM.Tables[0].Rows.Count > 0) { foreach (DataRow trow in dsJRCBLM.Tables[0].Rows) { string sKey = trow["BJDLJZSBJRCBLM_BJDCLCBLMH"].ToString().Trim(); if (!DicBJRCLCBLM.ContainsKey(sKey)) DicBJRCLCBLM.Add(sKey, sKey); } } } #endregion TSQL tSql = new TSQL(dberp); tSql.Clear(); tSql.Add("select XLXSBJDCLCB_BJDID, XLXSBJDCLCB_XH"); for (int i = 1; i <= 80; i++) { tSql.Add(string.Format(",XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim())); tSql.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())); tSql.Add(string.Format(",XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())); } tSql.Add(" from XLXSBJDCLCB "); tSql.Add(" where XLXSBJDCLCB_BJDID=:pBJDID and XLXSBJDCLCB_XH=:pXH "); tSql.ParamByName("pBJDID").Value = sBJDID; tSql.ParamByName("pXH").Value = sXH; DataSet dsBJCL = dberp.OpenDataSet(tSql); if (dsBJCL.Tables[0].Rows.Count > 0) { DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); dt1.Columns.Add("BJCLID", typeof(string)); dt1.Columns.Add("BJCLMC", typeof(string)); dt1.Columns.Add("BJHQ", typeof(string)); dt1.Columns.Add("WLXX", typeof(string)); dt1.Columns.Add("CLJG", typeof(string)); dt1.Columns.Add("CLSL", typeof(double)); dt1.Columns.Add("px0", typeof(double)); dt1.Columns.Add("CLCB", typeof(double)); dt2.Columns.Add("BJCLID", typeof(string)); dt2.Columns.Add("BJCLMC", typeof(string)); dt2.Columns.Add("BJHQ", typeof(string)); dt2.Columns.Add("WLXX", typeof(string)); dt2.Columns.Add("CLJG", typeof(string)); dt2.Columns.Add("CLSL", typeof(double)); dt2.Columns.Add("px0", typeof(double)); dt2.Columns.Add("CLCB", typeof(double)); for (int i = 1; i <= 80; i++) { string sBJRCBLMKey = i.ToString().PadLeft(2, '0'); string sCLID = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim(); if (sCLID.Equals("")) { //避免出现跳空列的情况 continue; } string sBJCLID = ""; string sWLID = ""; if (sCLID.Contains("|")) { sBJCLID = sCLID.Split('|')[0]; sWLID = sCLID.Split('|')[1]; } else sBJCLID = sCLID; string sCLSL = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim(); double dCLSL = CMISproConvert.StrToFloat(sCLSL); string sCLDJ = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim(); string sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLSL) * CMISproConvert.StrToFloat(sCLDJ), 6).ToString().Trim(); if (dCLSL > 0)//数量大于0的存放在dt1,不大于0的存在dt2 { if (DicJGYWLID.ContainsKey(sWLID)) sWLID = DicJGYWLID[sWLID]; string sWLXX = GetWLXX(sWLID); string sBJCLMC = GetBJCLMC(sBJCLID); if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey)) sBJCLMC += "(不计入成本)"; string sBJHQ = GetBJCLHQ(sBJCLID); DataRow dtrow = dt1.NewRow(); dtrow["BJCLID"] = sBJCLID; dtrow["BJCLMC"] = sBJCLMC; dtrow["BJHQ"] = sBJHQ; dtrow["WLXX"] = sWLXX; dtrow["CLJG"] = sCLDJ; dtrow["CLSL"] = dCLSL; dtrow["px0"] = 0; dtrow["CLCB"] = CMISproConvert.StrToFloat(sCLCB); if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey)) dtrow["CLCB"] = 0; dt1.Rows.Add(dtrow); } } dsResult.Tables.Add(dt1); } txtCLCB.Value = 0; for (int i = 0; i < dsResult.Tables[0].Rows.Count; i++) { txtCLCB.Value += CMISproConvert.StrToFloat(dsResult.Tables[0].Rows[i]["CLCB"].ToString()); } return dsResult; } private string GetBJCLMC(string sBJCLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" select XLXSBJCL_BJCLMC from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID "); sql.ParamByName("pBJCLID").Value = sBJCLID.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) return ds.Tables[0].Rows[0]["XLXSBJCL_BJCLMC"].ToString().Trim(); else return ""; } private string GetBJCLHQ(string sBJCLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" select case XLXSBJCL_BJHQ when '1' then '1|材料行情' else '2|物料行情' end as XLXSBJCL_BJHQ from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID "); sql.ParamByName("pBJCLID").Value = sBJCLID.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) return ds.Tables[0].Rows[0]["XLXSBJCL_BJHQ"].ToString().Trim(); else return ""; } private string GetWLXX(string sWLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select WL_MC,WL_GG from WL where WL_WLID=:pWLID"); sql.ParamByName("pWLID").Value = sWLID.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) return sWLID.Trim() + "|" + ds.Tables[0].Rows[0]["WL_MC"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["WL_GG"].ToString().Trim(); else return sWLID.Trim(); } private string GetBJCP() { string sRetValue = ""; string sXLXHID = PageParam.GetRTrimString("XLXHID"); string sXLGGID = PageParam.GetRTrimString("XLGGID"); string sXLBZID = GetXLBZXX(PageParam.GetRTrimString("XLBZID")); string sDYDJID = PageParam.GetRTrimString("DYDJID"); if (!sXLXHID.Equals("")) { sRetValue = sRetValue + "  " + sXLXHID; } if (!sXLGGID.Equals("")) { sRetValue = sRetValue + "  " + sXLGGID; } if (!sXLBZID.Equals("")) { sRetValue = sRetValue + "  " + sXLBZID; } if (!sDYDJID.Equals("")) { sRetValue = sRetValue + "  " + sDYDJID; } sRetValue = sRetValue.Trim(); return sRetValue; } private string GetXLBZXX(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ_XLBZID from XLBZ where XLBZ_XLBZID= :pXLBZID "); SQL.ParamByName("pXLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } 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 按钮事件 protected void btnTZJG_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLBJD_CLHQTZList.aspx"; pageParams.Title = "调整材料行情" + ":" + txtBJCLID.Value.Trim() + "|" + txtBJCLMC.Value.Trim() + (txtWLXX.Value.Trim().Equals("") ? "" : "【" + txtWLXX.Value.Trim() + "】"); pageParams.AddString("BJFLID", PageParam.GetRTrimString("BJFLID")); pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID")); pageParams.AddString("BJRQ", PageParam.GetRTrimString("BJRQ")); pageParams.AddString("JGBID", PageParam.GetRTrimString("JGBID")); pageParams.AddString("JCLLX", PageParam.GetRTrimString("JCLLX")); pageParams.AddString("LJJCLLX", PageParam.GetRTrimString("LJJCLLX")); pageParams.AddString("BJDHQLY", PageParam.GetRTrimString("BJDHQLY")); pageParams.AddString("BJLY", PageParam.GetRTrimString("BJLY")); pageParams.AddString("ZDXJJCLLX", PageParam.GetRTrimString("ZDXJJCLLX")); pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); pageParams.AddString("HSBZ", PageParam.GetRTrimString("HSBZ")); pageParams.AddString("TBJCLID", PageParam.GetRTrimString("TBJCLID")); pageParams.AddString("LBJCLID", PageParam.GetRTrimString("LBJCLID")); pageParams.AddString("TJ", PageParam.GetRTrimString("TJ")); pageParams.AddString("LJ", PageParam.GetRTrimString("LJ")); pageParams.AddString("CPBJMRXSWS", PageParam.GetRTrimString("CPBJMRXSWS")); pageParams.AddString("JYF", PageParam.GetRTrimString("JYF"));//计运费 pageParams.AddString("YSJDID", PageParam.GetRTrimString("YSJDID"));//运输节点 pageParams.AddString("GYSID", PageParam.GetRTrimString("GYSID"));//运输单位 pageParams.AddString("YFWLID", PageParam.GetRTrimString("YFWLID"));//运费物料 pageParams.AddString("BJHYF", PageParam.GetRTrimString("BJHYF"));//报价含运费 pageParams.AddString("BJCLID", txtBJCLID.Value.Trim()); OpenModuleDialog(100860174, pageParams); } protected void btnRefreshCLHQTZ_Click(object sender, EventArgs e) { int iIndex = grdContentGrid.SelectedIndex; moduleGV_PageIndexChanging(null, null); grdContentGrid.SelectedIndex = iIndex; } protected void lblBJCP_Click(object sender, EventArgs e) { string sJGCZBIDFromJGCZBML = ""; string sJGCZBBBIDFromJGCZBML = ""; string sXLXHID = PageParam.GetRTrimString("XLXHID"); string sXLGGID = PageParam.GetRTrimString("XLGGID"); string sXLBZID = PageParam.GetRTrimString("XLBZID"); string sDYDJID = PageParam.GetRTrimString("DYDJID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add(" select XLXSCLQD_JGCZBID as JGCZBID, XLXSCLQD_JGCZBBBID as JGCZBBBID"); sql.Add(" from XLXSCLQD where 1=1 and XLXSCLQD_WPID ='ZZZZ' "); sql.Add(" and XLXSCLQD_XLXHID = :pXLXHID "); sql.Add(" and XLXSCLQD_XLGGID = :pXLGGID "); sql.Add(" and XLXSCLQD_XLBZID = :pXLBZID "); sql.Add(" and XLXSCLQD_DYDJID = :pDYDJID "); sql.ParamByName("pXLXHID").Value = sXLXHID; sql.ParamByName("pXLGGID").Value = sXLGGID; sql.ParamByName("pXLBZID").Value = sXLBZID; sql.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sJGCZBBBIDFromJGCZBML = ds.Tables[0].Rows[0]["JGCZBBBID"].ToString().Trim(); sJGCZBIDFromJGCZBML = ds.Tables[0].Rows[0]["JGCZBID"].ToString().Trim() + "|" + sJGCZBBBIDFromJGCZBML; } else { ShowMessage("未查询到结构尺重表信息,请在102579008|报价材料用量模块检查该记录是否补充完整并流转结束!"); return; } TPageParams tpp = new TPageParams(); tpp.UrlPath = "../Components/N_XLBJCL/CLQDList.aspx"; tpp.CallAction = TPageCallAction.pcaBrowse; tpp.AddString("JGCZBIDFromJGCZBML", sJGCZBIDFromJGCZBML); tpp.AddString("JGCZBBBIDFromJGCZBML", sJGCZBBBIDFromJGCZBML); OpenFuncModuleDialog(102579001, tpp); } #endregion } }