Пример #1
0
        private void SetYear(string yearflag)
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = yearflag;
            py.Col5 = ProjectUID;

            IList <Ps_YearRange> li = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 2000;
                endyear       = 2008;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Services.BaseService.Create <Ps_YearRange>(py);
            }
        }
Пример #2
0
        private void FormYearSet_Load(object sender, EventArgs e)
        {
            py.Col4 = type;
            py.Col5 = pid;

            IList <Ps_YearRange> li = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                py    = li[0];
                syear = py.StartYear;
                eyear = py.FinishYear;
            }
            else
            {
                py.BeginYear  = 1990;
                py.FinishYear = eyear;
                py.StartYear  = syear;
                py.EndYear    = 2060;


                py.ID = Guid.NewGuid().ToString();
                Services.BaseService.Create <Ps_YearRange>(py);
            }

            spinEdit1.Value = syear;
            spinEdit2.Value = eyear;
        }
Пример #3
0
        private void FormForecastWDXS_Load(object sender, EventArgs e)
        {
            Application.DoEvents();
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = "电力发展实绩";
            py.Col5 = Itop.Client.MIS.ProgUID;

            IList <Ps_YearRange> li = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 2000;
                endyear       = 2008;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Services.BaseService.Create <Ps_YearRange>(py);
            }
            LoadData();
            RefreshChart();
        }
Пример #4
0
        public int GolobalYears     = 0;//记录有几个年份没有数据
        /// <summary>
        /// 设置年分
        /// </summary>
        ///<param name="FB">传入fromBase对象</param>
        /// <param name="obj">要传入SheetView对象</param>

        /// <param name="IntRow">行数</param>
        /// <param name="IntCol">列数</param>
        /// <param name="RowStep">要合并几个行的单元格</param>
        /// <param name="ColStep">要合并几个列的单元格</param>
        /// <param name="Title">标题</param>
        public void SetYears(string Title, Itop.Client.Base.FormBase FB, FarPoint.Win.Spread.SheetView obj, int IntRow, int IntCol, int RowStep, int ColStep)
        {
            GlobalFormBase = FB;
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = Title;
            py.Col5 = FB.ProjectUID;

            IList <Ps_YearRange> li = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                GlobalFirstYear = li[0].StartYear;
                GlobalEndYear   = li[0].FinishYear;
            }
            else
            {
                GlobalFirstYear = 2000;
                GlobalEndYear   = 2009;
                py.BeginYear    = 1990;
                py.FinishYear   = GlobalEndYear;
                py.StartYear    = GlobalFirstYear;
                py.EndYear      = 2060;
                py.ID           = Guid.NewGuid().ToString();
                Services.BaseService.Create <Ps_YearRange>(py);
            }
            GolobalYearCount = GlobalEndYear - GlobalFirstYear + FixationCol + 1;//后面有两个固定列,加1是起始年的加入
            SetYearsSheet2_1(FB, obj, GlobalFirstYear, GlobalEndYear, GolobalYearCount, IntRow, IntCol, RowStep, ColStep);
        }
Пример #5
0
        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            List <int>   li = new List <int>();
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = "电力发展实绩";
            py.Col5 = Itop.Client.MIS.ProgUID;
            int firstyear, endyear;
            IList <Ps_YearRange> list = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (list.Count > 0)
            {
                firstyear = list[0].StartYear;
                endyear   = list[0].FinishYear;
            }
            else
            {
                firstyear     = 1990;
                endyear       = 2020;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }
            for (int i = firstyear; i <= endyear; i++)
            {
                li.Add(i);
            }

            FormChooseYears1 cy = new FormChooseYears1();

            cy.ListYearsForChoose = li;
            if (cy.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            foreach (DataRow a in cy.DT.Rows)
            {
                if (a["B"].ToString() == "True")
                {
                    ht.Add(Guid.NewGuid().ToString(), Convert.ToInt32(a["A"].ToString().Replace("年", "")));
                }

                if (a["C"].ToString() == "True")
                {
                    ht1.Add(Guid.NewGuid().ToString(), Convert.ToInt32(a["A"].ToString().Replace("年", "")));
                }
            }
            shjjbyyear = true;
            //电力发展实绩社会经济用电情况
            //  build_dlhistoryjjyd();
            //再回到原始状态
            shjjbyyear = false;
        }
Пример #6
0
        public int[] GetYears()
        {
            Ps_YearRange yr = yAnge;

            int[] year = new int[4] {
                yr.BeginYear, yr.StartYear, yr.FinishYear, yr.EndYear
            };
            return(year);
        }
Пример #7
0
        public void LoadYear()
        {
            yearR = oper.GetYearRange("Col5='" + GetProject + "' and Col4='" + mark + "'");

            for (int i = yearR.BeginYear; i <= yearR.FinishYear; i++)
            {
                comboBoxEdit2.Properties.Items.Add(i.ToString());
            }
            comboBoxEdit2.SelectedIndex = 0;
            comboBoxEdit1.SelectedIndex = 0;
        }
Пример #8
0
 private void Form1_Load(object sender, EventArgs e)
 {
     HideToolBarButton();
     yAnge = oper.GetYearRange("Col5='" + GetProjectID + "' and Col4='" + OperTable.elec + "'");
     Show();
     Application.DoEvents();
     this.Cursor = Cursors.WaitCursor;
     treeList1.BeginUpdate();
     LoadData();
     treeList1.EndUpdate();
     this.Cursor = Cursors.Default;
 }
Пример #9
0
        private void FormForecastEdit_Load(object sender, EventArgs e)
        {
            LoginUser = projectUID;
            if (IsEdit)
            {
                textEdit1.Text  = psp_ForecastReport.Title;
                spinEdit1.Value = psp_ForecastReport.StartYear;
                spinEdit2.Value = psp_ForecastReport.EndYear;
                spinEdit3.Value = psp_ForecastReport.YcStartYear;
                spinEdit4.Value = psp_ForecastReport.YcEndYear;
            }
            else
            {
                spinEdit1.Value = DateTime.Now.Year - 10;
                spinEdit2.Value = DateTime.Now.Year;



                //textEdit1.Text = "本地区" + spinEdit1.Value + "~" + spinEdit2.Value + "年需" + _typeText + "预测表(方案)";
            }

            int          firstyear = 0;
            int          endyear   = 0;
            Ps_YearRange py        = new Ps_YearRange();

            py.Col4 = "电力发展实绩电量";
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;

                label4.Text = "电量数据起始年为" + firstyear + "年,结束年为" + endyear + "年。";
            }
            else
            {
                label4.Text = "";
            }
        }
Пример #10
0
 public Ps_YearRange GetYearRange(string conn)
 {
     try
     {
         IList list = Common.Services.BaseService.GetList("SelectPs_YearRangeByCondition", conn);
         if (list.Count > 0)
         {
             return((Ps_YearRange)list[0]);
         }
         else
         {
             Ps_YearRange range = new Ps_YearRange();
             range.BeginYear  = 1990;
             range.StartYear  = 2008;
             range.FinishYear = 2020;
             range.EndYear    = 2060;
             range.Col1       = "0.03";
             return(range);
         }
     }
     catch { return(null); }
 }
Пример #11
0
        private void FormYearSet_Load(object sender, EventArgs e)
        {
            py.Col4 = type;
            py.Col5 = pid;

            IList <Ps_YearRange> li = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                py    = li[0];
                syear = double.Parse(py.Col1);
            }
            else
            {
                py.Col1 = "0.03";


                py.ID = Guid.NewGuid().ToString();
                Services.BaseService.Create <Ps_YearRange>(py);
            }

            spinEdit1.Value = Convert.ToDecimal(syear);
        }
Пример #12
0
        //public Ps_YearRange yAnge = new Ps_YearRange();
        //  private Ps_YearRange yearRange = OperTable.GetYearRange();
        public void LoadTextBox()
        {
            Ps_YearRange yearRange = oper.GetYearRange("Col5='" + GetProject + "' and Col4='" + mark + "'");
            Point        bt        = new Point();

            for (int i = yearRange.StartYear; i <= yearRange.FinishYear; i++)
            {
                Point pt    = GetLocation(i - yearRange.StartYear + 1);
                Label label = new Label();
                label.Name     = "x" + i.ToString();
                label.Text     = i.ToString() + "年:";
                label.Location = pt;
                label.Size     = new Size(50, 20);
                this.Controls.Add(label);
                TextBox box = new TextBox();
                box.Name         = "y" + i.ToString();
                box.Text         = textAttr.ContainsKey(box.Name) ? textAttr[box.Name].ToString() : "";
                box.Location     = new Point(pt.X + 50, pt.Y - 5);
                box.Size         = new Size(50, 20);
                box.TextChanged += new EventHandler(box_TextChanged);
                this.Controls.Add(box);
                bt = pt;
            }
            DevExpress.XtraEditors.SimpleButton ok = new DevExpress.XtraEditors.SimpleButton();

            ok.Name         = "b1"; ok.Text = "确定";
            ok.DialogResult = DialogResult.OK;
            ok.Location     = new Point(200, bt.Y + 40);
            ok.Click       += new EventHandler(ok_Click);
            this.Controls.Add(ok);
            DevExpress.XtraEditors.SimpleButton cancel = new DevExpress.XtraEditors.SimpleButton();
            cancel.Name         = "b2"; cancel.Text = "取消";
            cancel.DialogResult = DialogResult.Cancel;
            cancel.Location     = new Point(300 + 30, bt.Y + 40);
            this.Controls.Add(cancel);
            this.Size = new Size(470, ((yearRange.FinishYear - yearRange.StartYear) / 3 + 5) * 30);
        }
Пример #13
0
        private void FormForecastCalc4_Load(object sender, EventArgs e)
        {
            #region 电力发展实绩



            Ps_YearRange py = new Ps_YearRange();
            py.Col4 = "电力发展实绩经济";
            py.Col5 = Itop.Client.MIS.ProgUID;

            IList <Ps_YearRange> li2 = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);
            if (li2.Count > 0)
            {
                firstyear1 = li2[0].StartYear;
                endyear1   = li2[0].FinishYear;
            }
            //新经济数据
            //Ps_History psp_Type = new Ps_History();
            //psp_Type.Forecast = 5;
            //psp_Type.Col4 = Itop.Client.MIS.ProgUID;
            //IList<Ps_History> listTypes = Common.Services.BaseService.GetList<Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            //DataTable dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));
            //DataRow[] rows1 = dataTable.Select("Title like '全地区GDP%'");


            Ps_Forecast_Math psp_Type = new Ps_Forecast_Math();
            psp_Type.ForecastID = forecastReport.ID;
            psp_Type.Forecast   = type;
            IList listTypes = Common.Services.BaseService.GetList("SelectPs_Forecast_MathByForecastIDAndForecast", psp_Type);

            dataTable = Itop.Common.DataConverter.ToDataTable(listTypes, typeof(Ps_Forecast_Math));
            DataRow[] rows1 = dataTable.Select("Title like '全地区GDP%'");

            DataRow[] rows4 = dataTable.Select("Title like '全社会用电量%'");


            //新电量数据
            //Ps_History psp_Type2 = new Ps_History();
            //psp_Type2.Forecast = 6;
            //psp_Type2.Col4 = Itop.Client.MIS.ProgUID;
            //IList<Ps_History> listTypes2 = Common.Services.BaseService.GetList<Ps_History>("SelectPs_HistoryByForecast", psp_Type2);
            //DataTable dataTable2 = Itop.Common.DataConverter.ToDataTable((IList)listTypes2, typeof(Ps_History));
            //DataRow[] rows4 = dataTable2.Select("Title like '全社会用电量%'");


            if (rows1.Length == 0)
            {
                MessageBox.Show("缺少‘全地区GDP’数据!");
                this.Close();
                return;
            }


            if (rows4.Length == 0)
            {
                MessageBox.Show("电量数据中缺少‘全社会用电量’数据!");
                this.Close();
                return;
            }

            #endregion


            Ps_Forecast_Setup pfs = new Ps_Forecast_Setup();
            pfs.Forecast   = type;
            pfs.ForecastID = forecastReport.ID;

            IList <Ps_Forecast_Setup> li = Services.BaseService.GetList <Ps_Forecast_Setup>("SelectPs_Forecast_SetupByForecast", pfs);

            if (li.Count != 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].EndYear;
            }



            Ps_Calc pcs = new Ps_Calc();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            list1          = Services.BaseService.GetList <Ps_Calc>("SelectPs_CalcByForecast", pcs);



            HideToolBarButton();

            dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");

            newrow1         = dt.NewRow();
            newrow1["ID"]   = "ID";
            newrow1["Name"] = "弹性系数";
            //newrow2 = dt.NewRow();
            //newrow2["Name"] = "GDP增长率";

            for (int i = firstyear; i <= forecastReport.YcEndYear; i++)
            {
                dt.Columns.Add(i.ToString(), typeof(double));
                DevExpress.XtraVerticalGrid.Rows.EditorRow editorRow = new DevExpress.XtraVerticalGrid.Rows.EditorRow();
                editorRow.Properties.FieldName = i.ToString().Trim();
                editorRow.Properties.Caption   = i.ToString().Trim();
                editorRow.Height             = 20;
                editorRow.Properties.RowEdit = this.repositoryItemCalcEdit4;
                this.vGridControl2.Rows.AddRange(new DevExpress.XtraVerticalGrid.Rows.BaseRow[] { editorRow });


                double s1 = 0;
                double s2 = 0;
                double s3 = 0;
                double s4 = 0;
                double s5 = 0;
                double s6 = 0;
                double s7 = 0;
                try { s1 = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                try { s2 = Convert.ToDouble(rows1[0]["y" + (i - 1)]); }
                catch { }

                try { s3 = Convert.ToDouble(rows4[0]["y" + i]); }
                catch { }
                try { s4 = Convert.ToDouble(rows4[0]["y" + (i - 1)]); }
                catch { }

                if (s2 != 0)
                {
                    s5 = (s1 - s2) / s2;
                }

                if (s4 != 0)
                {
                    s6 = (s3 - s4) / s4;
                }

                if (s5 != 0)
                {
                    s7 = s6 / s5;
                }

                newrow1[i.ToString()] = Math.Round(s7, 3);
                //newrow2[i.ToString()] =Math.Round( s5,3);

                if (i >= forecastReport.YcStartYear)
                {
                    foreach (Ps_Calc pcs2 in list1)
                    {
                        if (i == pcs2.Year)
                        {
                            newrow1[i.ToString()] = Math.Round(pcs2.Value1, 3);
                        }
                    }
                }
            }
            dt.Rows.Add(newrow1);
            //dt.Rows.Add(newrow2);
            //       gridControl1.DataSource = dt;

            vGridControl2.DataSource = dt;
        }
Пример #14
0
        private void FrmAddTzgs_Load(object sender, EventArgs e)
        {
            string conny = "Col5='" + MIS.ProgUID + "' and Col4='" + OperTable.tzgs + "'";

            yAnge = oper.GetYearRange(conny);
            if (strtype == "line")
            {
                label19.Visible        = buildprortzgsflag;
                txtnr.Visible          = buildprortzgsflag;
                label21.Visible        = buildprortzgsflag;
                label20.Visible        = buildprortzgsflag;
                txtgt.Visible          = buildprortzgsflag;
                comboBoxEdit8.Visible  = false;
                textEdit1.Visible      = true;
                label15.Visible        = false;
                comboBoxEdit10.Visible = false;
                panelControl1.Visible  = true;
                panelControl2.Visible  = false;
                panelControl3.Visible  = false;
                comboBoxEdit12.Text    = "线路";
            }
            if (strtype == "bian")
            {
                panelControl1.Visible = false;
                panelControl2.Visible = true;
                panelControl3.Visible = false;
                textEdit1.Visible     = false;
                comboBoxEdit12.Text   = "变电站";
                txtzb.Visible         = buildprortzgsflag;
                label17.Visible       = buildprortzgsflag;
            }
            if (strtype == "kg")
            {
                panelControl1.Visible = false;
                panelControl2.Visible = false;
                panelControl3.Visible = true;
                textEdit1.Visible     = false;
                comboBoxEdit12.Text   = "开关";
            }
            string conn = "ProjectID='" + projectID + "' order by Sort";
            IList <PS_Table_AreaWH> list = Common.Services.BaseService.GetList <PS_Table_AreaWH>("SelectPS_Table_AreaWHByConn", conn);

            foreach (PS_Table_AreaWH area in list)
            {
                comboBoxEdit10.Properties.Items.Add(area.Title);
            }
            conn = "ProjectID='" + projectID + "' order by Sort";
            IList <PS_Table_Area_TYPE> list1 = Common.Services.BaseService.GetList <PS_Table_Area_TYPE>("SelectPS_Table_Area_TYPEByConn", conn);

            foreach (PS_Table_Area_TYPE area in list1)
            {
                comboBoxEdit11.Properties.Items.Add(area.Title);
            }
            if (areaname != "")
            {
                comboBoxEdit10.Text = areaname;
            }
            else if (comboBoxEdit10.Properties.Items.Count > 0)
            {
                comboBoxEdit10.SelectedIndex = 0;
            }
        }
Пример #15
0
        private void InitData()
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = yearflag;
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 1990;
                endyear       = 2020;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }

            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Title");
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = pstype;
            psp_Type.Col4     = projectUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            DataTable          dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));

            DataRow[] rows1 = dataTable.Select("Title like '全地区GDP%'");
            // DataRow[] rows2 = dataTable.Select("Title like '全社会供电量%'");
            DataRow[] rows4 = dataTable.Select("Title like '全社会用电量%'");
            //DataRow[] rows5 = dataTable.Select("Title like '全社会最大负荷%'");
            DataRow[] rows7 = dataTable.Select("Title like '年末总人口%'");
            DataRow[] rows8 = dataTable.Select("Title='居民用电'");

            if (rows1.Length == 0)
            {
                MessageBox.Show("缺少全地区GDP数据!");
                this.Close();
                return;
            }
            //if (rows2.Length == 0)
            //{
            //    MessageBox.Show("缺少全社会供电量数据!");
            //    this.Close();
            //}
            if (rows4.Length == 0)
            {
                MessageBox.Show("缺少全社会用电量数据!");
                this.Close();
                return;
            }
            //if (rows5.Length == 0)
            //{
            //    MessageBox.Show("缺少全社会最大负荷数据!");
            //    this.Close();
            //}
            if (rows7.Length == 0)
            {
                MessageBox.Show("缺少年末总人口数据!");
                this.Close();
                return;
            }



            GDPUnits = Historytool.FindUnits(rows1[0]["Title"].ToString());
            //全社会供电量单位
            //AGdlUnits = Historytool.FindUnits(rows2[0]["Title"].ToString());
            //全社会用电量单位
            AYdlUnits = Historytool.FindUnits(rows4[0]["Title"].ToString());
            //全社会最大负荷单位
            // AMaxFhUnits = Historytool.FindUnits(rows5[0]["Title"].ToString());
            //年末总人口单位
            NMARkUnits = Historytool.FindUnits(rows7[0]["Title"].ToString());

            string pid = rows1[0]["ID"].ToString();
            string sid = rows4[0]["ID"].ToString();

            ///全地区GDP子类
            DataRow[] rows3 = dataTable.Select("ParentID='" + pid + "'");
            ///会社会用电量子类
            DataRow[] rows6 = dataTable.Select("ParentID='" + sid + "'");
            int       m     = -1;

            this.gridControl1.BeginInit();
            this.gridControl1.BeginUpdate();
            for (int i = firstyear; i <= endyear; i++)
            {
                dt.Columns.Add("y" + i, typeof(double));
                if (!ht.ContainsValue(i))
                {
                    continue;
                }
                if (IsFist)
                {
                    RealFistYear = i;
                    IsFist       = false;
                }
                m++;
                //dt.Columns.Add("y" + i, typeof(double));
                GridColumn gridColumn = new GridColumn();
                gridColumn.Caption      = i + "年";
                gridColumn.FieldName    = "y" + i;
                gridColumn.Visible      = true;
                gridColumn.VisibleIndex = 2 * m + 10;
                gridColumn.Width        = 70;
                gridColumn.DisplayFormat.FormatString = "n2";
                gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridView1.Columns.Add(gridColumn);

                if (ht1.ContainsValue(i))
                {
                    gridColumn              = new GridColumn();
                    gridColumn.Caption      = "年均增长率(%)";
                    gridColumn.FieldName    = "m" + i;
                    gridColumn.Visible      = true;
                    gridColumn.Width        = 130;
                    gridColumn.VisibleIndex = 2 * m + 11;
                    gridColumn.DisplayFormat.FormatString = "n2";
                    gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    gridView1.Columns.Add(gridColumn);
                    dt.Columns.Add("m" + i, typeof(double));
                }

                if (ht2.ContainsValue(i))
                {
                    gridColumn              = new GridColumn();
                    gridColumn.Caption      = "逐年增长率(%)";
                    gridColumn.FieldName    = "n" + i;
                    gridColumn.Visible      = true;
                    gridColumn.Width        = 130;
                    gridColumn.VisibleIndex = 2 * m + 12;
                    gridColumn.DisplayFormat.FormatString = "n2";
                    gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    gridView1.Columns.Add(gridColumn);
                    dt.Columns.Add("n" + i, typeof(double));
                }
            }

            this.gridControl1.EndUpdate();
            this.gridControl1.EndInit();
            double sum = 0;    // 全地区GDP数据

            try { sum = Convert.ToDouble(rows1[0]["y" + firstyear]); }
            catch { }


            double sum51 = 0;    // 全社会用电量数据

            try { sum51 = Convert.ToDouble(rows4[0]["y" + firstyear]); }
            catch { }
            double sum52 = 0;
            double sum53 = 0;

            double  sum1  = 0;
            double  sum2  = 0;
            double  sum3  = 0;
            double  sum4  = 0;
            double  sum5  = 0;
            double  sum6  = 0;
            double  sum7  = 0;
            double  sum8  = 0;
            double  sum9  = 0;
            double  sum10 = 0;
            double  sum11 = 0;
            double  sum12 = 0;
            double  sum13 = 0;
            DataRow row   = dt.NewRow();
            DataRow row3  = dt.NewRow();
            DataRow row4  = dt.NewRow();
            DataRow row5  = dt.NewRow();
            DataRow row6  = dt.NewRow();
            DataRow row7  = dt.NewRow();
            DataRow row8  = dt.NewRow();
            DataRow row9  = dt.NewRow();
            DataRow row10 = dt.NewRow();
            DataRow row11 = dt.NewRow();

            row["ID"]    = Guid.NewGuid().ToString();
            row["Title"] = "一、地区生产总值(GDP," + GDPUnits + ")";

            m = firstyear;

            for (int j = firstyear; j <= endyear; j++)
            {
                //if (!ht.ContainsValue(j)) lyh
                //    continue;
                try { sum1 = Convert.ToDouble(rows1[0]["y" + j]); }
                catch { }
                row["y" + j] = sum1;

                try { sum51 = Convert.ToDouble(rows4[0]["y" + j]); }
                catch { }

                if (m != firstyear)    //表示不是第一年,以后的年份要算增长
                {
                    try { sum2 = Convert.ToDouble(rows1[0]["y" + (j - 1)]); }
                    catch { }

                    try { sum52 = Convert.ToDouble(rows4[0]["y" + (j - 1)]); }
                    catch { }
                    if (sum52 != 0)
                    {
                        sum53 = sum51 * 100 / sum52 - 100;  //用电量增长
                    }
                    if (sum2 != 0)
                    {
                        sum3 = sum1 * 100 / sum2 - 100;  //GDP增长
                    }
                    row3["y" + j] = sum3;
                }
                else
                {
                    row3["y" + j] = 1;
                }

                try { sum4 = Convert.ToDouble(rows4[0]["y" + j]); }
                catch { }
                row4["y" + j] = sum4;    //用电量



                //try { sum5 = Convert.ToDouble(rows5[0]["y" + j]); }
                //catch { }
                //row5["y" + j] = sum5;//最大负荷

                //if (sum5 != 0)
                //    sum6 = sum4 * 10000 / sum5;
                //row6["y" + j] = sum6;// 计算全社会最大负荷利用小时数

                //try { sum7 = Convert.ToDouble(rows2[0]["y" + j]); }
                //catch { }


                if (m != firstyear)
                {
                    //if (sum53 != 0)
                    //    sum8 = sum3 / sum53;
                    //row7["y" + j] = sum8;//原计算
                    if (sum3 != 0)
                    {
                        sum8 = sum53 / sum3;
                    }
                    row7["y" + j] = sum8;    //弹性系数,电力消费增长速度与国民经济增长的比值lgm
                }
                else
                {
                    row7["y" + j] = 1;
                }

                try { sum9 = Convert.ToDouble(rows7[0]["y" + j]); }    //年末人口
                catch { }

                if (sum9 != 0)
                {
                    if (AYdlUnits.Contains("亿") && NMARkUnits.Contains("万人"))      //亿kWh  万人
                    {
                        sum10 = sum51 * 10000 / sum9;                              //人均用电量
                    }
                    else if (AYdlUnits.Contains("万") && NMARkUnits.Contains("万人")) //万kWh  万人
                    {
                        sum10 = sum51 / sum9;                                      //人均用电量
                    }
                    else
                    {
                        MessageBox.Show("全社会用电量或年末总人口的单位错误!请用默认类别管理较对!(亿kWh,万kWh,万人)");
                        this.Close();
                        return;
                    }
                }
                row8["y" + j] = sum10;

                if (sum1 != 0)
                {
                    if (AYdlUnits.Contains("亿") && GDPUnits.Contains("亿元"))      //亿kWh 亿元
                    {
                        sum11 = sum4 * 10000 / sum1;                             //单产耗能
                    }
                    else if (AYdlUnits.Contains("万") && GDPUnits.Contains("亿元")) //万kWh  亿元
                    {
                        sum11 = sum4 / sum1;                                     //单产耗能
                    }
                    else
                    {
                        MessageBox.Show("全社会用电量或全地区GDP的单位错误!请用默认类别管理较对!(亿kWh,万kWh,亿元)");
                        this.Close();
                        return;
                    }
                }
                row9["y" + j] = sum11;    //单产耗能

                if (rows8.Length > 0)
                {
                    try { sum12 = Convert.ToDouble(rows8[0]["y" + j]); }
                    catch { }
                    row11["y" + j] = sum12;

                    if (sum9 != 0)
                    {
                        if (AYdlUnits.Contains("亿") && NMARkUnits.Contains("万人"))      //亿kWh 万人
                        {
                            sum13 = sum12 * 10000 / sum9;                              //居民用电
                        }
                        else if (AYdlUnits.Contains("万") && NMARkUnits.Contains("万人")) //万kWh  万人
                        {
                            sum13 = sum12 / sum9;                                      //居民用电
                        }
                        else
                        {
                            MessageBox.Show("全社会用电量或年末总人口的单位错误!请用默认类别管理较对!(亿kWh,万kWh,万人)");
                            this.Close();
                            return;
                        }
                    }
                    row10["y" + j] = sum13;
                }
                else
                {
                    row10["y" + j] = sum13;
                }
                m++;
            }

            dt.Rows.Add(row);

            for (int k = 0; k < rows3.Length; k++)
            {
                double su1 = 0;
                double su2 = 0;
                double su3 = 0;



                DataRow ro1 = dt.NewRow();
                ro1["ID"]    = Guid.NewGuid().ToString();
                ro1["Title"] = rows3[k]["Title"].ToString();

                DataRow ro2 = dt.NewRow();
                ro2["ID"]    = Guid.NewGuid().ToString();
                ro2["Title"] = "比例(%)";

                for (int j = firstyear; j <= endyear; j++)
                {
                    if (!ht.ContainsValue(j))
                    {
                        continue;
                    }
                    try { su1 = Convert.ToDouble(rows1[0]["y" + j]); }
                    catch { }
                    su2 = 0;
                    su3 = 0;
                    try { su2 = Convert.ToDouble(rows3[k]["y" + j]); }
                    catch { }
                    ro1["y" + j] = su2;

                    if (su1 != 0)
                    {
                        su3 = su2 * 100 / su1;
                    }
                    ro2["y" + j] = su3;
                }

                dt.Rows.Add(ro1);
                dt.Rows.Add(ro2);
            }

            row3["ID"]    = Guid.NewGuid().ToString();
            row3["Title"] = "地区生产总值增长率(%)";
            dt.Rows.Add(row3);


            row4["ID"]    = Guid.NewGuid().ToString();
            row4["Title"] = "二、全社会用电量(" + AYdlUnits + ")";
            dt.Rows.Add(row4);


            //row5["ID"] = Guid.NewGuid().ToString();
            //row5["Title"] = "最大负荷(万千瓦)";
            //dt.Rows.Add(row5);

            //row6["ID"] = Guid.NewGuid().ToString();
            //row6["Title"] = "最大负荷利用小时数(小时)";
            //dt.Rows.Add(row6);



            for (int k = 0; k < rows6.Length; k++)
            {
                double su1 = 0;
                double su2 = 0;
                double su3 = 0;



                DataRow ro1 = dt.NewRow();
                ro1["ID"]    = Guid.NewGuid().ToString();
                ro1["Title"] = rows6[k]["Title"].ToString();

                DataRow ro2 = dt.NewRow();
                ro2["ID"]    = Guid.NewGuid().ToString();
                ro2["Title"] = "比例(%)";

                for (int j = firstyear; j <= endyear; j++)
                {
                    if (!ht.ContainsValue(j))
                    {
                        continue;
                    }
                    try { su1 = Convert.ToDouble(rows4[0]["y" + j]); }
                    catch { }
                    su2 = 0;
                    su3 = 0;
                    try { su2 = Convert.ToDouble(rows6[k]["y" + j]); }
                    catch { }
                    ro1["y" + j] = su2;

                    if (su1 != 0)
                    {
                        su3 = su2 * 100 / su1;
                    }
                    ro2["y" + j] = su3;
                }

                dt.Rows.Add(ro1);
                dt.Rows.Add(ro2);
            }

            row7["ID"]    = Guid.NewGuid().ToString();
            row7["Title"] = "弹性系数";
            dt.Rows.Add(row7);

            row8["ID"]    = Guid.NewGuid().ToString();
            row8["Title"] = "人均用电量(千瓦时/人)";
            dt.Rows.Add(row8);

            row9["ID"]    = Guid.NewGuid().ToString();
            row9["Title"] = "GDP单耗(千瓦时/万元)";
            dt.Rows.Add(row9);

            for (int k = 0; k < rows6.Length; k++)
            {
                double su1 = 0;
                double su2 = 0;
                double su3 = 0;

                DataRow ro1 = dt.NewRow();
                ro1["ID"]    = Guid.NewGuid().ToString();
                ro1["Title"] = rows6[k]["Title"].ToString();

                for (int j = firstyear; j <= endyear; j++)
                {
                    if (!ht.ContainsValue(j))
                    {
                        continue;
                    }
                    su1 = 0;
                    su2 = 0;
                    su3 = 0;
                    try { su1 = Convert.ToDouble(rows6[k]["y" + j]); }
                    catch { }
                    try { su2 = Convert.ToDouble(rows3[k]["y" + j]); }
                    catch { }

                    if (su2 != 0)
                    {
                        su3 = su1 * 10000 / su2;
                    }
                    else
                    {
                        su3 = su1;
                    }
                    ro1["y" + j] = su3;
                }
                if (rows6[k]["Title"].ToString().IndexOf("居民") >= 0)
                {
                    continue;
                }
                dt.Rows.Add(ro1);
            }

            row10["ID"]    = Guid.NewGuid().ToString();
            row10["Title"] = "居民用电(千瓦时/人)";
            dt.Rows.Add(row10);


            double d = 0;

            //年均增长率
            foreach (DataRow drw1 in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    if (dc.ColumnName.IndexOf("m") >= 0)
                    {
                        string s  = dc.ColumnName.Replace("m", "");
                        int    y1 = int.Parse(s);
                        double d1 = 0;
                        try
                        {
                            d1 = (double)drw1["y" + s];
                        }
                        catch { }
                        int peryear = 0;
                        for (int i = y1 - 1; i > 0; i--)
                        {
                            if (ht.ContainsValue(i))
                            {
                                peryear = i;
                                break;
                            }
                        }
                        try
                        {
                            d = (double)drw1["y" + peryear];
                        }
                        catch { }


                        double sss = Math.Round(Math.Pow(d1 / d, 1.0 / (y1 - peryear)) - 1, 4);
                        sss *= 100;

                        if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                        {
                            sss = 0;
                        }
                        drw1["m" + s] = sss;
                    }
                }
            }
            //逐年增长率
            double dd = 0;

            foreach (DataRow drw1 in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    if (dc.ColumnName.IndexOf("n") >= 0)
                    {
                        string s  = dc.ColumnName.Replace("n", "");
                        int    y1 = int.Parse(s);
                        double d1 = 0;
                        try
                        {
                            d1 = (double)drw1["y" + s];
                        }
                        catch { }
                        try
                        {
                            dd = (double)drw1["y" + (y1 - 1)];
                        }
                        catch { }

                        double sss = Math.Round(Math.Pow(d1 / dd, 1.0 / 1) - 1, 4);
                        sss *= 100;
                        if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                        {
                            sss = 0;
                        }
                        drw1["n" + s] = sss;
                    }
                }
            }



            this.gridControl1.DataSource = dt;
        }
Пример #16
0
        private void InitData()
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = yearflag;
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 1990;
                endyear       = 2020;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }

            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Title");
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = pstype;
            psp_Type.Col4     = projectUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            DataTable          dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));

            int m = -1;

            this.gridControl1.BeginInit();
            this.gridControl1.BeginUpdate();
            bool isfirst = true;

            for (int i = firstyear; i <= endyear; i++)
            {
                if (!ht.ContainsValue(i))
                {
                    continue;
                }
                if (IsFist)
                {
                    RealFistYear = i;
                    IsFist       = false;
                }
                m++;

                GridColumn gridColumn = new GridColumn();
                gridColumn.Caption      = i + "年";
                gridColumn.FieldName    = "y" + i;
                gridColumn.Visible      = true;
                gridColumn.VisibleIndex = 2 * m + 10;
                gridColumn.Width        = 70;
                gridColumn.DisplayFormat.FormatString = "n2";
                gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridView1.Columns.Add(gridColumn);

                if (ht1.ContainsValue(i))
                {
                    if (isfirst)
                    {
                        isfirst = false;
                    }
                    else
                    {
                        gridColumn              = new GridColumn();
                        gridColumn.Caption      = "年均增长率(%)";
                        gridColumn.FieldName    = "mm" + i;
                        gridColumn.Visible      = true;
                        gridColumn.Width        = 130;
                        gridColumn.VisibleIndex = 2 * m + 11;
                        gridColumn.DisplayFormat.FormatString = "n2";
                        gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                        gridView1.Columns.Add(gridColumn);
                        dataTable.Columns.Add("mm" + i, typeof(double));
                    }
                }

                if (ht2.ContainsValue(i))
                {
                    gridColumn              = new GridColumn();
                    gridColumn.Caption      = "逐年增长率(%)";
                    gridColumn.FieldName    = "nn" + i;
                    gridColumn.Visible      = true;
                    gridColumn.Width        = 130;
                    gridColumn.VisibleIndex = 2 * m + 12;
                    gridColumn.DisplayFormat.FormatString = "n2";
                    gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    gridView1.Columns.Add(gridColumn);
                    dataTable.Columns.Add("nn" + i, typeof(double));
                }
            }

            this.gridControl1.EndUpdate();
            this.gridControl1.EndInit();


            double d = 0;

            //年均增长率
            foreach (DataRow drw1 in dataTable.Rows)
            {
                foreach (DataColumn dc in dataTable.Columns)
                {
                    if (dc.ColumnName.IndexOf("mm") >= 0)
                    {
                        string s  = dc.ColumnName.Replace("mm", "");
                        int    y1 = int.Parse(s);
                        double d1 = 0;
                        try
                        {
                            d1 = (double)drw1["y" + s];
                        }
                        catch { }
                        int peryear = 0;
                        for (int i = y1 - 1; i > 0; i--)
                        {
                            if (ht1.ContainsValue(i))
                            {
                                peryear = i;
                                break;
                            }
                        }
                        try
                        {
                            d = (double)drw1["y" + peryear];
                        }
                        catch { }


                        double sss = Math.Round(Math.Pow(d1 / d, 1.0 / (y1 - peryear)) - 1, 4);
                        sss *= 100;

                        if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                        {
                            sss = 0;
                        }
                        drw1["mm" + s] = sss;
                    }
                }
            }
            //逐年增长率
            double dd = 0;

            foreach (DataRow drw1 in dataTable.Rows)
            {
                foreach (DataColumn dc in dataTable.Columns)
                {
                    if (dc.ColumnName.IndexOf("nn") >= 0)
                    {
                        string s  = dc.ColumnName.Replace("nn", "");
                        int    y1 = int.Parse(s);
                        double d1 = 0;
                        try
                        {
                            d1 = (double)drw1["y" + s];
                        }
                        catch { }
                        try
                        {
                            dd = (double)drw1["y" + (y1 - 1)];
                        }
                        catch { }

                        double sss = Math.Round(Math.Pow(d1 / dd, 1.0 / 1) - 1, 4);
                        sss *= 100;
                        if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                        {
                            sss = 0;
                        }
                        drw1["nn" + s] = sss;
                    }
                }
            }



            this.gridControl1.DataSource = dataTable;
        }
Пример #17
0
        public string GetCurVolumn()
        {
            Ps_YearRange range = yearRange;
            string       conn  = "ParentID='" + parentid + "'";
            IList        tList = Common.Services.BaseService.GetList("SelectPs_Table_EditListByConn", conn);

            if (typeTable == "500")
            {
                Ps_Table_500PH edit = Common.Services.BaseService.GetOneByKey <Ps_Table_500PH>(parentid);
                for (int j = 0; j < tList.Count; j++)
                {
                    if (((Ps_Table_Edit)tList[j]).Status == "扩建/改造")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            double old = (double)edit.GetType().GetProperty("y" + k.ToString()).GetValue(edit, null);
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, double.Parse(((Ps_Table_Edit)tList[j]).Volume) + old, null);
                        }
                    }
                    else if (((Ps_Table_Edit)tList[j]).Status == "拆除")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, 0.0, null);
                        }
                    }
                }
                return(edit.GetType().GetProperty("y" + range.EndYear).GetValue(edit, null).ToString());
            }
            else if (typeTable == "200")
            {
                Ps_Table_200PH edit = Common.Services.BaseService.GetOneByKey <Ps_Table_200PH>(parentid);
                for (int j = 0; j < tList.Count; j++)
                {
                    if (((Ps_Table_Edit)tList[j]).Status == "扩建/改造")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            double old = (double)edit.GetType().GetProperty("y" + k.ToString()).GetValue(edit, null);
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, double.Parse(((Ps_Table_Edit)tList[j]).Volume) + old, null);
                        }
                    }
                    else if (((Ps_Table_Edit)tList[j]).Status == "拆除")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, 0.0, null);
                        }
                    }
                }
                return(edit.GetType().GetProperty("y" + range.EndYear).GetValue(edit, null).ToString());
            }
            else if (typeTable == "100")
            {
                Ps_Table_100PH edit = Common.Services.BaseService.GetOneByKey <Ps_Table_100PH>(parentid);
                for (int j = 0; j < tList.Count; j++)
                {
                    if (((Ps_Table_Edit)tList[j]).Status == "扩建/改造")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            double old = (double)edit.GetType().GetProperty("y" + k.ToString()).GetValue(edit, null);
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, double.Parse(((Ps_Table_Edit)tList[j]).Volume) + old, null);
                        }
                    }
                    else if (((Ps_Table_Edit)tList[j]).Status == "拆除")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, 0.0, null);
                        }
                    }
                }
                return(edit.GetType().GetProperty("y" + range.EndYear).GetValue(edit, null).ToString());
            }
            else if (typeTable == "35")
            {
                Ps_Table_35PH edit = Common.Services.BaseService.GetOneByKey <Ps_Table_35PH>(parentid);
                for (int j = 0; j < tList.Count; j++)
                {
                    if (((Ps_Table_Edit)tList[j]).Status == "扩建/改造")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            double old = (double)edit.GetType().GetProperty("y" + k.ToString()).GetValue(edit, null);
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, double.Parse(((Ps_Table_Edit)tList[j]).Volume) + old, null);
                        }
                    }
                    else if (((Ps_Table_Edit)tList[j]).Status == "拆除")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, 0.0, null);
                        }
                    }
                }
                return(edit.GetType().GetProperty("y" + range.EndYear).GetValue(edit, null).ToString());
            }
            else
            {
                Ps_PowerBuild edit = Common.Services.BaseService.GetOneByKey <Ps_PowerBuild>(parentid);
                for (int j = 0; j < tList.Count; j++)
                {
                    if (((Ps_Table_Edit)tList[j]).Status == "扩建/改造")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            double old = (double)edit.GetType().GetProperty("y" + k.ToString()).GetValue(edit, null);
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, double.Parse(((Ps_Table_Edit)tList[j]).Volume) + old, null);
                        }
                    }
                    else if (((Ps_Table_Edit)tList[j]).Status == "拆除")
                    {
                        for (int k = int.Parse(((Ps_Table_Edit)tList[j]).FinishYear); k <= range.EndYear; k++)
                        {
                            edit.GetType().GetProperty("y" + k.ToString()).SetValue(edit, 0.0, null);
                        }
                    }
                }
                return(edit.GetType().GetProperty("y" + range.EndYear).GetValue(edit, null).ToString());
            }
        }
Пример #18
0
        private void InitData()
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = yearflag;
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 2000;
                endyear       = 2008;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }
            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Year");
            dt.Columns.Add("GDP", typeof(double));
            dt.Columns.Add("A", typeof(double));
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = pstype;
            psp_Type.Col4     = projectUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            DataTable          dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));

            DataRow[] rows1 = dataTable.Select("Title like '全地区GDP%'");
            DataRow[] rows2 = dataTable.Select("Title like '年末总人口%'");
            //找不到数据时给出提示
            if (rows1.Length == 0 || rows2.Length == 0)
            {
                MessageBox.Show("缺少‘全地区GDP’或‘年末总人口’ 数据,无法进行统计!");
                this.Close();
                return;
            }
            string pid = rows1[0]["ID"].ToString();

            DataRow[] rows3 = dataTable.Select("ParentID='" + pid + "'");

            int m = -1;

            for (int k = 0; k < rows3.Length; k++)
            {
                m++;
                dt.Columns.Add("m" + m, typeof(double));
                dt.Columns.Add("n" + m, typeof(double));
                GridColumn gridColumn = new GridColumn();
                gridColumn.Caption      = rows3[k]["Title"].ToString();
                gridColumn.FieldName    = "m" + m;
                gridColumn.Visible      = true;
                gridColumn.VisibleIndex = 2 * m + 10;
                gridColumn.DisplayFormat.FormatString = "n2";
                gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridColumn.Width = 70;

                this.gridView1.Columns.Add(gridColumn);

                GridColumn gridColumn1 = new GridColumn();
                gridColumn1.Caption      = "比例(%)";
                gridColumn1.FieldName    = "n" + m;
                gridColumn1.Visible      = true;
                gridColumn1.VisibleIndex = 2 * m + 11;
                gridColumn1.DisplayFormat.FormatString = "n0";
                gridColumn1.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridColumn1.Width = 80;
                this.gridView1.Columns.Add(gridColumn1);
            }

            GridColumn gridColumn2 = new GridColumn();

            gridColumn2.Caption      = "人口(万人)";
            gridColumn2.FieldName    = "RK";
            gridColumn2.Visible      = true;
            gridColumn2.VisibleIndex = 2 * m + 12;
            gridColumn2.DisplayFormat.FormatString = "n2";
            gridColumn2.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
            gridColumn2.Width = 90;
            dt.Columns.Add("RK", typeof(double));
            this.gridView1.Columns.Add(gridColumn2);
            GridColumn gridColumn3 = new GridColumn();

            gridColumn3.Caption      = "人均GDP(万元/人)";
            gridColumn3.FieldName    = "RJGDP";
            gridColumn3.Visible      = true;
            gridColumn3.VisibleIndex = 2 * m + 13;
            gridColumn3.DisplayFormat.FormatString = "n4";
            gridColumn3.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
            gridColumn3.Width = 120;

            dt.Columns.Add("RJGDP", typeof(double));
            this.gridView1.Columns.Add(gridColumn3);

            double sum1 = 0;

            for (int i = firstyear; i <= endyear; i++)
            {
                if (!ht.ContainsValue(i))
                {
                    continue;
                }

                DataRow row = dt.NewRow();
                row["ID"]   = Guid.NewGuid().ToString();
                row["Year"] = i;
                double sum = 0;
                try { sum = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                row["GDP"] = sum.ToString();

                if (i == firstyear)
                {
                    sum1 = sum;
                }

                if (sum1 != 0)
                {
                    sum1 = sum * 100 / sum1;
                }
                row["A"] = sum1.ToString("n2");
                sum1     = sum;
                for (int j = 0; j <= m; j++)
                {
                    double s = 0;
                    double y = 0;
                    try { s = Convert.ToDouble(rows3[j]["y" + i]); }
                    catch { }
                    row["m" + j] = s.ToString();
                    if (sum != 0)
                    {
                        y = s * 100 / sum;
                    }

                    row["n" + j] = detel_jd(y, 2);
                }
                double rk    = 0;
                double rjgdp = 0;
                try { rk = Convert.ToDouble(rows2[0]["y" + i]); }
                catch { }
                row["RK"] = rk.ToString();

                if (rk != 0)
                {
                    rjgdp = sum / rk;
                }

                row["RJGDP"] = detel_jd(rjgdp, 4);
                dt.Rows.Add(row);
            }

            this.gridControl1.DataSource = dt;
        }
Пример #19
0
        private void InitData()
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = yearflag;
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 2000;
                endyear       = 2008;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }

            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Title");
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = pstype;
            psp_Type.Col4     = projectUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            DataTable          dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));

            DataRow[] rows1 = dataTable.Select("Title like '全社会用电量%'");
            if (rows1.Length == 0)
            {
                MessageBox.Show("缺少‘全社会用电量’ 数据,无法进行统计!");
                this.Close();
                return;
            }
            string pid      = rows1[0]["ID"].ToString();
            string tempTite = rows1[0]["Title"].ToString();

            //取出标题中的单位
            Untis = Historytool.FindUnits(tempTite);
            DataRow[] rows3 = dataTable.Select("ParentID='" + pid + "'");
            if (rows3.Length == 0)
            {
                MessageBox.Show("缺少‘全社会用电量’下的分行业用电数据,无法进行统计!");
                this.Close();
                return;
            }

            int m = -1;

            for (int i = firstyear; i <= endyear; i++)
            {
                if (!ht.ContainsValue(i))
                {
                    continue;
                }

                m++;
                dt.Columns.Add("y" + i, typeof(double));
                dt.Columns.Add("n" + i, typeof(double));

                GridBand gb = new GridBand();
                gb.Caption = i + "年";
                gb.AppearanceHeader.Options.UseTextOptions = true;
                gb.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

                this.bandedGridView1.Bands.Add(gb);

                GridBand gb1 = new GridBand();
                if (Untis.Length > 0)
                {
                    gb1.Caption = "用电量(" + Untis + ")";
                }
                else
                {
                    gb1.Caption = "用电量";
                }
                gb1.AppearanceHeader.Options.UseTextOptions = true;
                gb1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                gb.Children.Add(gb1);

                GridBand gb2 = new GridBand();
                gb2.Caption = "百分比";
                gb2.AppearanceHeader.Options.UseTextOptions = true;
                gb2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                gb.Children.Add(gb2);


                BandedGridColumn gridColumn = new BandedGridColumn();
                gridColumn.Caption      = i + "年用电量";
                gridColumn.FieldName    = "y" + i;
                gridColumn.Visible      = true;
                gridColumn.VisibleIndex = 2 * m + 10;
                gridColumn.DisplayFormat.FormatString = "n2";
                gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridColumn.Width = 95;
                gb1.Columns.Add(gridColumn);

                BandedGridColumn gridColumn1 = new BandedGridColumn();
                gridColumn1.Caption      = i + "年百分比";
                gridColumn1.FieldName    = "n" + i;
                gridColumn1.Visible      = true;
                gridColumn1.VisibleIndex = 2 * m + 11;
                gridColumn1.DisplayFormat.FormatString = "n2";
                gridColumn1.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridColumn1.Width = 80;
                gb2.Columns.Add(gridColumn1);
            }

            double sum = 0;

            try { sum = Convert.ToDouble(rows1[0]["y" + firstyear]); }
            catch { }


            DataRow row1 = dt.NewRow();

            row1["ID"]    = Guid.NewGuid().ToString();
            row1["Title"] = "用电量总计";    //rows1[0]["Title"].ToString();
            for (int k = 0; k < rows3.Length; k++)
            {
                DataRow row = dt.NewRow();
                row["ID"]    = Guid.NewGuid().ToString();
                row["Title"] = rows3[k]["Title"].ToString();

                for (int j = firstyear; j <= endyear; j++)
                {
                    if (!ht.ContainsValue(j))
                    {
                        continue;
                    }
                    sum = 0;
                    try {
                        sum = Convert.ToDouble(rows1[0]["y" + j]);
                    }
                    catch { }

                    row1["y" + j] = sum;
                    row1["n" + j] = 1;
                    double sum1 = 0;
                    double sum2 = 0;
                    try { sum1 = Convert.ToDouble(rows3[k]["y" + j]); }
                    catch { }
                    row["y" + j] = sum1;
                    if (sum != 0)
                    {
                        sum2 = sum1 / sum;
                    }
                    row["n" + j] = sum2;
                }

                dt.Rows.Add(row);
            }
            dt.Rows.Add(row1);



            this.gridControl1.DataSource = dt;
        }
Пример #20
0
        private void LoadData()
        {
            if (dataTable != null)
            {
                dataTable.Columns.Clear();
                treeList1.Columns.Clear();
            }

            string con = "(Col4='bian' or Col4='line' or Col4='sbd') and " + "ProjectID='" + GetProjectID + "' and ParentID='0'";

            listTypes = Common.Services.BaseService.GetList("SelectPs_Table_TZGSByConn", con);
            CalcYearVol();

            dataTable = Itop.Common.DataConverter.ToDataTable(listTypes, typeof(Ps_Table_TZGS));

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                dataTable.Rows[i]["Sort"] = CheckState.Unchecked;
            }
            treeList1.DataSource = dataTable;
            Ps_YearRange yr = yAnge;

            treeList1.Columns["Title"].Caption  = "项目名称";
            treeList1.Columns["Title"].Width    = 250;
            treeList1.Columns["Title"].MinWidth = 250;
            treeList1.Columns["Title"].OptionsColumn.AllowEdit = false;
            treeList1.Columns["Title"].OptionsColumn.AllowSort = false;
            treeList1.Columns["Title"].VisibleIndex            = 0;
            treeList1.Columns["BuildYear"].Caption             = "开工年限";
            treeList1.Columns["BuildYear"].Width    = 100;
            treeList1.Columns["BuildYear"].MinWidth = 100;
            treeList1.Columns["BuildYear"].OptionsColumn.AllowEdit = false;
            treeList1.Columns["BuildYear"].OptionsColumn.AllowSort = false;
            treeList1.Columns["BuildYear"].VisibleIndex            = 1;
            treeList1.Columns["BuildEd"].Caption  = "竣工年限";
            treeList1.Columns["BuildEd"].Width    = 100;
            treeList1.Columns["BuildEd"].MinWidth = 100;
            treeList1.Columns["BuildEd"].OptionsColumn.AllowEdit = false;
            treeList1.Columns["BuildEd"].OptionsColumn.AllowSort = false;
            treeList1.Columns["BuildEd"].VisibleIndex            = 2;


            treeList1.Columns["AreaName"].VisibleIndex             = -1;
            treeList1.Columns["AllVolumn"].Caption                 = "总投资";
            treeList1.Columns["AllVolumn"].Width                   = 100;
            treeList1.Columns["AllVolumn"].MinWidth                = 100;
            treeList1.Columns["AllVolumn"].Format.FormatString     = "n2";
            treeList1.Columns["AllVolumn"].OptionsColumn.AllowEdit = true;
            treeList1.Columns["AllVolumn"].OptionsColumn.AllowSort = false;
            treeList1.Columns["AllVolumn"].VisibleIndex            = 5;
            treeList1.Columns["BefVolumn"].Caption                 = Convert.ToString(yr.StartYear) + "年底投资";
            treeList1.Columns["BefVolumn"].Width                   = 100;
            treeList1.Columns["BefVolumn"].MinWidth                = 100;
            treeList1.Columns["BefVolumn"].Format.FormatString     = "n2";
            treeList1.Columns["BefVolumn"].OptionsColumn.AllowEdit = true;
            treeList1.Columns["BefVolumn"].OptionsColumn.AllowSort = false;
            treeList1.Columns["BefVolumn"].VisibleIndex            = 6;
            treeList1.Columns["AftVolumn"].Caption                 = Convert.ToString(yr.StartYear + 1) + "~" + Convert.ToString(yr.StartYear + 5) + "投资合计";
            treeList1.Columns["AftVolumn"].Width                   = 150;
            treeList1.Columns["AftVolumn"].MinWidth                = 150;
            treeList1.Columns["AftVolumn"].Format.FormatString     = "n2";;
            treeList1.Columns["AftVolumn"].OptionsColumn.AllowEdit = false;
            treeList1.Columns["AftVolumn"].OptionsColumn.AllowSort = false;
            treeList1.Columns["AftVolumn"].VisibleIndex            = 7;
            CalcYearColumn();
            for (int i = 2; i <= 4; i++)
            {
                treeList1.Columns["Col" + i.ToString()].VisibleIndex = -1;
                treeList1.Columns["Col" + i.ToString()].OptionsColumn.ShowInCustomizationForm = false;
            }

            treeList1.Columns["Col1"].Caption  = "备注";
            treeList1.Columns["Col1"].Width    = 300;
            treeList1.Columns["Col1"].MinWidth = 300;
            treeList1.Columns["Col1"].OptionsColumn.AllowEdit = true;
            treeList1.Columns["Col1"].OptionsColumn.AllowSort = false;
            treeList1.Columns["Col1"].VisibleIndex            = -1;
            treeList1.Columns["Sort"].VisibleIndex            = -1;
            treeList1.Columns["ProjectID"].VisibleIndex       = -1;
            treeList1.Columns["FromID"].VisibleIndex          = -1;
            treeList1.Columns["BianInfo"].VisibleIndex        = -1;
            treeList1.Columns["LineInfo"].VisibleIndex        = -1;

            treeList1.Columns["Num1"].VisibleIndex     = -1;
            treeList1.Columns["Num2"].VisibleIndex     = -1;
            treeList1.Columns["Num3"].VisibleIndex     = -1;
            treeList1.Columns["Num4"].VisibleIndex     = -1;
            treeList1.Columns["Num5"].VisibleIndex     = -1;
            treeList1.Columns["Num6"].VisibleIndex     = -1;
            treeList1.Columns["DQ"].VisibleIndex       = -1;
            treeList1.Columns["WGNum"].VisibleIndex    = -1;
            treeList1.Columns["Amount"].VisibleIndex   = -1;
            treeList1.Columns["JGNum"].VisibleIndex    = -1;
            treeList1.Columns["ProgType"].VisibleIndex = -1;
            treeList1.Columns["Length2"].VisibleIndex  = -1;
            treeList1.Columns["Length"].VisibleIndex   = -1;
            treeList1.Columns["Volumn"].VisibleIndex   = -1;
            //treeList1.Columns["Sort"].SortOrder = SortOrder.Ascending;
            Application.DoEvents();
            // SetValueNull();
            //treeList1.ExpandAll();
            treeList1.CollapseAll();
        }
Пример #21
0
        private void FormForecastCalcTX_Load(object sender, EventArgs e)
        {
            #region 电力发展实绩

            ArrayList         al  = new ArrayList();
            IList <Base_Data> li1 = Common.Services.BaseService.GetStrongList <Base_Data>();
            foreach (Base_Data bd in li1)
            {
                al.Add(bd.Title);
            }

            Ps_History psp_Type1 = new Ps_History();
            psp_Type1.Forecast = 1;
            psp_Type1.Col4     = Itop.Client.MIS.ProgUID;
            IList <Ps_History> listTypes1 = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type1);

            for (int c = 0; c < al.Count; c++)
            {
                bool bl = true;
                foreach (Ps_History ph in listTypes1)
                {
                    if (al[c].ToString() == ph.Title)
                    {
                        bl = false;
                    }
                }
                if (bl)
                {
                    Ps_History pf = new Ps_History();
                    pf.ID         = Guid.NewGuid().ToString() + "|" + Itop.Client.MIS.ProgUID;
                    pf.Forecast   = 1;
                    pf.ForecastID = "1";
                    pf.Title      = al[c].ToString();
                    pf.Col4       = Itop.Client.MIS.ProgUID;
                    Services.BaseService.Create <Ps_History>(pf);
                    listTypes1.Add(pf);
                }
            }



            Ps_YearRange py = new Ps_YearRange();
            py.Col4 = "电力发展实绩";
            py.Col5 = Itop.Client.MIS.ProgUID;

            IList <Ps_YearRange> li2 = Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);
            if (li2.Count > 0)
            {
                firstyear1 = li2[0].StartYear;
                endyear1   = li2[0].FinishYear;
            }

            Ps_History psp_Type = new Ps_History();
            psp_Type.Forecast = 1;
            psp_Type.Col4     = Itop.Client.MIS.ProgUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);
            DataTable          dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));
            DataRow[]          rows1     = dataTable.Select("Title='全地区GDP(亿元)'");
            DataRow[]          rows4     = dataTable.Select("Title='全社会用电量(亿kWh)'");


            #endregion


            Ps_Forecast_Setup pfs = new Ps_Forecast_Setup();
            pfs.Forecast   = type;
            pfs.ForecastID = forecastReport.ID;

            //IList<Ps_Forecast_Setup> li = Services.BaseService.GetList<Ps_Forecast_Setup>("SelectPs_Forecast_SetupByForecast", pfs);

            //if (li.Count != 0)
            //{
            //    firstyear = li[0].StartYear;
            //    endyear = li[0].EndYear;
            //}



            Ps_Calc pcs = new Ps_Calc();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            list1          = Services.BaseService.GetList <Ps_Calc>("SelectPs_CalcByForecast", pcs);



            HideToolBarButton();

            dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");

            newrow1         = dt.NewRow();
            newrow1["ID"]   = "ID";
            newrow1["Name"] = "弹性系数";
            newrow2         = dt.NewRow();
            newrow2["Name"] = "GDP增长率";

            for (int i = firstyear; i <= forecastReport.EndYear; i++)
            {
                dt.Columns.Add(i.ToString(), typeof(double));
                DevExpress.XtraVerticalGrid.Rows.EditorRow editorRow = new DevExpress.XtraVerticalGrid.Rows.EditorRow();
                editorRow.Properties.FieldName = i.ToString().Trim();
                editorRow.Properties.Caption   = i.ToString().Trim();
                editorRow.Height             = 20;
                editorRow.Properties.RowEdit = this.repositoryItemCalcEdit4;
                this.vGridControl2.Rows.AddRange(new DevExpress.XtraVerticalGrid.Rows.BaseRow[] { editorRow });


                double s1 = 0;
                double s2 = 0;
                double s3 = 0;
                double s4 = 0;
                double s5 = 0;
                double s6 = 0;
                double s7 = 0;
                try { s1 = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                try { s2 = Convert.ToDouble(rows1[0]["y" + (i - 1)]); }
                catch { }

                try { s3 = Convert.ToDouble(rows4[0]["y" + i]); }
                catch { }
                try { s4 = Convert.ToDouble(rows4[0]["y" + (i - 1)]); }
                catch { }

                if (s2 != 0)
                {
                    s5 = (s1 - s2) / s2;
                }

                if (s4 != 0)
                {
                    s6 = (s3 - s4) / s4;
                }

                if (s5 != 0)
                {
                    s7 = s6 / s5;
                }

                newrow1[i.ToString()] = Math.Round(s7, 3);
                newrow2[i.ToString()] = Math.Round(s5, 3);


                foreach (Ps_Calc pcs2 in list1)
                {
                    if (i == pcs2.Year)
                    {
                        newrow1[i.ToString()] = Math.Round(pcs2.Value1, 3);
                        newrow2[i.ToString()] = Math.Round(pcs2.Value2, 3);
                    }
                }
            }
            dt.Rows.Add(newrow1);
            dt.Rows.Add(newrow2);


            vGridControl2.DataSource = dt;
        }
Пример #22
0
        private void InitData()
        {
            Ps_YearRange py = new Ps_YearRange();

            py.Col4 = "分区供电实绩";
            py.Col5 = projectUID;

            IList <Ps_YearRange> li = Itop.Client.Common.Services.BaseService.GetList <Ps_YearRange>("SelectPs_YearRangeByCol5andCol4", py);

            if (li.Count > 0)
            {
                firstyear = li[0].StartYear;
                endyear   = li[0].FinishYear;
            }
            else
            {
                firstyear     = 1990;
                endyear       = 2020;
                py.BeginYear  = 1990;
                py.FinishYear = endyear;
                py.StartYear  = firstyear;
                py.EndYear    = 2060;
                py.ID         = Guid.NewGuid().ToString();
                Itop.Client.Common.Services.BaseService.Create <Ps_YearRange>(py);
            }

            DT.Columns.Add("Title", typeof(string));
            DT.Columns.Add("ID", typeof(string));
            DT.Columns.Add("ParentID", typeof(string));

            GridColumn gridColumn1 = new GridColumn();

            gridColumn1.Caption   = "ID";
            gridColumn1.FieldName = "ID";
            gridColumn1.Visible   = false;
            gridColumn1.Width     = 70;
            gridView1.Columns.Add(gridColumn1);

            GridColumn gridColumn2 = new GridColumn();

            gridColumn2.Caption   = "ParentID";
            gridColumn2.FieldName = "ParentID";
            gridColumn2.Visible   = false;
            gridColumn2.Width     = 70;
            gridView1.Columns.Add(gridColumn2);

            int m = -1;

            this.gridControl1.BeginInit();
            this.gridControl1.BeginUpdate();



            for (int i = firstyear; i <= endyear; i++)
            {
                DT.Columns.Add("y" + i, typeof(double));
                if (!ht.ContainsValue(i))
                {
                    continue;
                }
                if (IsFist)
                {
                    RealFistYear = i;
                    IsFist       = false;
                }
                m++;
                //DT.Columns.Add("y" + i, typeof(double));
                GridColumn gridColumn = new GridColumn();
                gridColumn.Caption      = i + "年";
                gridColumn.FieldName    = "y" + i;
                gridColumn.Visible      = true;
                gridColumn.VisibleIndex = 2 * m + 10;
                gridColumn.Width        = 70;
                gridColumn.DisplayFormat.FormatString = "n2";
                gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                gridView1.Columns.Add(gridColumn);

                if (ht1.ContainsValue(i))
                {
                    gridColumn              = new GridColumn();
                    gridColumn.Caption      = "年均增长率(%)";
                    gridColumn.FieldName    = "m" + i;
                    gridColumn.Visible      = true;
                    gridColumn.Width        = 100;
                    gridColumn.VisibleIndex = 2 * m + 11;
                    gridColumn.DisplayFormat.FormatString = "n2";
                    gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    gridView1.Columns.Add(gridColumn);
                    DT.Columns.Add("m" + i, typeof(double));
                }

                if (ht2.ContainsValue(i))
                {
                    gridColumn              = new GridColumn();
                    gridColumn.Caption      = "逐年增长率(%)";
                    gridColumn.FieldName    = "x" + i;
                    gridColumn.Visible      = true;
                    gridColumn.Width        = 100;
                    gridColumn.VisibleIndex = 2 * m + 12;
                    gridColumn.DisplayFormat.FormatString = "n2";
                    gridColumn.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    gridView1.Columns.Add(gridColumn);
                    DT.Columns.Add("x" + i, typeof(double));
                }
            }

            this.gridControl1.EndUpdate();
            this.gridControl1.EndInit();
            AddDT(LI.Nodes);
            double d = 0;

            //年均增长率
            foreach (DataRow drw1 in DT.Rows)
            {
                foreach (DataColumn dc in DT.Columns)
                {
                    if (dc.ColumnName.IndexOf("m") >= 0)
                    {
                        try
                        {
                            string s  = dc.ColumnName.Replace("m", "");
                            int    y1 = int.Parse(s);
                            double d1 = 0;
                            try
                            {
                                d1 = (double)drw1["y" + s];
                            }
                            catch { }
                            int peryear = 0;
                            for (int i = y1 - 1; i > 0; i--)
                            {
                                if (ht.ContainsValue(i))
                                {
                                    peryear = i;
                                    break;
                                }
                            }
                            try
                            {
                                d = (double)drw1["y" + peryear];
                            }
                            catch { }

                            double sss = Math.Round(Math.Pow(d1 / d, 1.0 / (y1 - peryear)) - 1, 4);
                            sss *= 100;

                            if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                            {
                                sss = 0;
                            }
                            drw1["m" + s] = sss;
                        }
                        catch (Exception ex)
                        {
                            throw;
                        }
                    }
                }
            }
            //逐年增长率
            double dd = 0;

            foreach (DataRow drw1 in DT.Rows)
            {
                foreach (DataColumn dc in DT.Columns)
                {
                    if (dc.ColumnName.IndexOf("x") >= 0)
                    {
                        try
                        {
                            string s  = dc.ColumnName.Replace("x", "");
                            int    y1 = int.Parse(s);
                            double d1 = 0;
                            try
                            {
                                d1 = (double)drw1["y" + s];
                            }
                            catch { }
                            try
                            {
                                dd = (double)drw1["y" + (y1 - 1)];
                            }
                            catch { }

                            double sss = Math.Round(Math.Pow(d1 / dd, 1.0 / 1) - 1, 4);
                            sss *= 100;
                            if (sss.ToString() == "非数字" || sss.ToString() == "正无穷大")
                            {
                                sss = 0;
                            }
                            drw1["x" + s] = sss;
                        }
                        catch (Exception ex)
                        {
                            throw;
                        }
                    }
                }
            }

            this.gridControl1.DataSource = DT;
        }