private List <UIElement> GetLayout() { List <UIElement> panel = new List <UIElement>(); Document doc = DocumentManager.CurrentDocument; ProjectStatistics proj = doc.Projects[id]; Binding pipBinding = new Binding("PIP") { Source = proj, Mode = BindingMode.TwoWay }; panel.Add(new TextBlock { Text = "Include project in PIP?", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); ComboBox cbbPipTop = new ComboBox { Width = 200, HorizontalAlignment = HorizontalAlignment.Left, ItemsSource = new string[] { "Yes", "No" } }; cbbPipTop.SetBinding(ComboBox.SelectedIndexProperty, pipBinding); panel.Add(cbbPipTop); //---------------------------------表2.1-------------------------------------------------- panel.Add(new TextBlock { Text = "2.1 PROJECT DESCRIPTORS", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); StackPanel tableP1 = new StackPanel { Width = 500, HorizontalAlignment = HorizontalAlignment.Left }; tableP1.Children.Add(new TextBlock { Text = "A. Project Name/项目名称是什么" }); TextBox txtP1A = new TextBox { Text = proj.P1A }; txtP1A.LostFocus += GetTextBoxLostFocusHandler(txtP1A, GetValidator(txtP1A), () => proj.P1A = txtP1A.Text, txtP1A.Text); tableP1.Children.Add(txtP1A); tableP1.Children.Add(new TextBlock { Text = "B. Location/项目位于城市何处" }); TextBox txtP1B = new TextBox { Text = proj.P1B }; txtP1B.LostFocus += GetTextBoxLostFocusHandler(txtP1B, GetValidator(txtP1B), () => proj.P1B = txtP1B.Text, txtP1B.Text); tableP1.Children.Add(txtP1B); tableP1.Children.Add(new TextBlock { Text = "C. Sector - To which sector does the project belong/项目属于哪个部门" }); ComboBox cbbP1C = new ComboBox(); ProjectStatistics.Sector.ToList().ForEach(x => cbbP1C.Items.Add(x)); cbbP1C.SelectedIndex = proj.P1C[0]; cbbP1C.SelectionChanged += (sender, e) => proj.P1C[0] = cbbP1C.SelectedIndex; tableP1.Children.Add(cbbP1C); tableP1.Children.Add(new TextBlock { Text = "D. Purpose - What is the main dimension of the project/项目主要方面" }); ComboBox cbbP1D = new ComboBox(); ProjectStatistics.Purpose.ToList().ForEach(x => cbbP1D.Items.Add(x)); cbbP1D.SelectedIndex = proj.P1D; cbbP1D.SelectionChanged += (sender, e) => proj.P1D = cbbP1D.SelectedIndex; tableP1.Children.Add(cbbP1D); tableP1.Children.Add(new TextBlock { Text = "E. Status of Project - What is the current status of the project/项目现状如何", Background = Brushes.Yellow }); ComboBox cbbP1E = new ComboBox(); ProjectStatistics.StatusOfProject.ToList().ForEach(x => cbbP1E.Items.Add(x)); cbbP1E.SelectedIndex = proj.P1E; cbbP1E.SelectionChanged += (sender, e) => proj.P1E = cbbP1E.SelectedIndex; tableP1.Children.Add(cbbP1E); tableP1.Children.Add(new TextBlock { Text = "F. Time Frame - Expected commencement & completion year/时间框架" }); ComboBox cbbP1F_1 = new ComboBox(); ComboBox cbbP1F_2 = new ComboBox(); Enumerable.Range(0, 10).Select(x => proj.P02 + x).ToList().ForEach(x => { cbbP1F_1.Items.Add(x); cbbP1F_2.Items.Add(x); }); cbbP1F_1.SelectedItem = proj.P1F_1; cbbP1F_2.SelectedItem = proj.P1F_2; cbbP1F_1.SelectionChanged += (sender, e) => proj.P1F_1 = Convert.ToInt32(cbbP1F_1.SelectedItem); cbbP1F_2.SelectionChanged += (sender, e) => proj.P1F_2 = Convert.ToInt32(cbbP1F_2.SelectedItem); tableP1.Children.Add(cbbP1F_1); tableP1.Children.Add(cbbP1F_2); panel.Add(tableP1); //---------------------------------表2.2-------------------------------------------------- panel.Add(new TextBlock { Text = "FINANCIAL PARAMETERS", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); YearwiseTable tableP2 = new YearwiseTable(); tableP2.SectionNumber = "2.2"; tableP2.Title = "资本成本"; tableP2.Rows.Add("P2A", proj.P2A); tableP2.Rows.Add("P2B", proj.P2B); tableP2.Rows.Add("P2C", proj.P2C); tableP2.Rows.Add("P2D", proj.P2D); tableP2.Rows.Add("P2E", proj.P2E); tableP2.Rows.Add("P2F", proj.P2F); tableP2.LockRows("P2F"); Enumerable.Range(1, 10).ToList().ForEach(x => tableP2.Years.Add(new YearDefinition(x, true, true))); tableP2.Years.Add(YearDefinition.Sum); tableP2.Render(); tableP2.UserInput += (sender, e) => UpdateData(); panel.Add(tableP2); //---------------------------------表2.3-------------------------------------------------- YearwiseTable tableP3 = new YearwiseTable(); tableP3.SectionNumber = "2.3"; tableP3.Title = "资本投资的预期资金来源"; tableP3.Rows.Add("P3A", proj.P3A); tableP3.Rows.Add("P3B", proj.P3B); tableP3.Rows.Add("P3C", proj.P3C); tableP3.Rows.Add("P3D", proj.P3D); tableP3.Rows.Add("P3E", proj.P3E); tableP3.Rows.Add("P3T", proj.P3T); tableP3.Rows.Add("P3F", proj.P3F); tableP3.LockRows("P3T", "P3F"); Enumerable.Range(1, 10).ToList().ForEach(x => tableP3.Years.Add(new YearDefinition(x, true, true))); tableP3.Years.Add(YearDefinition.Sum); tableP3.Render(); tableP3.UserInput += (sender, e) => UpdateData(); panel.Add(tableP3); //---------------------------------表2.4-------------------------------------------------- PropertyTable tableP4 = new PropertyTable { SectionNumber = "2.4", Title = "运营与维护成本" }; tableP4.Rows.Add("P4A", Tuple.Create <object, object>(proj, 0.0)); tableP4.Render(); tableP4.UserInput += (sender, e) => UpdateData(); panel.Add(tableP4); //---------------------------------表2.5-------------------------------------------------- PropertyTable tableP5 = new PropertyTable { SectionNumber = "2.5", Title = "新增商业贷款" }; tableP5.Rows.Add("P5A", Tuple.Create <object, object>(proj, 0)); tableP5.Rows.Add("P5B", Tuple.Create <object, object>(proj, 0)); tableP5.Rows.Add("P5C", Tuple.Create <object, object>(proj, 0)); tableP5.Rows.Add("P5D", Tuple.Create <object, object>(proj, 0.0)); tableP5.SetPercentageRows("P5D"); tableP5.Render(); tableP5.UserInput += (sender, e) => UpdateData(); panel.Add(tableP5); //---------------------------------表2.6-------------------------------------------------- PropertyTable tableP6 = new PropertyTable { SectionNumber = "2.6", Title = "新增优惠贷款" }; tableP6.Rows.Add("P6A", Tuple.Create <object, object>(proj, 0)); tableP6.Rows.Add("P6B", Tuple.Create <object, object>(proj, 0)); tableP6.Rows.Add("P6C", Tuple.Create <object, object>(proj, 0)); tableP6.Rows.Add("P6D", Tuple.Create <object, object>(proj, 0.0)); tableP6.SetPercentageRows("P6D"); tableP6.Render(); tableP6.UserInput += (sender, e) => UpdateData(); panel.Add(tableP6); //---------------------------------表2.7-------------------------------------------------- PropertyTable tableP7 = new PropertyTable { SectionNumber = "2.7", Title = "运营与维护成本的资金来源" }; tableP7.Rows.Add("P7A", Tuple.Create <object, object>(proj, 0.0)); tableP7.Rows.Add("P7B", Tuple.Create <object, object>(proj, 0.0)); tableP7.Rows.Add("P7C", Tuple.Create <object, object>(proj, 0.0)); tableP7.Rows.Add("P7D", Tuple.Create <object, object>(proj, 0.0)); tableP7.Rows.Add("P7E", Tuple.Create <object, object>(proj, 0.0)); tableP7.Render(); tableP7.UserInput += (sender, e) => UpdateData(); panel.Add(tableP7); //---------------------------------问卷-------------------------------------------------- panel.Add(new TextBlock { Text = "PRIORITISATION PARAMETERS", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); Button btnToQ = new Button { Content = "打开问卷(总结模式)", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnToQ.Click += new RoutedEventHandler(btnToQ_Click); panel.Add(btnToQ); Button btnToQ1 = new Button { Content = "打开问卷(演示模式)", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnToQ1.Click += (sender, e) => NavigationManager.Navigate("QuestionPage.xaml", "type=project&id=" + id.ToString()); panel.Add(btnToQ1); //---------------------------------场景得分-------------------------------------------------- PropertyTable tablePS = new PropertyTable { SectionNumber = "2.S", Title = "场景得分", Brush_ResultCell = Brushes.DarkRed, Brush_Title = Brushes.DarkRed, Brush_TitleCell = Brushes.Silver }; tablePS.Rows.Add("EnvironmentScenario", Tuple.Create <object, object>(proj, 0.0)); tablePS.Rows.Add("EconomicScenario", Tuple.Create <object, object>(proj, 0.0)); tablePS.Rows.Add("RevenueScenario", Tuple.Create <object, object>(proj, 0.0)); tablePS.Rows.Add("Social", Tuple.Create <object, object>(proj, 0.0)); tablePS.Rows.Add("PovertyScenario", Tuple.Create <object, object>(proj, 0.0)); tablePS.LockRows("EnvironmentScenario", "EconomicScenario", "RevenueScenario", "Social", "PovertyScenario"); tablePS.Render(); panel.Add(tablePS); //---------------------------------表2.14-------------------------------------------------- panel.Add(new TextBlock { Text = "ANTICIPATED IMPACT OF THE PROJECT ON THE BUDGET", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); YearwiseTable tableP14 = new YearwiseTable { SectionNumber = "2.14", Title = "新增商业贷款", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP14.Rows.Add("P14A", proj.P14A); tableP14.Rows.Add("P14B", proj.P14B); tableP14.Rows.Add("P14C", proj.P14C); tableP14.Rows.Add("P14D", proj.P14D); Enumerable.Range(-3, 5).ToList().ForEach(x => tableP14.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(2, 9).ToList().ForEach(x => tableP14.Years.Add(new YearDefinition(x, false, true))); tableP14.Render(); tableP14.UserInput += (sender, e) => UpdateData(); panel.Add(tableP14); //---------------------------------表2.15-------------------------------------------------- YearwiseTable tableP15 = new YearwiseTable { SectionNumber = "2.15", Title = "新增优惠贷款", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP15.Rows.Add("P15A", proj.P15A); tableP15.Rows.Add("P15B", proj.P15B); tableP15.Rows.Add("P15C", proj.P15C); tableP15.Rows.Add("P15D", proj.P15D); Enumerable.Range(-3, 5).ToList().ForEach(x => tableP15.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(2, 9).ToList().ForEach(x => tableP15.Years.Add(new YearDefinition(x, false, true))); tableP15.Render(); tableP15.UserInput += (sender, e) => UpdateData(); panel.Add(tableP15); //---------------------------------表2.16-------------------------------------------------- YearwiseTable tableP16 = new YearwiseTable { SectionNumber = "2.16", Title = "额外收入预估值", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP16.Rows.Add("P16A", proj.P16A); tableP16.Rows.Add("P16B", proj.P16B); Enumerable.Range(-3, 5).ToList().ForEach(x => tableP16.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(2, 9).ToList().ForEach(x => tableP16.Years.Add(new YearDefinition(x, false, true))); tableP16.Render(); tableP16.UserInput += (sender, e) => UpdateData(); panel.Add(tableP16); //---------------------------------表2.17-------------------------------------------------- YearwiseTable tableP17 = new YearwiseTable { SectionNumber = "2.17", Title = "额外支出预估值", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP17.Rows.Add("P17A", proj.P17A); tableP17.Rows.Add("P17B", proj.P17B); Enumerable.Range(-3, 5).ToList().ForEach(x => tableP17.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(2, 9).ToList().ForEach(x => tableP17.Years.Add(new YearDefinition(x, false, true))); tableP17.Render(); tableP17.UserInput += (sender, e) => UpdateData(); panel.Add(tableP17); //---------------------------------表2.18-------------------------------------------------- YearwiseTable tableP18 = new YearwiseTable { SectionNumber = "2.18", Title = "ORIGINAL BUDGET FORECAST (FROM FORECAST SHEET)", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP18.Rows.Add("P18A", proj.P18A); tableP18.Rows.Add("P18B", proj.P18B); tableP18.Rows.Add("P18C", proj.P18C); tableP18.Rows.Add("P18D", proj.P18D); tableP18.Rows.Add("P18E", proj.P18E); Enumerable.Range(-3, 4).ToList().ForEach(x => tableP18.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableP18.Years.Add(new YearDefinition(x, false, true))); tableP18.Render(); panel.Add(tableP18); //---------------------------------表2.19-------------------------------------------------- YearwiseTable tableP19 = new YearwiseTable { SectionNumber = "2.19", Title = "PROJECT IMPACT ON BUDGET FORECAST", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP19.Rows.Add("P19A", proj.P19A); tableP19.Rows.Add("P19B", proj.P19B); tableP19.Rows.Add("P19C", proj.P19C); tableP19.Rows.Add("P19D", proj.P19D); Enumerable.Range(-3, 4).ToList().ForEach(x => tableP19.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableP19.Years.Add(new YearDefinition(x, false, true))); tableP19.Render(); panel.Add(tableP19); //---------------------------------图表1-------------------------------------------------- var chart1 = ChartHelper.GetChart("GRAPH 1: IMPACT OF PROJECT ON LOCAL GOVERNMENT INVESTMENT CAPACITY", ChartHelper.ColumnSeries("预计预算", Enumerable.Range(doc.City.C02 - 3, 14).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P18D[x]) }).ToArray(), Brushes.Silver), ChartHelper.ColumnSeries("项目影响", Enumerable.Range(doc.City.C02 - 3, 14).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P19D[x]) }).ToArray(), Brushes.YellowGreen)); chart1.Width = 800; panel.Add(chart1); //---------------------------------表2.20-------------------------------------------------- YearwiseTable tableP20 = new YearwiseTable { SectionNumber = "2.20", Title = "重要投资资金来源", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP20.Rows.Add("P20A", proj.P20A); tableP20.Rows.Add("P20B", proj.P20B); tableP20.Rows.Add("P20C", proj.P20C); tableP20.Rows.Add("P20D", proj.P20D); tableP20.Rows.Add("P20E", proj.P20E); tableP20.Rows.Add("P20F", proj.P20F); tableP20.Rows.Add("P20G", proj.P20G); Enumerable.Range(1, 9).ToList().ForEach(x => tableP20.Years.Add(new YearDefinition(x, false, true))); tableP20.Years.Add(YearDefinition.Sum); tableP20.Render(); panel.Add(tableP20); //---------------------------------表2.21-------------------------------------------------- YearwiseTable tableP21 = new YearwiseTable { SectionNumber = "2.21", Title = "资本支出", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP21.Rows.Add("P21A", proj.P21A); tableP21.Rows.Add("P21B", proj.P21B); tableP21.Rows.Add("P21C", proj.P21C); Enumerable.Range(1, 9).ToList().ForEach(x => tableP21.Years.Add(new YearDefinition(x, false, true))); tableP21.Render(); panel.Add(tableP21); //---------------------------------表2.22-------------------------------------------------- YearwiseTable tableP22 = new YearwiseTable { SectionNumber = "2.22", Title = "资本支出", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed }; tableP22.Rows.Add("P22A", proj.P22A); tableP22.Rows.Add("P22B", proj.P22B); tableP22.Rows.Add("P22C", proj.P22C); Enumerable.Range(1, 9).ToList().ForEach(x => tableP22.Years.Add(new YearDefinition(x, false, true))); tableP22.Render(); panel.Add(tableP22); //---------------------------------图表2-------------------------------------------------- panel.Add(ChartHelper.GetChart("GRAPH 2: CAPITAL INVESTMENT REQUIRED VERSUS EXPENDITURE CEILING", ChartHelper.ColumnSeries("资本投资", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P21A[x]) }).ToArray(), Brushes.Purple), ChartHelper.ColumnSeries("现有支出", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P21B[x]) }).ToArray(), Brushes.YellowGreen), ChartHelper.LineSeries("支出限额", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P21C[x]) }).ToArray(), Brushes.Red))); //---------------------------------图表3-------------------------------------------------- panel.Add(ChartHelper.GetChart("GRAPH 3: LOANS REQUIRED VERSUS DEBT SERVICE CAPACITY", ChartHelper.ColumnSeries("新增贷款", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P22A[x]) }).ToArray(), Brushes.Orange), ChartHelper.ColumnSeries("还本付息", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P22B[x]) }).ToArray(), Brushes.SlateGray), ChartHelper.LineSeries("最大偿力", Enumerable.Range(doc.City.C02 + 1, 9).Select(x => new { Key = x.ToString(), Value = NaNto0(proj.P22C[x]) }).ToArray(), Brushes.Red))); panel.Add(new TextBlock { Text = "Include project in PIP?", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); ComboBox cbbPipBottom = new ComboBox { Width = 200, HorizontalAlignment = HorizontalAlignment.Left, ItemsSource = new string[] { "Yes", "No" } }; cbbPipBottom.SetBinding(ComboBox.SelectedIndexProperty, pipBinding); panel.Add(cbbPipBottom); panel.Add(new TextBlock { Text = "Go to...", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); Button btnFinancial = new Button { Content = "点击转到总结表单", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnFinancial.Click += (sender, e) => NavigationManager.Navigate("SummaryPage.xaml"); panel.Add(btnFinancial); _tables = new List <IUpdateTable> { tableP2, tableP3, tableP5, tableP6, tableP7, tablePS, tableP14, tableP15, tableP16, tableP17, tableP18, tableP19, tableP20, tableP21, tableP22 }; return(panel); }
public List <StackPanel> GetPages() { List <StackPanel> panel = Enumerable.Range(0, 7).Select(x => new StackPanel()).ToList(); Document doc = DocumentManager.CurrentDocument; //panel[0].Children.Add(new TextBlock { Text = "LOCAL GOVERNMENT BUDGET FORECAST / 当地政府预算预测", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold }); YearwiseTable tableC6 = new YearwiseTable { SectionNumber = "1.6", Title = "当地政府收入 Local Government Revenues" }; tableC6.Rows.Add("C6A", doc.City.C6A); tableC6.Rows.Add("C6B", doc.City.C6B); tableC6.Rows.Add("C6C", doc.City.C6C); tableC6.Rows.Add("C6D", doc.City.C6D); tableC6.Rows.Add("C6E", doc.City.C6E); tableC6.Rows.Add("C6F", doc.City.C6F); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC6.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC6.Years.Add(new YearDefinition(x, false, true))); tableC6.Render(); panel[0].Children.Add(tableC6); YearwiseTable tableC7 = new YearwiseTable { SectionNumber = "1.7", Title = "当地政府支出 Local Government Expenditures" }; tableC7.Rows.Add("C7A", doc.City.C7A); tableC7.Rows.Add("C7B", doc.City.C7B); tableC7.Rows.Add("C7C", doc.City.C7C); tableC7.Rows.Add("C7D", doc.City.C7D); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC7.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC7.Years.Add(new YearDefinition(x, false, true))); tableC7.Render(); panel[0].Children.Add(tableC7); YearwiseTable tableC8 = new YearwiseTable { SectionNumber = "1.8", Title = "总投资能力 Summary Investment Capacity" }; tableC8.Rows.Add("C8A", doc.City.C8A); tableC8.Rows.Add("C8B", doc.City.C8B); tableC8.Rows.Add("C8C", doc.City.C8C); tableC8.Rows.Add("C8D", doc.City.C8D); tableC8.Rows.Add("C8E", doc.City.C8E); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC8.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC8.Years.Add(new YearDefinition(x, false, true))); tableC8.Render(); panel[1].Children.Add(tableC8); //panel[2].Children.Add(new TextBlock { Text = "ASSUMPTIONS / 预算预测假设", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold }); YearwiseTable tableC9 = new YearwiseTable { SectionNumber = "1.9", Title = "宏观经济数据假设 Assumptions Macro-Economic Data" }; tableC9.Rows.Add("C9A", doc.City.C9A); tableC9.Rows.Add("C9B", doc.City.C9B); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC9.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC9.Years.Add(new YearDefinition(x, true, true))); tableC9.SetPercentageRows("C9A", "C9B"); tableC9.Render(); tableC9.UserInput += (sender, e) => UpdateData(); panel[2].Children.Add(tableC9); PropertyTable tableC10 = new PropertyTable { SectionNumber = "1.10", Title = "商业贷款条件假设 Assumptions Loan Conditions Commercial Lending", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC10.Rows.Add("C10A", Tuple.Create <object, object>(doc.City, 0.0)); tableC10.Rows.Add("C10B", Tuple.Create <object, object>(doc.City, 0.0)); tableC10.SetPercentageRows("C10A"); tableC10.Render(); tableC10.UserInput += (sender, e) => UpdateData(); panel[2].Children.Add(tableC10); PropertyTable tableC11 = new PropertyTable { SectionNumber = "1.11", Title = "优惠贷款条件假设 Assumptions Loan Conditions Preferential Lending", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC11.Rows.Add("C11A", Tuple.Create <object, object>(doc.City, 0.0)); tableC11.Rows.Add("C11B", Tuple.Create <object, object>(doc.City, 0.0)); tableC11.SetPercentageRows("C11A"); tableC11.Render(); tableC11.UserInput += (sender, e) => UpdateData(); panel[2].Children.Add(tableC11); PropertyTable tableC12 = new PropertyTable { SectionNumber = "1.12", Title = "当地税收征管假设 Local Tax Collection", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC12.Rows.Add("C12A", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.Rows.Add("C12B", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.Rows.Add("C12C", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.SetPercentageRows("C12A", "C12C"); tableC12.Render(); tableC12.UserInput += (sender, e) => UpdateData(); panel[3].Children.Add(tableC12); PropertyTable tableC13 = new PropertyTable { SectionNumber = "1.13", Title = "汇率假设(兑美元) Assumptions Exchange Rate (to USD)", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC13.Rows.Add("C13A", Tuple.Create <object, object>(doc.City, 0.0)); tableC13.Render(); tableC13.UserInput += (sender, e) => UpdateData(); panel[3].Children.Add(tableC13); PropertyTable tableC14 = new PropertyTable { SectionNumber = "1.14", Title = "投资预算和债务清偿假设 Assumptions Investment Budget & Debt Service", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC14.Rows.Add("C14A", Tuple.Create <object, object>(doc.City, 0.0)); tableC14.Rows.Add("C14B", Tuple.Create <object, object>(doc.City, 0.0)); tableC14.SetPercentageRows("C14A", "C14B"); tableC14.Render(); tableC14.UserInput += (sender, e) => UpdateData(); panel[3].Children.Add(tableC14); PropertyTable tableC15 = new PropertyTable { SectionNumber = "1.15", Title = "收入预测假设 Assumptions Revenue Forecast", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC15.Rows.Add("C15A_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15A_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15B_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15B_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15C_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15C_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15D_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15D_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15E_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15E_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.SetPercentageTable(); tableC15.Render(); tableC15.UserInput += (sender, e) => UpdateData(); panel[4].Children.Add(tableC15); PropertyTable tableC16 = new PropertyTable { SectionNumber = "1.16", Title = "支出预测假设 Assumptions Expenditure Forecast", Brush_TitleCell = FindResource("gradient_red") as Brush }; tableC16.Rows.Add("C16A_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16A_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16B_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16B_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16C_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16C_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.SetPercentageTable(); tableC16.Render(); tableC16.UserInput += (sender, e) => UpdateData(); panel[4].Children.Add(tableC16); //---------------------------------图表-------------------------------------------------- panel[5].Children.Add(ChartHelper.GetChart("BUDGET FORECAST: REVENUES VERSUS EXPENDITURES", ChartHelper.ColumnSeries("经营性支出", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new { Key = x.ToString(), Value = doc.City.C8B[x] }).ToArray(), Brushes.YellowGreen), ChartHelper.LineSeries("经营性收入", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new { Key = x.ToString(), Value = doc.City.C8A[x] }).ToArray(), Brushes.Red))); panel[6].Children.Add(new TextBlock { Text = "CITY BASIC / 城市基本数据", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold }); Button btnFinancial = new Button { Content = "点击以转到城市评估", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnFinancial.Click += (sender, e) => NavigationManager.Navigate("RichCityPage.xaml"); panel[6].Children.Add(btnFinancial); //Button btnProj = new Button { Content = "点击以转到项目评估", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; //btnProj.Click += (sender, e) => NavigationManager.Navigate("RichCityPage.xaml"); //panel[6].Children.Add(btnProj); _tables = new List <IUpdateTable> { tableC6, tableC7, tableC8 }; return(panel); }
private List <UIElement> GetLayout() { List <UIElement> panel = new List <UIElement>(); Document doc = DocumentManager.CurrentDocument; panel.Add(new TextBlock { Text = "LOCAL GOVERNMENT BUDGET FORECAST / 当地政府预算预测", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); YearwiseTable tableC6 = new YearwiseTable { SectionNumber = "1.6", Title = "当地政府债务" }; tableC6.Rows.Add("C6A", doc.City.C6A); tableC6.Rows.Add("C6B", doc.City.C6B); tableC6.Rows.Add("C6C", doc.City.C6C); tableC6.Rows.Add("C6D", doc.City.C6D); tableC6.Rows.Add("C6E", doc.City.C6E); tableC6.Rows.Add("C6F", doc.City.C6F); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC6.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC6.Years.Add(new YearDefinition(x, false, true))); tableC6.Render(); panel.Add(tableC6); YearwiseTable tableC7 = new YearwiseTable { SectionNumber = "1.7", Title = "当地政府支出" }; tableC7.Rows.Add("C7A", doc.City.C7A); tableC7.Rows.Add("C7B", doc.City.C7B); tableC7.Rows.Add("C7C", doc.City.C7C); tableC7.Rows.Add("C7D", doc.City.C7D); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC7.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC7.Years.Add(new YearDefinition(x, false, true))); tableC7.Render(); panel.Add(tableC7); YearwiseTable tableC8 = new YearwiseTable { SectionNumber = "1.8", Title = "总投资能力" }; tableC8.Rows.Add("C8A", doc.City.C8A); tableC8.Rows.Add("C8B", doc.City.C8B); tableC8.Rows.Add("C8C", doc.City.C8C); tableC8.Rows.Add("C8D", doc.City.C8D); tableC8.Rows.Add("C8E", doc.City.C8E); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC8.Years.Add(new YearDefinition(x, false, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC8.Years.Add(new YearDefinition(x, false, true))); tableC8.Render(); panel.Add(tableC8); panel.Add(new TextBlock { Text = "ASSUMPTIONS / 预算预测假设", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); YearwiseTable tableC9 = new YearwiseTable { SectionNumber = "1.9", Title = "宏观经济数据假设" }; tableC9.Rows.Add("C9A", doc.City.C9A); tableC9.Rows.Add("C9B", doc.City.C9B); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC9.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC9.Years.Add(new YearDefinition(x, true, true))); tableC9.SetPercentageRows("C9A", "C9B"); tableC9.Render(); tableC9.UserInput += (sender, e) => UpdateData(); panel.Add(tableC9); PropertyTable tableC10 = new PropertyTable { SectionNumber = "1.10", Title = "商业贷款条件假设", Brush_TitleCell = Brushes.DarkRed, Margin = new Thickness(0, 0, 0, 0) }; tableC10.Rows.Add("C10A", Tuple.Create <object, object>(doc.City, 0.0)); tableC10.Rows.Add("C10B", Tuple.Create <object, object>(doc.City, 0.0)); tableC10.SetPercentageRows("C10A"); tableC10.Render(); tableC10.UserInput += (sender, e) => UpdateData(); panel.Add(tableC10); PropertyTable tableC11 = new PropertyTable { SectionNumber = "1.11", Title = "优惠贷款条件假设", Brush_TitleCell = Brushes.DarkRed }; tableC11.Rows.Add("C11A", Tuple.Create <object, object>(doc.City, 0.0)); tableC11.Rows.Add("C11B", Tuple.Create <object, object>(doc.City, 0.0)); tableC11.SetPercentageRows("C11A"); tableC11.Render(); tableC11.UserInput += (sender, e) => UpdateData(); panel.Add(tableC11); PropertyTable tableC12 = new PropertyTable { SectionNumber = "1.12", Title = "当地税收征管假设", Brush_TitleCell = Brushes.DarkRed }; tableC12.Rows.Add("C12A", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.Rows.Add("C12B", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.Rows.Add("C12C", Tuple.Create <object, object>(doc.City, 0.0)); tableC12.SetPercentageRows("C12A", "C12C"); tableC12.Render(); tableC12.UserInput += (sender, e) => UpdateData(); panel.Add(tableC12); PropertyTable tableC13 = new PropertyTable { SectionNumber = "1.13", Title = "汇率假设(兑美元)", Brush_TitleCell = Brushes.DarkRed }; tableC13.Rows.Add("C13A", Tuple.Create <object, object>(doc.City, 0.0)); tableC13.Render(); tableC13.UserInput += (sender, e) => UpdateData(); panel.Add(tableC13); PropertyTable tableC14 = new PropertyTable { SectionNumber = "1.14", Title = "投资预算和债务清偿假设", Brush_TitleCell = Brushes.DarkRed }; tableC14.Rows.Add("C14A", Tuple.Create <object, object>(doc.City, 0.0)); tableC14.Rows.Add("C14B", Tuple.Create <object, object>(doc.City, 0.0)); tableC14.SetPercentageRows("C14A", "C14B"); tableC14.Render(); tableC14.UserInput += (sender, e) => UpdateData(); panel.Add(tableC14); PropertyTable tableC15 = new PropertyTable { SectionNumber = "1.15", Title = "收入预测假设", Brush_TitleCell = Brushes.DarkRed }; tableC15.Rows.Add("C15A_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15A_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15B_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15B_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15C_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15C_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15D_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15D_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15E_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.Rows.Add("C15E_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC15.SetPercentageTable(); tableC15.Render(); tableC15.UserInput += (sender, e) => UpdateData(); panel.Add(tableC15); PropertyTable tableC16 = new PropertyTable { SectionNumber = "1.16", Title = "支出预测假设", Brush_TitleCell = Brushes.DarkRed }; tableC16.Rows.Add("C16A_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16A_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16B_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16B_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16C_1", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.Rows.Add("C16C_2", Tuple.Create <object, object>(doc.City, 0.0)); tableC16.SetPercentageTable(); tableC16.Render(); tableC16.UserInput += (sender, e) => UpdateData(); panel.Add(tableC16); //---------------------------------图表-------------------------------------------------- panel.Add(ChartHelper.GetChart("BUDGET FORECAST: REVENUES VERSUS EXPENDITURES", ChartHelper.ColumnSeries("经营性支出", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new { Key = x.ToString(), Value = doc.City.C8B[x] }).ToArray(), Brushes.YellowGreen), ChartHelper.LineSeries("经营性收入", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new { Key = x.ToString(), Value = doc.City.C8A[x] }).ToArray(), Brushes.Red))); panel.Add(new TextBlock { Text = "LOCAL GOVERNMENT BUDGET FORECAST / 当地政府预算预测", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); Button btnFinancial = new Button { Content = "点击以转到城市评估", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnFinancial.Click += (sender, e) => NavigationManager.Navigate("CityPage.xaml"); panel.Add(btnFinancial); _tables = new List <IUpdateTable> { tableC6, tableC7, tableC8 }; return(panel); }
public List <StackPanel> GetPages() { List <StackPanel> pages = Enumerable.Range(0, 6).Select(x => new StackPanel()).ToList(); Document doc = DocumentManager.CurrentDocument; //pages[0].Children.Add(new TextBlock { Text = "LOCAL GOVERNMENT KEY DATA", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold }); PropertyTable tableC0 = new PropertyTable { SectionNumber = "1.0", Title = "当地政府关键数据 LOCAL GOVERNMENT KEY DATA" }; tableC0.Rows.Add("C01", Tuple.Create <object, object>(doc.City, doc.City.C01)); tableC0.Rows.Add("C02", Tuple.Create <object, object>(doc.City, DateTime.Now.Year)); tableC0.Rows.Add("C03", Tuple.Create <object, object>(doc.City, 0)); tableC0.Rows.Add("C04", Tuple.Create <object, object>(doc.City, 0.0)); tableC0.Rows.Add("C05", Tuple.Create <object, object>(doc.City, DateTime.Now.Date)); tableC0.LockRows("C02"); tableC0.SetPercentageRows("C04"); tableC0.Render(); tableC0.UserInput += (sender, e) => UpdateData(); pages[0].Children.Add(tableC0); IntroPage IntroP = new IntroPage { ControlBack = FindResource("green_banner") as LinearGradientBrush, SectionCaptionBack = Brushes.DarkOliveGreen, HorizontalAlignment = System.Windows.HorizontalAlignment.Left }; pages[0].Children.Add(IntroP); //pages[1].Children.Add(new TextBlock { Text = "LOCAL GOVERNMENT FISCAL ASSESSMENT", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold }); YearwiseTable tableC1 = new YearwiseTable { SectionNumber = "1.1", Title = "当地政府收入 Local Government Revenues" }; tableC1.Rows.Add("C1A", doc.City.C1A); tableC1.Rows.Add("C1B", doc.City.C1B); tableC1.Rows.Add("C1C", doc.City.C1C); tableC1.Rows.Add("C1D", doc.City.C1D); tableC1.Rows.Add("C1E", doc.City.C1E); tableC1.Rows.Add("C1F", doc.City.C1F); tableC1.Rows.Add("C1G", doc.City.C1G); tableC1.Rows.Add("C1H", doc.City.C1H); tableC1.Rows.Add("C1I", doc.City.C1I); tableC1.LockRows("C1F", "C1G", "C1H", "C1I"); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC1.Years.Add(new YearDefinition(x, true, false))); tableC1.Years.Add(YearDefinition.Average); tableC1.SetPercentageRows("C1G", "C1H", "C1I"); tableC1.Render(); tableC1.UserInput += (sender, e) => UpdateData(); pages[1].Children.Add(tableC1); YearwiseTable tableC2 = new YearwiseTable { SectionNumber = "1.2", Title = "当地政府支出 Local Government Expenditures" }; tableC2.Rows.Add("C2A", doc.City.C2A); tableC2.Rows.Add("C2B", doc.City.C2B); tableC2.Rows.Add("C2C", doc.City.C2C); tableC2.Rows.Add("C2D", doc.City.C2D); tableC2.Rows.Add("C2E", doc.City.C2E); tableC2.Rows.Add("C2F", doc.City.C2F); tableC2.LockRows("C2C", "C2D", "C2E", "C2F"); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC2.Years.Add(new YearDefinition(x, true, false))); tableC2.Years.Add(YearDefinition.Average); tableC2.SetPercentageRows("C2E", "C2F"); tableC2.Render(); tableC2.UserInput += (sender, e) => UpdateData(); pages[2].Children.Add(tableC2); YearwiseTable tableC3 = new YearwiseTable { SectionNumber = "1.3", Title = "当地政府资产 Local Government Assets" }; tableC3.Rows.Add("C3A", doc.City.C3A); tableC3.Rows.Add("C3B", doc.City.C3B); tableC3.Rows.Add("C3C", doc.City.C3C); tableC3.Rows.Add("C3D", doc.City.C3D); tableC3.Rows.Add("C3E", doc.City.C3D); tableC3.LockRows("C3E"); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC3.Years.Add(new YearDefinition(x, true, false))); tableC3.Years.Add(YearDefinition.Average); tableC3.Render(); tableC3.UserInput += (sender, e) => UpdateData(); pages[3].Children.Add(tableC3); YearwiseTable tableC4 = new YearwiseTable { SectionNumber = "1.4", Title = "当地政府债务 Debt Service Expenditures" }; tableC4.Rows.Add("C4A", doc.City.C4A); tableC4.Rows.Add("C4B", doc.City.C4B); tableC4.Rows.Add("C4C", doc.City.C4C); tableC4.Rows.Add("C4D", doc.City.C4D); tableC4.LockRows("C4D"); Enumerable.Range(-3, 4).ToList().ForEach(x => tableC4.Years.Add(new YearDefinition(x, true, false))); Enumerable.Range(1, 10).ToList().ForEach(x => tableC4.Years.Add(new YearDefinition(x, true, true))); tableC4.Render(); tableC4.UserInput += (sender, e) => UpdateData(); pages[4].Children.Add(tableC4); pages[5].Children.Add(new TextBlock { Text = "1.5 LOCAL GOVERNMENT FINANCIAL SYSTEM ASSESSMENT", Foreground = Brushes.DarkRed }); //Button btnToQ = new Button { Content = "打开问卷(总结模式)", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; //btnToQ.Click += (sender, e) => NavigationManager.Navigate("Questionnaire.xaml"); //pages[5].Children.Add(btnToQ); Button btnToQ1 = new Button { Content = "打开问卷(演示模式)", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnToQ1.Click += (sender, e) => NavigationManager.Navigate("QuestionPage.xaml", "type=city"); pages[5].Children.Add(btnToQ1); pages[5].Children.Add(new TextBlock { Text = "1.6 and Others...", Foreground = Brushes.DarkRed, FontWeight = FontWeights.Bold, Margin = new Thickness(0, 20, 0, 0) }); Button btnFinancial = new Button { Content = "点击以转到城市财力评估", Width = 200, HorizontalAlignment = HorizontalAlignment.Left }; btnFinancial.Click += (sender, e) => NavigationManager.Navigate("RichFinancialPage.xaml"); pages[5].Children.Add(btnFinancial); _tables = new List <IUpdateTable> { tableC0, tableC1, tableC2, tableC3, tableC4 }; return(pages); }