コード例 #1
0
ファイル: ChartService.cs プロジェクト: RC7502/BitsmackGTWeb
        public string AllGoalsByMonthNet()
        {
            var now = DateTime.Now;
            var currentMonth = new DateTime(now.Year, now.Month, 1);
            var startDate = currentMonth.AddYears(-1);

            var highchart = new Highcharts("AllGoalsMonth");
            var chart = new Chart()
                {
                    Type = ChartTypes.Column
                };
            highchart.InitChart(chart);
            highchart.SetTitle(new Title() {Text = "Goals by Month"});
            var yaxis = new YAxis {Max = 2};
            highchart.SetYAxis(yaxis);
            var series = new Series {Name = "Steps"};
            var xaxis = new XAxis();
            var categories = new List<string>();
            var data = new List<object>();
            for (var i = startDate; i <= currentMonth; i = i.AddMonths(1))
            {
                categories.Add(i.Month.ToString() + "-" + i.Year.ToString());
                data.Add(pedometerCalcService.MonthPct(i.Month, i.Year));
            }
            xaxis.Categories = categories.ToArray();
            series.Data = new Data(data.ToArray());
            highchart.SetXAxis(xaxis);
            highchart.SetSeries(series);

            return highchart.ToHtmlString();
        }
コード例 #2
0
        public string ReporteCantidadDePatosEnAustraliaPorMes()
        {
            Highcharts chart = new DotNet.Highcharts.Highcharts("Cantidad de patos en Australia")
                               .SetXAxis(new XAxis
            {
                Categories = new[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
            })
                               .SetSeries(new Series
            {
                Data = new Data(new object[] { 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4 }),
                Name = "Tarjetas"
            });

            chart.SetYAxis(new YAxis()
            {
                Title = new YAxisTitle()
                {
                    Text = "En miles"
                }
            });
            chart.SetTitle(new Title()
            {
                Text = "Ventas del año pasado"
            });


            string cadena = chart.ToHtmlString();

            cadena = cadena.Substring(193);
            cadena = cadena.Substring(0, cadena.Length - 17);
            cadena = cadena.Replace("Cantidad de patos en Australia_container", "Chart");

            return(cadena);
        }
コード例 #3
0
        public string ReporteTarjetasPorEmpleado()
        {
            BLL.BLLHistoricoSolicitudTarjeta bll = new BLL.BLLHistoricoSolicitudTarjeta();

            var hist = bll.ObtenerHistoricoSolicitudTarjetasPorEmpleado();

            Highcharts chart = new DotNet.Highcharts.Highcharts("Cantidad de patos en Australia");

            chart.InitChart(new DotNet.Highcharts.Options.Chart {
                DefaultSeriesType = DotNet.Highcharts.Enums.ChartTypes.Column
            });

            chart.SetTitle(new Title()
            {
                Text = "Cantidad de ventas por empleado"
            });

            object[] datos = new object[hist.Length];
            for (int i = 0; i < hist.Length; i++)
            {
                datos[i] = hist[i].Item2;
            }
            chart.SetSeries(new Series()
            {
                Data = new Data(datos),
                Name = "Tarjetas"
            });
            string[] cat = new string[hist.Length];
            for (int i = 0; i < hist.Length; i++)
            {
                cat[i] = hist[i].Item1;
            }
            chart.SetXAxis(new XAxis()
            {
                Categories = cat,
            });
            chart.SetYAxis(new YAxis()
            {
                Title = new YAxisTitle()
                {
                    Text = "Tarjetas"
                }
            });

            string cadena = chart.ToHtmlString();

            cadena = cadena.Substring(193);
            cadena = cadena.Substring(0, cadena.Length - 17);
            cadena = cadena.Replace("Cantidad de patos en Australia_container", "Chart");

            return(cadena);
        }
コード例 #4
0
        protected void Render_Chart()
        {
            int nbValues = 10;

            DateTime dateFrom       = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            int      maxDaysInMonth = DateTime.DaysInMonth(dateFrom.Year, dateFrom.Month);
            DateTime dateTo         = new DateTime(DateTime.Now.Year, DateTime.Now.Month, maxDaysInMonth);

            var randomDatesValues  = ChartsRandomDataGenerator.GenerateRandomDates(dateFrom, dateTo, nbValues);
            var randomNumberValues = ChartsRandomDataGenerator.GenerateRandomNumbers(1000, nbValues);

            object[] chartValues = randomNumberValues.Cast <object>().ToArray();
            string[] dateValues  = randomDatesValues.ToArray();

            // Declare the HighCharts object
            DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart").InitChart(new Chart {
                DefaultSeriesType = ChartTypes.Column
            })
                                                 .SetTitle(new Title
            {
                Text = "Example of Chart",
                X    = -50
            })
                                                 .SetSubtitle(new Subtitle
            {
                Text = "All data are random",
                X    = -70
            })
                                                 .SetXAxis(new XAxis
            {
                Categories = dateValues     //random dates
            })
                                                 .SetSeries(new[]
            {
                new Series
                {
                    //Name = "# Dates",
                    Data = new Data(chartValues)           //random numbers
                },
            });
            chrtMyChart.Text = chart.ToHtmlString();
        }
コード例 #5
0
    public void BuildChart()
    {
        bool    hasTarget      = true;
        decimal currentValue   = 0;
        int     firstDayOfWeek = Artexacta.App.Configuration.Configuration.GetFirstDayOfWeek();
        decimal progress       = KPIBLL.GetKpiProgress(KpiId, CategoryId, CategoryItemId, firstDayOfWeek, ref hasTarget, ref currentValue);

        if (!hasTarget)
        {
            CurrentValueLiteral.Text  = currentValue.ToString(CultureInfo.InvariantCulture);
            CurrentValuePanel.Visible = true;
            return;
        }

        DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts(ClientID)
                                             .InitChart(new Chart()
        {
            Type = ChartTypes.Gauge,
            PlotBackgroundColor = null,
            PlotBackgroundImage = null,
            PlotBorderWidth     = 0,
            PlotShadow          = false
        })
                                             .SetTitle(new Title()
        {
            Text = ""
        })
                                             .SetTooltip(new Tooltip()
        {
            ValueSuffix = "%"
        })
                                             .SetPane(new Pane()
        {
            StartAngle = -150,
            EndAngle   = 150,
            Background = new DotNet.Highcharts.Helpers.BackgroundObject[]
            {
                new DotNet.Highcharts.Helpers.BackgroundObject()
                {
                    BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(new DotNet.Highcharts.Helpers.Gradient()
                    {
                        LinearGradient = new int[] { 0, 0, 0, 1 },
                        Stops          = new object[, ]
                        {
                            { 0, "#FFF" },
                            { 1, "#333" }
                        }
                    }),
                    BorderWidth = new DotNet.Highcharts.Helpers.PercentageOrPixel(1),
                    OuterRadius = new DotNet.Highcharts.Helpers.PercentageOrPixel(109, true)
                },
                new DotNet.Highcharts.Helpers.BackgroundObject()
                {
                    BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(new DotNet.Highcharts.Helpers.Gradient()
                    {
                        LinearGradient = new int[] { 0, 0, 0, 1 },
                        Stops          = new object[, ]
                        {
                            { 0, "#FFF" },
                            { 1, "#333" }
                        }
                    }),
                    BorderWidth = new DotNet.Highcharts.Helpers.PercentageOrPixel(1),
                    OuterRadius = new DotNet.Highcharts.Helpers.PercentageOrPixel(107, true)
                },
                new DotNet.Highcharts.Helpers.BackgroundObject()
                ,
                new DotNet.Highcharts.Helpers.BackgroundObject()
                {
                    BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(ColorTranslator.FromHtml("#DDD")),
                    BorderWidth     = new DotNet.Highcharts.Helpers.PercentageOrPixel(0),
                    OuterRadius     = new DotNet.Highcharts.Helpers.PercentageOrPixel(105, true),
                    InnerRadius     = new DotNet.Highcharts.Helpers.PercentageOrPixel(103, true)
                }
            }
        }).SetYAxis(new YAxis()
        {
            Min = 0,
            Max = 100,

            MinorTickWidth    = 1,
            MinorTickLength   = 10,
            MinorTickPosition = TickPositions.Inside,
            MinorTickColor    = ColorTranslator.FromHtml("#666"),

            TickPixelInterval = 30,
            TickWidth         = 2,
            TickPosition      = TickPositions.Inside,
            TickLength        = 10,
            TickColor         = ColorTranslator.FromHtml("#666"),

            Labels = new YAxisLabels()
            {
                Step = 2
            },
            Title = new YAxisTitle()
            {
                Text = "%"
            },
            PlotBands = new YAxisPlotBands[]
            {
                new YAxisPlotBands()
                {
                    From  = 0,
                    To    = 33,
                    Color = ColorTranslator.FromHtml("#DF5353")
                },
                new YAxisPlotBands()
                {
                    From  = 33,
                    To    = 66,
                    Color = ColorTranslator.FromHtml("#DDDF0D")
                },
                new YAxisPlotBands()
                {
                    From  = 66,
                    To    = 100,
                    Color = ColorTranslator.FromHtml("#55BF3B")
                }
            }
        })
                                             .SetSeries(new Series()
        {
            Name = Resources.KpiDetails.CompleteLabel,
            Data = new DotNet.Highcharts.Helpers.Data(new object[] { progress })
        });
        ChartLiteral.Text = chart.ToHtmlString();
    }
コード例 #6
0
ファイル: Dashboard.aspx.cs プロジェクト: blinds52/CloudPanel
        private void GetAreaChart()
        {
            DashboardViewModel dashboard = new DashboardViewModel();
            dashboard.ViewModelEvent += dashboard_ViewModelEvent;

            // Get statistics
            List<Dictionary<string, object>> values = dashboard.GetAreaChart();

            if (values != null)
            {
                Highcharts areaChart = new Highcharts("areaChart");
                areaChart.InitChart(new Chart()
                {
                    DefaultSeriesType = ChartTypes.Area,
                    BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(Color.Transparent),
                    Height = 300
                });
                areaChart.SetPlotOptions(new PlotOptions()
                {
                    Series = new PlotOptionsSeries()
                    {
                        ConnectNulls = true,
                        ConnectEnds = true
                    }
                });
                areaChart.SetLegend(new DotNet.Highcharts.Options.Legend()
                {
                    Align = DotNet.Highcharts.Enums.HorizontalAligns.Center,
                    Layout = DotNet.Highcharts.Enums.Layouts.Horizontal,
                    VerticalAlign = DotNet.Highcharts.Enums.VerticalAligns.Bottom,
                    BorderWidth = 0
                });
                areaChart.SetCredits(new DotNet.Highcharts.Options.Credits() { Enabled = false });
                areaChart.SetTitle(new DotNet.Highcharts.Options.Title() { Text = "" });

                YAxis yAxis = new YAxis();
                yAxis.Title = new DotNet.Highcharts.Options.YAxisTitle() { Text = "" };
                yAxis.Min = 0;

                XAxis xAxis = new XAxis();
                xAxis.Categories = values[0].Keys.ToArray();

                List<Series> seriesCollection = new List<Series>();

                Series seriesUsers = new Series();
                seriesUsers.Data = new DotNet.Highcharts.Helpers.Data(values[0].Values.ToArray());
                seriesUsers.Name = "Users";
                seriesCollection.Add(seriesUsers);

                Series seriesMailbox = new Series();
                seriesMailbox.Data = new DotNet.Highcharts.Helpers.Data(values[1].Values.ToArray());
                seriesMailbox.Name = "Mailbox";
                seriesCollection.Add(seriesMailbox);

                if (StaticSettings.CitrixEnabled)
                {
                    Series seriesCitrix = new Series();
                    seriesCitrix.Data = new DotNet.Highcharts.Helpers.Data(values[2].Values.ToArray());
                    seriesCitrix.Name = "Citrix";
                    seriesCollection.Add(seriesCitrix);
                }

                areaChart.SetXAxis(xAxis);
                areaChart.SetYAxis(yAxis);
                areaChart.SetSeries(seriesCollection.ToArray());

                litAreaChart.Text = areaChart.ToHtmlString();
            }
            else
                litAreaChart.Text = "Error populating chart.";
        }
コード例 #7
0
ファイル: Dashboard.aspx.cs プロジェクト: blinds52/CloudPanel
        private void GetBarChart()
        {
            DashboardViewModel dashboard = new DashboardViewModel();
            dashboard.ViewModelEvent += dashboard_ViewModelEvent;

            Dictionary<string, object> mdbData = dashboard.GetDatabaseSizeChart(ConfigurationManager.ConnectionStrings["CPDatabase"].ConnectionString);

            if (mdbData != null)
            {
                var databaseNames = from d in mdbData orderby d.Key select d.Key;
                var databaseValues = from d in mdbData orderby d.Key select d.Value;

                List<object> arrayValues = databaseValues.ToList();
                List<DotNet.Highcharts.Options.Point> points = new List<DotNet.Highcharts.Options.Point>();
                for (int i = 0; i < arrayValues.Count; i++)
                {
                    double theValue = 0;
                    double.TryParse(arrayValues[i].ToString(), out theValue);

                    points.Add(new DotNet.Highcharts.Options.Point()
                        {
                            Y = Number.GetNumber(theValue),
                            Color = decimal.Parse(arrayValues[i].ToString()) > 500 ? System.Drawing.Color.Red : System.Drawing.Color.Blue
                        });
                }

                Highcharts columnChart = new Highcharts("mdbBarChart")
                         .SetOptions(new DotNet.Highcharts.Helpers.GlobalOptions()
                         {
                             Lang = new DotNet.Highcharts.Helpers.Lang()
                             {
                                 DecimalPoint = ".",
                                 ThousandsSep = ","
                             }
                         })
                         .InitChart(new Chart
                         {
                             DefaultSeriesType = ChartTypes.Column,
                             BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(Color.Transparent),
                             Height = 300
                         })
                         .SetTitle(new Title
                         {
                             Text = ""
                         })
                         .SetCredits(new Credits
                         {
                             Enabled = false
                         })
                         .SetXAxis(new XAxis
                         {
                             Categories = databaseNames.ToArray()
                         })
                         .SetYAxis(new YAxis
                         {
                             Title = new YAxisTitle { Text = "GB" },
                             Labels = new YAxisLabels() { Enabled = true },
                             PlotLines = new[]
                        {
                            new YAxisPlotLines
                            {
                                Value = 0,
                                Width = 1
                            }
                        }
                         })
                         .SetLegend(new Legend
                         {
                             Enabled = false
                         })
                         .SetPlotOptions(new PlotOptions()
                         {
                             Column = new PlotOptionsColumn()
                             {
                                 DataLabels = new PlotOptionsColumnDataLabels()
                                 {
                                     Enabled = true,
                                     Style = "fontWeight: 'bold'"
                                 }
                             }
                         })
                         .SetSeries(new[]
                    {
                        new Series
                        {
                            Name = "GB",
                            Data = new DotNet.Highcharts.Helpers.Data(points.ToArray())
                        }
                    }
                     );

                litBarChart.Text = columnChart.ToHtmlString();

                // Change the div
                if (databaseNames.Count() > 8)
                    divBarChart.Style.Value = "col-sm-12 col-md-12"; // If more than 8 database then make the graph full length of page
                else
                    divBarChart.Style.Value = "col-sm-6 col-md-6"; // Otherwise half length
            }
            else
                litBarChart.Text = "Error populating the bar chart";
        }
コード例 #8
0
  protected void Button4_Click(object sender, EventArgs e)
  {
      var FASna = (List <string>)Session["Asname"];

      var g           = FASna.GroupBy(i => i);
      int countLength = 0;

      foreach (var grp in g)
      {
          countLength++;
      }
      object[] data = new object[countLength];


      int index = 0;

      foreach (var grp in g)
      {
          data[index] = new object[] { grp.Key, grp.Count() };
          index++;
      }

      DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart").InitChart(new Chart {
            DefaultSeriesType = ChartTypes.Pie, PlotShadow = false
        })
                                           .SetTitle(new Title {
            Text = "% Path Covered by Autonomous Systems"
        })
                                           .SetTooltip(new Tooltip {
            Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; }"
        })
                                           .SetPlotOptions(new PlotOptions
        {
            Pie = new PlotOptionsPie
            {
                AllowPointSelect = true,
                Cursor           = Cursors.Pointer,
                DataLabels       = new PlotOptionsPieDataLabels
                {
                    Color          = ColorTranslator.FromHtml("#000000"),
                    ConnectorColor = ColorTranslator.FromHtml("#000000"),
                    Formatter      = "function() { return '<b>'+ this.point.name +'</b>: '+ Math.round(this.percentage) +' %'; }"
                },
            }
        })
                                           .SetSeries(new Series
        {
            Data = new Data(data)
        });

      Literal1.Text = chart.ToHtmlString();

      //////////////////// RTT ////////////////////////
      // Series[] series = new Series[Frttave.Count()];
      // string[] array_DistrictNames = new string[Frttave.Count()];
      // data = new object[Frttave.Count()];

      // int index2 = 0;
      // foreach (var district in Frttave)
      // {
      //     series[index2] = new Series { Name = index2.ToString(), Data = new Data(new object[] { district }) };
      //     array_DistrictNames[index2] = index2.ToString();
      //     index2++;
      // }

      // DotNet.Highcharts.Highcharts chart2 = new DotNet.Highcharts.Highcharts("chart").InitChart(new Chart { DefaultSeriesType = ChartTypes.Column, Margin = new int[] { 50, 50, 100, 80 } })
      // .SetTitle(new Title { Text = "District Based Registered Institutes" })
      // .SetPlotOptions(new PlotOptions
      // {
      //     Bar = new PlotOptionsBar
      //     {
      //         DataLabels = new PlotOptionsSeriesDataLabels
      //         {
      //             Enabled = true
      //         }
      //     }
      // }
      // )
      //.SetXAxis(new XAxis
      //{
      //    Categories = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" }
      //})
      // .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Registered Institutions", Align = AxisTitleAligns.High } })
      // ;

      // chart2.SetSeries(series);

      // Literal2.Text = chart2.ToHtmlString();
  }
コード例 #9
0
ファイル: ChartService.cs プロジェクト: RC7502/BitsmackGTWeb
        public string CurrentMonthGoalProgressNet()
        {
            var now = DateTime.Now;
            var daysInMonth = DateTime.DaysInMonth(now.Year, now.Month);
            var expectedPct = ((decimal)now.Day / daysInMonth);
            var remainingDays = daysInMonth - now.Day;
            var stepsPR = pedometerCalcService.StepsPR();
            var remainingSteps = (int) (stepsPR-pedometerCalcService.MonthStepsActual())/remainingDays;

            var highchart = new Highcharts("CurrentMonthGoal");
            var chart = new Chart() {Type = ChartTypes.Bar};
            var categories = new List<string> {"Steps"};
            var yaxis = new YAxis {Max = 1};

            var seriesArray = new List<Series>();
            var series = new Series {Name = "Expected",Color = Color.Red};
            var data = new List<object> {pedometerCalcService.MonthPctExpected(now)};
            var plotoptions = new PlotOptionsBar
                {
                    Grouping = false,
                    Shadow = false,
                    DataLabels = new PlotOptionsBarDataLabels()
                        {
                            Enabled = false,
                            Format = string.Format("Expected: {0}", (int) (stepsPR*expectedPct)),
                            Color = Color.White
                        }
                };
            series.Data = new Data(data.ToArray());
            series.PlotOptionsBar = plotoptions;
            seriesArray.Add(series);

            series = new Series {Name = "Actual", Color = Color.Green};
            data = new List<object> { pedometerCalcService.MonthPct(now.Month, now.Year) };
            plotoptions = new PlotOptionsBar
                {
                    Grouping = false,
                    Shadow = false,
                    DataLabels = new PlotOptionsBarDataLabels()
                        {
                            Enabled = true,
                            Format = string.Format("Remaining: {0}/day", remainingSteps),
                            Color = Color.White,
                            Shadow = false
                        }
                };
            series.Data = new Data(data.ToArray());
            series.PlotOptionsBar = plotoptions;
            seriesArray.Add(series);

            highchart.InitChart(chart);
            highchart.SetTitle(new Title() {Text = "Month Progress"});
            highchart.SetXAxis(new XAxis() {Categories = categories.ToArray()});
            highchart.SetYAxis(yaxis);
            highchart.SetSeries(seriesArray.ToArray());
            highchart.SetTooltip(new Tooltip() {Enabled = false});

            return highchart.ToHtmlString();
        }
コード例 #10
0
ファイル: ChartService.cs プロジェクト: RC7502/BitsmackGTWeb
        public string WeightYearProgressNet()
        {
            var startWeight = pedometerCalcService.GetStartWeight(DateTime.Now.Year);
            const int goalWeight = 144;
            var currentWeight = pedometerCalcService.GetRecentWeight();
            var goalLoss = startWeight - goalWeight;
            var actualLoss = Math.Round(startWeight - currentWeight, 1);
            var expectedPct = (DateTime.Now.DayOfYear / 365.0);
            var expectedLoss = Math.Round(expectedPct * goalLoss, 1);

            var highchart = new Highcharts("weightloss");
            var chart = new Chart()
                {
                    Type = ChartTypes.Gauge
                };
            highchart.InitChart(chart);
            highchart.SetTitle(new Title{Text = "Weight Loss " + Math.Round(currentWeight,1)});
            var series = new Series {Data = new Data(new object[] {actualLoss})};
            highchart.SetSeries(series);
            var pane = new Pane
                {
                    Background = new[]
                        {
                            new BackgroundObject
                                {
                                    InnerRadius = new PercentageOrPixel(60, true),
                                    OuterRadius = new PercentageOrPixel(100, true)
                                }
                        },
                        StartAngle = 0,
                        EndAngle = 360
                };
            highchart.SetPane(pane);
            var yaxis = new YAxis
                {
                    Min = 0,
                    Max = goalLoss,
                    PlotBands = new[]
                            {
                                new YAxisPlotBands { From = 0, To = expectedLoss, Color = Color.Red },
                                new YAxisPlotBands { From = expectedLoss, To = expectedLoss+0.7, Color = Color.Yellow },
                                new YAxisPlotBands { From = expectedLoss+0.7, To = goalLoss, Color = Color.Green }
                            },
                    Labels = new YAxisLabels() { Style = "color:'black'"}
                };
            highchart.SetYAxis(yaxis);
            highchart.SetTooltip(new Tooltip() {Enabled = false});
            highchart.SetSubtitle(new Subtitle()
                {
                    Text = string.Format("Actual: {0} | Expected: {1} | Difference: {2}", actualLoss, expectedLoss, actualLoss-expectedLoss)
                });
            highchart.SetLegend(new Legend() {Enabled = false});
            return highchart.ToHtmlString();
        }
コード例 #11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var        FASna   = (List <string>)Session["AsName"];
        var        Frtta   = (List <string>)Session["Rttave"];
        List <int> Frttave = new List <int>();
        int        Rrtt11  = 0;

        foreach (var item in Frtta)
        {
            string Rrtttemp = item;
            char[] Rendchar = { ' ', 'm', 's' };
            string Rtrimen  = Rrtttemp.TrimEnd(Rendchar);
            Rrtt11 = Convert.ToInt16(Rtrimen);
            Frttave.Add(Rrtt11);
        }

        var g           = FASna.GroupBy(i => i);
        int countLength = 0;

        foreach (var grp in g)
        {
            countLength++;
        }
        object[] data = new object[countLength];


        int index = 0;

        foreach (var grp in g)
        {
            data[index] = new object[] { grp.Key, grp.Count() };
            index++;
        }

        DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart").InitChart(new Chart {
            DefaultSeriesType = ChartTypes.Pie, PlotShadow = false
        })
                                             .SetTitle(new Title {
            Text = "Province Based Institutions Registration"
        })
                                             .SetTooltip(new Tooltip {
            Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; }"
        })
                                             .SetPlotOptions(new PlotOptions
        {
            Pie = new PlotOptionsPie
            {
                AllowPointSelect = true,
                Cursor           = Cursors.Pointer,
                DataLabels       = new PlotOptionsPieDataLabels
                {
                    Color          = ColorTranslator.FromHtml("#000000"),
                    ConnectorColor = ColorTranslator.FromHtml("#000000"),
                    Formatter      = "function() { return '<b>'+ this.point.name +'</b>: '+ Math.round(this.percentage) +' %'; }"
                },
            }
        })
                                             .SetSeries(new Series
        {
            Data = new Data(data)
        });

        Literal1.Text = chart.ToHtmlString();

        //////////////////// RTT ////////////////////////
        Series[] series = new Series[Frttave.Count()];
        string[] array_DistrictNames = new string[Frttave.Count()];
        data = new object[Frttave.Count()];

        int index2 = 0;

        foreach (var district in Frttave)
        {
            series[index2] = new Series {
                Name = index2.ToString(), Data = new Data(new object[] { district })
            };
            array_DistrictNames[index2] = index2.ToString();
            index2++;
        }

        DotNet.Highcharts.Highcharts chart2 = new DotNet.Highcharts.Highcharts("chart").InitChart(new Chart {
            DefaultSeriesType = ChartTypes.Column, Margin = new int[] { 50, 50, 100, 80 }
        })
                                              .SetTitle(new Title {
            Text = "District Based Registered Institutes"
        })
                                              .SetPlotOptions(new PlotOptions
        {
            Bar = new PlotOptionsBar
            {
                DataLabels = new PlotOptionsSeriesDataLabels
                {
                    Enabled = true
                }
            }
        }
                                                              )
                                              .SetXAxis(new XAxis
        {
            Categories = new [] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" }
        })
                                              .SetYAxis(new YAxis {
            Title = new YAxisTitle {
                Text = "Registered Institutions", Align = AxisTitleAligns.High
            }
        })
        ;

        chart2.SetSeries(series);

        Literal2.Text = chart2.ToHtmlString();
    }
コード例 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var list = //new List<Tuple<string, string>>();
//            list.Add(new Tuple<string, string>("START_PERIOD", "January 2017"));
//            list.Add(new Tuple<string, string>("END_PERIOD", "January 2017"));
//            list.Add(new Tuple<string, string>("BRAND", "Coca Cola"));
//            list.Add(new Tuple<string, string>("PRESENTATION_TYPE", "table"));
//            list.Add(new Tuple<string, string>("CITY_NAME", "NICOSIA"));
//            list.Add(new Tuple<string, string>("SELECT CLAUSE", "show"));
//            list.Add(new Tuple<string, string>("Function", "sales"));
                       (List <Tuple <string, string> >)HttpContext.Current.Session["Pairs"];

            if (list == null)
            {
                Response.Redirect("Default.aspx");
            }

            var serializer = new XmlSerializer(typeof(XMLObject.language));
            var loadStream = new FileStream(HttpRuntime.AppDomainAppPath + "\\file2.xml", FileMode.Open,
                                            FileAccess.Read);
            var loadedObject = (XMLObject.language)serializer.Deserialize(loadStream);
            var FROM         = new List <string>();
            var GROUP_BY     = new List <string>();
            var SELECT       = new List <string>();
            var WHERE        = new List <string>();

            FROM.Add("[NQL].[dbo].[PROCESSED_DATA]");
            string ptype  = "";
            string period = "";

            foreach (var item in list)
            {
                if (item.Item1.Equals("START_PERIOD"))
                {
                    period = "PERIOD_ID BETWEEN " + "[NQL].[dbo].[GET_PERIOD_ID]('" + item.Item2 + "')" + " AND ";
                }

                //   Console.WriteLine(loadedObject.dimensions.product.);
                if (item.Item1.Equals("END_PERIOD"))
                {
                    period += "[NQL].[dbo].[GET_PERIOD_ID]('" + item.Item2 + "')";
                }

                if (item.Item1.Equals("PRESENTATION_TYPE"))
                {
                    ptype = item.Item2;
                }
            }

            WHERE.Add(period);
            string putLast = "";

            foreach (var item in list)
            {
                if (!item.Item1.Equals("START_PERIOD") && !item.Item1.Equals("END_PERIOD") &&
                    !item.Item1.Equals("PRESENTATION_TYPE") && !item.Item1.Equals("SELECT CLAUSE"))
                {
                    if (item.Item1.Equals("FUNCTION"))
                    {
                        putLast = item.Item2;
                        SELECT.Add("PERIOD_NAME");
                        // SELECT.Add(item.Item2);
                        GROUP_BY.Add("PERIOD_NAME");
                    }
                    else if (!SELECT.Contains(item.Item1))
                    {
                        SELECT.Add(item.Item1);
                        GROUP_BY.Add(item.Item1);
                        string tmp = "";
                        tmp = item.Item1 + "='" + item.Item2 + "'";
                        WHERE.Add(tmp);
                    }
                }
            }

            if (putLast.ToLower().Trim().Equals("sales value"))
            {
                SELECT.Add("SUM(SALES_VALUE) AS SALES_VALUE");
            }

            if (putLast.ToLower().Trim().Equals("sales volume"))
            {
                SELECT.Add("SUM(SALES_VOLUME) AS SALES_VOLUME");
            }

            if (putLast.ToLower().Trim().Equals("sales") || putLast.ToLower().Trim().Equals("sales items"))
            {
                SELECT.Add("SUM(SALES_QUANTITY) AS SALES_QUANTITY");
            }

            SELECT   = SELECT.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();
            WHERE    = WHERE.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();
            GROUP_BY = GROUP_BY.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();

            string query  = "SELECT ";
            string select = "";
            var    last   = SELECT.Last();

            foreach (var VARIABLE in SELECT)
            {
                // query += VARIABLE;
                if (VARIABLE.Equals(last))
                {
                    select += VARIABLE + " ";
                }
                else
                {
                    select += VARIABLE + ", ";
                }
            }

            loadedObject.result.SELECT = select;
            query += select;

            query += "\nFROM ";
            string from = "";

            last = FROM.Last();
            foreach (var VARIABLE in FROM)
            {
                //   query += VARIABLE;
                if (VARIABLE.Equals(last))
                {
                    from += VARIABLE + " ";
                }
                else
                {
                    from += VARIABLE + ", ";
                }
            }

            query += from;
            loadedObject.result.FROM = from;
            if (WHERE.Count > 0)
            {
                query       += "\nWHERE ";
                last         = WHERE.Last();
                string where = "";
                foreach (var VARIABLE in WHERE)
                {
                    //   query += VARIABLE;
                    if (VARIABLE.Equals(last))
                    {
                        where += VARIABLE + " ";
                    }
                    else
                    {
                        where += VARIABLE + " AND ";
                    }
                }

                query += where;
                loadedObject.result.WHERE = where;
            }

            query += "\nGROUP BY ";
            last   = GROUP_BY.Last();
            string groupby = "";

            foreach (var VARIABLE in GROUP_BY)
            {
                //    query += VARIABLE;
                if (VARIABLE.Equals(last))
                {
                    groupby += VARIABLE + " ";
                }
                else
                {
                    groupby += VARIABLE + ", ";
                }
            }

            query += groupby;

            loadedObject.result.GROUP_BY = groupby;

            using (var writer = new StreamWriter(HttpRuntime.AppDomainAppPath + "\\result.xml"))
            {
                serializer.Serialize(writer, loadedObject);
                writer.Flush();
            }

            loadStream.Close();


            multitxt.Text = query;

            DataTable dt = GetData(query);

            gridView.DataSource = dt;
            gridView.DataBind();
            gridView.UseAccessibleHeader = true;
            //   gridView.HeaderRow.TableSection = TableRowSection.TableHeader;
            DataColumnCollection columns = dt.Columns;
            string myStr = "";

            if (columns.Contains("SALES_VALUE"))
            {
                myStr = "SALES_VALUE";
            }

            if (columns.Contains("SALES_VOLUME"))
            {
                myStr = "SALES_VOLUME";
            }

            if (columns.Contains("SALES_QUANTITY"))
            {
                myStr = "SALES_QUANTITY";
            }
            // SerializedDataOfChart(query);

            DataView dv = new DataView(dt);

            DataTable     dtT     = dv.ToTable(true, "PERIOD_NAME", myStr);
            List <string> ctgries = new List <string>();
            var           values  = new List <double>();

            foreach (DataRow row in dtT.Rows)
            {
                ctgries.Add(Convert.ToString(row["PERIOD_NAME"]));
                values.Add(Convert.ToDouble(row[myStr]));
            }


            string[] ca = ctgries.ToArray();
            object[] cc = values.Select(d => (object)d).ToArray();



            if (ptype.ToLower().Trim().Equals("table"))
            {
                gridView.Visible = true;
            }
            else if (ptype.ToLower().Trim().Equals("line chart"))
            {
                ltrChart.Visible = true;
                DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart").SetXAxis(new XAxis
                {
                    Categories = ca
                }).SetSeries(new Series
                {
                    Data = new Data(cc),
                    Name = myStr
                }).SetTitle(new Title {
                    Text = "Line Chart"
                });
                ltrChart.Text = chart.ToHtmlString();
            }
            else if (ptype.ToLower().Trim().Equals("bar chart"))
            {
                ltrChart.Visible = true;
                DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
                                                     .InitChart(new Chart {
                    DefaultSeriesType = ChartTypes.Bar
                })
                                                     .SetTitle(new Title {
                    Text = "Bar Chart"
                })
                                                     .SetXAxis(new XAxis
                {
                    Categories = ca
                })
                                                     .SetYAxis(new YAxis
                {
                    Min   = 0,
                    Title = new YAxisTitle
                    {
                        Text  = myStr,
                        Align = AxisTitleAligns.High
                    }
                })
                                                     .SetPlotOptions(new PlotOptions
                {
                    Bar = new PlotOptionsBar
                    {
                        DataLabels = new PlotOptionsBarDataLabels {
                            Enabled = true
                        }
                    }
                })
//                    .SetLegend(new Legend
//                    {
//                        Layout = Layouts.Vertical,
//                        Align = HorizontalAligns.Right,
//                        VerticalAlign = VerticalAligns.Top,
//                        X = -100,
//                        Y = 100,
//                        Floating = true,
//                        BorderWidth = 1,
//                        BackgroundColor = new BackColorOrGradient(ColorTranslator.FromHtml("#FFFFFF")),
//                        Shadow = true
//                    })
                                                     .SetSeries(new Series
                {
                    Data = new Data(cc),
                    Name = myStr
                });
                ltrChart.Text = chart.ToHtmlString();
            }

            //            foreach (DataRow row in dtT.Rows)
            //            {
            //                ctgries.Add(Convert.ToString(row["PERIOD_NAME"]));
            //                values.Add(Convert.ToDouble(row[myStr]));
            //
            //
            //                string[] ca = ctgries.ToArray();
            //                object[] cc = values.Select(d => (object)d).ToArray();
            //                DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("barchart").SetXAxis(new XAxis
            //                {
            //                    Categories = ca
            //                }).SetSeries(new Series
            //                {
            //                    Name = myStr,
            //                    Data = new Data(cc)
            //                });
            //                barChart.Text = chart.ToHtmlString();
            //            }
        }
コード例 #13
0
    public void BuildChart()
    {
        int     kpiId          = KpiId;
        string  strategyId     = "";
        string  startingPeriod = "";
        string  endingPeriod   = "";
        decimal target         = 0;
        int     firstDayOfWeek = Artexacta.App.Configuration.Configuration.GetFirstDayOfWeek();

        List <KpiChartData> measurements = KpiMeasurementBLL.GetKPIMeasurementForChart(kpiId, CategoryId, CategoryItemId, firstDayOfWeek,
                                                                                       ref strategyId, ref target, ref startingPeriod, ref endingPeriod);
        Dictionary <string, object> standardSerie       = new Dictionary <string, object>();
        Dictionary <string, object> targetStandardSerie = new Dictionary <string, object>();

        Dictionary <string, object> sumSerie       = new Dictionary <string, object>();
        Dictionary <string, object> targetSumSerie = new Dictionary <string, object>();

        KPI objKpi = KPIBLL.GetKPIById(kpiId);

        bool hasTarget      = target != -1;
        bool isSum          = strategyId == "SUM";
        bool isTargetUsable = false;
        //bool isSerieUsable = false;

        decimal sumMeasurement = 0;
        decimal sumTarget      = 0;

        foreach (var item in measurements)
        {
            //if (!string.IsNullOrEmpty(startingPeriod) && item.Period == startingPeriod)
            //    isSerieUsable = true;
            //if (isSerieUsable)
            standardSerie.Add(item.Period, item.Measurement);
            //else
            //    standardSerie.Add(item.Period, null);

            if (isSum)
            {
                sumMeasurement = sumMeasurement + item.Measurement;

                //if (isSerieUsable)
                sumSerie.Add(item.Period, sumMeasurement);
                //else
                //    sumSerie.Add(item.Period, null);
                if (hasTarget)
                {
                    if (!string.IsNullOrEmpty(startingPeriod) && item.Period == startingPeriod)
                    {
                        isTargetUsable = true;
                    }

                    if (!string.IsNullOrEmpty(endingPeriod) && item.Period == endingPeriod)
                    {
                        isTargetUsable = false;
                    }

                    if (isTargetUsable)
                    {
                        sumTarget = sumTarget + target;
                        targetSumSerie.Add(item.Period, sumTarget);
                    }
                    else
                    {
                        targetSumSerie.Add(item.Period, null);
                    }
                }
            }
            if (hasTarget)
            {
                if (!string.IsNullOrEmpty(startingPeriod) && item.Period == startingPeriod)
                {
                    isTargetUsable = true;
                }

                if (!string.IsNullOrEmpty(endingPeriod) && item.Period == endingPeriod)
                {
                    isTargetUsable = false;
                }

                if (isTargetUsable)
                {
                    targetStandardSerie.Add(item.Period, target);
                }
                else
                {
                    targetStandardSerie.Add(item.Period, null);
                }
            }
        }
        List <Series> series = new List <Series>();

        series.Add(new Series
        {
            Name = Resources.KpiDetails.ValuesLabel,
            Data = new Data(standardSerie.Values.ToArray <object>())
        });
        if (hasTarget)
        {
            series.Add(new Series
            {
                Name  = Resources.KpiDetails.KpiTargetLabel,
                Color = System.Drawing.Color.Red,
                Data  = new Data(targetStandardSerie.Values.ToArray <object>())
            });
        }

        DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts(ClientID)
                                             .InitChart(new Chart()
        {
            Type = ChartTypes.Line
        })
                                             .SetTitle(new Title()
        {
            Text = ""
        })
                                             .SetXAxis(new XAxis
        {
            Categories = standardSerie.Keys.ToArray <string>()
        })
                                             .SetSeries(series.ToArray())
                                             .SetLegend(new Legend()
        {
            Layout        = Layouts.Horizontal,
            Align         = HorizontalAligns.Center,
            VerticalAlign = VerticalAligns.Bottom,
            BorderWidth   = 0
        });
        if (objKpi.UnitID != "TIME")
        {
            //chart.SetTooltip(new Tooltip()
            //{
            //    ValueSuffix = " " + objKpi.uni.ToLower() + "s"

            //});
        }
        else
        {
            chart.SetTooltip(new Tooltip()
            {
                Formatter = "function (){" +
                            "return decimalToYYMMDDhhmm(this.y).toString('" + Resources.DataTime.YearsValueSingle + "','" + Resources.DataTime.YearsValue + "'," +
                            "'" + Resources.DataTime.MonthsValueSingle + "'," +
                            "'" + Resources.DataTime.MonthsValue + "'," +
                            "'" + Resources.DataTime.DaysValueSingle + "'," +
                            "'" + Resources.DataTime.DaysValue + "'," +
                            "'" + Resources.DataTime.HoursValueSingle + "'," +
                            "'" + Resources.DataTime.HoursValue + "'," +
                            "'" + Resources.DataTime.MinutesValueSingle + "'," +
                            "'" + Resources.DataTime.MinutesValue + "');" +
                            "}"
            });
        }

        ChartLiteral.Text = chart.ToHtmlString();

        if (isSum)
        {
            series = new List <Series>();
            series.Add(new Series
            {
                Name = Resources.KpiDetails.ValuesLabel,
                Data = new Data(sumSerie.Values.ToArray <object>())
            });
            if (hasTarget)
            {
                series.Add(new Series
                {
                    Name  = Resources.KpiDetails.KpiTargetLabel,
                    Color = System.Drawing.Color.Red,
                    Data  = new Data(targetSumSerie.Values.ToArray <object>())
                });
            }
            chart = new DotNet.Highcharts.Highcharts(ClientID + "_sum")
                    .InitChart(new Chart()
            {
                Type = ChartTypes.Line
            })
                    .SetTitle(new Title()
            {
                Text = ""
            })
                    .SetXAxis(new XAxis
            {
                Categories = standardSerie.Keys.ToArray <string>()
            })
                    .SetSeries(series.ToArray())
                    .SetLegend(new Legend()
            {
                Layout        = Layouts.Horizontal,
                Align         = HorizontalAligns.Center,
                VerticalAlign = VerticalAligns.Bottom,
                BorderWidth   = 0
            });
            if (objKpi.UnitID != "TIME")
            {
                //chart.SetTooltip(new Tooltip()
                //{
                //    ValueSuffix = " " + objKpi.uni.ToLower() + "s"

                //});
            }
            else
            {
                chart.SetTooltip(new Tooltip()
                {
                    Formatter = "function (){" +
                                "return decimalToYYMMDDhhmm(this.y).toString('" + Resources.DataTime.YearsValueSingle + "','" + Resources.DataTime.YearsValue + "'," +
                                "'" + Resources.DataTime.MonthsValueSingle + "'," +
                                "'" + Resources.DataTime.MonthsValue + "'," +
                                "'" + Resources.DataTime.DaysValueSingle + "'," +
                                "'" + Resources.DataTime.DaysValue + "'," +
                                "'" + Resources.DataTime.HoursValueSingle + "'," +
                                "'" + Resources.DataTime.HoursValue + "'," +
                                "'" + Resources.DataTime.MinutesValueSingle + "'," +
                                "'" + Resources.DataTime.MinutesValue + "');" +
                                "}"
                });
            }
            SumChartLiteral.Text  = chart.ToHtmlString();
            SumChartPanel.Visible = true;
        }
    }