private void LoadData() { string projectCode = Request["ProjectCode"] + ""; try { string isDynamic = Request["IsDynamic"] + ""; BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); if (isDynamic != "") { sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, isDynamic)); } string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); qa.SetTopNumber(1); EntityData budget = qa.FillEntityData("Budget", sql); qa.Dispose(); this.dgList.DataSource = budget.CurrentTable; this.dgList.DataBind(); budget.Dispose(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, "加载列表错误"); } }
private void BuildSearchString() { string projectCode = Request["ProjectCode"] + ""; BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2")); //动态申请 if (this.sltFlag.Value != "") { sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, this.sltFlag.Value)); //申请审核状态 } ArrayList ar = new ArrayList(); if (this.dtMakeDate0.Value != "" || this.dtMakeDate1.Value != "") { ar.Add(this.dtMakeDate0.Value); ar.Add(this.dtMakeDate1.Value); sb.AddStrategy(new Strategy(BudgetStrategyName.MakeDate, ar)); } ar.Clear(); if (this.dtCheckDate0.Value != "" || this.dtCheckDate1.Value != "") { ar.Add(this.dtCheckDate0.Value); ar.Add(this.dtCheckDate1.Value); sb.AddStrategy(new Strategy(BudgetStrategyName.CheckDate, ar)); } sb.AddOrder("MakeDate", false); string sql = sb.BuildMainQueryString(); this.ViewState.Add("SearchString", sql); }
protected void Page_Load(object sender, System.EventArgs e) { string projectCode = Request["ProjectCode"] + ""; string isDynamic = Request["IsDynamic"] + ""; string isDynamicName = (isDynamic == "0")? "费用预算":"动态费用"; try { BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, isDynamic)); sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,1")); sb.AddOrder("MakeDate", false); string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); EntityData budget = qa.FillEntityData("Budget", sql); qa.Dispose(); string budgetCode = ""; // 如果有审核过的生效的版本,看这个版本 // 没有就看最新的版本 DataRow[] drs = budget.CurrentTable.Select("Flag=0", "MakeDate DESC"); if (drs.Length > 0) { budgetCode = (string)drs[0]["BudgetCode"]; } else { if (budget.HasRecord()) { budgetCode = budget.GetString("BudgetCode"); } } budget.Dispose(); Response.Write(Rms.Web.JavaScript.ScriptStart); // if ( budgetCode == "" ) // Response.Write( Rms.Web.JavaScript.Alert(false,"还没有做过"+isDynamicName+" !" )); if (isDynamic == "0") { Response.Write(Rms.Web.JavaScript.PageTo(false, "Budget.aspx?projectCode=" + projectCode + "&BudgetCode=" + budgetCode)); } else { Response.Write(Rms.Web.JavaScript.PageTo(false, "DynamicCost.aspx?projectCode=" + projectCode + "&BudgetCode=" + budgetCode)); } Response.Write(Rms.Web.JavaScript.ScriptEnd); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
/// <summary> /// 取得最新的动态费用 /// </summary> /// <param name="num"></param> /// <returns></returns> private DataTable GetDynamicCost(int num) { BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); ArrayList arA = new ArrayList(); arA.Add("040403"); arA.Add(base.user.UserCode); arA.Add(base.user.BuildStationCodes()); sb.AddStrategy(new Strategy(BudgetStrategyName.AccessRange, arA)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2")); //动态申请 sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "1")); //申请审核状态 sb.AddOrder("MakeDate", false); string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); //qa.SetTopNumber(num); EntityData budgets = qa.FillEntityData("Budget", sql); DataTable dt = budgets.CurrentTable; qa.Dispose(); return(dt); }
protected void Page_Load(object sender, System.EventArgs e) { if (IsPostBack) { return; } string budgetCode = Request["BudgetCode"] + ""; string projectCode = Request["ProjectCode"] + ""; if (budgetCode == "") { // this.lblYear.Text = " ( 没有制定预算 !) "; this.btnBudgetCheck.Visible = false; this.btnNewestBudget.Visible = false; return; } else { try { EntityData budget = DAL.EntityDAO.CBSDAO.GetBudgetByCode(budgetCode); if (budget.HasRecord()) { int iYear = budget.GetInt("IYear"); int iMonth = budget.GetInt("IMonth"); int afterPeriod = budget.GetInt("AfterPeriod"); // this.lblYear.Text = iYear.ToString(); // this.lblMonth.Text = iMonth.ToString(); int flag = budget.GetInt("Flag"); string flagName = ""; if (flag == 0) { flagName = "(当前预算,生效中)"; } else if (flag == 1) { flagName = "(制定中,未审核)"; } else if (flag == 2) { flagName = "(历年预算)"; } this.lblBudgetName.Text = budget.GetString("BudgetName"); this.lblRemark.Text = budget.GetString("Remark"); this.lblStatus.Text = flagName; this.lblMakePersonName.Text = BLL.SystemRule.GetUserName(budget.GetString("MakePerson")); this.lblCheckDate.Text = budget.GetDateTimeOnlyDate("CheckDate"); this.lblCheckPersonName.Text = BLL.SystemRule.GetUserName(budget.GetString("CheckPerson")); this.lblAfterPeriod.Text = afterPeriod.ToString(); int pMonth = budget.GetInt("PeriodMonth"); int endMonth = iMonth + pMonth - 1; int endYear = iYear; if (endMonth > 12) { endYear = endYear + 1; endMonth = endMonth - 12; } int startAfterPeriod = iYear + 1; int endAfterPerod = iYear + afterPeriod; int endPeriod = iYear + afterPeriod; this.lblPeriodMonth.Text = iYear.ToString() + "年" + iMonth.ToString() + "月 到 " + endYear.ToString() + "年" + endMonth.ToString() + "月"; this.lblAfterPeriod.Text = startAfterPeriod.ToString() + "年 到 " + endPeriod.ToString() + "年"; if (flag == 1) { this.btnNewestBudget.Visible = false; this.btnNewBudget.Visible = false; } else { this.btnBudgetCheck.Visible = false; // 检查是否有正在做的预算 BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0")); sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "1")); string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); EntityData budgets = qa.FillEntityData("Budget", sql); qa.Dispose(); if (budgets.HasRecord()) { this.btnNewBudget.Visible = false; string budgetNewestCode = budgets.GetString("BudgetCode"); this.btnNewestBudget.Attributes.Add("onclick", @"gotoBudget('" + budgetNewestCode + @"'); return false;"); } else { this.btnNewestBudget.Visible = false; } budgets.Dispose(); } } } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } } if (!user.HasRight("040302")) { this.btnNewBudget.Visible = false; } if (!user.HasRight("040303")) { this.btnBudgetCheck.Visible = false; } }
private void LoadData() { string projectCode = Request["ProjectCode"] + ""; try { int periodMonth = 12; int totalPeriods = 0; int currentPeriodIndex = 0; int periodIndex = 1; // 取项目的计划定义 EntityData planData = DAL.EntityDAO.SystemManageDAO.GetPeriodDefineByProjectCode(projectCode); if (!planData.HasRecord()) { planData.Dispose(); Response.Write(Rms.Web.JavaScript.ScriptStart); Response.Write(Rms.Web.JavaScript.Alert(false, "请先在系统管理中定义项目的计划 !")); Response.Write(Rms.Web.JavaScript.WinClose(false)); Response.Write(Rms.Web.JavaScript.ScriptEnd); Response.End(); } // 取项目定义 ProjectConfigStrategyBuilder sb = new ProjectConfigStrategyBuilder(); sb.AddStrategy(new Strategy(ProjectConfigStrategyName.ProjectCode, projectCode)); string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); EntityData projectConfig = qa.FillEntityData("ProjectConfig", sql); DataRow[] drSelects = projectConfig.CurrentTable.Select(String.Format(" ConfigName='PeriodMonth'")); if (drSelects.Length > 0) { if (!drSelects[0].IsNull("ConfigData")) { periodMonth = int.Parse((string)drSelects[0]["ConfigData"]); } } projectConfig.Dispose(); drSelects = projectConfig.CurrentTable.Select(String.Format(" ConfigName='TotalPeriods'")); if (drSelects.Length > 0) { if (!drSelects[0].IsNull("ConfigData")) { totalPeriods = int.Parse((string)drSelects[0]["ConfigData"]); } } projectConfig.Dispose(); this.txtTotalPeriods.Value = totalPeriods.ToString(); this.txtPeriodMonth.Value = periodMonth.ToString(); // 检查所有预算,如果最新的预算是没有审核过的新预算, 就跳到这个预算 // 否则计算下一个预算Index,进入这个预算中 BudgetStrategyBuilder sb0 = new BudgetStrategyBuilder(); sb0.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb0.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0")); sb0.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,1,2")); sb0.AddOrder("MakeDate", false); sql = sb0.BuildMainQueryString(); EntityData budget = qa.FillEntityData("Budget", sql); qa.Dispose(); int iCurrentYear = DateTime.Now.Year; if (budget.HasRecord()) { int flag = budget.GetInt("Flag"); currentPeriodIndex = budget.GetInt("PeriodIndex"); int iYear = budget.GetInt("IYear"); string budgetCode = budget.GetString("BudgetCode"); budget.Dispose(); if (flag == 1) { Response.Write(Rms.Web.JavaScript.ScriptStart); Response.Write("window.opener.navigate( '../Cost/Budget.aspx?IsDynamic=0&BudgetCode='" + budgetCode + " );"); Response.Write("window.close();"); Response.Write(Rms.Web.JavaScript.ScriptEnd); return; } } periodIndex = currentPeriodIndex + 1; this.txtPeriodIndex.Value = periodIndex.ToString(); DataRow[] drsPlan = planData.CurrentTable.Select(String.Format(" PeriodIndex={0} ", periodIndex)); if (drsPlan.Length == 0) { planData.Dispose(); Response.Write(Rms.Web.JavaScript.ScriptStart); Response.Write(Rms.Web.JavaScript.Alert(false, "请先在系统管理中定义项目的计划 !")); Response.Write(Rms.Web.JavaScript.WinClose(false)); Response.Write(Rms.Web.JavaScript.ScriptEnd); Response.End(); } DateTime dtStart = (DateTime)drsPlan[0]["StartDate"]; DateTime dtEnd = (DateTime)drsPlan[0]["EndDate"]; this.txtStartDate.Value = dtStart.ToString("yyyy-MM-dd"); this.txtEndDate.Value = dtEnd.ToString("yyyy-MM-dd"); this.txtbudgetName.Value = dtStart.Year.ToString() + "年 年度预算"; budget.Dispose(); planData.Dispose(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
private void LoadData() { string costCode = Request["CostCode"] + ""; string projectCode = Request["ProjectCode"] + ""; string budgetCode = Request["BudgetCode"] + ""; string type = Request["Type"] + ""; try { // 取费用分解结构和估算费用 V_CBSCostStrategyBuilder sb = new V_CBSCostStrategyBuilder(); sb.AddStrategy(new Strategy(V_CBSCostStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(V_CBSCostStrategyName.Flag, "-1")); sb.AddOrder("SortID", true); string sql = sb.BuildMainQueryString(); BudgetStrategyBuilder sb0 = new BudgetStrategyBuilder(); sb0.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb0.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0,1")); sb0.AddOrder("MakeDate", false); string sql0 = sb0.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); EntityData allBudget = qa.FillEntityData("Budget", sql0); EntityData allCost = qa.FillEntityData("V_CBSCost", sql); qa.Dispose(); // 找历年的最后一次生效的预算(动态) string lastBudgetCode = ""; DataRow[] drLast = allBudget.CurrentTable.Select(String.Format(" BudgetCode <> '{0}' and Flag in (0,2) ", budgetCode), " MakeDate DESC "); EntityData lastBudget = new EntityData("Standard_Budget"); if (drLast.Length > 0) { lastBudgetCode = (string)drLast[0]["BudgetCode"]; lastBudget = DAL.EntityDAO.CBSDAO.GetStandard_BudgetByCode(lastBudgetCode); } lastBudget.SetCurrentTable("BudgetYear"); DataTable tb = allCost.CurrentTable; tb.Columns.Add("BudgetCost"); // 预算费用 tb.Columns.Add("BeforeHappenCost"); // 年前发生 tb.Columns.Add("CurrentPlanCost"); // 当年计划 tb.Columns.Add("AfterPlanCost"); // 剩余预算 for (int i = 1; i <= IMaxMonth; i++) { tb.Columns.Add("CurrentPlanCost" + i.ToString()); } for (int i = 1; i <= IMaxPeriod; i++) { tb.Columns.Add("AfterPlanCost" + i.ToString()); } for (int i = 1; i <= IMaxMonth; i++) { tb.Columns.Add("MonthAH" + i.ToString()); } for (int i = 1; i <= IMaxMonth; i++) { tb.Columns.Add("MonthUse" + i.ToString()); } for (int i = 1; i <= IMaxMonth; i++) { tb.Columns.Add("MonthApply" + i.ToString()); } for (int i = 1; i <= IMaxPeriod; i++) { tb.Columns.Add("YearAH" + i.ToString()); } for (int i = 1; i <= IMaxPeriod; i++) { tb.Columns.Add("YearUse" + i.ToString()); } for (int i = 1; i <= IMaxPeriod; i++) { tb.Columns.Add("YearApply" + i.ToString()); } // 取相关的成本项 DataRow[] drs0 = tb.Select("CostCode='" + costCode + "'"); string fullCode = (string)drs0[0]["FullCode"]; string costName = (string)drs0[0]["CostName"]; DataRow[] drs = null; if (type == "Detail") { drs = allCost.CurrentTable.Select(String.Format("ParentCode = '{0}' or CostCode = '{0}' ", costCode), "SortID"); foreach (DataRow drC in drs) { string ccc = (string)drC["CostCode"]; if (ccc != costCode) { drC["ChildCount"] = 0; } } } else { drs = allCost.CurrentTable.Select(String.Format("CostCode = '{0}' ", costCode)); foreach (DataRow drC in drs) { drC["ChildCount"] = 0; } } int iLength = drs.Length; string codes = ""; EntityData budget = DAL.EntityDAO.CBSDAO.GetStandard_BudgetByCode(budgetCode); int iYear = budget.GetInt("IYear"); int iMonth = budget.GetInt("IMonth"); this.txtYear.Value = iYear.ToString(); this.txtMonth.Value = iMonth.ToString(); int periodMonth = budget.GetInt("PeriodMonth"); this.txtPeriodMonth.Value = periodMonth.ToString(); int afterPeriod = budget.GetInt("AfterPeriod"); int periodIndex = budget.GetInt("PeriodIndex"); this.txtAfterPeriod.Value = afterPeriod.ToString(); DateTime periodStartDate = DateTime.Parse(budget.GetDateTime("StartDate")); // 上一个周期最后一天 string lastDateLastPeriod = periodStartDate.AddDays(-1).ToString("yyyy-MM-dd"); this.lblBudgetName.Text = budget.GetString("BudgetName") + " " + costName; // 处理每期预算的名称 EntityData planName = DAL.EntityDAO.SystemManageDAO.GetPeriodDefineByProjectCode(projectCode); for (int i = 1; i <= afterPeriod; i++) { HtmlTableCell cell = (HtmlTableCell)this.FindControl("tdYearTitle" + i.ToString()); if (cell != null) { int index = periodIndex + i; DataRow[] drYearNames = planName.CurrentTable.Select(String.Format("PeriodIndex={0}", index)); if (drYearNames.Length > 0) { if (!drYearNames[0].IsNull("PeriodName")) { string yearName = (string)drYearNames[0]["PeriodName"]; if (yearName != "") { cell.InnerHtml = yearName; } } } } } planName.Dispose(); for (int i = 0; i < iLength; i++) { string tempCode = (string)drs[i]["CostCode"]; codes += tempCode + ","; budget.SetCurrentTable("BudgetCost"); DataRow[] drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' ", tempCode)); if (drSelect.Length > 0) { drs[i]["BudgetCost"] = drSelect[0]["BudgetCost"]; drs[i]["BeforeHappenCost"] = drSelect[0]["BeforeHappenCost"]; drs[i]["CurrentPlanCost"] = drSelect[0]["CurrentPlanCost"]; drs[i]["AfterPlanCost"] = drSelect[0]["AfterPlanCost"]; } else { drs[i]["BeforeHappenCost"] = BLL.CBSRule.GetAHMoney(tempCode, "", lastDateLastPeriod); } // 取月份 budget.SetCurrentTable("BudgetMonth"); drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' ", tempCode)); foreach (DataRow drMonth in drSelect) { int month = (int)drMonth["IMonth"]; // 本期开始时间 string tempStartDate = DateTime.Parse(String.Format("{0}-{1}-1", iYear, iMonth)).AddMonths(month - 1).ToString("yyyy-MM-dd"); // 本期结束时间 string tempEndDate = DateTime.Parse(String.Format("{0}-{1}-1", iYear, iMonth)).AddMonths(month).AddDays(-1).ToString("yyyy-MM-dd"); // 上期开始时间 string preTempStartDate = DateTime.Parse(tempStartDate).AddMonths(-1).ToString("yyyy-MM-dd"); // 上期结束时间 string preTempEndDate = DateTime.Parse(tempStartDate).AddDays(-1).ToString("yyyy-MM-dd"); decimal monthAH = decimal.Zero; decimal monthUse = decimal.Zero; decimal monthApply = decimal.Zero; // 已发生 monthAH = BLL.CBSRule.GetAHMoney(tempCode, tempStartDate, tempEndDate, "", ""); // 合同占用: // 合同占用 = 本时间段以内的合同款项总和-本时间段内的合同款项中已经发生的部分(该部分已经计算在已发生金额中了) monthUse = BLL.CBSRule.GetContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate) - BLL.CBSRule.GetContractAllocationHappenedCost(tempCode, "", "", tempStartDate, tempEndDate); // 待审批的合同 monthApply = BLL.CBSRule.GetApplyContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate); drs[i]["MonthAH" + month.ToString()] = @"<a href=## class=trAH code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='AH' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(monthAH) + @"</a>"; drs[i]["MonthUse" + month.ToString()] = @"<a href=## class=trUse code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='Use' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(monthUse) + "</a>"; drs[i]["MonthApply" + month.ToString()] = @"<a href=## class=trApply code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='Apply' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(monthApply) + "</a>"; drs[i]["CurrentPlanCost" + month.ToString()] = drMonth["Money"]; } // 取年份 budget.SetCurrentTable("BudgetYear"); drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear <> 0 ", tempCode)); foreach (DataRow drYear in drSelect) { int year = (int)drYear["IYear"]; string tempStartDate = periodStartDate.AddMonths(periodMonth * (year + periodIndex)).ToString("yyyy-MM-dd"); string tempEndDate = periodStartDate.AddMonths(periodMonth * (year + periodIndex + 1)).AddDays(-1).ToString("yyyy-MM-dd"); decimal yearAH = decimal.Zero; decimal yearUse = decimal.Zero; decimal yearApply = decimal.Zero; // 已发生 yearAH = BLL.CBSRule.GetAHMoney(tempCode, tempStartDate, tempEndDate, "", ""); yearUse = BLL.CBSRule.GetContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate) - BLL.CBSRule.GetContractAllocationHappenedCost(tempCode, "", "", tempStartDate, tempEndDate); yearApply = BLL.CBSRule.GetApplyContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate); drs[i]["YearAH" + year.ToString()] = @"<a href=## class=trAH code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='AH' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(yearAH) + "</a>"; drs[i]["YearUse" + year.ToString()] = @"<a href=## class=trUse code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='Use' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(yearUse) + "</a>"; drs[i]["YearApply" + year.ToString()] = @"<a href=## class=trApply code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"' NumberType='Apply' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >" + BLL.StringRule.BuildMoneyWanFormatString(yearApply) + "</a>"; DataRow[] yearSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear={1} ", tempCode, year)); if (yearSelect.Length > 0) { drs[i]["AfterPlanCost" + year.ToString()] = yearSelect[0]["Money"]; } else { // 现在IYear是期数。 所以,上次预算的第 5 期,应该等于这次预算的第4期 DataRow[] lastYearSelect = lastBudget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear={1} ", tempCode, (year + 1))); if (lastYearSelect.Length > 0) { drs[i]["AfterPlanCost" + year.ToString()] = lastYearSelect[0]["Money"]; } } } } budget.Dispose(); this.txtAllCode.Value = codes; if (type == "Detail") { this.repeat1.DataSource = new DataView(tb, String.Format(" ParentCode = '{0}' or CostCode = '{0}' ", costCode), "SortID", DataViewRowState.CurrentRows); } else { this.repeat1.DataSource = new DataView(tb, String.Format(" CostCode = '{0}' ", costCode), "", DataViewRowState.CurrentRows); } this.repeat1.DataBind(); allCost.Dispose(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
// costCode == ""时, 是总成本 private void LoadData() { string costCode = Request["CostCode"] + ""; string projectCode = Request["ProjectCode"] + ""; try { if (costCode == "") { this.lblCostName.Text = "总成本"; } else { this.lblCostName.Text = BLL.CBSRule.GetCostName(costCode); } DateTime tStart = DateTime.Today; //整个图表的起始时间 DateTime tEnd = DateTime.Today; //整个图标的结束时间, 用来确定图表的时间轴 decimal maxValue = decimal.Zero; //整个图表中的最高数值, 用来确定图表的高度 EntityData estimateCheck = RmsPM.DAL.EntityDAO.CBSDAO.GetCostEstimateCheckByCode(projectCode); if (!estimateCheck.HasRecord()) { Response.Write(Rms.Web.JavaScript.ScriptStart); Response.Write(Rms.Web.JavaScript.Alert(false, "还没有做好估算,请先做好估算 !")); Response.Write(Rms.Web.JavaScript.WinClose(false)); Response.Write(Rms.Web.JavaScript.ScriptEnd); return; } tStart = DateTime.Parse(estimateCheck.GetDateTimeOnlyDate("CheckDate")); estimateCheck.Dispose(); this.lblDate.Text = "时间: 从 " + tStart.ToString("yyyy-MM-dd") + " 到 " + tEnd.ToString("yyyy-MM-dd"); // 估算费用 decimal ce = BLL.CBSRule.SumTotalEstimateCost(costCode, projectCode); TimeSpan ts = tEnd - tStart; int Length = Math.Abs(ts.Days) + 1; string [] CEs = new string[Length]; //估算成本数组 string [] Bs = new string[Length]; //预算成本数组 string [] Ds = new string[Length]; //动态成本数组 //设置初值 for (int i = 0; i < Length; i++) { CEs[i] = ce.ToString(); Bs[i] = ce.ToString(); Ds[i] = ce.ToString(); } string sql = ""; int iCount = 0; TimeSpan tSpan; int iS = 0; decimal dTemp = decimal.Zero; DateTime checkDate; QueryAgent qa = new QueryAgent(); // 费用项在BudgetCost中找 if (costCode != "") { // 预算 , 以及必然存在的动态 V_BudgetCostStrategyBuilder sb = new V_BudgetCostStrategyBuilder(); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.IsDynamic, "0")); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.Flag, "0,2")); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CostCode, costCode)); sb.AddOrder("CheckDate", true); sql = sb.BuildMainQueryString(); EntityData yuBudgetCost = qa.FillEntityData("V_BudgetCost", sql); iCount = yuBudgetCost.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { yuBudgetCost.SetCurrentRow(i); dTemp = yuBudgetCost.GetDecimal("BudgetCost"); if (dTemp > maxValue) { maxValue = dTemp; } checkDate = DateTime.Parse(yuBudgetCost.GetDateTimeOnlyDate("CheckDate")); tSpan = checkDate - tStart; iS = tSpan.Days; for (int j = iS; j < Length; j++) { Bs[j] = dTemp.ToString(); Ds[j] = dTemp.ToString(); } } // 动态修改申请 sb = new V_BudgetCostStrategyBuilder(); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.IsDynamic, "2")); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.Flag, "2")); sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CostCode, costCode)); sb.AddOrder("CheckDate", true); sql = sb.BuildMainQueryString(); yuBudgetCost = qa.FillEntityData("V_BudgetCost", sql); iCount = yuBudgetCost.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { yuBudgetCost.SetCurrentRow(i); dTemp = yuBudgetCost.GetDecimal("BudgetCost"); if (dTemp > maxValue) { maxValue = dTemp; } checkDate = DateTime.Parse(yuBudgetCost.GetDateTimeOnlyDate("CheckDate")); tSpan = checkDate - tStart; iS = tSpan.Days; for (int j = iS; j < Length; j++) { Ds[j] = dTemp.ToString(); } } yuBudgetCost.Dispose(); } // 总费用 else { // 预算 , 以及必然存在的动态 BudgetStrategyBuilder sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0")); sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,2")); sb.AddOrder("CheckDate", true); sql = sb.BuildMainQueryString(); EntityData budget = qa.FillEntityData("Budget", sql); iCount = budget.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { budget.SetCurrentRow(i); dTemp = budget.GetDecimal("TotalMoney"); if (dTemp > maxValue) { maxValue = dTemp; } checkDate = DateTime.Parse(budget.GetDateTimeOnlyDate("CheckDate")); tSpan = checkDate - tStart; iS = tSpan.Days; for (int j = iS; j < Length; j++) { Bs[j] = dTemp.ToString(); Ds[j] = dTemp.ToString(); } } // 动态修改申请 sb = new BudgetStrategyBuilder(); sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode)); sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2")); sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "2")); sb.AddOrder("CheckDate", true); sql = sb.BuildMainQueryString(); budget = qa.FillEntityData("Budget", sql); iCount = budget.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { budget.SetCurrentRow(i); dTemp = budget.GetDecimal("TotalMoney"); if (dTemp > maxValue) { maxValue = dTemp; } checkDate = DateTime.Parse(budget.GetDateTimeOnlyDate("CheckDate")); tSpan = checkDate - tStart; iS = tSpan.Days; for (int j = iS; j < Length; j++) { Ds[j] = dTemp.ToString(); } } budget.Dispose(); } qa.Dispose(); // // //生成字符串 string cString = ""; string bString = ""; string dString = ""; for (int i = 0; i < Length; i++) { if (i != 0) { cString += ","; bString += ","; dString += ","; } cString += CEs[i]; bString += Bs[i]; dString += Ds[i]; } ShowChar(cString, bString, dString, maxValue, this.tdGraphy); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, "加载成本数据错误。"); } }