Пример #1
0
        private void Update()
        {
            //StackPanel Col0 = new StackPanel();
            //StackPanel Col1 = new StackPanel();
            //StackPanel Col2 = new StackPanel();
            //Grid.SetColumn(Col0, 0);
            //Grid.SetColumn(Col1, 1);
            //Grid.SetColumn(Col2, 2);

            //_toClear.ForEach(x => LayoutRoot.Children.Remove(x));
            Col0.Children.Clear();
            Col1.Children.Clear();
            Col2.Children.Clear();
            var doc = DocumentManager.CurrentDocument;

            //---------------------------------图表1--------------------------------------------------
            var chart1 = ChartHelper.GetChart("图1: 资本投资 vs 支出限度",
                ChartHelper.ColumnSeries("资本投资", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.P20A[x]) }).ToArray(), Brushes.Purple),
                ChartHelper.ColumnSeries("现有支出", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.C8B[x]) }).ToArray(), Brushes.YellowGreen),
                ChartHelper.LineSeries("支出限额", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.C8A[x]) }).ToArray(), Brushes.Red));
            _toClear.Add(chart1);
            Col0.Children.Add(chart1);

            //---------------------------------图表2--------------------------------------------------
            var chart2 = ChartHelper.GetChart("图2:需贷款额度 vs 还债能力",
                ChartHelper.ColumnSeries("新增贷款年还债", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.P22A[x]) }).ToArray(), Brushes.Orange),
                ChartHelper.ColumnSeries("现有年还债能力", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.C7C[x]) }).ToArray(), Brushes.Navy),
                ChartHelper.LineSeries("估算最大年还债", Enumerable.Range(doc.City.C02 + 2, 5).Select(x => new { Key = x.ToString(), Value = NaNto0(_basket.C8E[x]) }).ToArray(), Brushes.Red));
            _toClear.Add(chart2);
            Col0.Children.Add(chart2);

            //---------------------------------总表--------------------------------------------------
            YearwiseTable tableP20 = new YearwiseTable { SectionNumber = "", Title = "5年计划", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed };
            tableP20.Rows.Add("P20A", _basket.P20A);
            tableP20.Rows.Add("P20B", _basket.P20B);
            tableP20.Rows.Add("P20C", _basket.P20C);
            tableP20.Rows.Add("P20D", _basket.P20D);
            tableP20.Rows.Add("P20E", _basket.P20E);
            tableP20.Rows.Add("P20F", _basket.P20F);
            tableP20.Rows.Add("P20G", _basket.P20G);
            Enumerable.Range(2, 5).ToList().ForEach(x => tableP20.Years.Add(new YearDefinition(x, false, true)));
            tableP20.Years.Add(YearDefinition.Sum);
            tableP20.Render();
            _toClear.Add(tableP20);
            Col1.Children.Add(tableP20);

            YearwiseTable tableP21 = new YearwiseTable { SectionNumber = "", Title = "", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed };
            tableP21.Rows.Add("GC8A", _basket.C8A);
            tableP21.Rows.Add("GC8B", _basket.C8B);
            tableP21.Rows.Add("GC8C", _basket.C8C_1);
            tableP21.Rows.Add("GC7C", _basket.C7C);
            tableP21.Rows.Add("P22A", _basket.P22A);
            tableP21.Rows.Add("GC8E", _basket.C8E);
            Enumerable.Range(2, 5).ToList().ForEach(x => tableP21.Years.Add(new YearDefinition(x, false, true)));
            tableP21.Years.Add(YearDefinition.Sum);
            tableP21.Render();
            _toClear.Add(tableP21);
            Col1.Children.Add(tableP21);

            //---------------------------------分表--------------------------------------------------
            foreach (var proj in _basket.Projects)
            {
                YearwiseTable table = new YearwiseTable { SectionNumber = "", Title = proj.P1A, Brush_TitleCell = Brushes.Navy, Brush_Title = Brushes.White };
                table.Rows.Add("P20A", proj.P20A);
                table.Rows.Add("P20B", proj.P20B);
                table.Rows.Add("P20C", proj.P20C);
                table.Rows.Add("P20D", proj.P20D);
                table.Rows.Add("P20E", proj.P20E);
                table.Rows.Add("P20F", proj.P20F);
                table.Rows.Add("P22A", proj.P22A);
                Enumerable.Range(2, 5).ToList().ForEach(x => table.Years.Add(new YearDefinition(x, false, true)));
                table.Years.Add(YearDefinition.Sum);
                table.Render();
                _toClear.Add(table);
                Col2.Children.Add(table);
            }

            //cvs.Height = new List<StackPanel> { Col0, Col1, Col2 }.Max(x => x.ActualHeight); // 为什么AcutalHeight都为0?
            //var h = new List<StackPanel> { Col0, Col1, Col2 }.Max(x => x.RenderSize.Height);
        }
Пример #2
0
        public List <StackPanel> Update()
        {
            List <StackPanel> panel = Enumerable.Range(0, 3).Select(x => new StackPanel()).ToList();
            //var Col0 = new StackPanel();
            //var Col1 = new StackPanel();
            //var Col2 = new StackPanel();
            //Pager.Slides.Clear();
            //Pager.Slides.Add(Col0);
            //Pager.Slides.Add(Col1);
            //Pager.Slides.Add(Col2);
            //Pager.ReadyControl(_slidePos);

            var doc = DocumentManager.CurrentDocument;

            //---------------------------------图表1--------------------------------------------------
            var chart1 = ChartHelper.GetMyChart("图1: 资本投资 vs 支出限度",
                                                ChartHelper.MyColumnSeries("现有支出", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.C8B[x]))).ToArray(), StackedChart.BuildGradient(Colors.YellowGreen)),
                                                ChartHelper.MyColumnSeries("资本投资", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.P20A[x]))).ToArray(), StackedChart.BuildGradient(Color.FromRgb(153, 51, 102))),
                                                ChartHelper.MyLineSeries("支出限额", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.C8D[x]))).ToArray(), Brushes.Red));

            panel[0].Children.Add(chart1);
            //Col0.Children.Add(chart1);

            //---------------------------------图表2--------------------------------------------------
            var chart2 = ChartHelper.GetMyChart("图2:需贷款额度 vs 还债能力",
                                                ChartHelper.MyColumnSeries("现有支出", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.C7C[x]))).ToArray(), StackedChart.BuildGradient(Color.FromRgb(23, 55, 94))),
                                                ChartHelper.MyColumnSeries("资本投资", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.P22A[x]))).ToArray(), StackedChart.BuildGradient(Colors.Orange)),
                                                ChartHelper.MyLineSeries("估算最大年还债", Enumerable.Range(doc.City.C02 + 1, 5).Select(x => new KeyValuePair <string, double>(x.ToString(), NaNto0(_basket.C8E[x]))).ToArray(), Brushes.Red));

            panel[0].Children.Add(chart2);
            //Col0.Children.Add(chart2);

            //---------------------------------总表--------------------------------------------------
            YearwiseTable tableP20 = new YearwiseTable {
                SectionNumber = "", Title = "5年计划", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed
            };

            tableP20.Rows.Add("P20G", _basket.P20G);
            tableP20.Rows.Add("P20A", _basket.P20A);
            tableP20.Rows.Add("P20B", _basket.P20B);
            tableP20.Rows.Add("P20C", _basket.P20C);
            tableP20.Rows.Add("P20D", _basket.P20D);
            tableP20.Rows.Add("P20E", _basket.P20E);
            tableP20.Rows.Add("P20F", _basket.P20F);
            Enumerable.Range(1, 5).ToList().ForEach(x => tableP20.Years.Add(new YearDefinition(x, false, true)));
            tableP20.Years.Add(YearDefinition.Sum);
            tableP20.Render();
            panel[1].Children.Add(tableP20);
            //Col1.Children.Add(tableP20);

            YearwiseTable tableP21 = new YearwiseTable {
                SectionNumber = "", Title = "", Brush_TitleCell = Brushes.Silver, Brush_Title = Brushes.DarkRed
            };

            tableP21.Rows.Add("GC8A", _basket.C8D);
            tableP21.Rows.Add("GC8B", _basket.C8B);
            tableP21.Rows.Add("GC8C", _basket.C8C_1);
            tableP21.Rows.Add("GC7C", _basket.C7C);
            tableP21.Rows.Add("P22A", _basket.P22A);
            tableP21.Rows.Add("GC8E", _basket.C8E);
            Enumerable.Range(1, 5).ToList().ForEach(x => tableP21.Years.Add(new YearDefinition(x, false, true)));
            tableP21.Years.Add(YearDefinition.Sum);
            tableP21.Render();
            panel[1].Children.Add(tableP21);
            //Col1.Children.Add(tableP21);

            //---------------------------------分表--------------------------------------------------
            foreach (var proj in _basket.Projects)
            {
                YearwiseTable table = new YearwiseTable {
                    SectionNumber = "", Title = proj.P1A, Brush_TitleCell = Brushes.Navy, Brush_Title = Brushes.White
                };
                table.Rows.Add("P20A", proj.P20A);
                table.Rows.Add("P20B", proj.P20B);
                table.Rows.Add("P20C", proj.P20C);
                table.Rows.Add("P20D", proj.P20D);
                table.Rows.Add("P20E", proj.P20E);
                table.Rows.Add("P20F", proj.P20F);
                table.Rows.Add("P22A", proj.P22A);
                Enumerable.Range(1, 5).ToList().ForEach(x => table.Years.Add(new YearDefinition(x, false, true)));
                table.Years.Add(YearDefinition.Sum);
                table.Render();
                panel[2].Children.Add(table);
                //Col2.Children.Add(table);
            }
            return(panel);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }