private void FormCalculator_Load(object sender, EventArgs e) { HideToolBarButton(); #region ��ƽ��s dt = new DataTable(); dt.Columns.Add("Name"); //MessageBox.Show("1"); foreach (DataRow dataRow in dataTable.Rows) { TreeListNode treeNode = treeList1.FindNodeByKeyID(dataRow["ID"]); if (treeNode != null && !treeNode.HasChildren) { dt.Columns.Add(dataRow["Title"].ToString().Trim(), typeof(double)); DevExpress.XtraVerticalGrid.Rows.EditorRow editorRow = new DevExpress.XtraVerticalGrid.Rows.EditorRow(); editorRow.Properties.FieldName = dataRow["Title"].ToString().Trim(); editorRow.Properties.Caption = dataRow["Title"].ToString().Trim(); editorRow.Height = 20; editorRow.Properties.RowEdit = this.repositoryItemCalcEdit4; this.vGridControl2.Rows.AddRange(new DevExpress.XtraVerticalGrid.Rows.BaseRow[] { editorRow }); } } DataRow newrow1 = dt.NewRow(); newrow1["Name"] = "��ʷ������"; foreach (DataRow dataRow in dataTable.Rows) { TreeListNode treeNode = treeList1.FindNodeByKeyID(dataRow["ID"]); if (treeNode != null && !treeNode.HasChildren) { int forecastYears = forecastReport.EndYear - forecastReport.StartYear; double[] historyValues = GenerateHistoryValue(treeNode); newrow1[dataRow["Title"].ToString().Trim()] = Calculator.AverageIncreasing(historyValues); } } dt.Rows.Add(newrow1); newrow2 = dt.NewRow(); dt.Rows.Add(newrow2); newrow2["Name"] = "��ǰ������"; vGridControl2.DataSource = dt; IList<PSP_Calc> list = Services.BaseService.GetList<PSP_Calc>("SelectPSP_CalcByFlag", type); if (list.Count == 0) { pc.ID = Guid.NewGuid().ToString(); pc.Flag = type; pc.Col1 = ""; pc.Value1 = 3; pc.Value2 = 0.4; Services.BaseService.Create<PSP_Calc>(pc); } else pc = list[0]; spinEdit1.Value = Convert.ToDecimal(pc.Value1); spinEdit2.Value = Convert.ToDecimal(pc.Value2); //textEdit1.Text = pc.Value2.ToString(); IList<PSP_Calc> list1 = Services.BaseService.GetList<PSP_Calc>("SelectPSP_CalcByFlag1", type); if (list1.Count == 0) { pc1.ID = Guid.NewGuid().ToString(); pc1.Flag = type; pc1.Col1 = "1"; int i = 1; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName == "Name") continue; double value = 0; try { value = Convert.ToDouble(newrow1[dc].ToString()); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } pc1.GetType().GetProperty("Value" + i.ToString()).SetValue(pc1, value, null); newrow2[dc] = value; i++; } Services.BaseService.Create<PSP_Calc>(pc1); } else { pc1 = list1[0]; int i = 1; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName == "Name") continue; double value = 0; try { value = (double)pc1.GetType().GetProperty("Value" + i.ToString()).GetValue(pc1, null); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } newrow2[dc] = value; i++; } } #endregion string str11 = " Flag='" + type + "' and Type='����ϵ��'"; IList<PSP_Calc_Spring> list2 = Services.BaseService.GetList<PSP_Calc_Spring>("SelectPSP_Calc_SpringByWhere", str11); int years = forecastReport.EndYear - forecastReport.StartYear; for (int i = 1; i <= years; i++) { bool bl = false; foreach (PSP_Calc_Spring pcs in list2) { if ((forecastReport.StartYear + i).ToString() == pcs.Name) { bl = true; } } if (!bl) { PSP_Calc_Spring pcss = new PSP_Calc_Spring(); pcss.ID = Guid.NewGuid().ToString(); pcss.Name = (forecastReport.StartYear + i).ToString(); pcss.Value1 = 0; pcss.Value2 = 0; pcss.Flag = type; pcss.Type = "����ϵ��"; Services.BaseService.Create<PSP_Calc_Spring>(pcss); list2.Add(pcss); } } Hashtable htt1 = new Hashtable(); for (int i = 0; i < forecastReport.HistoryYears; i++) { double value1 = 0.0; double value2 = 0.0; double value3 = 0.0; double value4 = 0.0; double value5 = 0.0; int yeara=forecastReport.StartYear - forecastReport.HistoryYears + i + 1; PSP_Calc_Spring pcss = new PSP_Calc_Spring(); pcss.ID = Guid.NewGuid().ToString(); pcss.Name = yeara.ToString(); pcss.Flag = type; string str = " TypeID=1 and Year=" + (yeara-1); IList<PSP_Values> pg = Services.BaseService.GetList<PSP_Values>("SelectPSP_ValuesByWhere", str); if (pg.Count > 0) value3 = pg[0].Value; str = " TypeID=1 and Year=" + yeara; IList<PSP_Values> pg1 = Services.BaseService.GetList<PSP_Values>("SelectPSP_ValuesByWhere", str); if (pg1.Count > 0) value5 = pg1[0].Value; pcss.Value2 = (value5 - value3) / value3; str = " TypeID=2 and Year=" + (yeara-1); IList<PSP_Values> pv1 = Services.BaseService.GetList<PSP_Values>("SelectPSP_ValuesByWhere", str); if (pv1.Count > 0) value1 = pv1[0].Value; str = " TypeID=2 and Year=" + yeara; IList<PSP_Values> pv2 = Services.BaseService.GetList<PSP_Values>("SelectPSP_ValuesByWhere", str); if (pv2.Count > 0) value2 = pv2[0].Value; if (value1 != 0 && value3 != 0) { value4 = (value2 - value1) / (value1 * (value5 - value3) / value3); } pcss.Value1 = value4; list2.Add(pcss); } gridControl1.DataSource = list2; ////////string str12 = " Flag='" + type + "' and Type='ר��ָ��'"; ////////IList<PSP_Calc_Spring> list3 = Services.BaseService.GetList<PSP_Calc_Spring>("SelectPSP_Calc_SpringByWhere", str12); ////////int years1 = forecastReport.EndYear - forecastReport.StartYear; ////////for (int i = 1; i <= years1; i++) ////////{ //////// bool bl = false; //////// foreach (PSP_Calc_Spring pcs in list3) //////// { //////// if ((forecastReport.StartYear + i).ToString() == pcs.Name) //////// { //////// bl = true; //////// } //////// } //////// if (!bl) //////// { //////// PSP_Calc_Spring pcss = new PSP_Calc_Spring(); //////// pcss.ID = Guid.NewGuid().ToString(); //////// pcss.Name = (forecastReport.StartYear + i).ToString(); //////// pcss.Value1 = 0; //////// pcss.Value2 = 0; //////// pcss.Flag = type; //////// pcss.Type = "ר��ָ��"; //////// Services.BaseService.Create<PSP_Calc_Spring>(pcss); //////// list3.Add(pcss); //////// } ////////} ////////gridControl2.DataSource = list3; }
private void FormCalculator_Load(object sender, EventArgs e) { #region ��ƽ��s dt = new DataTable(); dt.Columns.Add("Name"); foreach (DataRow dataRow in dataTable.Rows) { TreeListNode treeNode = treeList1.FindNodeByKeyID(dataRow["ID"]); if (!treeNode.HasChildren) { dt.Columns.Add(dataRow["Title"].ToString().Trim(),typeof(double)); DevExpress.XtraVerticalGrid.Rows.EditorRow editorRow = new DevExpress.XtraVerticalGrid.Rows.EditorRow(); editorRow.Properties.FieldName = dataRow["Title"].ToString().Trim(); editorRow.Properties.Caption = dataRow["Title"].ToString().Trim(); editorRow.Height = 20; editorRow.Properties.RowEdit = this.repositoryItemCalcEdit4; this.vGridControl2.Rows.AddRange(new DevExpress.XtraVerticalGrid.Rows.BaseRow[] { editorRow }); } } DataRow newrow1 = dt.NewRow(); newrow1["Name"] = "������(����)"; foreach (DataRow dataRow in dataTable.Rows) { TreeListNode treeNode = treeList1.FindNodeByKeyID(dataRow["ID"]); if (!treeNode.HasChildren) { int forecastYears = forecastReport.EndYear - forecastReport.StartYear; double[] historyValues = GenerateHistoryValue(treeNode); newrow1[dataRow["Title"].ToString().Trim()] = Calculator.AverageIncreasing(historyValues); } } //dt.Rows.Add(newrow1); newrow2 = dt.NewRow(); dt.Rows.Add(newrow2); newrow2["Name"] = "��ǰ������"; vGridControl2.DataSource = dt; IList<PSP_Calc> list = Services.BaseService.GetList<PSP_Calc>("SelectPSP_CalcByFlag", type); if (list.Count == 0) { pc.ID = Guid.NewGuid().ToString(); pc.Flag = type; pc.Col1 = ""; pc.Value1 = 3; pc.Value2 = 0.4; Services.BaseService.Create<PSP_Calc>(pc); } else pc = list[0]; //textEdit1.Text = pc.Value2.ToString(); IList<PSP_Calc> list1 = Services.BaseService.GetList<PSP_Calc>("SelectPSP_CalcByFlag1", type); if (list1.Count == 0) { pc1.ID = Guid.NewGuid().ToString(); pc1.Flag = type; pc1.Col1 = "1"; int i = 1; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName == "Name") continue; double value = 0; try { value = Convert.ToDouble(newrow1[dc].ToString()); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } pc1.GetType().GetProperty("Value" + i.ToString()).SetValue(pc1, value, null); newrow2[dc] = value; i++; } Services.BaseService.Create<PSP_Calc>(pc1); } else { pc1 = list1[0]; int i = 1; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName == "Name") continue; double value = 0; try { value = (double)pc1.GetType().GetProperty("Value" + i.ToString()).GetValue(pc1, null); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } newrow2[dc] = value; i++; } } #endregion IList<PSP_Calc_Spring> list2 = Services.BaseService.GetList<PSP_Calc_Spring>("SelectPSP_Calc_SpringByFlag", type); int years = forecastReport.EndYear - forecastReport.StartYear; for (int i = 1; i <= years; i++) { bool bl = false; foreach (PSP_Calc_Spring pcs in list2) { if ((forecastReport.StartYear + i).ToString() == pcs.Name) { bl = true; } } if (!bl) { PSP_Calc_Spring pcss = new PSP_Calc_Spring(); pcss.ID = Guid.NewGuid().ToString(); pcss.Name = (forecastReport.StartYear + i).ToString(); pcss.Value1 = 0; pcss.Value2 = 0; pcss.Flag = type; Services.BaseService.Create<PSP_Calc_Spring>(pcss); list2.Add(pcss); } } }
private void FormCalculator_Load(object sender, EventArgs e) { string str = " Flag='" + type + "' and Type='ר��ָ��'"; IList<PSP_Calc_Spring> list2 = Services.BaseService.GetList<PSP_Calc_Spring>("SelectPSP_Calc_SpringByWhere", str); int years = forecastReport.EndYear - forecastReport.StartYear; for (int i = 1; i <= years; i++) { bool bl = false; foreach (PSP_Calc_Spring pcs in list2) { if ((forecastReport.StartYear + i).ToString() == pcs.Name) { bl = true; } } if (!bl) { PSP_Calc_Spring pcss = new PSP_Calc_Spring(); pcss.ID = Guid.NewGuid().ToString(); pcss.Name = (forecastReport.StartYear + i).ToString(); pcss.Value1 = 0; pcss.Value2 = 0; pcss.Flag = type; pcss.Type = "ר��ָ��"; Services.BaseService.Create<PSP_Calc_Spring>(pcss); list2.Add(pcss); } } gridControl1.DataSource = list2; }
/// <summary> /// ��Ӷ��� /// </summary> public void AddObject() { //�����������Ƿ��Ѿ����� if (ObjectList == null) { return; } //�½����� PSP_Calc_Spring obj = new PSP_Calc_Spring(); //ִ����Ӳ��� using (FrmPSP_Calc_SpringDialog dlg = new FrmPSP_Calc_SpringDialog()) { dlg.IsCreate = true; //�����½���־ dlg.Object = obj; if (dlg.ShowDialog() != DialogResult.OK) { return; } } //���¶�����뵽������ ObjectList.Add(obj); //ˢ�±���������ж�λ���¶����ϡ� gridControl.RefreshDataSource(); GridHelper.FocuseRow(this.gridView, obj); }
/// <summary> /// �Ľ������ /// </summary> public void UpdateObject() { //��ȡ������� PSP_Calc_Spring obj = FocusedObject; if (obj == null) { return; } //���������һ������ PSP_Calc_Spring objCopy = new PSP_Calc_Spring(); DataConverter.CopyTo<PSP_Calc_Spring>(obj, objCopy); //ִ���IJ��� using (FrmPSP_Calc_SpringDialog dlg = new FrmPSP_Calc_SpringDialog()) { dlg.Object = objCopy; //���� if (dlg.ShowDialog() != DialogResult.OK) { return; } } //�ø������½������ DataConverter.CopyTo<PSP_Calc_Spring>(objCopy, obj); //ˢ�±�� gridControl.RefreshDataSource(); }
/// <summary> /// 利用弹性系数法计算预测数据 /// </summary> /// <param name="baseValue">历史数据</param> /// <param name="baseValue">基年数据</param> /// <param name="springCoefficient">预测采用的弹性系数</param> /// <param name="years">要预测的年数</param> /// <returns>预测结果数组</returns> public static double[] SpringCoefficientMethod(double baseValue, int years) { double[] rt = new double[years]; double s1 = baseValue; //每次的增长 double s2 = 0; //增长的合计 string str = " Flag='" + type + "' and Type='弹性系数'"; IList<PSP_Calc_Spring> list2 = Services.BaseService.GetList<PSP_Calc_Spring>("SelectPSP_Calc_SpringByWhere", str); for (int i = 1; i <= years; i++) { bool bl = false; foreach (PSP_Calc_Spring pcs in list2) { if ((startyear+i).ToString() == pcs.Name) { bl = true; } } if (!bl) { PSP_Calc_Spring pcss = new PSP_Calc_Spring(); pcss.ID = Guid.NewGuid().ToString(); pcss.Name = (startyear+i).ToString(); pcss.Value1 = 0; pcss.Value2 = 0; pcss.Flag = type; pcss.Type = "弹性系数"; Services.BaseService.Create<PSP_Calc_Spring>(pcss); list2.Add(pcss); } } for (int i = 0; i < years; i++) { foreach (PSP_Calc_Spring pcs in list2) { if ((startyear + i+1).ToString() == pcs.Name) { s1 = s1 * (1 + pcs.Value1 * pcs.Value2); rt[i] = s1; } } //rt[i] = baseValue * Math.Pow(1 + springCoefficient * AverageIncreasing(historyValue), i + 1); } return rt; }