コード例 #1
0
        /// <summary>
        /// 修改历史年份和预测年份

        /// </summary>
        /// <param name="pcs"></param>
        /// <param name="dr"></param>
        /// <param name="_CalcTemp"></param>
        private void AddYears_Update(Ps_Calc pcs, DataRow dr)
        {
            if (m_CalcList == null || m_CalcList.Count == 0)
            {
                pcs.Value2 = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
                pcs.Value3 = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
                pcs.Value4 = Convert.ToDouble(comboBox1.SelectedItem.ToString().Replace("年", ""));
                pcs.Value5 = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
                //选择历史年份
                dr["B"] = comboBox1.SelectedItem + "-" + comboBox4.SelectedItem;

                //选择预测年份
                dr["C"] = comboBox3.SelectedItem + "-" + comboBox5.SelectedItem;
                SaveValue(pcs, false);
            }
            else
            {
                foreach (Ps_Calc m_Calc in m_CalcList)
                {
                    if (dr["ID"].ToString() == m_Calc.ID)
                    {
                        m_Calc.Col4 = spinEdit1.Value.ToString() + "%";
                    }
                    m_Calc.Value2 = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
                    m_Calc.Value3 = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
                    m_Calc.Value4 = Convert.ToDouble(comboBox1.SelectedItem.ToString().Replace("年", ""));
                    m_Calc.Value5 = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
                    SaveValue(m_Calc, false);
                }
            }
        }
コード例 #2
0
ファイル: FormDyhptl.cs プロジェクト: github188/myitoppsp
        private void FormDyhptl_Load(object sender, EventArgs e)
        {
            int firstyear = 0;
            int endyear   = 0;

            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);
            if (list1.Count > 0)
            {
                spinEdit1.Value = (decimal)list1[0].Value1;
            }
        }
コード例 #3
0
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            if (gridView1.FocusedRowHandle < 0)
            {
                return;
            }


            if (comboBox1.SelectedItem == null || comboBox2.SelectedItem == null || comboBox3.SelectedItem == null || comboBox4.SelectedItem == null || comboBox5.SelectedItem == null || (comboBox6.SelectedItem == null && comboBox6.Visible))
            {
                MessageBox.Show("参数设置不正确!");
                return;
            }
            int yearselect1 = Convert.ToInt32(comboBox4.SelectedItem.ToString().Replace("年", ""));
            int yearselect2 = Convert.ToInt32(comboBox5.SelectedItem.ToString().Replace("年", ""));

            DataRowView drv   = gridView1.GetRow(gridView1.FocusedRowHandle) as DataRowView;
            DataRow     dr    = drv.Row;
            int         intex = dt.Rows.IndexOf(dr);
            int         i     = 0;

            foreach (DataRow ndr in dt.Rows)
            {
                int year1 = Convert.ToInt32(ndr["C"].ToString().Split('-')[0].Replace("年", ""));
                int year2 = Convert.ToInt32(ndr["C"].ToString().Split('-')[1].Replace("年", ""));
                if ((!(yearselect1 > year2 || year1 > yearselect2)) && i != intex)
                {
                    MessageBox.Show("所选年份包含在" + ndr["C"]);
                    return;
                }
                i++;
            }



            if (comboBox6.Visible)
            {
                dt.Rows[intex]["A"] = comboBox6.SelectedItem;
            }
            else
            {
                dt.Rows[intex]["A"] = comboBox1.SelectedItem;
            }
            dt.Rows[intex]["B"] = comboBox2.SelectedItem + "-" + comboBox3.SelectedItem;

            dt.Rows[intex]["C"] = comboBox4.SelectedItem + "-" + comboBox5.SelectedItem;

            Ps_Calc pcs = new Ps_Calc();

            pcs.ID         = dt.Rows[intex]["ID"].ToString();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            pcs.CalcID     = dr["A"].ToString();
            pcs.Value2     = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
            pcs.Value3     = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
            pcs.Value4     = Convert.ToDouble(comboBox2.SelectedItem.ToString().Replace("年", ""));
            pcs.Value5     = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
            savevalue(pcs, false);
            gridView1.RefreshData();
        }
コード例 #4
0
        //删除
        private void simpleButton4_Click(object sender, EventArgs e)
        {
            if (gridView1.FocusedRowHandle < 0)
            {
                return;
            }
            int i = gridView1.FocusedRowHandle;
            //gridView1.FocusedRowHandle = -1;
            DataRowView drv = gridView1.GetRow(i) as DataRowView;

            if (drv == null)
            {
                MessageBox.Show("删除失败!");
                gridView1.RefreshData();
                return;
            }
            Ps_Calc pcs = new Ps_Calc();

            pcs.ID = drv.Row["ID"].ToString();
            pcs    = Services.BaseService.GetOneByKey <Ps_Calc>(pcs);
            if (pcs != null)
            {
                Services.BaseService.Delete <Ps_Calc>(pcs);
            }
            else
            {
                MessageBox.Show("删除失败!");
                gridView1.RefreshData();
                return;
            }
            dt.Rows.Remove(drv.Row);

            gridView1.RefreshData();
        }
コード例 #5
0
        /// <summary>
        /// 修改用数据添加到datarow中

        /// </summary>
        private void AddToDataRow_Update(Ps_Calc _pcs)
        {
            //int yearselect1 = Convert.ToInt32(comboBox3.SelectedItem.ToString().Replace("年", ""));
            //int yearselect2 = Convert.ToInt32(comboBox5.SelectedItem.ToString().Replace("年", ""));

            DataRowView _drv  = gridView1.GetRow(gridView1.FocusedRowHandle) as DataRowView;
            DataRow     _dr   = _drv.Row;
            int         intex = dt.Rows.IndexOf(_dr);

            //int i = 0;
            //foreach (DataRow ndr in dt.Rows)
            //{

            //    int year1 = Convert.ToInt32(ndr["C"].ToString().Split('-')[0].Replace("年", ""));
            //    int year2 = Convert.ToInt32(ndr["C"].ToString().Split('-')[1].Replace("年", ""));
            //    //if ((!(yearselect1 > year2 || year1 > yearselect2)) && i != intex)
            //    //{
            //    //    MessageBox.Show("所选年份包含在" + ndr["C"]);
            //    //    return;
            //    //}
            //    i++;
            //}
            //if (comboBox6.Visible)
            //{
            //    _dr["A"] = comboBox6.SelectedItem;
            //    //if (bCompare(_dr["A"]))
            //    //{
            //    //    MessageBox.Show("不能用同一种算法!!!");
            //    //    return;
            //    //}
            //}
            //else
            //{
            //    _dr["A"] = comboBox2.SelectedItem;
            //    //if (bCompare(_dr["A"]))
            //    //{
            //    //    MessageBox.Show("不能用同一种算法!!!");
            //    //    return;
            //    //}
            //}



            _pcs.ID = dt.Rows[intex]["ID"].ToString();
            //权重值

            _pcs.Col4 = spinEdit1.Value.ToString() + "%";
            //_pcs.Forecast = type;
            //_pcs.ForecastID = forecastReport.ID;
            //_pcs.CalcID = _dr["A"].ToString();
            AddYears_Update(_pcs, _dr);

            gridView1.RefreshData();
            ////刷新list列表中数据

            m_CalcList.Clear();
            m_CalcList = m_pf.SelectedForecastList(type, forecastReport);
        }
コード例 #6
0
        /// <summary>
        /// 添加数据到datatable中

        /// </summary>
        private bool AddDataToDatatable(Ps_Calc pcs)
        {
            DataRow dr;
            Ps_Calc _CalcTemp = new Ps_Calc();

            //刷新数据
            m_CalcList.Clear();
            m_CalcList = m_pf.SelectedForecastList(type, forecastReport);

            if (m_CalcList != null && m_CalcList.Count != 0)
            {
                _CalcTemp = m_CalcList[0];//保证各个算法的时间一致
            }

            bool _IsTrue = false;

            dr = dt.NewRow();
            if (comboBox6.Visible)
            {
                dr["A"] = comboBox6.SelectedItem;
                if (bCompare(dr["A"]))
                {
                    MessageBox.Show("不能用同一种算法!!!");
                    _IsTrue = true;
                }
            }
            else
            {
                dr["A"] = comboBox2.SelectedItem;
                if (bCompare(dr["A"]))
                {
                    MessageBox.Show("不能用同一种算法!!!");
                    _IsTrue = true;
                }
            }
            pcs.ID         = Guid.NewGuid().ToString();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            //算法名

            pcs.CalcID = dr["A"].ToString();
            pcs.Col4   = spinEdit1.Value.ToString() + "%";//权重值存放到表col4字段
            //================================================================
            AddYears(pcs, dr, _CalcTemp);
            //======================================================================================
            //id
            dr["ID"] = pcs.ID;
            //权重值,把这个数据存放在数据库表中的Col4字段中

            dr["D"] = pcs.Col4;

            if (!_IsTrue)
            {
                dt.Rows.Add(dr);
            }
            return(_IsTrue);
        }
コード例 #7
0
        private void simpleButton4_Click(object sender, EventArgs e)
        {
            if (comboBox1.SelectedItem == null || comboBox2.SelectedItem == null || comboBox3.SelectedItem == null || comboBox4.SelectedItem == null || comboBox5.SelectedItem == null || (comboBox6.SelectedItem == null && comboBox6.Visible))
            {
                MessageBox.Show("参数设置不正确!");
                return;
            }
            int yearselect1 = Convert.ToInt32(comboBox4.SelectedItem.ToString().Replace("年", ""));
            int yearselect2 = Convert.ToInt32(comboBox5.SelectedItem.ToString().Replace("年", ""));

            foreach (DataRow ndr in dt.Rows)
            {
                int year1 = Convert.ToInt32(ndr["C"].ToString().Split('-')[0].Replace("年", ""));
                int year2 = Convert.ToInt32(ndr["C"].ToString().Split('-')[1].Replace("年", ""));
                if (!(yearselect1 > year2 || year1 > yearselect2))
                {
                    MessageBox.Show("所选年份包含在" + ndr["C"]);
                    return;
                }
            }
            DataRow dr;

            dr = dt.NewRow();
            if (comboBox6.Visible)
            {
                dr["A"] = comboBox6.SelectedItem;
            }
            else
            {
                dr["A"] = comboBox1.SelectedItem;
            }
            Ps_Calc pcs = new Ps_Calc();

            pcs.ID         = Guid.NewGuid().ToString();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            pcs.CalcID     = dr["A"].ToString();
            pcs.Value2     = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
            pcs.Value3     = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
            pcs.Value4     = Convert.ToDouble(comboBox2.SelectedItem.ToString().Replace("年", ""));
            pcs.Value5     = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
            dr["B"]        = comboBox2.SelectedItem + "-" + comboBox3.SelectedItem;

            dr["C"]  = comboBox4.SelectedItem + "-" + comboBox5.SelectedItem;
            dr["ID"] = pcs.ID;

            dt.Rows.Add(dr);


            savevalue(pcs, true);

            comboBox2.SelectedIndex = -1;
            comboBox3.SelectedIndex = -1;
            comboBox4.SelectedIndex = -1;
            comboBox5.SelectedIndex = -1;
        }
コード例 #8
0
 /// <summary>
 /// 方案下拉框选择
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBox2.SelectedItem == null)
     {
         return;
     }
     if (comboBox2.SelectedItem.ToString() == "外推法")
     {
         if (!comboBox6.Items.Contains("外推法(年增长率法)"))
         {
             comboBox6.Items.Clear();
             m_pf.InitCommboBox(comboBox6, null, 1);
         }
         SetSubalgorithm(true);
     }
     else if (comboBox2.SelectedItem.ToString() == "相关法")
     {
         if (!comboBox6.Items.Contains("相关法(直线)"))
         {
             comboBox6.Items.Clear();
             m_pf.InitCommboBox(comboBox6, null, 2);
         }
         SetSubalgorithm(true);
     }
     else if (comboBox2.SelectedItem.ToString() == "指数平滑法")
     {
         SetSubalgorithm(false);
         Ps_Calc pcs = new Ps_Calc();
         pcs.Forecast   = 5;
         pcs.ForecastID = forecastReport.ID;
         //IList<Ps_Calc> list1 = m_pf.SelectedForecastList(5, forecastReport);
         IList <Ps_Calc> list1 = Common.Services.BaseService.GetList <Ps_Calc>("SelectPs_CalcByForecast", pcs);
         if (list1.Count < 1)
         {
             MessageBox.Show("平滑参数未设置,将按默认值0.1计算");
         }
     }
     else if (comboBox2.SelectedItem.ToString() == "专家决策法")
     {
         Ps_Forecast_Math psp_Type = new Ps_Forecast_Math();
         psp_Type.ForecastID = forecastReport.ID;
         psp_Type.Forecast   = 7;
         IList listTypes = Common.Services.BaseService.GetList("SelectPs_Forecast_MathByForecastIDAndForecast", psp_Type);
         if (listTypes.Count < 1)
         {
             MessageBox.Show("专家决策法没有数据,选择失败");
             comboBox2.SelectedIndex = -1;
         }
         SetSubalgorithm(false);
     }
     else
     {
         SetSubalgorithm(false);
     }
 }
コード例 #9
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Ps_Calc pcs = new Ps_Calc();

            if (m_pf.DecideDataAddin_comboBox(comboBox2))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox6))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox1))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox4))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox3))
            {
                return;
            }

            if (m_pf.DecideDataAddin_comboBox(comboBox5))
            {
                return;
            }
            if (m_pf.DecideDataAddin_SpinEdit(spinEdit1))
            {
                return;
            }


            AddToDataRow();
            if (AddDataToDatatable(pcs))
            {
                return;
            }
            SaveValue(pcs, true);
            //清空spinEdit
            spinEdit1.Value = 1;
            if (gridView1.RowCount <= 1)
            {
                Can_Edit_Year = true;
            }
            else
            {
                Can_Edit_Year = false;
            }
            YearSelect();
        }
コード例 #10
0
 /// <summary>
 /// 保存数据
 /// </summary>
 /// <param name="_Calc"></param>
 /// <param name="_bCreate">true is create ,false is update</param>
 private void SaveValue(Ps_Calc _Calc, bool _bCreate)
 {
     if (!_bCreate)
     {
         //Common.Services.BaseService.GetObject("UpdatePs_CalcWhereID", _Calc);
         Common.Services.BaseService.Update("UpdatePs_CalcWhereID", _Calc);
     }
     else
     {
         Common.Services.BaseService.Create <Ps_Calc>(_Calc);
     }
 }
コード例 #11
0
        //增加
        private void simpleButton2_Click_1(object sender, EventArgs e)
        {
            if (comboBox1.SelectedItem == null || comboBox4.SelectedItem == null || comboBox5.SelectedItem == null)
            {
                MessageBox.Show("参数设置不正确!");
                return;
            }
            int    yearselect1 = Convert.ToInt32(comboBox4.SelectedItem.ToString().Replace("年", ""));
            int    yearselect2 = Convert.ToInt32(comboBox5.SelectedItem.ToString().Replace("年", ""));
            string strname     = comboBox1.SelectedItem.ToString();

            foreach (DataRow ndr in dt.Rows)
            {
                if (strname != ndr["A"].ToString())
                {
                    continue;
                }
                int year1 = Convert.ToInt32(ndr["C"].ToString().Split('-')[0].Replace("年", ""));
                int year2 = Convert.ToInt32(ndr["C"].ToString().Split('-')[1].Replace("年", ""));
                if (!(yearselect1 > year2 || year1 > yearselect2))
                {
                    MessageBox.Show(ndr["A"] + "的" + "所选年份包含在" + ndr["C"]);
                    return;
                }
            }
            DataRow dr;

            dr = dt.NewRow();

            dr["B"] = spinEdit2.Value + "%";;
            Ps_Calc pcs = new Ps_Calc();

            pcs.ID         = Guid.NewGuid().ToString();
            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            pcs.CalcID     = comboBox2.SelectedItem.ToString();
            pcs.Value2     = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
            pcs.Value3     = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
            pcs.Value4     = Convert.ToDouble(dr["B"].ToString().Replace("%", ""));
            pcs.Col1       = comboBox1.SelectedItem.ToString();
            dr["C"]        = comboBox4.SelectedItem + "-" + comboBox5.SelectedItem;
            dr["ID"]       = pcs.ID;
            dr["CalcID"]   = pcs.CalcID;
            dr["A"]        = pcs.Col1;
            dt.Rows.Add(dr);


            savevalue(pcs, true);


            comboBox4.SelectedIndex = -1;
            comboBox5.SelectedIndex = -1;
        }
コード例 #12
0
        private void FormForecastCalc1Third_Load(object sender, EventArgs e)
        {
            dt.Columns.Clear();



            dt.Columns.Add("A", typeof(string));
            dt.Columns.Add("B", typeof(string));
            dt.Columns.Add("CalcID", typeof(string));
            dt.Columns.Add("C", typeof(string));
            dt.Columns.Add("ID", typeof(string));
            Ps_Calc pcs = new Ps_Calc();

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

            for (int i = endyear + 1; i <= forecastReport.YcEndYear; i++)
            {
                comboBox4.Items.Add(i + "年");
                comboBox5.Items.Add(i + "年");
            }
            foreach (DataRow dr2 in dataTable.Rows)
            {
                comboBox1.Items.Add(dr2["Title"]);
                comboBox2.Items.Add(dr2["ID"]);
            }
            DataRow dr;

            foreach (Ps_Calc pcs2 in list1)
            {
                dr           = dt.NewRow();
                dr["ID"]     = pcs2.ID;
                dr["A"]      = pcs2.Col1;
                dr["B"]      = pcs2.Value4 + "%";
                dr["CalcID"] = pcs2.CalcID;

                if (pcs2.Value2 != 0 && pcs2.Value3 != 0 && (!(pcs2.Value2 < endyear || pcs2.Value3 > forecastReport.YcEndYear)) && comboBox1.Items.IndexOf(pcs2.Col1) > -1 && (comboBox1.Items.IndexOf(pcs2.Col1) == comboBox2.Items.IndexOf(pcs2.CalcID)))
                {
                    dr["C"] = pcs2.Value2 + "年-" + pcs2.Value3 + "年";
                }
                else
                {
                    continue;
                }

                dt.Rows.Add(dr);
            }
            dt = GetSortTable(dt, "A,C", true);
            gridControl1.DataSource = dt;
        }
コード例 #13
0
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            int i = 1;

            foreach (DataColumn dc in dt.Columns)
            {
                if (dc.ColumnName == "Name" || dc.ColumnName == "ID")
                {
                    continue;
                }
                double value1 = 0;
                double value2 = 0;
                double value3 = 0;
                try
                {
                    value1 = (double)newrow1[dc.ColumnName] / 100;
                    value2 = (double)newrow2[dc.ColumnName] / 100;
                    value3 = (double)newrow3[dc.ColumnName] / 100;
                }
                catch { }


                bool bl = false;
                foreach (Ps_Calc pc11 in list1)
                {
                    if (pc11.Year == Convert.ToInt32(dc.ColumnName))
                    {
                        bl          = true;
                        pc11.Value1 = value1;
                        pc11.Value2 = value2;
                        pc11.Value3 = value3;
                        Services.BaseService.Update <Ps_Calc>(pc11);
                    }
                }
                if (!bl)
                {
                    Ps_Calc pcs = new Ps_Calc();
                    pcs.ID         = Guid.NewGuid().ToString();
                    pcs.Forecast   = type;
                    pcs.ForecastID = forecastReport.ID;
                    pcs.Year       = Convert.ToInt32(dc.ColumnName);
                    pcs.Value1     = value1;
                    pcs.Value2     = value2;
                    pcs.Value3     = value3;
                    Services.BaseService.Create <Ps_Calc>(pcs);
                }
            }
            this.DialogResult = DialogResult.OK;
        }
コード例 #14
0
        private void LoadData()
        {
            checkfixedvalue();
            treeList1.DataSource = null;
            bLoadingData         = true;
            if (dataTable != null)
            {
                dataTable.Columns.Clear();
                treeList1.Columns.Clear();
            }
            AddFixColumn();
            for (int i = forecastReport.StartYear; i <= forecastReport.YcEndYear; i++)
            {
                AddColumn(i);
            }
            Ps_Forecast_Math psp_Type = new Ps_Forecast_Math();

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

            dataTable = Itop.Common.DataConverter.ToDataTable(listTypes, typeof(Ps_Forecast_Math));
            OldHt.Clear();
            foreach (DataRow row in dataTable.Rows)
            {
                if (!OldHt.ContainsKey(row["Title"].ToString()))
                {
                    OldHt.Add(row["Title"].ToString(), row["ID"].ToString());
                }
            }

            treeList1.DataSource = dataTable;

            treeList1.Columns["Title"].OptionsColumn.AllowEdit = false;
            Ps_Calc pcs = new Ps_Calc();

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

            if (list1.Count > 0)
            {
                spinEdit1.Value = (decimal)list1[0].Value1;
            }
            Application.DoEvents();
            bLoadingData = false;
        }
コード例 #15
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            if (gridView1.FocusedRowHandle < 0)
            {
                return;
            }
            Ps_Calc pcs = new Ps_Calc();

            //if (m_pf.DecideDataAddin_comboBox(comboBox2))
            //{
            //    return;
            //}
            //if (m_pf.DecideDataAddin_comboBox(comboBox6))
            //{
            //    return;
            //}
            if (m_pf.DecideDataAddin_comboBox(comboBox1))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox4))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox3))
            {
                return;
            }

            if (m_pf.DecideDataAddin_comboBox(comboBox5))
            {
                return;
            }
            if (m_pf.DecideDataAddin_SpinEdit(spinEdit1))
            {
                return;
            }
            //刷新数据
            m_CalcList.Clear();
            m_CalcList = m_pf.SelectedForecastList(type, forecastReport);


            AddToDataRow_Update(pcs);
            ////重新刷新grid

            InitGridControl();
        }
コード例 #16
0
        /// <summary>
        /// 选择历史年份数据和预测年份数据

        /// </summary>
        /// <param name="_CalcTemp">ps_calc数据表对象</param>
        /// <param name="dr">DataRow object</param>
        /// <param name="pcs">ps_Calc  database object</param>
        private void AddYears(Ps_Calc pcs, DataRow dr, Ps_Calc _CalcTemp)
        {
            if (m_CalcList == null || m_CalcList.Count == 0)
            {
                pcs.Value2 = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
                pcs.Value3 = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
                pcs.Value4 = Convert.ToDouble(comboBox1.SelectedItem.ToString().Replace("年", ""));
                pcs.Value5 = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
                //选择历史年份
                dr["B"] = comboBox1.SelectedItem + "-" + comboBox4.SelectedItem;

                //选择预测年份
                dr["C"] = comboBox3.SelectedItem + "-" + comboBox5.SelectedItem;
            }
            else
            {
                if (Convert.ToDouble(comboBox1.SelectedItem.ToString().Replace("年", ""))
                    != _CalcTemp.Value4 || Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""))
                    != _CalcTemp.Value5)
                {
                    dr["B"]    = _CalcTemp.Value4 + "年-" + _CalcTemp.Value5 + "年";
                    pcs.Value4 = _CalcTemp.Value4;
                    pcs.Value5 = _CalcTemp.Value5;
                }
                else
                {
                    dr["B"]    = comboBox1.SelectedItem + "-" + comboBox4.SelectedItem;
                    pcs.Value4 = Convert.ToDouble(comboBox1.SelectedItem.ToString().Replace("年", ""));
                    pcs.Value5 = Convert.ToDouble(comboBox4.SelectedItem.ToString().Replace("年", ""));
                }
                if (Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""))
                    != _CalcTemp.Value2 || Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""))
                    != _CalcTemp.Value3)
                {
                    dr["C"]    = _CalcTemp.Value2 + "年-" + _CalcTemp.Value3 + "年";
                    pcs.Value2 = _CalcTemp.Value2;
                    pcs.Value3 = _CalcTemp.Value3;
                }
                else
                {
                    dr["C"]    = comboBox3.SelectedItem + "-" + comboBox5.SelectedItem;
                    pcs.Value2 = Convert.ToDouble(comboBox3.SelectedItem.ToString().Replace("年", ""));
                    pcs.Value3 = Convert.ToDouble(comboBox5.SelectedItem.ToString().Replace("年", ""));
                }
            }
        }
コード例 #17
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Ps_Calc pcs = new Ps_Calc();

            if (m_pf.DecideDataAddin_comboBox(comboBox2))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox6))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox1))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox4))
            {
                return;
            }
            if (m_pf.DecideDataAddin_comboBox(comboBox3))
            {
                return;
            }

            if (m_pf.DecideDataAddin_comboBox(comboBox5))
            {
                return;
            }
            if (m_pf.DecideDataAddin_SpinEdit(spinEdit1))
            {
                return;
            }


            AddToDataRow();
            if (AddDataToDatatable(pcs))
            {
                return;
            }
            SaveValue(pcs, true);
            //清空spinEdit
            spinEdit1.Value = 0;
            spinEdit3.Value = 1;
        }
コード例 #18
0
        private void JS()
        {
            //计算预测值
            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);


            int fyear = int.Parse(firstyear.Replace("y", ""));
            int syear = int.Parse(endyear.Replace("y", ""));
            int eyear = forecastReport.YcEndYear;

            foreach (DataRow dataRow in dataTable.Rows)
            {
                if (dataRow["Title"].ToString().Contains("全地区GDP"))
                {
                    continue;
                }
                double[] yn = new double[eyear - syear];

                if (fyear != 0 && syear != 0)
                {
                    // Calculator.StartYear = fyear;
                    Calculator.StartYear = syear;
                    Calculator.Type      = type.ToString();

                    double[] historyValues = GenerateHistoryValue(dataRow, fyear, syear);
                    yn = Calculator.SpringCoefficientMethod((double)dataRow["y" + (syear)], eyear - syear, forecastReport.ID);

                    for (int i = 1; i <= eyear - syear; i++)
                    {
                        dataRow["y" + (syear + i)] = yn[i - 1];
                        commonhelp.ResetValue(dataRow["ID"].ToString(), "y" + (syear + i));
                    }
                }
            }

            ForecastClass fc = new ForecastClass();

            fc.MaxForecast(forecastReport, dataTable);
            RefreshChart();
        }
コード例 #19
0
        private void savevalue(Ps_Calc pc11, bool iscreat)
        {
            if (!iscreat)
            {
                Services.BaseService.Update <Ps_Calc>(pc11);
            }
            else
            {
                //Ps_Calc pcs = new Ps_Calc();
                //pcs.ID = Guid.NewGuid().ToString();
                //pcs.Forecast = type;
                //pcs.ForecastID = forecastReport.ID;
                //pcs.CalcID = title;



                Services.BaseService.Create <Ps_Calc>(pc11);
            }
        }
コード例 #20
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            if (gridView1.FocusedRowHandle < 0)
            {
                return;
            }
            int         i   = gridView1.FocusedRowHandle;
            DataRowView drv = gridView1.GetRow(i) as DataRowView;

            if (drv == null)
            {
                MessageBox.Show("删除失败!");
                gridView1.RefreshData();
                return;
            }
            Ps_Calc pcs = new Ps_Calc();

            pcs.ID = drv.Row["ID"].ToString();
            pcs    = Common.Services.BaseService.GetOneByKey <Ps_Calc>(pcs);
            if (pcs != null)
            {
                Common.Services.BaseService.Delete <Ps_Calc>(pcs);
            }
            else
            {
                MessageBox.Show("删除失败!");
                gridView1.RefreshData();
                return;
            }
            dt.Rows.Remove(drv.Row);

            gridView1.RefreshData();
            if (gridView1.RowCount <= 1)
            {
                Can_Edit_Year = true;
            }
            else
            {
                Can_Edit_Year = false;
            }
            YearSelect();
        }
コード例 #21
0
        private void savevalue(string title, decimal value, bool isvalue)
        {
            bool bl = false;

            foreach (Ps_Calc pc11 in list1)
            {
                if (pc11.CalcID == title)
                {
                    bl = true;
                    if (isvalue)
                    {
                        pc11.Value1 = 1;
                    }
                    else
                    {
                        pc11.Value1 = 0;
                    }
                    pc11.Value2 = Convert.ToDouble(value);
                    Services.BaseService.Update <Ps_Calc>(pc11);
                }
            }
            if (!bl)
            {
                Ps_Calc pcs = new Ps_Calc();
                pcs.ID         = Guid.NewGuid().ToString();
                pcs.Forecast   = type;
                pcs.ForecastID = forecastReport.ID;
                pcs.CalcID     = title;

                if (isvalue)
                {
                    pcs.Value1 = 1;
                }
                else
                {
                    pcs.Value1 = 0;
                }
                pcs.Value2 = Convert.ToDouble(value);
                Services.BaseService.Create <Ps_Calc>(pcs);
            }
        }
コード例 #22
0
        /// <summary>
        /// 查找算法模型
        /// </summary>
        /// <param name="forecastReport">Ps_forecast_list对象</param>
        /// <param name="type">类型</param>
        /// <returns></returns>
        public IList <Ps_Calc> SelectedForecastList(int type, Ps_forecast_list forecastReport)
        {
            IList <Ps_Calc> _CalcList = new List <Ps_Calc>();

            //string sql = " Forecast = '" +forecastReport.ID+"' and Forecast = '"+ type +
            //        "' and Col4 != ''";

            if (type != null && forecastReport != null)
            {
                Ps_Calc pcs = new Ps_Calc();
                pcs.Forecast   = type;
                pcs.ForecastID = forecastReport.ID;

                _CalcList = Services.BaseService.GetList <Ps_Calc>("SelectPs_CalcOfCol4", pcs);
                return(_CalcList);
            }
            else
            {
                return(_CalcList);
            }
        }
コード例 #23
0
ファイル: FormForecast5.cs プロジェクト: github188/myitoppsp
        private void LoadData()
        {
            this.splitContainerControl1.SplitterPosition = (2 * this.splitterControl1.Width) / 3;
            this.splitContainerControl2.SplitterPosition = splitContainerControl2.Height / 2;
            treeList1.DataSource = null;
            bLoadingData         = true;
            if (dataTable != null)
            {
                dataTable.Columns.Clear();
                treeList1.Columns.Clear();
            }
            AddFixColumn();
            for (int i = forecastReport.StartYear; i <= forecastReport.EndYear; i++)
            {
                AddColumn(i);
            }
            Ps_Forecast_Math psp_Type = new Ps_Forecast_Math();

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

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

            treeList1.DataSource = dataTable;

            treeList1.Columns["Title"].OptionsColumn.AllowEdit = false;
            Ps_Calc pcs = new Ps_Calc();

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

            if (list1.Count > 0)
            {
                spinEdit1.Value = (decimal)list1[0].Value1;
            }
            Application.DoEvents();
            bLoadingData = false;
        }
コード例 #24
0
ファイル: FormDyhptl.cs プロジェクト: github188/myitoppsp
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Ps_Calc pcs = new Ps_Calc();

            pcs.Forecast   = type;
            pcs.ForecastID = forecastReport.ID;
            pcs            = (Ps_Calc)Services.BaseService.GetObject("SelectPs_CalcByForecast", pcs);
            if (pcs != null)
            {
                pcs.Value1 = Convert.ToDouble(spinEdit1.Value);
                Services.BaseService.Update <Ps_Calc>(pcs);
            }
            else
            {
                pcs            = new Ps_Calc();
                pcs.ID         = System.Guid.NewGuid().ToString();
                pcs.Forecast   = type;
                pcs.ForecastID = forecastReport.ID;
                pcs.Value1     = Convert.ToDouble(spinEdit1.Value);
                Services.BaseService.Create <Ps_Calc>(pcs);
            }
        }
コード例 #25
0
ファイル: FormForecast5.cs プロジェクト: github188/myitoppsp
        private void CS()
        {
            Ps_Calc pcs = new Ps_Calc();

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

            if (list1.Count > 0)
            {
                list1[0].Value1 = Convert.ToDouble(spinEdit1.Value);
                Services.BaseService.Update <Ps_Calc>(list1[0]);
            }
            else
            {
                Ps_Calc pc = new Ps_Calc();
                pc.ID         = Guid.NewGuid().ToString();
                pc.Forecast   = 5;
                pc.ForecastID = forecastReport.ID;
                pc.Value1     = Convert.ToDouble(spinEdit1.Value);
                Services.BaseService.Create <Ps_Calc>(pc);
            }
        }
コード例 #26
0
        private void spinEdit4_ValueChanged(object sender, EventArgs e)
        {
            Ps_Calc pcs = new Ps_Calc();

            pcs.Forecast   = 25;
            pcs.ForecastID = forecastReport.ID;
            IList <Ps_Calc> list1 = m_pf.SelectedForecastList(25, forecastReport);

            if (list1.Count > 0)
            {
                list1[0].Value1 = Convert.ToDouble(spinEdit4.Value);
                Common.Services.BaseService.Update <Ps_Calc>(list1[0]);
            }
            else
            {
                Ps_Calc pc = new Ps_Calc();
                pc.ID         = Guid.NewGuid().ToString();
                pc.Forecast   = 25;
                pc.ForecastID = forecastReport.ID;
                pc.Col4       = "25";
                pc.Value1     = Convert.ToDouble(spinEdit4.Value);
                Common.Services.BaseService.Create <Ps_Calc>(pc);
            }
        }
コード例 #27
0
        private void FormForecastCalc10_Load(object sender, EventArgs e)
        {
            //int firstyear = 0;
            //int endyear = 0;

            //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);
            foreach (Ps_Calc pcs2 in list1)
            {
                if (checkEdit1.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit1.Checked = true;
                        spinEdit1.Visible  = true;
                    }
                    else
                    {
                        checkEdit1.Checked = false;
                        spinEdit1.Visible  = false;
                    }

                    spinEdit1.Value = OverMaxValue(pcs2.Value2, 1);
                }
                else
                if (checkEdit2.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit2.Checked = true;
                        spinEdit2.Visible  = true;
                    }
                    else
                    {
                        checkEdit2.Checked = false;
                        spinEdit2.Visible  = false;
                    }

                    spinEdit2.Value = OverMaxValue(pcs2.Value2, 2);
                }
                else
                if (checkEdit3.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit3.Checked = true;
                        spinEdit3.Visible  = true;
                    }
                    else
                    {
                        checkEdit3.Checked = false;
                        spinEdit3.Visible  = false;
                    }

                    spinEdit3.Value = OverMaxValue(pcs2.Value2, 3);
                }
                else
                if (checkEdit4.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit4.Checked = true;
                        spinEdit4.Visible  = true;
                    }
                    else
                    {
                        checkEdit4.Checked = false;
                        spinEdit4.Visible  = false;
                    }

                    spinEdit4.Value = OverMaxValue(pcs2.Value2, 4);
                }
                else
                if (checkEdit5.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit5.Checked = true;
                        spinEdit5.Visible  = true;
                    }
                    else
                    {
                        checkEdit5.Checked = false;
                        spinEdit5.Visible  = false;
                    }

                    spinEdit5.Value = OverMaxValue(pcs2.Value2, 5);
                }
                else
                if (checkEdit6.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit6.Checked = true;
                        spinEdit6.Visible  = true;
                    }
                    else
                    {
                        checkEdit6.Checked = false;
                        spinEdit6.Visible  = false;
                    }

                    spinEdit6.Value = OverMaxValue(pcs2.Value2, 6);
                }
                else
                if (checkEdit7.Text == pcs2.CalcID)
                {
                    if (pcs2.Value1 > 0)
                    {
                        checkEdit7.Checked = true;
                        spinEdit7.Visible  = true;
                    }
                    else
                    {
                        checkEdit7.Checked = false;
                        spinEdit7.Visible  = false;
                    }

                    spinEdit7.Value = OverMaxValue(pcs2.Value2, 7);
                }
                //else
                //   if( checkEdit8.Text==pcs2.CalcID)
                //   {
                //       if (pcs2.Value1 > 0)
                //       {
                //           checkEdit8.Checked = true;
                //           spinEdit8.Visible = true;
                //       }
                //       else
                //       {
                //           checkEdit8.Checked = false;

                //           spinEdit8.Visible = false;
                //       }

                //       spinEdit8.Value = OverMaxValue(pcs2.Value2, 8);
                //   }
            }
        }
コード例 #28
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;
        }
コード例 #29
0
ファイル: FormForecast5.cs プロジェクト: github188/myitoppsp
        private void JS()
        {
            //计算预测值
            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);


            int fyear = int.Parse(firstyear.Replace("y", ""));
            int syear = int.Parse(endyear.Replace("y", ""));
            int eyear = forecastReport.EndYear;

            foreach (DataRow dataRow in dataTable.Rows)
            {
                double zzl    = 0;
                bool   bl     = false;
                double value1 = 0;
                try { value1 = (double)dataRow["y" + syear]; }
                catch { }


                foreach (Ps_Calc pc11 in list1)
                {
                    if (pc11.CalcID == dataRow["ID"].ToString().Trim())
                    {
                        bl  = true;
                        zzl = pc11.Value1;
                    }
                }


                if (!bl)
                {
                    if (fyear != 0 && syear != 0)
                    {
                        double[] historyValues = GenerateHistoryValue(dataRow, fyear, syear);
                        zzl = Calculator.AverageIncreasing(historyValues);
                        Ps_Calc pcs1 = new Ps_Calc();
                        pcs1.ID         = Guid.NewGuid().ToString();
                        pcs1.Forecast   = type;
                        pcs1.ForecastID = forecastReport.ID;
                        pcs1.CalcID     = dataRow["ID"].ToString();
                        pcs1.Value1     = zzl;
                        Services.BaseService.Create <Ps_Calc>(pcs1);
                    }
                }
                if (fyear != 0 && syear != 0)
                {
                    for (int i = 1; i <= eyear - syear; i++)
                    {
                        dataRow["y" + (syear + i)] = value1 * Math.Pow(1 + zzl, i);
                    }
                }
            }
            ForecastClass fc = new ForecastClass();

            fc.MaxForecast(forecastReport, dataTable);
            RefreshChart();
        }
コード例 #30
0
        private void LoadData()
        {
            string sql = " ForecastID='" + forecastReport.ID + "' and Forecast=" + type + " and Col1='dc' and Col2='GDP'";

            IList listTypes = Common.Services.BaseService.GetList("SelectPs_Forecast_MathByWhere", sql);

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

            DataRow[] rows1 = dataTable.Select("Title like '一产'");
            DataRow[] rows2 = dataTable.Select("Title like '二产'");
            DataRow[] rows3 = dataTable.Select("Title like '三产'");

            if (rows1.Length == 0 || rows2.Length == 0 || rows3.Length == 0)
            {
                MessageBox.Show("缺少‘GDP’数据!( 一产、二产、三产)");
                this.Close();
                return;
            }


            Ps_Calc pcs = new Ps_Calc();

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


            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            newrow1 = dt.NewRow();
            newrow2 = dt.NewRow();
            newrow3 = dt.NewRow();

            newrow1["ID"]   = "ID";
            newrow1["Name"] = "一产增长率(%)";
            newrow2["Name"] = "二产增长率(%)";
            newrow3["Name"] = "三产增长率(%)";



            for (int i = forecastReport.YcStartYear; i <= forecastReport.YcEndYear; i++)
            {
                dt.Columns.Add(i.ToString(), typeof(double));
                DevExpress.XtraVerticalGrid.Rows.EditorRow editorRow = new DevExpress.XtraVerticalGrid.Rows.EditorRow();
                editorRow.Properties.FieldName = i.ToString().Trim();
                editorRow.Properties.Caption   = i.ToString().Trim();
                editorRow.Height             = 20;
                editorRow.Properties.RowEdit = this.repositoryItemCalcEdit1;
                this.vGridControl1.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;
                double s8 = 0;
                double s9 = 0;


                try { s1 = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                try { s2 = Convert.ToDouble(rows1[0]["y" + (i - 1)]); }
                catch { }
                if (s2 != 0)
                {
                    s3 = (s1 - s2) / s2;
                }
                newrow1[i.ToString()] = Math.Round(s3 * 100, 3);


                try { s4 = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                try { s5 = Convert.ToDouble(rows1[0]["y" + (i - 1)]); }
                catch { }
                if (s5 != 0)
                {
                    s6 = (s4 - s5) / s5;
                }
                newrow2[i.ToString()] = Math.Round(s6 * 100, 3);

                try { s7 = Convert.ToDouble(rows1[0]["y" + i]); }
                catch { }
                try { s8 = Convert.ToDouble(rows1[0]["y" + (i - 1)]); }
                catch { }
                if (s8 != 0)
                {
                    s9 = (s7 - s8) / s8;
                }
                newrow3[i.ToString()] = Math.Round(s9 * 100, 3);

                foreach (Ps_Calc pcs1 in list1)
                {
                    if (i == pcs1.Year)
                    {
                        newrow1[i.ToString()] = Math.Round(pcs1.Value1 * 100, 3);
                        newrow2[i.ToString()] = Math.Round(pcs1.Value2 * 100, 3);
                        newrow3[i.ToString()] = Math.Round(pcs1.Value3 * 100, 3);
                    }
                }
            }
            dt.Rows.Add(newrow1);
            dt.Rows.Add(newrow2);
            dt.Rows.Add(newrow3);
            vGridControl1.DataSource = dt;
        }