Exemple #1
0
        private void LoadData1(int id)
        {
            if (dataTable != null)
            {
                dataTable.Columns.Clear();
                treeList1.Columns.Clear();
            }
            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).BeginInit();
            AddFixColumn();
            for (int i = startyear; i <= endyear; i++)
            {
                AddColumn(i);
            }
            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).EndInit();

            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = id;
            psp_Type.Col4     = pid;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);

            dataTable            = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));
            treeList1.DataSource = dataTable;
            treeList1.Columns["Sort"].SortOrder = SortOrder.Ascending;
            treeList1.Columns["Title"].Caption  = "分类名";
            treeList1.Columns["Title"].Width    = 180;
            treeList1.Columns["Title"].OptionsColumn.AllowEdit = false;
            treeList1.Columns["Title"].OptionsColumn.AllowSort = false;

            Application.DoEvents();
            treeList1.CollapseAll();
            //LoadValues1(htt);
            //treeList1.Nodes[0].Expanded = true;
            //treeList1.ExpandAll();
        }
Exemple #2
0
        /// <summary>
        /// 显示数据
        /// </summary>
        private void ViewSheet2_1Data(FarPoint.Win.Spread.SheetView obj, string Title, Itop.Client.Base.FormBase FB, int FistYear, int IntRow, int IntCol, string SingleTitle)
        {
            string     Temp     = "y" + FistYear.ToString();
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = IntType;
            psp_Type.Col4     = FB.ProjectUID;
            //IList<Ps_History> listTypes = Itop.Client.Common.Services.BaseService.GetList<Ps_History>("SelectPs_HistoryByForecast", psp_Type);

            //dataTable = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));
            //    for (int i = 0; i < YearCount ; i++)
            //    {
            //        if (dataTable.Columns[i].Caption == Temp)
            //        MessageBox.Show(listTypes[i]=Temp);
            //    }

            string     con  = null;
            Ps_History GDP1 = null;

            //if (Title != "年末总人口(万人)" && Title != "城镇化率(%)")
            //{
            if ((Title == "一产") || (Title == "二产") || (Title == "三产"))
            {
                //con = "Title='" + SingleTitle + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
                //GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
                //TwoParentID = GDP1.ID;
                //if (Title == "一产")
                //{
                //    resualt.Add(SingleTitle, GDP1);
                //}

                //con = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
                //con += "AND ParentID='" + TwoParentID + "'";
                //GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
                //resualt.Add(Title, GDP1);
            }
            else
            {
                con  = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
                GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);

                resualt.Add(Title, GDP1);
            }

            ////判断是否年份中有数字,没有就不显示
            //if (Gethistroyvalue<Ps_History>(resualt[Title], Temp) > 0.0000 || Gethistroyvalue<Ps_History>(resualt[Title], Temp) <0.0000)
            if (FistYear != 2001 && FistYear != 2002 && FistYear != 2003 && FistYear != 2004)
            {
                if ((Title == "一产") || (Title == "二产") || (Title == "三产"))
                {
                    floatSum[4] = SumTertiaryIndustry(SingleTitle, FB, Temp, Title);
                    obj.SetValue(IntRow, IntCol, ((PF.Gethistroyvalue <Ps_History>(resualt[Title], Temp)) / floatSum[4]));
                }
                else
                {
                    obj.SetValue(IntRow, IntCol, PF.Gethistroyvalue <Ps_History>(resualt[Title], Temp));
                }
            }
            //}
        }
Exemple #3
0
        /// <summary>
        /// 添加一产二产三产值
        /// </summary>
        /// <param name="Title"></param>
        private void Add(Itop.Client.Base.FormBase FB, string Title)
        {
            Ps_History GDP1 = null;
            string     con  = null;

            con  = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
            con += "AND ParentID='" + TwoParentID + "'";
            GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
            resualt.Add(Title, GDP1);
        }
Exemple #4
0
        /// <summary>
        /// 返回记录集
        /// </summary>
        public void ReturnRecordSet(Itop.Client.Base.FormBase FB, string Year, string Title)
        {
            //string Temp1 = "y" + Year;
            Ps_History GDP1 = null;
            string     con  = null;

            con  = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
            GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
            resualt.Add(Title, GDP1);
        }
Exemple #5
0
        private void DealTreelist(InDataClass idc)
        {
            SetYear(idc.YearFlag);
            AddFixColumn();
            Ps_History psp_Type = new Ps_History();

            psp_Type.Forecast = idc.IType;
            psp_Type.Col4     = ProjectUID;
            IList <Ps_History> listTypes = Common.Services.BaseService.GetList <Ps_History>("SelectPs_HistoryByForecast", psp_Type);

            treeList1.DataSource = listTypes;
        }
Exemple #6
0
        /// <summary>
        /// 返回上级目录的id
        /// </summary>
        /// <returns></returns>
        private Ps_History  ReturnStrID(Itop.Client.Base.FormBase FB, string strTitle)
        {
            string     sql = "col4='" + FB.ProjectUID + "' and Title='" + strTitle + "'";
            Ps_History ph  = null;

            try
            {
                ph = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", sql);
            }
            catch (System.Exception e)
            {
                MessageBox.Show(e.Message);
            }
            return(ph);
        }
Exemple #7
0
        /// <summary>
        /// 人均GDP
        /// </summary>
        /// <param name="obj">SheetView object</param>
        /// <param name="Title">title</param>
        /// <param name="Years">current year</param>
        /// <param name="IntRow">current row</param>
        /// <param name="IntCol">current column</param>
        private void PerCapitaGDP(FarPoint.Win.Spread.SheetView obj, Itop.Client.Base.FormBase FB, string Title, int Years, int IntRow, int IntCol)
        {
            float      Temp  = 0;
            string     Temp1 = "y" + Years.ToString();
            Ps_History GDP1  = null;
            string     con   = null;

            con  = "Title='" + "全地区GDP(亿元)" + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
            GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
            resualt.Add("全地区GDP(亿元)", GDP1);

            Temp = (float)PF.Gethistroyvalue <Ps_History>(resualt["全地区GDP(亿元)"], Temp1);

            obj.SetValue(IntRow, IntCol, Temp / StrToFloat(obj.GetValue((IntRow), IntCol - 1).ToString()));
            //PF.SetRowHight(obj,IntRow, IntCol, Temp / StrToFloat(obj.GetValue((IntRow), IntCol - 1).ToString()));
        }
Exemple #8
0
        /// <summary>
        /// 查询当前数据
        /// </summary>
        /// <param name="FB"></param>
        /// <param name="CurrentYear"></param>
        /// <param name="RowTitle"></param>
        private object SelectCurrentData(Itop.Client.Base.FormBase FB, string CurrentYear, string RowTitle, Ps_History ps1, Ps_History ps2, Ps_History ps3)
        {
            string     sql     = null;
            object     value   = 0;
            string     strTemp = "y" + CurrentYear;
            Ps_History ph      = null;

            if (RowTitle == "全社会用电总计")
            {
                RowTitle = "全社会用电量(亿kWh)";
            }
            if (RowTitle == "全行业用电合计" || RowTitle == "居民生活用电合计")
            {
                sql = " select " + strTemp + " from ps_History  where Title='" + RowTitle + "' and col4='" + FB.ProjectUID + "' and ParentID='" + ps1.ID + "'";
            }
            else if (RowTitle == "第一产业" || RowTitle == "第二产业" || RowTitle == "第三产业")
            {
                sql = " select " + strTemp + " from ps_History  where Title='" + RowTitle + "' and col4='" + FB.ProjectUID + "' and ParentID='" + ps2.ID + "'";
            }
            else if (RowTitle == "农、林、牧、渔业" || RowTitle == "工业" || RowTitle == "建筑业" ||
                     RowTitle == "交通运输、仓储、邮政业" || RowTitle == "信息传输、计算机服务和软件业" ||
                     RowTitle == "商业、住宿和餐饮业" || RowTitle == "金融、房地产、商务及居民服务业" ||
                     RowTitle == "公共事业及管理组织")
            {
                sql = " select " + strTemp + " from ps_History  where Title='" + RowTitle + "' and col4='" + FB.ProjectUID + "' and ParentID='" + ps3.ID + "'";
            }
            else
            {
                sql = " select " + strTemp + " from ps_History  where Title='" + RowTitle + "' and col4='" + FB.ProjectUID + "'";
            }
            try
            {
                value = (double)Services.BaseService.GetObject("SelectPs_HistoryPopulationByCondition", sql);
            }
            catch (Exception e)
            {
                MessageBox.Show("错误,错误原因:" + e.Message, "提示错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            return(value);
        }
Exemple #9
0
        private void CalculateSum(TreeListNode node, TreeListColumn column)
        {
            Ps_History v = Services.BaseService.GetOneByKey <Ps_History>(node["ID"].ToString());

            TreeNodeToDataObject <Ps_History>(v, node);

            Common.Services.BaseService.Update <Ps_History>(v);


            TreeListNode parentNode = node.ParentNode;

            if (parentNode == null)
            {
                return;
            }

            double sum = 0;

            foreach (TreeListNode nd in parentNode.Nodes)
            {
                object value = nd.GetValue(column.FieldName);
                if (value != null && value != DBNull.Value)
                {
                    sum += Convert.ToDouble(value);
                }
            }
            if (sum != 0)
            {
                parentNode.SetValue(column.FieldName, sum);
                v = Services.BaseService.GetOneByKey <Ps_History>(parentNode["ID"].ToString());
                TreeNodeToDataObject <Ps_History>(v, parentNode);

                Common.Services.BaseService.Update <Ps_History>(v);
            }
            else
            {
                parentNode.SetValue(column.FieldName, 0);
            }
            CalculateSum(parentNode, column);
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            double     Tavg = 0.0;                                  //求其多年的年平均温度的平均温度
            Ps_History wend = new Ps_History();

            for (int j = 0; j < fucol.Count; j++)
            {
                if (fucol[j].Title.Contains("平均温度"))
                {
                    wend = fucol[j];
                    for (int i = firstyear; i <= endyear; i++)
                    {
                        Tavg += Convert.ToDouble(fucol[j].GetType().GetProperty("y" + i.ToString()).GetValue(fucol[j], null));
                    }
                }
            }
            Tavg /= endyear - firstyear + 1;

            foreach (Ps_History ph in fucol)
            {
                if (!ph.Title.Contains("平均温度"))
                {
                    for (int i = firstyear; i <= endyear; i++)
                    {
                        double tmax = Convert.ToDouble(wend.GetType().GetProperty("y" + i).GetValue(wend, null));
                        if (tmax < Tavg)
                        {
                            double sz = Convert.ToDouble(ph.GetType().GetProperty("y" + i).GetValue(ph, null)) * (1 + (Tavg - tmax) * temk1);
                            ph.GetType().GetProperty("y" + i).SetValue(ph, sz, null);
                        }
                        else if (tmax > Tavg)
                        {
                            double sz = Convert.ToDouble(ph.GetType().GetProperty("y" + i).GetValue(ph, null)) * (1 + (Tavg - tmax) * temk2);
                            ph.GetType().GetProperty("y" + i).SetValue(ph, sz, null);
                        }
                    }
                }
            }
            this.DialogResult = DialogResult.OK;
        }
Exemple #11
0
        /// <summary>
        /// 计算三产的和
        /// </summary>
        /// <returns></returns>
        private float SumTertiaryIndustry(string SingleTitle, Itop.Client.Base.FormBase FB, string years, string Title)
        {
            Ps_History GDP1 = null;
            string     con  = null;

            con         = "Title='" + SingleTitle + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
            GDP1        = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
            TwoParentID = GDP1.ID;
            if (Title == "一产")
            {
                Add(FB, "一产");
                Add(FB, "二产");
                Add(FB, "三产");
            }

            floatSum[0] = (float)PF.Gethistroyvalue <Ps_History>(resualt["一产"], years);
            floatSum[1] = (float)PF.Gethistroyvalue <Ps_History>(resualt["二产"], years);
            floatSum[2] = (float)PF.Gethistroyvalue <Ps_History>(resualt["三产"], years);

            floatSum[3] = floatSum[0] + floatSum[1] + floatSum[2];
            return(floatSum[3]);
        }
Exemple #12
0
        /// <summary>
        /// 返回记录集
        /// </summary>
        private void ReturnRecordSet(Itop.Client.Base.FormBase FB, string Year, string Title)
        {
            string     Temp1 = "y" + Year;
            Ps_History GDP1  = null;
            string     con   = null;

            if (Title == "一产" || Title == "二产" || Title == "三产")
            {
                con = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
                con = con + "AND ParentID='" + ParentId + "'";
            }
            else
            {
                con = "Title='" + Title + "'AND Col4='" + FB.ProjectUID + "'AND Forecast='" + IntType + "'";
            }
            GDP1 = (Ps_History)Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
            if (Title == "全地区GDP(亿元)")
            {
                ParentId = GDP1.ID;
            }
            resualt.Add(Title, GDP1);
        }
Exemple #13
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;
        }
Exemple #14
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;
        }
Exemple #15
0
        /// <summary>
        /// 设置左侧标题,写入数据
        /// </summary>
        /// <param name="obj"></param>
        private void SetLeftTitle(Itop.Client.Base.FormBase FB, FarPoint.Win.Spread.SheetView obj, int IntRow)
        {
            int        temp = 1;
            Ps_History ph   = null;

            SelectData(FB);
            obj.RowCount = list.Count + IntRow;
            for (int i = IntRow; i < obj.RowCount; ++i)
            {
                ph = (Ps_History)list[i - IntRow];
                for (int j = 0; j < obj.ColumnCount; ++j)
                {
                    switch (j)
                    {
                    case 0:    //序号
                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, temp);
                        }
                        else
                        {
                            obj.SetValue(i, j, "合计");
                        }
                        break;

                    case 1:    //项目名称
                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.Title);
                        }
                        break;

                    case 2:    //项目性质
                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.Col13);
                        }
                        break;

                    case 3:    //计划开工时间

                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.Col11.Substring(0, 5));
                        }
                        break;

                    case 4:    //计划投产时间
                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.Col12.Substring(0, 5));
                        }
                        break;

                    case 5:    //用电量

                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.y1990);
                        }
                        else
                        {
                            obj.Cells[i, j].Formula  = "Sum(F" + (1 + IntRow) + ":F" + i + ")";
                            obj.Cells[i, j].CellType = PC;
                        }
                        break;

                    case 6:    //最大用电负荷

                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.y1991);
                        }
                        else
                        {
                            obj.Cells[i, j].Formula  = "Sum(G" + (IntRow + 1) + ":G" + i + ")";
                            obj.Cells[i, j].CellType = PC;
                        }
                        break;

                    case 7:    //所属分区

                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ReturnArea(FB, ph.Title));
                        }
                        break;

                    case 8:    //备注
                        if (i != obj.RowCount - 1)
                        {
                            obj.SetValue(i, j, ph.Col6);
                        }
                        break;

                    default:
                        break;
                    }
                }
                temp++;
            }
            PF.Sheet_GridandCenter(obj);//画边线,居中
        }
Exemple #16
0
        /// <summary>
        /// 写入数据
        /// </summary>
        /// <param name="FB"></param>
        /// <param name="obj"></param>
        private void WriteData(Itop.Client.Base.FormBase FB, FarPoint.Win.Spread.SheetView obj, int IntRow)
        {
            string     strRowTitle = null;
            string     strColTitle = null;
            Ps_History ps1         = null;         //全社会用电总计
            Ps_History ps2         = null;         //全行业用电合计

            Ps_History ps3 = null;                 //全行业用电分类

            ps1 = ReturnStrID(FB, "全社会用电量(亿kWh)"); //全社会用电总计
            ps2 = ReturnStrID(FB, "全行业用电合计");      //全行业用电合计

            ps3 = ReturnStrID(FB, "全行业用电分类");      //全行业用电分类

            for (int i = IntRow; i < obj.RowCount; ++i)
            {
                strRowTitle = PF.ReturnStr(obj, (i), 1).ToString();
                for (int j = 2; j < obj.ColumnCount; ++j)
                {
                    strColTitle = obj.GetValue((4), j).ToString();
                    if (strColTitle == "“十五”年均增长率" || strColTitle == "“十一五”年均增长率" || strColTitle == "“十二五”年均增长率" || strColTitle == "“十三五”年均增长率")
                    {
                        if (strColTitle == "“十五”年均增长率")
                        {
                            if (strRowTitle != "所占百分比(%)")
                            {
                                obj.Cells[i, j].Formula = "POWER(" + PF.GetColumnTitle(j - 1) + (i + 1) + "/" + PF.GetColumnTitle(j - 6) + (i + 1) + ",1/5)-1";
                            }
                        }
                        else
                        {
                            obj.Cells[i, j].Formula = "POWER(" + PF.GetColumnTitle(j - 1) + (i + 1) + "/" + PF.GetColumnTitle(j - 5) + (i + 1) + ",1/5)-1";
                        }
                        obj.Cells[i, j].CellType = PC;//%
                    }
                    else
                    {
                        if (strRowTitle == "所占百分比(%)")
                        {
                            obj.Cells[i, j].Formula  = PF.GetColumnTitle(j) + (i) + "/" + PF.GetColumnTitle(j) + (8);
                            obj.Cells[i, j].CellType = PC;//%
                        }
                        else if (strRowTitle == "合计")
                        {
                            obj.Cells[i, j].Formula = "SUM(" + PF.GetColumnTitle(j) + (14) + "," + PF.GetColumnTitle(j) + (16)
                                                      + "," + PF.GetColumnTitle(j) + (18) + "," + PF.GetColumnTitle(j) + (20)
                                                      + "," + PF.GetColumnTitle(j) + (22) + "," + PF.GetColumnTitle(j) + (24)
                                                      + "," + PF.GetColumnTitle(j) + (26) + "," + PF.GetColumnTitle(j) + (28) + ")";
                        }
                        else if (strRowTitle == "公共事业及管理组织")
                        {
                            obj.Cells[i, j].Formula = PF.GetColumnTitle(j) + (8) + "-" + PF.GetColumnTitle(j) + (14)
                                                      + "-" + PF.GetColumnTitle(j) + (16) + "-" + PF.GetColumnTitle(j) + (18)
                                                      + "-" + PF.GetColumnTitle(j) + (20) + "-" + PF.GetColumnTitle(j) + (22)
                                                      + "-" + PF.GetColumnTitle(j) + (24) + "-" + PF.GetColumnTitle(j) + (26);
                        }
                        else
                        {
                            obj.SetValue(i, j, SelectCurrentData(FB, strColTitle, strRowTitle, ps1, ps2, ps3));
                        }
                    }
                }
            }
        }
Exemple #17
0
        private bool  InsertdataHistory(InDataClass idc, string filename)
        {
            bool   result     = false;
            string columnname = "";

            DealTreelist(idc);
            DataTable          dts = GetExcel(filename);
            IList <Ps_History> lii = new List <Ps_History>();
            DateTime           s8  = DateTime.Now;
            int            x       = 0;
            WaitDialogForm wait    = new WaitDialogForm("", "正在导入" + idc.Name + "数据, 请稍候...");

            try
            {
                for (int i = 0; i < dts.Rows.Count; i++)
                {
                    this.Cursor = Cursors.WaitCursor;
                    Ps_History l1 = new Ps_History();
                    foreach (DataColumn dc in dts.Columns)
                    {
                        columnname = dc.ColumnName;
                        if (dts.Rows[i][dc.ColumnName].ToString() == "")
                        {
                            continue;
                        }

                        switch (l1.GetType().GetProperty(dc.ColumnName).PropertyType.Name)
                        {
                        case "Double":
                            if (dts.Rows[i][dc.ColumnName] == null || dts.Rows[i][dc.ColumnName] == DBNull.Value || dts.Rows[i][dc.ColumnName].ToString() == "")
                            {
                                l1.GetType().GetProperty(dc.ColumnName).SetValue(l1, 0, null);
                                break;
                            }
                            l1.GetType().GetProperty(dc.ColumnName).SetValue(l1, Convert.ToDouble(dts.Rows[i][dc.ColumnName]), null);
                            break;

                        case "Int32":
                            if (dts.Rows[i][dc.ColumnName] == null || dts.Rows[i][dc.ColumnName] == DBNull.Value || dts.Rows[i][dc.ColumnName].ToString() == "")
                            {
                                l1.GetType().GetProperty(dc.ColumnName).SetValue(l1, 0, null);
                                break;
                            }
                            l1.GetType().GetProperty(dc.ColumnName).SetValue(l1, Convert.ToInt32(dts.Rows[i][dc.ColumnName]), null);
                            break;

                        default:
                            l1.GetType().GetProperty(dc.ColumnName).SetValue(l1, dts.Rows[i][dc.ColumnName], null);
                            break;
                        }
                    }

                    l1.Forecast   = idc.IType;
                    l1.Col4       = ProjectUID;
                    l1.ForecastID = idc.SType;
                    lii.Add(l1);
                }
                int        parenti = -4;
                Ps_History psl1;
                for (int i = 0; i < lii.Count; i++)
                {
                    psl1      = lii[i];
                    psl1.Sort = i;
                    string con = "Col4='" + ProjectUID + "' and Title='" + psl1.Title + "' and Forecast='" + idc.SType + "' and ParentID='" + psl1.ParentID + "'";
                    object obj = Services.BaseService.GetObject("SelectPs_HistoryByCondition", con);
                    if (obj != null)
                    {
                        psl1.ID = ((Ps_History)obj).ID;

                        if (psl1.ParentID.Contains("-"))
                        {
                            psl1.ParentID = ((Ps_History)obj).ParentID;
                        }
                        Services.BaseService.Update <Ps_History>(psl1);
                    }
                    else
                    {
                        psl1.ID = Guid.NewGuid().ToString() + "|" + ProjectUID;


                        Services.BaseService.Create <Ps_History>(psl1);
                    }
                    for (int j = i + 1; j < lii.Count; j++)
                    {
                        if (lii[j].ParentID == parenti.ToString())
                        {
                            lii[j].ParentID = psl1.ID;
                        }
                    }

                    parenti--;
                }
                DealTreelist(idc);
                wait.Close();
                wait = new WaitDialogForm("", "正在重新计算" + idc.Name + "数据, 请稍候...");

                for (int i = 0; i < lii.Count; i++)
                {
                    TreeListNode nd = treeList1.FindNodeByKeyID(lii[i].ID);
                    if (nd != null)
                    {
                        foreach (TreeListColumn tr in treeList1.Columns)
                        {
                            if (tr.FieldName.IndexOf("y") >= 0)
                            {
                                CalculateSum(nd, tr);
                            }
                        }
                    }
                }
                this.Cursor  = Cursors.Default;
                wait.Caption = "已成功导入" + idc.Name + "数据!";
                wait.Close();
                result = true;
                return(result);
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;
                wait.Close();

                MsgBox.Show(columnname + ex.Message); MsgBox.Show("导入格式不正确!");
                return(result);
            }
        }
        private void RefreshChart()
        {
            IList <FORBaseColor> list = Services.BaseService.GetList <FORBaseColor>("SelectFORBaseColorByWhere", "Remark='电力发展实绩-" + Itop.Client.MIS.ProgUID + "-1'");

            IList <FORBaseColor> li = new List <FORBaseColor>();
            bool      bl            = false;
            ArrayList ht            = new ArrayList();

            ht.Add(Color.Red);
            ht.Add(Color.Blue);
            ht.Add(Color.Green);
            ht.Add(Color.Yellow);
            ht.Add(Color.HotPink);
            ht.Add(Color.LawnGreen);
            ht.Add(Color.Khaki);
            ht.Add(Color.LightSlateGray);
            ht.Add(Color.LightSeaGreen);
            ht.Add(Color.Lime);
            ArrayList hs        = new ArrayList();
            int       m         = 0;
            ArrayList aldatablr = new ArrayList();

            foreach (DataRow row in dataTable.Rows)
            {
                aldatablr.Add(row["ID"].ToString());
            }
            foreach (DataRow row in dataTable.Rows)
            {
                if (aldatablr.Contains(row["ParentID"].ToString()))
                {
                    continue;
                }
                bl = false;
                foreach (FORBaseColor bc in list)
                {
                    if (row["Title"].ToString() == bc.Title)
                    {
                        m++;
                        bl = true;
                        FORBaseColor bc1 = new FORBaseColor();
                        Color        cl  = (Color)ht[m % 10];
                        bc1.Color1 = cl;
                        //bc1.Color = cl.ToArgb();
                        //bc1.Color1 = Color.Blue;

                        ////bc1.Color = 0;
                        ////bc1.Color1 = bc.Color1;
                        //bc1.Color1 = ColorTranslator.FromOle(bc.Color);
                        //CopyBaseColor(bc1, bc);
                        li.Add(bc1);
                    }
                }
                if (!bl)
                {
                    FORBaseColor bc1 = new FORBaseColor();
                    bc1.UID = Guid.NewGuid().ToString();
                    //bc1.Remark = "电力发展实绩" + "-" + ProjectUID + "-0";
                    bc1.Remark = "电力发展实绩-" + Itop.Client.MIS.ProgUID + "-1";
                    bc1.Title  = row["Title"].ToString();
                    //bc1.Color = 16711680;
                    //bc1.Color1 = Color.Blue;
                    Color cl = (Color)ht[m % 10];
                    bc1.Color  = 0;
                    bc1.Color1 = Color.Black;
                    Services.BaseService.Create <FORBaseColor>(bc1);
                    li.Add(bc1);
                    m++;
                }
            }

            foreach (FORBaseColor bc2 in li)
            {
                //bc2.Color1 = Color.Black;
                hs.Add(bc2.Color1);
            }


            List <Ps_History> listValues = new List <Ps_History>();

            for (int i = 0; i < treeList1.Nodes.Count; i++)
            {
                TreeListNode row = treeList1.Nodes[i];
                foreach (TreeListColumn col in treeList1.Columns)
                {
                    if (col.FieldName.IndexOf("y") > -1)
                    {
                        object obj = row[col.FieldName];
                        if (obj != DBNull.Value)
                        {
                            Ps_History v = new Ps_History();
                            v.ForecastID = type1;
                            v.ID         = (string)row["ID"];
                            v.Title      = (i + 1).ToString() + "." + row["Title"].ToString();
                            v.Sort       = Convert.ToInt32(col.FieldName.Replace("y", ""));
                            v.y1990      = (double)row[col.FieldName];

                            listValues.Add(v);
                        }
                    }
                }
            }

            chart1.Series.Clear();


            chart1.DataBindCrossTab(listValues, "Title", "Sort", "y1990", "");
            for (int i = 0; i < chart1.Series.Count; i++)
            {
                //chart1.Series[i].Color = (Color)hs[i];
                //chart1.Series[i].Name = (i + 1).ToString() + "." + chart1.Series[i].Name;
                //chart1.Series[i].Type = Dundas.Charting.WinControl.SeriesChartType.Line;

                //chart1.Series[i].MarkerSize = 7;
                //chart1.Series[i].MarkerStyle = (Dundas.Charting.WinControl.MarkerStyle)(2);
                chart1.Series[i].Color = (Color)hs[i];

                chart1.Series[i].Name = chart1.Series[i].Name;
                chart1.Series[i].Type = Dundas.Charting.WinControl.SeriesChartType.Line;

                chart1.Series[i].MarkerSize  = 7;
                chart1.Series[i].MarkerStyle = (Dundas.Charting.WinControl.MarkerStyle)(2);
                //chart1.Series[i].XValueIndexed = true;
            }
        }
Exemple #19
0
        //此处为动态添加数据方法
        private void Sheet_AddData(FarPoint.Win.Spread.SheetView obj_sheet)
        {
            int[]  TableYearsAry            = TC.GetTableYears(this.GetType().Name);
            int    startrow                 = 2;
            int    itemlength               = 9;
            string sqlwhere                 = " ProjectID='" + Tcommon.ProjectID + "'";
            IList <PS_Table_AreaWH> ptalist = Services.BaseService.GetList <PS_Table_AreaWH>("SelectPS_Table_AreaWHByConn", sqlwhere);

            //重新设定行数
            obj_sheet.RowCount = startrow + (ptalist.Count + 1) * itemlength;


            string    sqlwheretemp = " ForecastID='4' and Col4='" + Tcommon.ProjectID + "'";
            IList     phlisttemp   = Services.BaseService.GetList("SelectPs_HistoryBYconnstr", sqlwheretemp);
            DataTable dttemp       = DataConverter.ToDataTable(phlisttemp, typeof(Ps_History));

            Ps_History AllRk    = new Ps_History();
            Ps_History CZrk     = new Ps_History();
            DataRow    RowAllrk = dttemp.NewRow();;
            DataRow    RowCZrk  = dttemp.NewRow();

            RowAllrk = DataConverter.ObjectToRow(AllRk, RowAllrk);
            RowCZrk  = DataConverter.ObjectToRow(CZrk, RowCZrk);
            for (int i = 0; i < ptalist.Count; i++)
            {
                AddItems(obj_sheet, ptalist[i].Title, startrow + i * itemlength);
                string             sqlwhere2 = " ForecastID='4' and Col4='" + Tcommon.ProjectID + "' and Title='" + ptalist[i].Title + "'";
                IList <Ps_History> phlist    = Services.BaseService.GetList <Ps_History>("SelectPs_HistoryBYconnstr", sqlwhere2);
                if (phlist.Count > 0)
                {
                    string    sqlwhere3 = " ForecastID='4' and Col4='" + Tcommon.ProjectID + "' and ParentID='" + phlist[0].ID + "'";
                    IList     phlist3   = Services.BaseService.GetList("SelectPs_HistoryBYconnstr", sqlwhere3);
                    DataTable dt        = DataConverter.ToDataTable(phlist3, typeof(Ps_History));
                    DataRow[] rows1     = dt.Select("Title like '一产%'");
                    DataRow[] rows2     = dt.Select("Title like '二产%'");
                    DataRow[] rows3     = dt.Select("Title like '三产%'");
                    DataRow[] rows4     = dt.Select("Title like '人口%'");

                    DataRow[] rows7 = null;
                    DataRow[] rows8 = null;
                    if (rows4.Length != 0)
                    {
                        string    sqlwhere4 = " ForecastID='4' and Col4='" + Tcommon.ProjectID + "' and ParentID='" + rows4[0]["ID"] + "'";
                        IList     phlist4   = Services.BaseService.GetList("SelectPs_HistoryBYconnstr", sqlwhere4);
                        DataTable dt2       = DataConverter.ToDataTable(phlist4, typeof(Ps_History));
                        rows7 = dt2.Select("Title like '城镇人口%'");
                        rows8 = dt2.Select("Title like '乡村人口%'");
                    }

                    DataRow[] rows5 = dt.Select("Title like '行政面积%'");
                    DataRow[] rows6 = dt.Select("Title like '建成区面积%'");
                    //国内生产总值(亿元)=一产+二产+三产
                    TC.Sheet_WriteFormula_RowSum(obj_sheet, startrow + i * itemlength + 1, 2, 3, 1, startrow + i * itemlength, 2, TableYearsAry.Length);
                    //人均GDP(万元)=国内生产总值(亿元)/人口;
                    TC.Sheet_WriteFormula_OneRow_AnoterRow_nopercent(obj_sheet, startrow + i * itemlength + 4, 2, startrow + i * itemlength, startrow + i * itemlength + 5, TableYearsAry.Length);

                    for (int j = 0; j < TableYearsAry.Length; j++)
                    {
                        int m = 0;
                        //一产
                        string yearstr = "y" + TableYearsAry[j].ToString();
                        m++;
                        if (rows1.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows1[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无一产数据", "查询 分区供电实绩,看是否有该区一产数据", "");
                        }
                        //二产
                        m++;
                        if (rows2.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows2[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无二产数据", "查询 分区供电实绩,看是否有该区二产数据", "");
                        }
                        //三产
                        m++;
                        if (rows3.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows3[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无三产数据", "查询 分区供电实绩,看是否有该区三产数据", "");
                        }
                        //人口
                        m++;
                        if (rows4.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows4[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无人口数据", "查询 分区供电实绩,看是否有该区人口数据", "");
                        }
                        m++;
                        //行政面积(平方千米)
                        m++;
                        if (rows5.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows5[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无行政面积数据", "查询 分区供电实绩,看是否有该区行政面积数据", "");
                        }
                        //建成区面积(平方千米)
                        m++;
                        if (rows6.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, rows6[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无建成区面积数据", "查询 分区供电实绩,看是否有该区建成区面积数据", "");
                        }
                        //城镇化率(%)
                        m++;
                        if (rows7 != null && rows4.Length != 0)
                        {
                            obj_sheet.SetValue(startrow + i * itemlength + m, 2 + j, Convert.ToDouble(rows7[0][yearstr]) / Convert.ToDouble(rows4[0][yearstr]));
                            FarPoint.Win.Spread.CellType.PercentCellType newcelltype = new FarPoint.Win.Spread.CellType.PercentCellType();
                            newcelltype.DecimalPlaces = 2;
                            obj_sheet.Cells[startrow + i * itemlength + m, 2 + j].CellType = newcelltype;

                            RowAllrk[yearstr] = Convert.ToDouble(RowAllrk[yearstr]) + Convert.ToDouble(rows4[0][yearstr]);
                            RowCZrk[yearstr]  = Convert.ToDouble(RowCZrk[yearstr]) + Convert.ToDouble(rows7[0][yearstr]);
                        }
                        else
                        {
                            TC.WriteQuestion(title, ptalist[i].Title + "无城镇人口或总人口数据", "查询 分区供电实绩,看是否有该区城镇人口或总人口数据", "");
                        }
                    }
                }
            }


            AddItems(obj_sheet, "全市", startrow + ptalist.Count * itemlength);
            TC.Sheet_WriteFormula_RowSum2(obj_sheet, startrow, 2, ptalist.Count, itemlength, startrow + ptalist.Count * itemlength, 2, 1, 3, TableYearsAry.Length);
            TC.Sheet_WriteFormula_RowSum2(obj_sheet, startrow, 2, ptalist.Count, itemlength, startrow + ptalist.Count * itemlength, 2, 6, 2, TableYearsAry.Length);

            //国内生产总值(亿元)=一产+二产+三产
            TC.Sheet_WriteFormula_RowSum(obj_sheet, startrow + ptalist.Count * itemlength + 1, 2, 3, 1, startrow + ptalist.Count * itemlength, 2, TableYearsAry.Length);

            //人均GDP(万元)=国内生产总值(亿元)/人口;
            TC.Sheet_WriteFormula_OneRow_AnoterRow_nopercent(obj_sheet, startrow + ptalist.Count * itemlength + 4, 2, startrow + ptalist.Count * itemlength, startrow + ptalist.Count * itemlength + 5, TableYearsAry.Length);
            //最后城镇化率
            for (int k = 0; k < TableYearsAry.Length; k++)
            {
                string yearstr = "y" + TableYearsAry[k].ToString();
                obj_sheet.SetValue(startrow + ptalist.Count * itemlength + 8, 2 + k, Convert.ToDouble(RowCZrk[yearstr]) / Convert.ToDouble(RowAllrk[yearstr]));
                FarPoint.Win.Spread.CellType.PercentCellType newcelltype = new FarPoint.Win.Spread.CellType.PercentCellType();
                newcelltype.DecimalPlaces = 2;
                obj_sheet.Cells[startrow + ptalist.Count * itemlength + 8, 2 + k].CellType = newcelltype;
            }
            //几何年平均增长率
            for (int l = 0; l < (ptalist.Count + 1) * itemlength; l++)
            {
                obj_sheet.Cells[startrow + l, 2 + TableYearsAry.Length].Formula = " Power(R" + (startrow + l + 1) + "C" + (2 + TableYearsAry.Length) + "/R" + (startrow + l + 1) + "C" + 3 + "," + (1.000 / TableYearsAry.Length) + ")-1";
                FarPoint.Win.Spread.CellType.PercentCellType newcelltype = new FarPoint.Win.Spread.CellType.PercentCellType();
                newcelltype.DecimalPlaces = 2;
                obj_sheet.Cells[startrow + l, 2 + TableYearsAry.Length].CellType = newcelltype;
            }
        }
Exemple #20
0
        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            TreeListMultiSelection tm = treeList1.Selection;

            if (tm.Count == 0)
            {
                return;
            }

            DataRow dr = this.gridView1.GetDataRow(this.gridView1.FocusedRowHandle);

            if (dr == null)
            {
                return;
            }
            int id1 = (int)dr["ID"];

            hs.Clear();
            li.Clear();
            if (Flag == "1")//旧版分区县供电实绩
            {
                if (id1 != 4)
                {
                    foreach (TreeListNode tln in tm)
                    {
                        Ps_History pt1 = new Ps_History();
                        Ps_History pt  = Services.BaseService.GetOneByKey <Ps_History>((string)tln["ID"]);
                        if (tln["Title"].ToString() == "常规用电量" || tln["Title"].ToString() == "常规负荷")
                        {
                            pt.Title = pt.Title + "-" + tln.ParentNode["Title"];
                        }
                        else
                        if (!tln["Title"].ToString().Contains("电量") && !tln["Title"].ToString().Contains("负荷"))
                        {
                            if (id1 == 2)
                            {
                                pt.Title = pt.Title + "电量";
                            }
                            else if (id1 == 3)
                            {
                                pt.Title = pt.Title + "负荷";
                            }
                        }
                        if (!hs.ContainsValue(pt))
                        {
                            hs.Add(Guid.NewGuid().ToString(), pt);
                        }
                    }
                }
                else
                {
                    foreach (TreeListNode tln in tm)
                    {
                        PSP_Types pt = Services.BaseService.GetOneByKey <PSP_Types>((int)tln["ID"]);

                        if (!hs.ContainsValue(pt))
                        {
                            hs.Add(Guid.NewGuid().ToString(), pt);
                        }
                    }
                }
            }
            else//新版分区县供电实绩
            {
                foreach (TreeListNode tln in tm)
                {
                    Ps_History pt1 = new Ps_History();
                    Ps_History pt  = Services.BaseService.GetOneByKey <Ps_History>((string)tln["ID"]);
                    if (tln["Title"].ToString() == "常规用电量" || tln["Title"].ToString() == "常规负荷")
                    {
                        pt.Title = pt.Title + "-" + tln.ParentNode["Title"];
                    }
                    else
                    if (!tln["Title"].ToString().Contains("电量") && !tln["Title"].ToString().Contains("负荷"))
                    {
                        if (id1 == 2)
                        {
                            pt.Title = pt.Title + "电量";
                        }
                        else if (id1 == 3)
                        {
                            pt.Title = pt.Title + "负荷";
                        }
                    }
                    if (!hs.ContainsValue(pt))
                    {
                        hs.Add(Guid.NewGuid().ToString(), pt);
                    }
                }
            }



            if (hs.Count > 0)
            {
                this.DialogResult = DialogResult.OK;
            }
        }
Exemple #21
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;
        }
Exemple #22
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;
        }
Exemple #23
0
        //设置GDP值

        private void simpleButton7_Click(object sender, EventArgs e)
        {
            FormSetGDP frm = new FormSetGDP();

            frm.forecastReport = forecastReport;
            frm.Text           = "设置GDP值";
            frm.type           = type;
            DataRow[] rowsoldGDP = dataTable.Select("Title like '全地区GDP%'");

            if (frm.ShowDialog() == DialogResult.OK)
            {
                if (frm.GetGDP)
                {
                    //读取GDP历史值
                    if (rowsoldGDP.Length > 0)
                    {
                        DataRow oldrow = rowsoldGDP[0];
                        //新经济数据
                        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          dataTable2 = Itop.Common.DataConverter.ToDataTable((IList)listTypes, typeof(Ps_History));
                        DataRow[]          rows1      = dataTable2.Select("Title like '全地区GDP%'");
                        for (int i = forecastReport.StartYear; i <= forecastReport.EndYear; i++)
                        {
                            double s1 = 0;
                            try { s1 = Convert.ToDouble(rows1[0]["y" + i]); }
                            catch
                            { }
                            oldrow["y" + i] = s1;
                            commonhelp.ResetValue(oldrow["ID"].ToString(), "y" + i);
                        }
                        Ps_Forecast_Math pfm = DataConverter.RowToObject <Ps_Forecast_Math>(oldrow);
                        Services.BaseService.Update <Ps_Forecast_Math>(pfm);
                    }
                }

                DataRow[] rowsgdp = dataTable.Select("Title like '全地区GDP%'");
                if (rowsgdp.Length > 0)
                {
                    DataRow oldrow = rowsgdp[0];


                    Ps_Calc pcs = new Ps_Calc();
                    pcs.Forecast   = type;
                    pcs.ForecastID = forecastReport.ID;

                    IList <Ps_Calc> list1 = Services.BaseService.GetList <Ps_Calc>("SelectPs_CalcByForecast", pcs);
                    Hashtable       hs    = new Hashtable();
                    foreach (Ps_Calc pcl1 in list1)
                    {
                        if (!hs.ContainsKey(pcl1.Year))
                        {
                            hs.Add(pcl1.Year, pcl1.Value2);
                        }
                    }
                    for (int j = forecastReport.YcStartYear; j <= forecastReport.YcEndYear; j++)
                    {
                        double increasenum = double.Parse(hs[j].ToString());
                        double basenum     = double.Parse(oldrow["y" + (j - 1)].ToString());
                        oldrow["y" + j] = basenum * (1 + increasenum);
                    }
                    Ps_Forecast_Math pfm = DataConverter.RowToObject <Ps_Forecast_Math>(oldrow);
                    Services.BaseService.Update <Ps_Forecast_Math>(pfm);
                }
                JS();
            }
        }
Exemple #24
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;
        }
        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_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 || rows4.Length == 0)
            {
                MessageBox.Show("经济数据中缺少‘全地区GDP’或电量数据中缺少‘全社会用电量’数据!");
                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.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);
            //       gridControl1.DataSource = dt;

            vGridControl2.DataSource = dt;
        }