none
(Ayuda)Graficar consultas en un mismo chart c# RRS feed

  • Pregunta

  • Hola tengo una duda, tengo consultas que me arrojan datos iguales, en total son 3

    un average, um total, y la semana actual pero aqui viene el problema:

    me dice el error que las series ya existen son 4 series UAP1, UAP2, UAP3 Y UAP4.

    Si quito dos o las dos consulta que tienen la misma  serie me deja graficar una grafica(consulta), pero quiero graficar las 3 en el mismo chart sin poner la serie de las 3 ya que son la misma, como podria yo hacerlo? ya que una queda fija, la segunda mostrara los meses en los que hay registro por ejemplo si comence a guardar datos en octubre hasta la fecha de hoy debe mostrar solo 3 meses y asi ira creciendo y en la tercera grafica una consulta que muestra la semana actual,

    hay manera de posicionar cada una de las graficas en el eje x(1,0)del chart y asi en la que yo quiera?

    En este código pongo el método en el que grafico las dos graficas que quiero, si ejecuto me dice que la UAP YA EXISTE EN EL SERIESCOLLECTION, tengo comentada la segunda grafica y la primera si sale

      public void Aver()
            {
                con.Open();

                SqlCommand cmd = new SqlCommand("SELECT distinct UAP as AVERAGE, SUM(DUAP)/COUNT(DISTINCT MONTH(FECHA))AS AVERAGE FROM [PPMS VW] GROUP BY UAP", con);
                string[] uap = new string[4];
                int[] datos1 = new int[4];
                int contador = 0;

                SqlDataReader leer = cmd.ExecuteReader();
                while (leer.Read())
                {
                    uap[contador] = leer.GetString(0);
                    datos1[contador] = leer.GetInt32(1);
                    contador++;
                }
                leer.Close();
                Series series11 = new Series();

                for (int i = 0; i < datos1.Count(); i++)
                {

                    series11 = chart1.Series.Add(uap[i]);

                    series11.Points.AddXY("AVERAGE", datos1[i]);
                    //chart1.Legends.Clear();


                }

                //--------------------------------------------------------GRAFICA 2
                SqlCommand cmd2 = new SqlCommand("SELECT distinct UAP as AVERAGE, SUM(DUAP)/COUNT(DISTINCT MONTH(FECHA))AS AVERAGE FROM [PPMS VW] GROUP BY UAP", con);
                string[] uap2 = new string[4];
                int[] datos2 = new int[4];
                int contador2 = 0;

                SqlDataReader leer2 = cmd2.ExecuteReader();
                while (leer2.Read())
                {
                    uap2[contador2] = leer2.GetString(0);
                    datos2[contador2] = leer2.GetInt32(1);
                    contador2++;
                }
                leer.Close();

                Series series2 = new Series();
                for (int i = 0; i < datos1.Count(); i++)
                {
                    //series2 = chart1.Series.Add(uap2[i]);
                    //series2.Points.AddXY("CURRENT WEEK", datos1[i]);

                }
                Series series3 = new Series();
                int y = 1;
                foreach (float v in datos1)
                {
                    series3.Points.AddXY("currentweek", v);
                    y++;
                }

                con.Close();
            }

    Solo quiero que las dosgraficas salgan juntas y que si ya existe una serie igual pues que la omita y tome la primera ya que tienen la misma serie y grafique.


    Esto seria lo que quiero lograr(IMAGEN DE ABAJO)con cada una de las consultas:cada cuadro es una consulta diferente en un mismo chart, ya tengo las consultas pero me dice que que la serie ya existe.

                                
    • Editado BlackCode23 lunes, 2 de diciembre de 2019 23:46
    lunes, 2 de diciembre de 2019 17:33

Respuestas

  • No se si es así, pero me da la impresión que cuando agregas una serie repites el texto, puede ser? o sea ej. cuando Chart1.Series.Add(uap[i]) y en la seguiente consulta Chart1.Series.Add(uap2[i]) el string es el mismo para cada caso ej "UAP1" . Si esto es así yo optaría por agregar un integer que recorra toda la función sumando,  e identificara cada UAP en todo caso te quedaría UAP11 UAP21 ........luego UAP12 UAP22 etc. En ese caso solo deberás agreagar el Integer al Add der Chart ej: digamos que declaramos Int Srie = 0   y luego recorremos la función y en cada Reader sumamos uno a Srie ++ entonces... Chart1.Series.Add(uap1[i] + Srie) para luego Chart......Add(uap2[i] + Srie).

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    martes, 3 de diciembre de 2019 9:58
  • Hola BlackCode23

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto a continuación los siguientes enlaces en los cuales encontraras casos similares al que nos estás reportando

     

    https://docs.microsoft.com/es-es/aspnet/web-pages/overview/data/7-displaying-data-in-a-chart

     

    https://social.msdn.microsoft.com/Forums/es-ES/0cb697ce-abf1-4926-a6c1-e06c7b3a3ac7/graficos-charts?forum=vbes

     

    https://social.msdn.microsoft.com/Forums/es-ES/9a5e4364-b859-42fe-8164-29c32c1df717/espacio-de-grafico-chart-desperdiciado?forum=vcses

     

    Por favor déjame saber si puedo ofrecerte una mejor respuesta

    Gracias por usar los foros de MSDN.

     

    Diana Acuña

     

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    La verdad no me funciono, ya he visitado esas paginas pero ninguna tiene lo que que quiero, solo quiero poner tres consultas en un mismo chart, en un orden asi como puse en la imagen.
    lunes, 2 de diciembre de 2019 23:52
  • He resuelto mi problema, tenia que poner en el for cada una de las conexiones para que se ejecuten.
    martes, 3 de diciembre de 2019 17:26

Todas las respuestas

  • Hola, un ejemplo aunque esta en visual basic podrías pasarlo a c#

    espero ayude

    graficos charts


    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú

    lunes, 2 de diciembre de 2019 22:30
  • La liga que dejaste me manda un sitio de muebles.
    lunes, 2 de diciembre de 2019 23:02
  • Hola BlackCode23

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto a continuación los siguientes enlaces en los cuales encontraras casos similares al que nos estás reportando

     

    https://docs.microsoft.com/es-es/aspnet/web-pages/overview/data/7-displaying-data-in-a-chart

     

    https://social.msdn.microsoft.com/Forums/es-ES/0cb697ce-abf1-4926-a6c1-e06c7b3a3ac7/graficos-charts?forum=vbes

     

    https://social.msdn.microsoft.com/Forums/es-ES/9a5e4364-b859-42fe-8164-29c32c1df717/espacio-de-grafico-chart-desperdiciado?forum=vcses

     

    Por favor déjame saber si puedo ofrecerte una mejor respuesta

    Gracias por usar los foros de MSDN.

     

    Diana Acuña

     

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    lunes, 2 de diciembre de 2019 23:48
    Moderador
  • Hola, un ejemplo aunque esta en visual basic podrías pasarlo a c#

    espero ayude

    graficos charts


    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú

    He puesto una imagen y codigo con lo que quiero llegar hacer, a ver si me explico mejor.
    lunes, 2 de diciembre de 2019 23:48
  • Hola BlackCode23

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto a continuación los siguientes enlaces en los cuales encontraras casos similares al que nos estás reportando

     

    https://docs.microsoft.com/es-es/aspnet/web-pages/overview/data/7-displaying-data-in-a-chart

     

    https://social.msdn.microsoft.com/Forums/es-ES/0cb697ce-abf1-4926-a6c1-e06c7b3a3ac7/graficos-charts?forum=vbes

     

    https://social.msdn.microsoft.com/Forums/es-ES/9a5e4364-b859-42fe-8164-29c32c1df717/espacio-de-grafico-chart-desperdiciado?forum=vcses

     

    Por favor déjame saber si puedo ofrecerte una mejor respuesta

    Gracias por usar los foros de MSDN.

     

    Diana Acuña

     

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    La verdad no me funciono, ya he visitado esas paginas pero ninguna tiene lo que que quiero, solo quiero poner tres consultas en un mismo chart, en un orden asi como puse en la imagen.
    lunes, 2 de diciembre de 2019 23:52
  • No se si es así, pero me da la impresión que cuando agregas una serie repites el texto, puede ser? o sea ej. cuando Chart1.Series.Add(uap[i]) y en la seguiente consulta Chart1.Series.Add(uap2[i]) el string es el mismo para cada caso ej "UAP1" . Si esto es así yo optaría por agregar un integer que recorra toda la función sumando,  e identificara cada UAP en todo caso te quedaría UAP11 UAP21 ........luego UAP12 UAP22 etc. En ese caso solo deberás agreagar el Integer al Add der Chart ej: digamos que declaramos Int Srie = 0   y luego recorremos la función y en cada Reader sumamos uno a Srie ++ entonces... Chart1.Series.Add(uap1[i] + Srie) para luego Chart......Add(uap2[i] + Srie).

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    martes, 3 de diciembre de 2019 9:58
  • No se si es así, pero me da la impresión que cuando agregas una serie repites el texto, puede ser? o sea ej. cuando Chart1.Series.Add(uap[i]) y en la seguiente consulta Chart1.Series.Add(uap2[i]) el string es el mismo para cada caso ej "UAP1" . Si esto es así yo optaría por agregar un integer que recorra toda la función sumando,  e identificara cada UAP en todo caso te quedaría UAP11 UAP21 ........luego UAP12 UAP22 etc. En ese caso solo deberás agreagar el Integer al Add der Chart ej: digamos que declaramos Int Srie = 0   y luego recorremos la función y en cada Reader sumamos uno a Srie ++ entonces... Chart1.Series.Add(uap1[i] + Srie) para luego Chart......Add(uap2[i] + Srie).

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    Digamos que las series son las mismas solo llega del uap1 - uap4 no tiene que llegar a ser hasta UAPn, si se repite por eso me dice que la seriecollection esta repetida.

    Si alguien sabe una mejor manera de graficar mis consultas o si sabe como evitar que se repitan las series y grafique los 3 se lo agradecería mucho.

    martes, 3 de diciembre de 2019 14:21
  • He resuelto mi problema, tenia que poner en el for cada una de las conexiones para que se ejecuten.
    martes, 3 de diciembre de 2019 17:26