Share via


Minidemo 1: Overview de Reporting Services 2005

Primer guión de una serie que les llamaremos Minidemos. Cada minidemo demostrará un aspecto en concreto de un producto o será un rápido overview de sus principales características. Todas las minidemos funcionarán con los datos de ejemplo incluidos en los productos tratados.

En esta primera minidemo veremos un overview de Reporting Services. El objetivo es mostrar rápidamente las principales caracteristicas del servidor de informes incluido en SQL Server 2005.

- Abrir IE e ir al servidor de informes (normalmente https://servername/reports). En esta pantalla explicaremos las características de la interfaz web:

- Los informes se organizan en carpetas, al igual que lo hacen los ficheros en directorios en el sistema de ficheros.
- La interfaz web no es más que un ejemplo de una aplicación renderizando los contenidos del servidor de informes. Cualquiera puede generarse su propia interfaz.

- Hacer click en la carpeta “Adventure Works”. Dentro de esta carpeta nos encontramos con 7 informes de ejemplo creados por Microsoft.

Seleccionar el informe llamado “Product Line Sales”

- Explicar la funcionalidad de los parámetros. En este informe la lista de valores del parámetro “Subcategory” depende del valor seleccionado en el parámetro “Category”. Demostraremos la funcionalidad cambiando el valor en el parámetro “Category” y mostrando los valores diferentes en “Subcategory” así como la funcionalidad de selección múltiple.
- Volveremos a los valores originales: Category = Bikes, Subcategory = Road Bikes.
- Abrir los controles de calendario y mostrar la funcionalidad del control. Ya no es necesario entrar una fecha a mano o extender RS para soportar un control de calendario. Ahora ya viene incluido.
- Por último hablar de las características de paginación (no aplicables a este informe), zoom, búsqueda, exportación (podemos hacer la prueba de exportar a PDF) e impresión (nuevo control propio de RS que mejora la impresión respecto a la impresión normal de IE)

- Mostrar y comentar el informe completo. Hacer click en “Campbell, David”. Esto nos llevará al informe “Employee Sales Summary”, demostrando así la posibilidad de linkar diferentes informes entre sí.
 
Employee Sales Summary

 - Este informe muestra las ventas realizadas por empleado. Al final del informe se nos muestra una tabla con 3 columnas (Order Number, Product Category, Sales). Características de la tabla:

- La columna Order Number está enlazada con el informe “Sales Order Details”
- Cada orden/pedido está agrupada por categoría de producto y contiene un subtotal
- Al final de la tabla tenemos un total de todos los pedidos.

Este será el informe que generaremos en nuestra demostración.
 
SQL BI Development Studio

 - Abrimos la solución de ejemplo de Adventure Works, normalmente la encontraremos en la ruta C:\Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports

- Seleccionamos el informe “Employee Sales Summary”. Aquí mostraremos las diferentes partes de las que está compuesto un informe:

- Pestaña Data: Consultas a origenes de datos que contruyen datasets. Utilizando estos datasets mostraremos datos en los informes.
- Pestaña Layout: Diseñador gráfico de informes. Mostrar la lista de controles disponibles para formatear los datos (Toolbox a la izquierda de la pantalla)
- Peestaña Preview: El desarrollador puede ver el aspecto final del informe sin necesidad de hacer un deploy a un servidor de Reporting Services fuera de su máquina.
 
Creación de nuestro informe de ejemplo

En la misma solución creamos un nuevo informe sin utilizar el wizard (botón derecho sobre Reports. Add -> New Item. Seleccionar de tipo Report).

- El primer paso será crear un nuevo dataset. Este dataset será el que alimentará de datos nuestra tabla objetivo:

- En la pestaña Data  Desplegable Dataset: Seleccionamos <New Dataset>
- Nombre: EmpSalesDetails
- Query: Copiaremos la utilizada en el dataset EmpSalesDetails del informe “Employee Sales Summary” de la misma solución.
- Ejecutaremos la query para comprobar su funcionamiento. Utilizaremos los siguiente valores como parámetros:
       o Report Year = 2003
       o Report Month = 12
       o EmpID = 283 (ID para David Campbell)

- El siguiente paso será crear una tabla en la pestaña Layout y utilizar los campos creados en el dataset

- En la pestaña Layout --> Toolbox: Arrastramos un objeto de tipo Table al área principal de diseño.
- Escribimos en la casillas superiores Sales Order, Product Category y Sales respectivamente
- En las casillas a mitad de tabla arrastramos los siguientes campos del dataset:
       o SalesOrderNumber en la columna Sales Order
       o ProdCat en la columna Product Category
       o Sales en la columna Sales

En este punto haremos el primer preview del informe. A partir de ahora iremos retocando el informe hasta darle el aspecto y la funcionalidad deseada.
 
Parámetros

Para facilitar la ejecución del informe por parte del usuario daremos valores a los parámetros para que el usuario seleccione un valor, en lugar de introducirlo a mano.

Volvemos a la pestaña Data:

- En el menu superior de Visual Studio seleccionamos Report  Report Parameters
- Para el parámetro Report Year introduciremos los valores 2003, 2002 y 2001 (con identica etiqueta) en el apartado Available values
- Para el parámetro Report Month introduciremos los valores de ejemplo 12, 11 y 10 (con las etiquetas Diciembre, Novimbre y Octubre respectivamente)

Para el parámetro EmpID en lugar de proporcionar los valores a mano como en los anteriores haremos una consulta a la base de datos y alimentaremos los valores y etiquetas con los registros devueltos.
 
- Hacemos click en Ok para salir de la pantalla de Report Parameters
- Crearemos un nuevo Dataset con el nombre SalesEmp y copiaremos la query del dataset del mismo nombre del informe “Employee Sales Summary”
        o Esta query devuelve dos columnas, la primera con el ID del empleado y la segunda con el nombre y apellidos.

Report Parameters (Menu superior: Reports  Report Parameters)

- Seleccionar EmpID
- En el apartado “Available Values” seleccionar “From query”
- Configurar los diferentes campos con los siguientes valores:
       o Dataset = SalesEmp
       o Value field = EmployeeID
       o Label field = Employee

Agruapaciones, totales y subtotales

En este paso vamos a configurar los datos de la tabla para que estén agrupados de la manera correcta para obtener el resultado final deseado.

- Vamos a la pestaña Layout

Agrupaciones

- Botón derecho en el botón de la izquierda de la tabla a la altura de las casillas del medio que aparece al seleccionar la tabla.
- Seleccionamos “Edit group…”
- Aparece la pantalla “Grouping and Sorting Properties”. En la sección “Group on” seleccionamos primero el valor =Fields!SalesOrderNumber.Value y como segundo criterio de ordenación seleccionamos =Fields!ProdCat.Value
- Aceptamos los cambios
- Debido a que estamos agrupando, primero por número de orden de venta y luego por categoría de producto, necesitamos añadir una función de sumatorio a la columna que nos informa del importe. Editamos la casilla del medio de la columna Sales quedando con el valor =Sum(Fields!Sales.Value)

Subtotales

- Botón derecho en el botón de la izquierda de la tabla a la altura de las casillas del medio que aparece al seleccionar la tabla.
- Seleccionar “Insert group”
- En la pantalla “Grouping and Sorting Properties”, seleccionamos un criterio de agrupación con el valor =Fields!SalesOrderNumber.Value
- En las opciones que aparecen al final de la pantalla deseleccionamos “Include group header”, quedando únicamente marcada la opción “Include group footer”
- Automáticamente se añade una nueva fila a la tabla.
- En la columna Sales de la última fila añadida insertaremos el valor =Sum(Fields!Sales.Value)
 
Total

La última fila de la tabla que hemos incluido nos sirve para añadir valores e información a pie de la tabla. La utilizaremos para incluir un total de todas las ventas.

- Editar la celda en la última fila de la tabla en la columna sales añadiendo el siguiente valor: =Sum(Fields!Sales.Value)

Enlace a otro informe

La última funcionalidad que nos queda por demostrar es el enlace de un informe con otro. Para ello seguiremos los siguientes pasos:

- Botón derecho sobre la celda de la fila del medio de la columna Sales Order (la que tiene el valor =Fields!SalesOrderNumber.Value).
- Seleccionar propiedades
- Ir a la pestaña Navigation
- En la sección “Hyperlink action” seleccionar la opción “Jump to report:”
- Seleccionar el informe “Sales Order Details”
- Click en el botón “Parameters”
- Seleccionar el parámetro “SalesOrderNumber” en la columna “Parameter Name”
- Seleccionar el valor “=Fields!SalesOrderNumber.Value” en la columna “Parameter Value”

Si quisieramos que el valor de “Sales Order” se mostrara subrayado seleccionariamos las propiedades de la celda y en la pestaña Font seleccionariamos el valor “Underline” en la opción “Decoration”

Si además quisieramos que el valor de “Sales Order” únicamente apareciera una vez por grupo seleccionariamos la opción “Hide duplicates” en la pestaña General de las propiedades de la celda. Luego, seleccionariamos el valor “EmpSalesDetails” en la opción “Containing group or dataset”.

El resto de detalles estéticos os los dejo a vosotros para que descubráis más funcionalidad y características del producto ;) Sólo una pista, la mayoría de efectos estéticos se pueden configurar con la venta de propiedades del elemento seleccionado (que aparece a la derecha-abajo en la configuración por defecto de Visual Studio).