Siguiendo con la serie de posts sobre creación de informes con SQL Server Reporting Services 2008 (SSRS 2008) cuyo último capítulo tenéis disponible en este enlace, en esta ocasión vamos a ver como crear un report model utilizando para ello el diseñador de modelos de informes incluido en el BI Management Studio de SSRS. Además de este objetivo principal, trataremos de comprender el concepto y uso de los report models de SSRS como fuentes para la creación de informes.
Empezando con los report models de SSRS
Antes de empezar, es importante tener claro que es un modelo de informe. Podemos definirlo como una abstracción “amigable” de una estructura de datos de SQL Server en la que se describen tablas, columnas, relaciones entre tablas, pero escondiendo la BD subyacente. Por lo tanto, un modelo de informe va a contener una jerarquía de objetos cuyo cometido es representar estructuras de datos desde un punto de vista de negocio. Los pasos necesarios para la creación del informe son:
- Definir un origen de datos para el modelo de informe.
- Crear una vista de datos sobre el origen de datos.
- Definir el modelo de informe a partir de los anteriores.
A los que ya habéis creado report models de SSRS, todo lo que se explique en este post os sonará. Esto es lógico, porque la creación de report models en SSRS 2008 no ha variado con respecto a SSRS 2005.
Definición del origen de datos para el report model
Abrimos BI Management Studio y creamos un nuevo proyecto de BI de tipo Report Model Project. Le denominamos Reseller Sales Report Model. Una vez creado el proyecto, en el explorador de soluciones veremos que aparece la siguiente estructura de carpetas (vacía). Lo primeo que vamos a hacer es crear un origen de datos para el modelo de informe. Hacemos clic con el botón derecho del ratón en la carpeta Data Sources y luego Add New Data Source lo que iniciará el correspondiente asistente para crear el origen de datos.
- Pulsamos Next.
- En la siguiente ventana pulsamos New…
- En la ventana de configuración de la conexión a la BD especificamos los parámetros de la siguiente figura:
- Server name: localhost.
- BD: rs2005sbsDW (en mi caso).
- Pulsamos Next.
- A continuación Finish, y ya tenemos creado el origen de datos que necesitamos.
Creación de una vista de datos
Una vez creado el origen de datos, vamos a crear una vista de datos sobre él. Para ello, en el explorador de solucionamos seleccionamos la carpeta Data Source Views, hacemos clic con el botón derecho del ratón y luego pulsamos Add New Data Source View lo que abrirá el correspondiente wizard:
-
Pulsamos Next en las dos primeras pantallas del wizard (la segunda nos permite especificar el origen de datos a partir del que definiremos la vista, y que en este caso es el creado en el apartado anterior).
-
En la pantalla Select Tables and Views seleccionamos las siguientes tablas: DimGeography, DimProduct, DimReseller, DimSalesTerritory, DimTime y FactResellerSales. Las añadimos a la lista Included Objects List. Pulsamos Next.
-
En la ventana siguiente pulsamos Finish con lo que el wizard se cerrará y se creará la vista de datos.
-
Abrimos la vista de datos en modo diseño para inspeccionarla.
Para facilitar la creación de informes al usuario final, el diseñador de informes nos permite crear una nueva tabla lógica a partir de la información de varias tablas de la vista que tienen una correspondencia con tablas a nivel de la BD. Esta tabla lógica se denomina Named Query, y nos permite consolidar información de varias tablas. Para crearla:
-
Seleccionamos la tabla DimProduct de la vista de datos, hacemos clic con el botón derecho del ratón y luego seleccionamos la opción Replace Table -> With New Named Query.
-
En la ventana que se abre, pulsamos el botón Add Table y seleccionamos las tablas DimProductCategory y DimProductSubCategory.
-
Tras pulsar el botón Add, las dos tablas seleccionadas se han añadido a la sección Query Definition de la ventana Create Named Query. En las tablas añadidas, marcamos los campos ProductSubCategoryName (de DimProductSubCategory) y ProductCategoryName ( de DImPorductCategory).
-
Pulsamos OK, y los nuevos campos seleccionados aparecen añadidos a la tabla DimProduct de la vista de datos.
Finalmente, para finalizar la vista de datos, creamos la clave primaria para la tabla FactResellersSales (que no tiene) de manera que incluya los campos mostrados en la figura (que contengan la terminación Key). Hacemos clic con el botón derecho del ratón y luego pulsamos Set Logical Primary Key.
Creación del Report Model
Como hemos hecho con los elementos anteriores, seleccionamos en este caso la carpeta Report Models en el explorador de soluciones, hacemos clic con el botón derecho del ratón y luego seleccionamos Add New Report Model. De este modo se iniciará el asistente correspondiente a la creación de modelos de informes.
-
Pulsamos Next y Next (en la segunda pantalla aparecerá seleccionada por defecto la vista que acabamos de crear).
-
En la pantalla que se abre se muestran las reglas que se seguirán para la creación del modelo de informe. Dejamos marcadas las opciones que aparecen por defecto y pulsamos Next.
-
En la siguiente ventana marcamos la opción Use Current Model Statistics Stored In The Data Source View y pulsamos Next.
-
En la siguiente ventana especificamos Reseller Sales como nombre del modelo y pulsamos Run para que se genere el informe.
- Pulsamos Finish y habremos finalizado el proceso de creación del modelo de informe. Lo revisamos.
De esta forma ya tenemos construida una primera versión de nuestro modelo a partir del cual construir informes utilizando Report Builder 1.0 o 2.0. Sobre este informe podemos realizar funciones de reorganización de datos, limpieza de datos innecesarios, aplicar formato a los datos, añadir perspectivas o incluso nuevos campos. Una vez realizadas esta modificaciones, no tendríamos más que hacer un deploy del modelo al report server y ya lo tenemos listo para poder crear informes…pero esto lo dejamos para el próximo post. Como siempre, espero que el post os haya resultado interesante.