SQL Server 2008: Creando informes con SSRS 2008 (I)!

Después del primer post sobre algunas de las novedades que vendrán con SQL Server 2008, estos días he seguido evaluando y probando nuevas funcionalidades para el seminario de la nueva versión del gestor de base de datos de Microsoft. Esta vez le ha tocado el turno a SQL Server Reporting Services 2008 (SSRS 2008) y a la nuevo Report Designer. Empecemos.

Nota: Todas las pruebas las he realizado con la CTP6 de SQL Server 2008.

Comenzando con SSRS 2008

Lo primero que vamos a hacer es introducirnos en el nuevo entorno de diseño de informes de SSRS 2008: el Report Designer. Para acceder al nuevo diseñador, cuyo look & feel, es el de la suite de Microsoft Office 2007: Inicio -> Todos los programas -> Microsoft SQL Server 2008 -> Reporting Services -> Report Designer Preview.

image

Tras realizar un breve recorrido por las opciones de menú disponibles en esta preview (recordar que estamos con la CTP 6), lo primero que tenemos que hacer para crear un informe es definir la correspondiente fuente de datos en la que vamos a basar nuestro informe:

  • Nuestra fuente de datos va a ser la base de datos (BD) Adventure Works.
  • Para crear una nueva fuente de datos, hacemos clic sobre el enlace que aparece en la superficie de diseño del informe Click here to create a data source and data set for your report.
  • De este modo, se abrirá un asistente que nos irá guiando en el proceso de creación de la fuente de datos y el dataset en el que basaremos nuestro informe. En la primera pantalla del asistente especificamos los siguientes parámetros:
    • El nombre del data source: dsAdventureWorks.
    • El tipo de conexión: dejamos la que viene por defecto (Microsoft SQL Server).
    • La cadena de conexión, que configuramos a través del botón Edit. En la misma configuraremos los siguientes parámetros:
      • Nombre del servidor: localhost.
      • Mecanismo de acceso al servidor: Wndows Authentication.
      • Base de datos: AdventureWorks
  • Tras testear la conexión, pulsamos OK y a continuación el botón Next del asistente. De este modo se abrirá la ventana del Query Designer en la que construiremos la siguiente consulta:
image image

SELECT

  PC.Name AS ProductCategory,PS.Name AS SubCategory,

  DATEPART(yy, SOH.OrderDate) AS OrderYear,

  ‘Q’ + DATENAME(qq, SOH.OrderDate) AS OrderQtr,

  SUM(SOD.UnitPrice * SOD.OrderQty) AS SalesAmount,

  Sales.SalesTerritory.[Name] AS Territory,

  Sales.SalesTerritory.[Group] AS Region

  FROM

                 Production.ProductSubcategory AS PS JOIN

                 Sales.SalesOrderHeader AS SOH JOIN

                 Sales.SalesOrderDetail AS SOD ON SOH.SalesOrderID =

                 SOD.SalesOrderID JOIN

                 Production.Product AS P ON SOD.ProductID = P.ProductID ON

                 PS.ProductSubcategoryID = P.ProductSubcategoryID JOIN

                 Production.ProductCategory AS PC ON PS.ProductCategoryID =

                 PC.ProductCategoryID JOIN

                 Sales.SalesTerritory ON SOH.TerritoryID =

                 Sales.SalesTerritory.TerritoryID

  WHERE

                 (SOH.OrderDate BETWEEN ‘1/1/2003′ AND ’12/31/2004’)

  GROUP BY

                 DATEPART(yy, SOH.OrderDate),PC.Name,

                 PS.Name,’Q’ + DATENAME(qq, SOH.OrderDate),

                 PS.ProductSubcategoryID,

                 Sales.SalesTerritory.Name,Sales.SalesTerritory.[Group]

  • Probamos la consulta para ver qué resultados produce.
  • Pulsamos Next y ya tenemos listo el dataset para usarlo en nuestro informe.
image image

Diseñando el informe

Una vez que ya tenemos configurado todo lo necesario para crear un primer informe, vamos a diseñarlo:

  • Desde el menú Insert seleccionamos una región tipo Matrix y hacemos clic sobre la misma, de manera que se insertará en la superficie de diseño del informe.
  • Situamos el control Matrix en el centro del área de diseño utilizando el icono de manejo (icono de cuatro flechas).
  • Especificamos el área de datos a través de los nuevos smart tags contextuales que han sido añadidas a la superficie de diseño. A través de estos smart tags añadimos el campo SalesAmount en la zona Data.

image

image

  • Otra de las novedades de SSRS 2008 es la relativa a como añadir niveles de agrupación a un informe. Es tan sencillo como seleccionar el campo del dataset que vamos a utilizar y arrastrarlo a la sección Row Groups que aparece bajo la superficie de diseño del informe.
  • Repetimos la operación añadiendo en esta ocasión el campo SubCategory, que insertaremos justo debajo de ProductCategory.

  • De la misma forma que hemos especificado el agrupamiento por filas, vamos a realizar el agrupamiento por columnas. Para ello:
    • Arrastramos el campo Region en el área Column Groups.
    • Repetimos el proceso con el campo OrderYear.
image image
  • Lo siguiente que vamos a hacer es añadir Sub-Totales al informe. Para ello, seleccionamos el campo SalesAmount del control Matrix, hacemos clic con el botón derecho y seleccionamos la opción Add Total -> Row.
  • Añadimos un nuevo Sub-Total, pero a nivel de columna. Para ello, seleccionamos el campo SalesAmount del control Matrix, hacemos clic con el botón derecho y seleccionamos la opción Add Total -> Column.
  • Lo siguiente que vamos a hacer es añadir Totales al informe. Para ello, seleccionamos el campo ProductCategory del control Matrix, hacemos clic con el botón derecho y seleccionamos la opción Add Total -> After.
image image
  • Repetimos el proceso, pero seleccionando en esta ocasión el campo Region, hacemos clic con el botón derecho y seleccionamos la opción Add Total -> After.
  • Para finalizar el informe, utilizamos las herramientas disponibles en el Ribbon Home para darle un aspecto más visual. Por ejemplo, el informe en vista de diseño podría quedar de la forma que se ve en la siguiente figura.
  • Para previsualizar el informe, simplemente pulsamos el botón Preview.
image image

Publicando el informe

vamos al menú de opciones y pulsamos Publish. Aparecerá la pantalla de configuración de publicación del informe. En dicha ventana especificaremos los parámetros de publicación en el servidor:

Sin más, pulsamos OK y una vez que finalice el proceso de publicación, abrimos el navegador y especificamos la url del report manager para previsualizarlo.

image image

Y este sería el resultado en el Report Manager:

image

image

Y esto es todo de momento. En próximos post veremos más novedades de SSRS como la funcionalidad Tablix, los nuevos controles gráficos o como se realiza la gestión del Report Manager fuera de IIS. Espero que el post os haya resultado interesante.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

14 comentarios en “SQL Server 2008: Creando informes con SSRS 2008 (I)!”

  1. Buenas Fran…la verdad es que la nueva interfaz del Report Designer (a ver como queda finalmente) está muy bien, parece que está en Word o Microsoft PowerPoint. También es curiosa la no dependencia del IIS.

    JC’s

  2. Pues la verdad es que sí, es muy chula, aunque sólo tuve la oportunidad de verla una vez. A ver si me la instalo pronto y veo que tal funciona todo :D(junto con tus post claro ;)).

    También funciona la forma en que se ejecutan los informes locales en la versión 2008. También quiero ver como van. A ver si saco tiempo!!

    Un Saludo!!

  3. Buenas de nuevo Fran…pues sí que está chulo, aunque creo que todavía tienen que pulir algunas cosillas en el nuevo Report Designer.

    Un saludo

    JC’s

  4. Juan, Muy buen post no he tenido la posibilidad aún de trabjar con SSRS 2008. Mira tengo un problemita con SSRS 2005 resulta que tengo un reporte matricial y le quiero colocar encabezado a las filas por lo visto no se puede? ¿SSRS 2008 lo permite?

  5. Hola Matias,
    Me puedes concretar un poco más que quieres decir con poner encabezado a las filas…de todos modos piensa que en SSRS 2008, la región Matrix sigue comportándose como la que tienes en SSRS 2005. La gran diferencia aquí es que tienes la posibilidad de configurarla en modo Tablix que une lo mejor de Matrix y Table y que si permie lo que necesitas. Espero publicar un artículo sobre Tablix próximamente.

    Un saludo

    JC’s

  6. Juan, Bien si mira las imagen “image_16” lo que hace es colocar el campo ProductCategory en dentro de “Row Groups”.
    Por lo que puedo apreciar te coloca el nombre del campo arriba como encabezado. Eso es lo que no puedo hacer en SSRS 2005.
    Otra cosa puedo hacer un link de mi blog al tuyo?

  7. Hola Matias,
    Veamos, el ejemplo de informe que hago en el artículo es tipo Table y lo que aparece en la Figura image_16 ya lo tenías en SSRS 2005 con los Grouping Groups. Ahora han cambiado la forma de presentar esta información, pero ya lo teníamos antes…evidentemente, así ahora queda más claro. Entonces, si con tu primera pregunta te referías a poner cabeceras en los agrupamientos de una región Matrix, esto se puede hacer tanto en SSRS 2005 como en SSRS 2008.

    Por supuesto que pudes poner un link a nuestro blog.

    Un saludo

    JC’s

  8. Juan, Disculpa pero lo que dice en tu flog es “Desde el menú Insert seleccionamos una región tipo Matrix” y los tipos de reporte que conozco es matricial y tabular. Por ende cuando creas un reporte matricial http://msdn.microsoft.com/es-es/library/ms157334.aspx. Te crea la “esquina” que no puedes colocar el nombre de los campos lo que trato de preguntar si en ssrs 2005 0 ssrs 2008 se puede?

  9. Perdona Matias,
    Se nota que ya es hora de que me vaya a dormir…efectivamente, el informe del post es de tipo matricial. Respecto a la funcionalidad que necesitas, tienes toda la razón (y el enlace que pones así lo detalla), en SSRS 2005 no se puede hacer…¿se puede hacer en SSRS 2008? Definitivamente sí, con la funcionalidad Tablix…date una vuelta por el post que acabo de publicar ;).

    Un saludo y disculpa por el equívoco. Creo que me toca descansar.

    Un saludo

    JC’s

  10. Juan, Gracias por tú respuesta y preocupación. descanza mientras puedas, mira que en nuestro rubro por lo general se puede poco.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *