private void InitSave() { List<PSP_ForecastValues> listValues = new List<PSP_ForecastValues>(); foreach (TreeListNode nd in treeList2.Nodes) { AddNodeDataToList(nd, listValues); } Common.Services.BaseService.Update<PSP_ForecastValues>(listValues); IList<PSP_PowerProject_ProfessValues> listValuestemp = Common.Services.BaseService.GetList<PSP_PowerProject_ProfessValues>("SelectPSP_PowerProject_ProfessValuesByFlag2", forecastReport.ID); PSP_PowerProject_ProfessValues psp_profess = new PSP_PowerProject_ProfessValues(); try { foreach (PSP_PowerProject_ProfessValues value in listValuestemp) { if (value.Year > forecastReport.EndYear || value.Year <=forecastReport.StartYear) continue; TreeListNode node = treeList1.FindNodeByFieldValue("ID", value.TypeID); if (node != null) { psp_profess.TypeID = value.TypeID; psp_profess.Value = Convert.ToDouble(node[value.Year + "年"].ToString()); psp_profess.Year = value.Year; psp_profess.Flag2 = value.Flag2; //node.SetValue(value.Year + "年", value.Value); Common.Services.BaseService.Update<PSP_PowerProject_ProfessValues>(psp_profess); } } MsgBox.Show("数据保存成功!"); bl2 = false; } catch (Exception ex) { //MsgBox.Show(ex.Message); } }
private void LoadData() { if (dataTable != null) { dataTable.Columns.Clear(); treeList1.Columns.Clear(); } PSP_P_Types psp_Type = new PSP_P_Types(); IList listTypes =null; if (!formselect) { psp_Type.Flag2 = forecastReport.ID; listTypes = Common.Services.BaseService.GetList("SelectPSP_P_TypesByFlag2", psp_Type); dataTable = Itop.Common.DataConverter.ToDataTable(listTypes, typeof(PSP_P_Types)); treeList1.DataSource = dataTable; } else { string str = " Flag='" + typeFlag + "' and Flag2='" + forecastReport.ID + "' " + " and ID in(80001,80002,80003) "; listTypes = Common.Services.BaseService.GetList("SelectPSP_P_TypesByWhere", str); dataTable = Itop.Common.DataConverter.ToDataTable(listTypes, typeof(PSP_P_Types)); //DataView datemp = dataTable.DefaultView; //datemp.RowFilter = "ID in(80001,80002,80003,80004)"; treeList1.DataSource = dataTable; } treeList1.Columns["Title"].Caption = "分类名"; treeList1.Columns["Title"].Width = 180; treeList1.Columns["Title"].OptionsColumn.AllowEdit = false; treeList1.Columns["Title"].OptionsColumn.AllowSort = false; treeList1.Columns["Flag"].VisibleIndex = -1; treeList1.Columns["Flag"].OptionsColumn.ShowInCustomizationForm = false; treeList1.Columns["Flag2"].VisibleIndex = -1; treeList1.Columns["Flag2"].OptionsColumn.ShowInCustomizationForm = false; PSP_PowerProject_ProfessValues psp_profess = new PSP_PowerProject_ProfessValues(); for (int i = forecastReport.StartYear + 1; i <= forecastReport.EndYear; i++) { AddColumn(i); foreach (PSP_P_Types psp_Typetemp in listTypes) { psp_profess.TypeID = psp_Typetemp.ID; psp_profess.Value=0.1; psp_profess.Year = i; psp_profess.Flag2 = psp_Typetemp.Flag2; try { Common.Services.BaseService.Update("CreatPSP_PowerProject_ProfessValues", psp_profess); } catch (Exception ex) { MsgBox.Show("加载数据出错:" + ex.Message); } } } //foreach (TreeListNode nd in treeList1.Nodes) //{ // SetDefaultValues(nd); //} LoadValueData(); treeList1.ExpandAll(); }
/// <summary> /// 专家指定法 /// </summary> /// <param name="baseValue">基年数据</param> /// <param name="averageIncreasing">年均增长率</param> /// <param name="years">需要预测的年数</param> /// <returns>预测数据数组</returns> public static double[] ProfessionalLV(/*double[] historyValue,*/ double baseValue, int years, int TypeID) { double[] rt = new double[years]; PSP_PowerProject_ProfessValues psp_profess = new PSP_PowerProject_ProfessValues(); psp_profess.TypeID = TypeID; psp_profess.Flag2 =Convert.ToInt32(type); try { IList<PSP_PowerProject_ProfessValues> listValues = Common.Services.BaseService.GetList<PSP_PowerProject_ProfessValues>("SelectPSP_PowerProject_ProfessValuesByFlag2TypeID", psp_profess); int i = 0; int yeartemp = 0; double baseyeartemp = baseValue; if (listValues.Count > 0) yeartemp = startyear; else { for (int j = 0; j < years; j++) { rt[j] = baseyeartemp * Math.Pow((1 + 0.1), 1); baseyeartemp = rt[j]; } } foreach (PSP_PowerProject_ProfessValues psp_professtemp in listValues) { if (i < years) { rt[i] = baseyeartemp * Math.Pow((1 + psp_professtemp.Value), psp_professtemp.Year - yeartemp); baseyeartemp = rt[i]; yeartemp = psp_professtemp.Year; i++; } } } catch (Exception ex) { MsgBox.Show(ex.Message); } return rt; }