none
Tabla con # de columnas dinámicas RRS feed

  • Pregunta

  • Hola foro,

    Antes que nada, se que esta pregunta tiene algo que ver con Crystal Reports, pero ya la realice en la categoría de Crystal Reports para Visual Studio y no me han podido colaborar ....

    Entonces por eso decidí hacerla nuevamente en esta categoría (ya que no encontré como cambiarla) que es un poco mas "Visitada" por decirlo de alguna manera,

    Estoy trabajando con Visual Studio 2010, Crystal reports versión 13.0 y SQL Server 2008 ....

    Como orígen de datos para mis reportes uso DataSet tipados y luego acomodo los campos en una tabla (de # columas fijas), asigno un origen de datos y !Eureka¡ genero el informe sin problemas !

    Resulta que necesito generar un reporte donde se visualice la información en una tabla pero que desconocemos el numero de columnas que se van a visualizar; es decir, que como puede ser una tabla con dos columnas puede ser una tabla con diez :/

    No se si esto se pueda hacer y menos si es en tiempo de diseño o de ejecución, no se !

    Cualquier comentario es valido, muchas gracias !


    Un saludo, Cristian Pérez

    martes, 19 de junio de 2012 12:30

Respuestas

  • Bueno,

    Al fin puede lograrlo, como mencione anteriormente se puede hacer con tablas de referencia cruzadas, sin embargo no es corto ni sencillo, ya que por decirlo de alguna manera se debe de "Preparar" la información de una manera distinta; es decir, nos tenemos que olvidar de que por cada registro que yo tenga en mi origen de datos se va a generar una fila de información en mi reporte (que es la manera convencional); ya que para que se genere una fila en nuestro reporte de columnas dinámicas debemos de tener en el origen de datos tantos registros como # columnas que se van a "crear" dinámicamente .........

    Es un poco enredado entender el concepto e implementación con esa corta explicación, por eso les dejo estas direcciones donde pueden encontrar información general sobre el tema:

    Crear tablas de referencias cruzadas

    Asistente de informe de tablas cruzadas 

    Y esto se que también lo van a necesitar:

    Usar totales acumulados en tablas de referencias cruzadas

    Gracias por los comentarios !


    Un saludo, Cristian Pérez



    jueves, 21 de junio de 2012 15:30

Todas las respuestas

  • No sé si se puede hacer con Crystal, pero con Reporting Services podrías conseguirlo definiendo un reporte que use una región de datos de tipo Matrix. Siempre que elijas bien los datos que van al DataSet y que "mapees" correctamente los datos del dataset a la matriz, te saldría el informe con un número de columnas variable. Pero ya te digo que estoy pensando en un informe tipo .rdlc y no en un .rpt, no sé si con estos últimos se dispone de una funcionalidad similar.

    miércoles, 20 de junio de 2012 6:01
  • Con Crystal Reports no se puede, el número y la definición de los campos debe conocerse de antemano.

    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    miércoles, 20 de junio de 2012 9:06
  • Gracias alberto,

    Leí algo que es como el "equivalente" a la región de datos tipo Matrix de Reporting Services en Crystal, se llama "Tabla de referencias cruzadas" pero según lo que he leído se deben hacer ciertas modificaciones en las consultas SQL que retornan la información a visualizar ......

    Voy a realizar algunas pruebas y les cuento,

    Muchas gracias por el interés,


    Un saludo, Cristian Pérez

    miércoles, 20 de junio de 2012 12:34
  • Bueno,

    Al fin puede lograrlo, como mencione anteriormente se puede hacer con tablas de referencia cruzadas, sin embargo no es corto ni sencillo, ya que por decirlo de alguna manera se debe de "Preparar" la información de una manera distinta; es decir, nos tenemos que olvidar de que por cada registro que yo tenga en mi origen de datos se va a generar una fila de información en mi reporte (que es la manera convencional); ya que para que se genere una fila en nuestro reporte de columnas dinámicas debemos de tener en el origen de datos tantos registros como # columnas que se van a "crear" dinámicamente .........

    Es un poco enredado entender el concepto e implementación con esa corta explicación, por eso les dejo estas direcciones donde pueden encontrar información general sobre el tema:

    Crear tablas de referencias cruzadas

    Asistente de informe de tablas cruzadas 

    Y esto se que también lo van a necesitar:

    Usar totales acumulados en tablas de referencias cruzadas

    Gracias por los comentarios !


    Un saludo, Cristian Pérez



    jueves, 21 de junio de 2012 15:30
  • Bueno,

    Al fin puede lograrlo, como mencione anteriormente se puede hacer con tablas de referencia cruzadas, sin embargo no es corto ni sencillo, ya que por decirlo de alguna manera se debe de "Preparar" la información de una manera distinta; es decir, nos tenemos que olvidar de que por cada registro que yo tenga en mi origen de datos se va a generar una fila de información en mi reporte (que es la manera convencional); ya que para que se genere una fila en nuestro reporte de columnas dinámicas debemos de tener en el origen de datos tantos registros como # columnas que se van a "crear" dinámicamente .........

    Es un poco enredado entender el concepto e implementación con esa corta explicación, por eso les dejo estas direcciones donde pueden encontrar información general sobre el tema:

    Crear tablas de referencias cruzadas

    Asistente de informe de tablas cruzadas 

    Y esto se que también lo van a necesitar:

    Usar totales acumulados en tablas de referencias cruzadas

    Gracias por los comentarios !


    Un saludo, Cristian Pérez



    bien


    Carlos7

    viernes, 23 de noviembre de 2012 17:24
  • Puedo asegurar que con una tabla temporal, a la cual le agregas columnas con alter table, es más versátil y mas rápido. No lo he hecho con reporte de crystal pero con otras salidas.

    Mira a lo que me refiero: archivo1 y archivo2

    Estos reportes los creo de esa manera, alterando la cantidad de columnas, porque cada ciudad y cada centro de cada ciudad, tiene n mesas...

    • Editado guarracuco viernes, 23 de noviembre de 2012 21:01
    viernes, 23 de noviembre de 2012 20:53