Esempio n. 1
0
        private void LoadData()
        {
            string projectCode = Request["ProjectCode"] + "";

            try
            {
                V_BudgetCostStrategyBuilder sb = new V_BudgetCostStrategyBuilder();
                sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.ProjectCode, projectCode));
                sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.IsDynamic, "2"));                                                          //动态申请
                if (this.sltFlag.Value != "")
                {
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.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(V_BudgetCostStrategyName.MakeDate, ar));
                }

                ArrayList ar1 = new ArrayList();
                if (this.dtCheckDate0.Value != "" || this.dtCheckDate1.Value != "")
                {
                    ar1.Add(this.dtCheckDate0.Value);
                    ar1.Add(this.dtCheckDate1.Value);
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CheckDate, ar1));
                }

                if (this.sltCost.Value != "")
                {
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CostCode, this.sltCost.Value));
                }

                sb.AddOrder("MakeDate", false);

                string     sql     = sb.BuildMainQueryString();
                QueryAgent qa      = new QueryAgent();
                EntityData budgets = qa.FillEntityData("V_BudgetCost", sql);
                qa.Dispose();

                budgets.CurrentTable.Columns.Add("FlagName");
                foreach (DataRow dr in budgets.CurrentTable.Rows)
                {
                    int flag = (int)dr["Flag"];
                    switch (flag)
                    {
                    case 0:                                     //没有这个状态
                        dr["FlagName"] = "生效";
                        break;

                    case 1:
                        dr["FlagName"] = "未审核";
                        break;

                    case 2:
                        dr["FlagName"] = "审核通过";
                        break;

                    case 3:
                        dr["FlagName"] = "作废";
                        break;
                    }
                }

                this.dgList.DataSource = budgets.CurrentTable;
                this.dgList.DataBind();
                budgets.Dispose();
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
Esempio n. 2
0
        // 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, "加载成本数据错误。");
            }
        }