none
Dev Xpress Grafica de pastel no me aparece la grafica RRS feed

  • Pregunta

  • Que tal, tengo el siguiente codigo, este codigo es para llenar una grafica de pastel 3d de devxpress:

    void casahdensidad()
            {

                SqlConnection conexion = new SqlConnection(cadena);
                SqlCommand SqlCom = new SqlCommand(cadena, conexion);

                try
                {
                    SqlCom.CommandType = CommandType.StoredProcedure;
                    SqlCom.CommandText = "GraficaChDensidad";

                    SqlCom.Connection.Open();

                    SqlDataReader reader = SqlCom.ExecuteReader();

                    //SqlDataAdapter da_chmun = new SqlDataAdapter(SqlCom);
                    DataTable dt_chmun = new DataTable();

                    dt_chmun.Columns.Add("rangos", typeof(string));
                    dt_chmun.Columns.Add("valores", typeof(Int32));
                    dt_chmun.Rows.Add("0-25 nna", int.Parse(Convert.ToString(reader["nna"])));
                    dt_chmun.Rows.Add("26-50 nna", int.Parse(Convert.ToString(reader["nnaa"])));
                    dt_chmun.Rows.Add("51-75 nna", int.Parse(Convert.ToString(reader["nnaaa"])));
                    dt_chmun.Rows.Add("76-100 nna", int.Parse(Convert.ToString(reader["nnaaaa"])));
                   
                    //da_chmun.Fill(dt_chmun);               
                    //Se especifica la fuente de datos para la rafica
                    //chartdensidadgraf.DataSource = dt_chmun;

                    //Creamos las series de la grafica y le especificamos los datos de la fuente que la alimentaran
                    Series seriegraficadens = new Series("NNA", ViewType.Pie3D);
                    seriegraficadens.DataSource = dt_chmun;
                    seriegraficadens.ArgumentDataMember = "rangos";
                    seriegraficadens.ValueDataMembers.AddRange(new string[] { "valores" });                           

                    //Añadimos la serie a la grafica
                    chartdensidadgraf.Series.Add(seriegraficadens);

                    //Especificamos el titulo de la grafica
                    ChartTitle titulografica = new ChartTitle();
                    titulografica.Text = "Densidad de Población";
                    chartdensidadgraf.Titles.Add(titulografica);

                    seriegraficadens.PointOptions.PointView = PointView.ArgumentAndValues;

                    //Especificamos como se mostraran los datos en la serie y los datos
                    seriegraficadens.PointOptions.PointView = PointView.Values;
                    seriegraficadens.LegendPointOptions.PointView = PointView.Argument;
                    seriegraficadens.PointOptions.ValueNumericOptions.Format = NumericFormat.Number;

                    //Definimos la posicion de los labels en la grafica
                    ((Pie3DSeriesLabel)seriegraficadens.Label).Position = PieSeriesLabelPosition.TwoColumns;
                    ((Pie3DSeriesLabel)seriegraficadens.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
                    ((Pie3DSeriesLabel)seriegraficadens.Label).ResolveOverlappingMinIndent = 5;

                    //Especificamos el angulo de vision de la grafica
                    ((SimpleDiagram3D)chartdensidadgraf.Diagram).RotationType = RotationType.UseAngles;
                    ((SimpleDiagram3D)chartdensidadgraf.Diagram).RotationAngleX = -60;

     

                    SqlCom.Connection.Close();
                    SqlCom.Dispose();


                }
                catch
                {
                    //ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "alert('Fallo en la conexión');", true);

                    SqlCom.Connection.Close();
                    SqlCom.Dispose();
                }
            }

     

    Me marca un error dice que no hay datos donde se encuentra el primer reader, ya verifique la consulta y si trae datos, pero no se si es correcta la forma en la que planteo el llenado.

     

    Cualquier ayuda lo agradecere bastante.

     

    martes, 13 de diciembre de 2011 21:24

Todas las respuestas