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; } }
protected void ClickearonBotonGrafico(object sender, TiposEnumerados.TipoGrafico iTipoGrafico) { SetGraficos(iTipoGrafico); }
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; }
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; }