Пример #1
0
    private void SetGraficos(TiposEnumerados.TipoGrafico tGafico)
    {
        //dvGrafico.Visible = torta || columna || circular;
        Int64     tot;
        DataTable dt = toDataTable(sesToExporte, Int16.Parse(ConfigurationManager.AppSettings["MaxItemsShowAgrupados"]), out tot);

        hftgraf.Value = tGafico.ToString();
        switch (tGafico)
        {
            //    case TiposEnumerados.TipoGrafico.COLUMNA:

            //        litGrafico.Text = Grafica.traerScriptGrafica(TiposEnumerados.TipoGrafico.COLUMNA,
            //    hfcaption.Value,
            //    "Pais", "Total",
            //    "PaisCol", dt, 0, 2, 600, 400, false);
            //        break;

            //    case TiposEnumerados.TipoGrafico.TORTA:
            //        litGrafico.Text = Grafica.traerScriptGrafica(TiposEnumerados.TipoGrafico.TORTA,
            //hfcaption.Value,
            //"Pais", "Total",
            //"PaisT", dt, 0, 2, 600, 400, false);
            //        break;

            //    case TiposEnumerados.TipoGrafico.FUNEL:
            //        litGrafico.Text = Grafica.traerScriptGrafica(TiposEnumerados.TipoGrafico.FUNEL,
            //hfcaption.Value,
            //"Pais", "Total",
            //"PaisCir", dt, 0, 2, 600, 400, false);
            //        break;

            //    case TiposEnumerados.TipoGrafico.SEGMENTO:
            //        litGrafico.Text = Grafica.traerScriptGrafica(TiposEnumerados.TipoGrafico.SEGMENTO,
            //hfcaption.Value,
            //"Pais", "Total",
            //"PaisCir", dt, 0, 2, 600, 400, false);
            //        break;
        }
    }
Пример #2
0
 protected void ClickearonBotonGrafico(object sender, TiposEnumerados.TipoGrafico iTipoGrafico)
 {
     SetGraficos(iTipoGrafico);
 }
Пример #3
0
    public static void ChartMultipleSerieMultiAreas(Chart Chart, DataSet dsDatos, string nomColX, string nomColY, Boolean toPrint
                                                    , String Titulo
                                                    , Int32 ancho
                                                    , Int32 alto
                                                    , TiposEnumerados.TipoGrafico tGrafico
                                                    , Int32 SeparacionYChArea
                                                    , Int32 heightYChArea
                                                    )
    {
        //Int32 maxValorY = 0;
        string colorfondo = toPrint ? "#ffffff" : "#D9E6F4"; //el color del style "fondo claro"

        // Set titulo
        if (Titulo.Equals(string.Empty))
        {
            Chart.Titles.Clear();
        }
        else
        {
            Chart.Titles["Titulo"].Text = Titulo;
        }
        // fin Set titulo
        Chart.BackColor = System.Drawing.ColorTranslator.FromHtml(colorfondo);

        //tamaño
        Chart.Width  = ancho;
        Chart.Height = alto;


        // Set series chart type
        if (dsDatos == null)
        {
            Chart.Series.Clear();
        }
        else
        {
            //obtengo el valor maximo de todas las series para setear en cada chart
            //if (maxValorY == 0)
            //    maxValorY = ObtenerValorMaxYScale(dsDatos, nomColY);

            int    cantSeries = dsDatos.Tables.Count;
            string NombreSerie;
            int    posicionYChart      = 7;
            string NombreSerieAnterior = "";
            foreach (DataTable dt in dsDatos.Tables)
            {
                //nombre serie y area
                NombreSerie = dt.TableName;

                #region chartarea
                ChartArea cha = new ChartArea();
                cha.Name = "ChartArea" + NombreSerie;

                Chart.ChartAreas.Add(cha);
                if (!NombreSerieAnterior.Equals(string.Empty))
                {
                    cha.AlignWithChartArea = NombreSerieAnterior;
                }
                NombreSerieAnterior = cha.Name;

                cha.BorderColor        = System.Drawing.ColorTranslator.FromWin32(64);
                cha.BackGradientStyle  = GradientStyle.Center;
                cha.ShadowColor        = System.Drawing.Color.Transparent;
                cha.BackColor          = System.Drawing.ColorTranslator.FromHtml(colorfondo);
                cha.BackSecondaryColor = System.Drawing.Color.Transparent;  //System.Drawing.ColorTranslator..FromHtml(alternateColorLightGrays(2));

                cha.AlignmentOrientation = AreaAlignmentOrientations.Vertical;
                //cha.AlignmentStyle = AreaAlignmentStyles.None;
                cha.Position.Y    = posicionYChart;
                cha.Axes[1].Title = NombreSerie;
                cha.AxisY.Minimum = 0;
                //cha.AxisY.Maximum = maxValorY;

                FontStyle fontStyle = FontStyle.Bold;
                cha.Axes[1].TitleFont = new Font("Trebuchet MS", float.Parse("8"), fontStyle);


                //posicionamiento de cada area dentro del chart
                posicionYChart     += SeparacionYChArea;
                cha.Position.X      = 1;
                cha.Position.Width  = 98;
                cha.Position.Height = heightYChArea;

                cha.AxisX.IsMarginVisible     = false;
                cha.AxisX.LineColor           = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(0));
                cha.AxisX.LabelStyle.Font     = toPrint ? new Font("Trebuchet MS", float.Parse("5"), fontStyle) : new Font("Trebuchet MS", float.Parse("8"), fontStyle);
                cha.AxisX.MajorGrid.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(3));

                cha.AxisY.IsMarginVisible     = false;
                cha.AxisY.LineColor           = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(0));
                cha.AxisY.LabelStyle.Font     = toPrint ? new Font("Trebuchet MS", float.Parse("5"), fontStyle) : new Font("Trebuchet MS", float.Parse("8"), fontStyle);
                cha.AxisY.MajorGrid.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(3));

                //cha.InnerPlotPosition.Width = 95;
                //cha.InnerPlotPosition.Height = 9;

                #endregion chartarea

                Chart.Series.Add(NombreSerie);

                //tipo de grafico
                if (tGrafico == TiposEnumerados.TipoGrafico.COLUMNA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Column;
                }
                if (tGrafico == TiposEnumerados.TipoGrafico.BARRA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Bar;
                }
                if (tGrafico == TiposEnumerados.TipoGrafico.LINEA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Line;
                }

                Chart.Series[NombreSerie].ChartArea = cha.Name;

                // Set series point width
                Chart.Series[NombreSerie]["PointWidth"]  = "0.8";
                Chart.Series[NombreSerie]["BorderColor"] = "180, 26, 59, 105";


                Chart.Series[NombreSerie].Color           = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(0));
                Chart.Series[NombreSerie].BorderDashStyle = ChartDashStyle.Solid;
                Chart.Series[NombreSerie].BorderWidth     = 2;

                // Set data points label style
                Chart.Series[NombreSerie]["BarLabelStyle"] = "Center";
                // Draw as 3D Cylinder
                Chart.Series[NombreSerie]["DrawingStyle"] = "Cylinder";

                Chart.Series[NombreSerie].XValueType = ChartValueType.String;
                Chart.Series[NombreSerie].YValueType = ChartValueType.Int32;

                int j = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    j++;
                    try
                    {
                        DataPoint dp = new DataPoint();
                        dp.AxisLabel = dr[nomColX].ToString();
                        //dp.Font = new Font("Trebuchet MS", float.Parse("8"), fontStyle);
                        dp.YValues[0] = Convert.ToDouble(dr[nomColY].ToString());
                        dp.XValue     = Convert.ToDouble(j);
                        //dp.Color = System.Drawing.ColorTranslator.FromHtml(colorfondo);

                        Chart.Series[NombreSerie].Points.Add(dp);
                    }
                    catch (Exception)
                    {
                        throw new InvalidOperationException("Fallo al ingresar puntos del Gráfico");
                    }
                }
            }
        }
        Chart.DataBind();
        Chart.Visible = true;
    }
Пример #4
0
    public static void ChartMultipleSerie(Chart Chart, DataSet dsDatos, string nomColX, string nomColY, Boolean toPrint
                                          , String Titulo
                                          , Int32 ancho
                                          , Int32 alto
                                          , TiposEnumerados.TipoGrafico tGrafico
                                          )
    {
        string colorfondo = toPrint ? "#ffffff" : "#D9E6F4"; //el color del style "fondo claro"

        //string[] colorsLegend = new string[2];
        //colorsLegend[0] = alternateColorBlues(0);
        //colorsLegend[1] = alternateColorBlues(3);

        // Set titulo
        if (Titulo.Equals(string.Empty))
        {
            Chart.Titles.Clear();
        }
        else
        {
            Chart.Titles["Titulo"].Text = Titulo;
        }
        // fin Set titulo
        Chart.BackColor = System.Drawing.ColorTranslator.FromHtml(colorfondo);

        //tamaño
        Chart.Width  = ancho;
        Chart.Height = alto;

        // Set series chart type
        if (dsDatos == null)
        {
            Chart.Series.Clear();
        }
        else
        {
            int    cantSeries = dsDatos.Tables.Count;
            string NombreSerie;
            int    i = 0;
            foreach (DataTable dt in dsDatos.Tables)
            {
                NombreSerie = dt.TableName;
                Chart.Series.Add(NombreSerie);

                //tipo de grafico
                if (tGrafico == TiposEnumerados.TipoGrafico.COLUMNA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Column;
                }
                if (tGrafico == TiposEnumerados.TipoGrafico.BARRA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Bar;
                }
                if (tGrafico == TiposEnumerados.TipoGrafico.LINEA)
                {
                    Chart.Series[NombreSerie].ChartType = SeriesChartType.Line;
                }

                #region chartarea
                //FontStyle fontStyle = FontStyle.Bold;
                //ChartArea cha = new ChartArea();
                ////cha.Name = "ChartAreaMulti";
                //cha.AxisX.IsMarginVisible = false;
                //cha.AxisX.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(0));
                //cha.AxisX.LabelStyle.Font = toPrint ? new Font("Trebuchet MS", float.Parse("5"), fontStyle) : new Font("Trebuchet MS", float.Parse("8"), fontStyle);
                //cha.AxisX.MajorGrid.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(3));

                //cha.AxisY.IsMarginVisible = false;
                //cha.AxisY.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(0));
                //cha.AxisY.LabelStyle.Font = toPrint ? new Font("Trebuchet MS", float.Parse("5"), fontStyle) : new Font("Trebuchet MS", float.Parse("8"), fontStyle);
                //cha.AxisY.MajorGrid.LineColor = System.Drawing.ColorTranslator.FromHtml(alternateColorDarkGrays(3));

                //Chart.ChartAreas.Add(cha);
                #endregion ChartArea

                Chart.Series[NombreSerie].ChartArea = "ChartArea1";
                // Set series point width
                Chart.Series[NombreSerie]["PointWidth"]  = "0.8";
                Chart.Series[NombreSerie]["BorderColor"] = "180, 26, 59, 105";
                //Chart.Series[NombreSerie].BackGradientStyle = GradientStyle.None;
                //Chart.Series[NombreSerie]["Color"] = "220, 65, 140, 240";

                if (!toPrint) //no es para impresion byn
                {
                    if (tGrafico == TiposEnumerados.TipoGrafico.LINEA)
                    {
                        Chart.Series[NombreSerie].Color = System.Drawing.ColorTranslator.FromHtml(alternateColor(i));
                    }
                    else
                    {
                        Chart.Series[NombreSerie].Color = System.Drawing.ColorTranslator.FromHtml(i == 0 ? alternateColorBlues(i) : alternateColorAmarelos(i));
                    }
                }
                else
                {
                    Chart.Series[NombreSerie].Color = System.Drawing.ColorTranslator.FromHtml(i == 0 ? alternateColorDarkGrays(i) : alternateColorLightGrays(i));
                }
                i++;
                // Set data points label style
                Chart.Series[NombreSerie]["BarLabelStyle"] = "Center";
                // Draw as 3D Cylinder
                Chart.Series[NombreSerie]["DrawingStyle"] = "Cylinder";

                Chart.Series[NombreSerie].XValueType = ChartValueType.String;
                Chart.Series[NombreSerie].YValueType = ChartValueType.Int32;


                int j = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    j++;
                    try
                    {
                        DataPoint dp = new DataPoint();
                        dp.AxisLabel  = dr[nomColX].ToString();
                        dp.YValues[0] = Convert.ToDouble(dr[nomColY].ToString());
                        dp.XValue     = Convert.ToDouble(j);
                        //dp.Color = System.Drawing.ColorTranslator.FromHtml(colorfondo);

                        Chart.Series[NombreSerie].Points.Add(dp);
                    }
                    catch (Exception)
                    {
                        throw new InvalidOperationException("Fallo al ingresar puntos del Gráfico");
                    }
                }
            }
        }
        Chart.DataBind();
        Chart.Visible = true;
    }