470 likes | 809 Views
Reporting Services desde Cero . Mauricio Grimberg mau@mug.org.ar Axton http://www.axton.com.ar/. Versiones Reporting Services. Reporting Services está ya disponible para SQL Server 2000
E N D
Reporting Services desde Cero Mauricio Grimberg mau@mug.org.ar Axton http://www.axton.com.ar/
Versiones Reporting Services • Reporting Services está ya disponible para SQL Server 2000 • En todo caso significativo los conocimientos que veremos hoy aplican tanto al estadio actual de Yukon y de la versión actual (2000) • Para que esto sea evidente utilizaremos ambas versiones en este WebCast
Para comenzar • RDL • Vistas del Report Designer • Data Source y Dataset • Business Intelligence Development Studio
Arquitectura de Reporting Services • Basado en servidor, utiliza la infraestructura de : • SQL Server • Internet Information Services (IIS) • .NET Framework • Provee • Un entorno “en la caja” que, a través de IDEs basadas en Visual Studio .Net e Internet Explorer consume y opera sus servicios • Una API completa de operación a través de Web Services
Ciclo de vida de un reporte • Estas son las áreas centrales de cualquier plataforma seria de Reporting y por la calidad y arquitectura de esos procesos debemos evaluar una solución Creación Gestión Suministro
Generación del reporte • Conexión a origen de datos • Consultas a dicho origen • Diseño del reporte • Parámetros del reporte • Asignación de propiedades tales como ancho, alto, formatos, etc. • Información de conexión • Valores de parámetros por defecto
Configuramos el origen de datos que vamos a utilizar (DataSource) Si lo deseamos editamos la cadena de conexión Si es compartido (Shared Data Source) podremos utilizarlo con varios reportes Nuestro origen de datos
En este caso seleccionamos localhost, seguridad integrada y la base de datos AdventureWorks Conexión completa
Construimos una consulta o la pegamos en la caja de texto Esto construirá nuestro Dataset (es un dataset por conjunto de datos, sin relación alguna con el Dataset de .Net) Nuestro conjunto de datos
Seguimos… • En los próximos pasos • Seleccionamos un reporte tabular • Elegimos una categoría por página, agrupar por producto y colocar las ventas en el detalle. • No modificamos el diseño • Finalizamos • Cambiamos a modo Preview y algunos defectos saltan a la vista, vamos a modificarlos
Modificando el reporte • En el modo Layout, en el Body del reporte seleccione la table1 • “Estire” el ancho de las columnas arrastrando el ratón • Cambie el título del reporte a algo más significativo como “Reporte de ventas por producto” • Compruebe que el paradigma sigue siendo el clásico diseñador creado en los orígenes de Visual Basic
Finalmente • Guardamos todo (Save all) • En modo Preview comprobamos los cambios realizados • Cerramos el Business Intelligence Development Studio si lo deseamos
Un reporte desde cero • Agregaremos un reporte en blanco • Configuraremos nuestra DataSource y nuestro Dataset • Manejaremos el diseño • Instalaremos el reporte en el servidor
Nuevo reporte • Nuevamente agregamos un item pero esta vez es un Report • Elegimos la vista Data y generamos un New Dataset al que asignamos un nombre, reutilizando la Shared Data Source y una sentencia SQL nueva. • Para ello utilizamos consultas grabadas en archivos de texto. • Con eso queda definido nuestro conjunto de datos
Nuestro primer objeto List (1) • Pase al modo Layout • “Estiramos” un poco el Body a todo el espacio visible como para disponer de un área adecuada • En la Toolbar hacemos un doble click en el elemento List • Hacemos coincidir su tamaño con el del Body • Arrastramos, en este caso, el nombre del campo Categoria, desde la lista de campos al lado izquierdo de la List • Oprima F4 para obtener acceso a las propiedades de la caja de texto: Cambie el FontWeight a Bold
Nuestro primer objeto List (2) • En las propiedades de la List seleccione Grouping y luego la elipsis (…) • En Details Grouping en la lista Expression elija =Fields!Categoria.Value y acepte • Arrastre el campo VentasProducto al vértice superior derecho de la List • En la propiedades de la nueva caja de texto sleccione Format y aplique el valor “0,0.00” • Agregue algo más de prolijidad y guarde todo. • Observe el resultado pasando a la ventana de Preview
Objeto List “anidado” • Vuelva a la ventana Layout • Arrastre desde la Toolbar una nueva List al interior de la primera List • Asegúrese de no cubrir las cajas de texto anteriores • Elija el campo Producto y arrástrelo al extremo izquierdo de la segunda List • Haga click en la segunda List, seleccione propiedades y allí Grouping y del mismo modo que anteriormente agrupe allí por el campo Producto • Vuelva a arrastrar el campo Total Producto al extremo derecho de la segunda List • Formatee • Guarde • Observe nuevamente en la vista Preview
Corte de página • Volvemos al modo Layout • Seleccionamos la primera lista • Properties Grouping • Tildamos “Page Break at End” en DetailsGrouping • Guardamos y vamos al modo Preview
Agregar parámetros • Vamos al modo Data • Habilitamos el Diseñador de consultas • Editamos la consulta agregando “WHERE (Categoria = @Cat)” • Eso va a generar un parámetro automáticamente • Guardamos • Vamos a la vista Preview • Observamos con Report Parameters lo que hemos generado
Registrar en el servidor • Configu-ramos el servidor de reportes • Luego aplica-mos Build y Deploy
En adelante • Explorar los elementos del diseñador y sus propiedades • Data Regions: matrix, list, chart, rectangle, y subreport • Incorporar conceptos más avanzados de diseño como por ejemplo gráficos, drill down, drill trough • Utilización de expresiones
Gestión de reportes • Administración de contenidos • Permisos • Calendarización • Caching
System Roles • Definen los permisos habilitados para un Grupo o Usuario • Esto incluye la seguridad, los roles, la calendarización de sucesos y las propiedades del servidor • Por defecto heredan de su Parent pero pueden ser modificadas de a items.
Práctica (Report Manager) • Crear un rol a nivel system • Aplicar un nuevo rol a nivel system a un grupo • Crear un rol a nivel item • Aplicar un nuevo rol a nivel item a un reporte
Crear un rol a nivel system • Ejecute http://localhost/Reports • En la esquina superior derecha seleccione Site Settings • Casi debajo de todo, en Security seleccione Configure system-level role definitions • Oprima el botón New Role casi arriba de todo • Name: Analista de reportes • Description: Puede ver propiedades del servidor y manejar calendarización • Seleccione Manage shared schedules, View report server properties y View shared schedules • Acepte para guardar los cambios
Crear un rol a nivel Item • Nuevamente vamos a Site Settings • Ahora seleccionamos en Security: Configure item-level role definitions • Nuevamente New Role • Name: SoloLectura • Description: Sólo puede ver los objetos del Servidor • Seleccione View data sources, View folders, View reports, View resources • Acepte y el rol quedará incorporado
Asignación de Roles • Vuelva a la Home • Ingrese a la carpeta Rapido • Seleccione el reporte Inicial • Pase a la hoja de Properties • Click en Security • Oprima el Botón Edit Item Security • Click en Edit • Sólo deje tildado SoloLectura • Apply • Ahora los Administradores sólo tendran los permisos asignados a SoloLectura • ¿Quiere dejar todo como estaba? • Botón Revert to Parent Security en el tab Security del Reporte
Planificación de la ejecución • Los reportes pueden planificarse, estableciendo fecha de refresco y creando así snapshots (fotografías), estas fotografías son guardadas en un histórico • Se pueden establecer momentos de ejecución, de manera de aprovechar horarios de bajo acceso • También pueden cachearse temporalmente para economizar recursos
¿Qué provee el Report Manager? • Administración de la seguridad • Planificación • Reparto • Organización • Administración • Navegación
Report Manager (1 de 5) • Requiere Microsoft Internet Explorer 6.0 con Service Pack 1 (SP1) o Internet Explorer 5.5 con SP2 como navegador cliente. • Recuerde habilitar Active Scripting en Internet Explorer en la zona de Intranet
Report Manager (2 de 5) • Toda la funcionalidad de Reporting Services (el Report Server) está expuesta como un servicio Web • El Report Manager es un consumidor de ese servicio
Report Manager (3 de 5) • El Report Manager fue construido para apoyar sobre todo el manejo del contenido dentro de la base de datos del servidor • Lo que hace es interactuar con el Report Server • Toda la información de los reportes se guarda en una base de datos de SQL Server
Report Manager (4 de 5) • Utiliza la configuración de seguridad de Windows (el usuario logueado) • Provee una carpeta My Reports para configurar personalización • Permite crear nuevas carpetas para facilitar la administración • Permite administrar totalmente los orígenes de datos compartidos
Report Manager (5 de 5) • Maneja Autenticación (identificación del usuario) y autorización (permisos del usuario) • Los usuarios forman parte de roles • Los roles tienen acceso o no a determinadas tareas • Al instalar agrega una configuración por defecto con roles predefinidos que conviene mantener pero que pueden ser incrementados con roles a definir
Procesos de representación • Diferentes formatos de presentación (NO de exportación) posibles • On Line • HTML con Office Web Components • MHTML • Intercambio de Documentos • TIFF • PDF • Intercambio de Datos • Excel • CSV • XML
Práctica • Exportar reportes a diferentes formatos
Programación • Mediante APIs (scripting o .Net) • Creación • Administración • Presentación • Extensión
Utilizando .Net assemblies • Creación de una librería para Reporting Services • Hacer el deployment adecuado • Utilizar la función dentro de un reporte
Creación de una librería para Reporting Services • Reemplazar el número de Versión en AssemblyInfo.vb por 1.0.0.0 para evitar problemas de versionado
Una función para formateo Public Class Common Public Shared Function ColorSegunValor (ByVal Valor As Decimal, ByVal ValorMinimo As Decimal, ByVal ValorOptimo As Decimal) As String Select Case Valor Case Is > ValorOptimo Return "Green" Case Is > ValorMinimo Return "SteelBlue" Case Else Return "Red" End Select End Function End Class
Hacer el deployment adecuado • Compile la solución • Copie el binario (MGReportLibrary.dll) a C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin y C:\Program Files\Microsoft SQLServer\80\Tools\Report Designer o a los directorios adecuados del Report Server y el Report Designer
Utilizar la función dentro de un reporte • En las Properties del Report agregue la Referencia a la librería
El color de un Textbox… • En este caso utilizamos la librería para producir una cadena que determina el color de la fuente de un campo del reporte
Por dónde continuar • Código embebido • Extensiones personalizadas de datos • Generación de RDL • Utilidad RS (Scripting) • Proveedor de WMI
Vínculos • http://msdn.microsoft.com/vstudio/tryit/hosted/sql/reportingservices/ • http://www.devx.com/dotnet/Article/26759 • http://www.codeproject.com/aspnet/SQLRSViewer.asp • http://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql2k/html/RSDSetEx3.asp • http://www.microsoft.com/sql/reporting/default.mspx