Exemplo n.º 1
0
        public void DiagrammInit()
        {
            string[] SeriesTitle = new string[] { "План", "Факт", "Откл", "ПланРуб", "ФактРуб", "ОтклРуб" };
            int      i           = !RBCostIsChecked ? 0 : 3;

            SeriesCollection.Clear();
            LineSeries ls1 = new LineSeries
            {
                Title           = SeriesTitle[i],
                LineSmoothness  = 0,
                StrokeThickness = 2.5,
                //Stroke = System.Windows.Media.Brushes.DeepSkyBlue,
                Fill       = System.Windows.Media.Brushes.AliceBlue,
                DataLabels = true,
                FontSize   = 10,
                FontWeight = FontWeights.Bold,
                LabelPoint = point => string.Format("{0:N0}", point.Y),
                Values     = new ChartValues <ObservableValue>(ValueYFill(SeriesTitle[i]))
            };
            LineSeries ls2 = new LineSeries
            {
                Title           = SeriesTitle[i + 1],
                LineSmoothness  = 0,
                DataLabels      = true,
                StrokeThickness = 2.5,
                //Stroke = System.Windows.Media.Brushes.Red,
                Fill       = System.Windows.Media.Brushes.Transparent,
                FontSize   = 10,
                FontWeight = FontWeights.Bold,
                LabelPoint = point => string.Format("{0:N0}", point.Y),
                Values     = new ChartValues <ObservableValue>(ValueYFill(SeriesTitle[i + 1]))
            };
            LineSeries ls3 = new LineSeries
            {
                Title      = SeriesTitle[i + 2],
                DataLabels = true,
                FontSize   = 10,
                FontWeight = FontWeights.Bold,
                LabelPoint = point => string.Format("{0:N0}", point.Y),
                AreaLimit  = 0,
                Values     = new ChartValues <ObservableValue>(ValueYFill(SeriesTitle[i + 2]))
            };

            SeriesCollection.Add(ls1);
            SeriesCollection.Add(ls2);
            SeriesCollection.Add(ls3);
            Labels.Clear();
            Labels = new ObservableCollection <string>(MonthUseList.Select(x => x.Year.ToString()));

            ChartValues <ObservableValue> ValueYFill(string typeSeries = "")
            {
                ChartValues <ObservableValue> rez = new ChartValues <ObservableValue>();

                switch (typeSeries)
                {
                case ("План"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.Plan));
                    }
                    break;

                case ("Факт"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.Fact));
                    }
                    break;

                case ("Откл"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.Difference));
                    }
                    break;

                case ("ПланРуб"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.PlanCost));
                    }
                    break;

                case ("ФактРуб"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.FactCost));
                    }
                    break;

                case ("ОтклРуб"):
                    foreach (ViewResult newY in MonthUseList)
                    {
                        rez.Add(new ObservableValue(newY.DifferenceCost));
                    }
                    break;
                }
                return(rez);
            }
        }