Pasión por la tecnología…

abril 10, 2008

SQL Server Reporting Services: Preguntas y Respuestas (I)!

Archivado en: Business Intelligence,SQL Server Reporting Services — Juan Carlos González Martín @ 22:02

Uno de los seminarios “tradicionales” que hemos impartido en el CIIN es el de SQL Server Reporting Services (SSRS). Durante estas sesiones han surgido numerosas preguntas que he tratado de responder con el tiempo, siempre desde el punto de vista práctico, y sin preocuparme mucho si la solución planteada a las cuestiones es una buena práctica o no. El caso es que llevaba tiempo con ganas de publicar estas preguntas y respuestas sobre SSRS, y aquí está el comienzo. Como varéis, he dividido las preguntas y respuestas en secciones con temáticas similares.  También espero que los cracks de SSRS den su opinión y otras alternativas posibles ;). Hoy comenzaremos con cuestiones relativas al formato de salida de un informe. Empecemos.

Cuestiones sobre el formato de salida de un informe

Esta sección está enfocada a cuestiones relativas al formato de salida del informe en cuanto a su aspecto gráfico, lograr ciertas funcionalidades a priori  no posibles, etc.

i. ¿Cómo se pueden visualizar sólo cierto número de filas de un informe?

Una forma de conseguir esto es la siguiente:

  • Insertar un nuevo grupo en el informe a través de la opción Insert Group y en la pestaña general definir la siguiente expresión de agrupamiento: =int((RowNumber(“Scope”)-1)/20).

image

  • Marcamos también Page break at end:

image

Y ya está. Más información sobre el tema en este enlace.

ii. ¿Qué manera puede haber de saber si es página par o impar para poner salto de página?

Hay una extensión de impresión pensada para este tipo de situaciones. Más información sobre esta extensión en el este enlace.

iii. ¿Cómo se pueden añadir números de página a un sub-informe?¿y cabeceras? En subreport no se pueden poner Footer ni Header por lo tanto: No se pueden usar las Globals tipo PageNumber.

Efectivamente esto es así, por lo que la única solución que veo es que por código (inline o mediante assembly) accedas a estas propiedades y las puedas utilizar en un elemento tipo Texbox de tu subreport. Sería algo tal que así:

Public Function PageNumber() as String
     Dim str as String
     str = Me.Report.Globals!PageNumber.ToString()
     Return str
End Function

Public Function TotalPages() as String
     Dim str as String
     str = Me.Report.Globals!TotalPages.ToString()
     Return str
End Function

Y esta function se usaría del siguiente modo:

=”Page ” + Code.PageNumber() + ” of ” + Code.TotalPages()

Más información en este enlace.

iV. ¿Qué es necesario para poder exportar un informe a formato Word?

Aquí la opción sería exportar el informe a Excel que si es editable y es un formato de salida más característico para volcar informes. De todos modos, si es un requisito que el informe se pueda exportar a Word, la opción pasa por que te crees una extensión de renderizado que te lo permita. En la misma:

  • Se tendría que coger el rdl de tu informe.
  • Llamar a la extensión de procesamiento de SSRS.
  • Construir el documento Word (la extensión de renderizado) en el que vas a mostrar los resultados.

Precisamente este es uno de los puntos de extensibilidad de la plataforma de SSRS. Crear la extensión no es para nada trivial, y hay productos de terceros como este. Habrá que ver con SQL Server 2008 como se comporta una de las novedades con las que viene: renderizado de informes en Microsoft Word.

Preguntas para las que no tengo todavía respuesta en esta sección

Aparte de estas cuestiones que he podido resolver de forma más o menos completa, tengo otras que todavía no he resuelto de manera clara y que os dejo aquí por si alguien en la comunidad tiene la respuesta para las mismas:

i. ¿Es posible adaptar las celdas de un informe al tamaño del contenido que tendrán? O lo que es lo mismo, ¿Se puede ajustar de manera dinámica la anchura de los controles de tipo TextBox que forman el informe?

Las celdas de un informe (controles TextBox) sólo permiten jugar visualmente con el atributo Width. Por lo tanto, parece que la única opción para este requerimiento pasa por:

  • Ver si con código in-line puedes acceder a estas propiedades utilizando ReportItems.
  • Probar lo mismo con un ensamblado.
  • La última opción es que pases del BI Management Studio y te crees una aplicación que genere el informe y tenga esa funcionalidad….

ii. ¿Cómo se puede conseguir impresión dúplex para el caso de tener sub-informes en un informe?

Tenemos un report con un subreport dentro de una lista. Si se quiere imprimir ese informe en Duplex, el problema es que los subreport pueden tener tanto páginas pares como impares.

Espero que el post os haya resultado de interés. Seguiré con esta serie de faqs próximamente.

El tema Rubric. Create a free website or blog at WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores