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.
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:
|
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.
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.
- 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.
- 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.
- 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.
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:
- La url del servidor: http://localhost:8080/reportserver
- La carpeta del report server dónde vamos a publicar el informe: /
- El nombre del informe.
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.
Y este sería el resultado en el Report Manager:
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.