reporting services desde cero mauricio grimberg [email protected]

47
Reporting Services desde Cero Mauricio Grimberg Mauricio Grimberg [email protected] [email protected] Axton Axton http://www.axton.com.ar/ http://www.axton.com.ar/

Upload: ercilia-murga

Post on 03-Jan-2015

21 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Reporting Services desde Cero

Mauricio GrimbergMauricio [email protected]@mug.org.arAxtonAxtonhttp://www.axton.com.ar/http://www.axton.com.ar/

Page 2: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Versiones Reporting Versiones Reporting ServicesServices

Reporting Services está ya disponible Reporting Services está ya disponible para SQL Server 2000para SQL Server 2000

En todo caso significativo los En todo caso significativo los conocimientos que veremos hoy conocimientos que veremos hoy aplican tanto al estadio actual de aplican tanto al estadio actual de Yukon y de la versión actual (2000)Yukon y de la versión actual (2000)

Para que esto sea evidente Para que esto sea evidente utilizaremos ambas versiones en este utilizaremos ambas versiones en este WebCast WebCast

Page 3: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Para comenzarPara comenzar

RDLRDL

Vistas del Report DesignerVistas del Report Designer

Data Source y DatasetData Source y Dataset

Business Intelligence Development Business Intelligence Development StudioStudio

Page 4: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Arquitectura de Reporting Arquitectura de Reporting ServicesServices

Basado en servidor, utiliza la Basado en servidor, utiliza la infraestructura de :infraestructura de :

SQL ServerSQL Server

Internet Information Services (IIS)Internet Information Services (IIS)

.NET Framework.NET Framework

Provee Provee

Un entorno “en la caja” que, a través de Un entorno “en la caja” que, a través de IDEs basadas en Visual Studio .Net e IDEs basadas en Visual Studio .Net e Internet Explorer consume y opera sus Internet Explorer consume y opera sus serviciosservicios

Una API completa de operación a través de Una API completa de operación a través de Web ServicesWeb Services

Page 5: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Ciclo de vida de un Ciclo de vida de un reportereporte

Estas son las áreas centrales de cualquier Estas son las áreas centrales de cualquier plataforma seria de Reporting y por la calidad y plataforma seria de Reporting y por la calidad y arquitectura de esos procesos debemos evaluar arquitectura de esos procesos debemos evaluar una soluciónuna solución

CreaciónCreación GestiónGestión SuministroSuministro

Page 6: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Generación del reporteGeneración del reporte

Conexión a origen de datosConexión a origen de datos

Consultas a dicho origenConsultas a dicho origen

Diseño del reporteDiseño del reporte

Parámetros del reporteParámetros del reporte

Asignación de propiedades tales Asignación de propiedades tales como ancho, alto, formatos, etc.como ancho, alto, formatos, etc.

Información de conexiónInformación de conexión

Valores de parámetros por defectoValores de parámetros por defecto

Page 7: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuevo proyectoNuevo proyecto

Page 8: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuevo reporte: New ItemNuevo reporte: New Item

Page 9: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuestro origen de datosNuestro origen de datos

Configuramos Configuramos el origen de el origen de datos que datos que vamos a vamos a utilizar utilizar (DataSource)(DataSource)

Si lo deseamos Si lo deseamos editamos la editamos la cadena de cadena de conexiónconexión

Si es Si es compartido compartido (Shared Data (Shared Data Source) Source) podremos podremos utilizarlo con utilizarlo con varios reportesvarios reportes

Page 10: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Conexión completaConexión completa

En este caso En este caso seleccionamos seleccionamos localhost, seguridad localhost, seguridad integrada y la base integrada y la base de datos de datos AdventureWorksAdventureWorks

Page 11: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuestro conjunto de datosNuestro conjunto de datos

Construimos Construimos una consulta o una consulta o la pegamos en la pegamos en la caja de la caja de textotexto

Esto construirá Esto construirá nuestro nuestro Dataset (es un Dataset (es un dataset por dataset por conjunto de conjunto de datos, sin datos, sin relación relación alguna con el alguna con el Dataset Dataset de .Net)de .Net)

Page 12: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Seguimos…Seguimos…

En los próximos pasosEn los próximos pasosSeleccionamos un reporte tabularSeleccionamos un reporte tabular

Elegimos una categoría por página, Elegimos una categoría por página, agrupar por producto y colocar las agrupar por producto y colocar las ventas en el detalle.ventas en el detalle.

No modificamos el diseñoNo modificamos el diseño

FinalizamosFinalizamos

Cambiamos a modo Cambiamos a modo PreviewPreview y y algunos defectos saltan a la vista, algunos defectos saltan a la vista, vamos a modificarlosvamos a modificarlos

Page 13: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Modificando el reporteModificando el reporte

En el modo Layout, en el Body del En el modo Layout, en el Body del reporte seleccione la reporte seleccione la table1table1

““Estire” el ancho de las columnas Estire” el ancho de las columnas arrastrando el ratónarrastrando el ratón

Cambie el título del reporte a algo Cambie el título del reporte a algo más significativo como “Reporte de más significativo como “Reporte de ventas por producto”ventas por producto”

Compruebe que el paradigma sigue Compruebe que el paradigma sigue siendo el clásico diseñador creado en siendo el clásico diseñador creado en los orígenes de Visual Basiclos orígenes de Visual Basic

Page 14: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

FinalmenteFinalmente

Guardamos todo (Guardamos todo (Save allSave all))

En modo En modo PreviewPreview comprobamos los comprobamos los cambios realizadoscambios realizados

Cerramos el Cerramos el Business Intelligence Business Intelligence Development StudioDevelopment Studio si lo deseamos si lo deseamos

Page 15: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Un reporte desde ceroUn reporte desde cero

Agregaremos un reporte en blancoAgregaremos un reporte en blanco

Configuraremos nuestra DataSource Configuraremos nuestra DataSource y nuestro Datasety nuestro Dataset

Manejaremos el diseñoManejaremos el diseño

Instalaremos el reporte en el servidorInstalaremos el reporte en el servidor

Page 16: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuevo reporteNuevo reporte

Nuevamente agregamos un item pero Nuevamente agregamos un item pero esta vez es un esta vez es un ReportReport

Elegimos la vista Elegimos la vista DataData y generamos y generamos un un New DatasetNew Dataset al que asignamos al que asignamos un nombre, reutilizando la un nombre, reutilizando la Shared Data SourceShared Data Source y una y una sentencia SQL nueva.sentencia SQL nueva.

Para ello utilizamos consultas Para ello utilizamos consultas grabadas grabadas en archivos de texto.en archivos de texto.

Con eso queda definido nuestro Con eso queda definido nuestro conjunto de datosconjunto de datos

Page 17: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuestro primer objeto List Nuestro primer objeto List (1)(1)

Pase al modo Pase al modo LayoutLayout

““Estiramos” un poco el BodyEstiramos” un poco el Body a todo el a todo el espacio visible como para disponer de un espacio visible como para disponer de un área adecuadaárea adecuada

En la En la ToolbarToolbar hacemos un doble click en el hacemos un doble click en el elemento elemento ListList

Hacemos coincidir su tamaño con el del Hacemos coincidir su tamaño con el del BodyBody

Arrastramos, en este caso, el nombre del Arrastramos, en este caso, el nombre del campo campo CategoriaCategoria, desde la lista de campos , desde la lista de campos al lado izquierdo de la al lado izquierdo de la ListList

Oprima F4 para obtener acceso a las Oprima F4 para obtener acceso a las propiedades de la caja de texto: Cambie el propiedades de la caja de texto: Cambie el FontWeightFontWeight a a BoldBold

Page 18: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Nuestro primer objeto List Nuestro primer objeto List (2)(2)

En las propiedades de la En las propiedades de la ListList seleccione seleccione Grouping Grouping y luego la elipsis (…)y luego la elipsis (…)

En En Details Grouping Details Grouping en la lista en la lista ExpressionExpression elija elija =Fields!Categoria.Value=Fields!Categoria.Value y acepte y acepte

Arrastre el campo VentasProducto al Arrastre el campo VentasProducto al vértice superior derecho de la vértice superior derecho de la ListList

En la propiedades de la nueva caja de En la propiedades de la nueva caja de texto sleccione Format y aplique el valor texto sleccione Format y aplique el valor “0,0.00”“0,0.00”

Agregue algo más de prolijidad y guarde Agregue algo más de prolijidad y guarde todo.todo.

Observe el resultado pasando a la ventana Observe el resultado pasando a la ventana dede Preview Preview

Page 19: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Objeto Objeto ListList “anidado” “anidado”

Vuelva a la ventana Vuelva a la ventana LayoutLayoutArrastre Arrastre desde la Toolbardesde la Toolbar una nueva una nueva List List al al interior interior de la primera de la primera ListListAsegúrese de no cubrir las cajas de texto Asegúrese de no cubrir las cajas de texto anterioresanterioresElija el campo Elija el campo Producto Producto y arrástrelo al extremo y arrástrelo al extremo izquierdo de la segunda izquierdo de la segunda ListListHaga click en la segunda Haga click en la segunda ListList, seleccione , seleccione propiedadespropiedades y allí y allí GroupingGrouping y del mismo modo y del mismo modo que anteriormente agrupe allí por el campo que anteriormente agrupe allí por el campo ProductoProductoVuelva a arrastrar el campo Vuelva a arrastrar el campo Total ProductoTotal Producto al al extremo derecho de la segunda extremo derecho de la segunda ListListFormateeFormateeGuardeGuardeObserve nuevamente en la vista Observe nuevamente en la vista PreviewPreview

Page 20: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Corte de páginaCorte de página

Volvemos al modo Volvemos al modo LayoutLayout

Seleccionamos la primera listaSeleccionamos la primera lista

PropertiesProperties GroupingGrouping

Tildamos “Tildamos “Page Break at EndPage Break at End” en ” en DetailsDetails GroupingGrouping

Guardamos y vamos al modo Guardamos y vamos al modo PreviewPreview

Page 21: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Agregar parámetrosAgregar parámetros

Vamos al modo DataVamos al modo Data

Habilitamos el Diseñador de Habilitamos el Diseñador de consultasconsultas

Editamos la consulta agregando Editamos la consulta agregando “WHERE (Categoria = @Cat)”“WHERE (Categoria = @Cat)”

Eso va a generar un parámetro Eso va a generar un parámetro automáticamenteautomáticamente

GuardamosGuardamos

Vamos a la vista PreviewVamos a la vista Preview

Observamos con Report Observamos con Report Parameters lo que hemos generadoParameters lo que hemos generado

Page 22: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Registrar en el servidorRegistrar en el servidor

ConfigConfigu-u-ramos ramos el el servidservidor de or de reportreporteses

Luego Luego aplica-aplica-mos mos BuildBuild y y DeployDeploy

Page 23: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

En adelanteEn adelante

Explorar los elementos del diseñador Explorar los elementos del diseñador y sus propiedadesy sus propiedades

Data Regions: Data Regions: matrix, list, chart, matrix, list, chart, rectangle, y subreportrectangle, y subreport

Incorporar conceptos más avanzados Incorporar conceptos más avanzados de diseño como por ejemplo gráficos, de diseño como por ejemplo gráficos, drill down, drill troughdrill down, drill trough

Utilización de Utilización de expresionesexpresiones

Page 24: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Gestión de reportesGestión de reportes

Administración de contenidosAdministración de contenidos

PermisosPermisos

CalendarizaciónCalendarización

CachingCaching

Page 25: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

System RolesSystem Roles

Definen los permisos habilitados para Definen los permisos habilitados para un un GrupoGrupo o o UsuarioUsuario

Esto incluye la seguridad, los roles, la Esto incluye la seguridad, los roles, la calendarización de sucesos y las calendarización de sucesos y las propiedades del servidorpropiedades del servidor

Por defecto heredan de su Por defecto heredan de su ParentParent pero pueden ser modificadas de a pero pueden ser modificadas de a itemsitems..

Page 26: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Práctica (Report Manager)Práctica (Report Manager)

Crear un Crear un rolrol a nivel a nivel systemsystem

Aplicar un nuevo Aplicar un nuevo rolrol a nivel a nivel systemsystem a a un un grupogrupo

Crear un Crear un rolrol a nivel a nivel itemitem

Aplicar un nuevo Aplicar un nuevo rolrol a nivel a nivel itemitem a un a un reportereporte

Page 27: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Crear un rol a nivel Crear un rol a nivel systemsystem

Ejecute Ejecute http://localhost/Reportshttp://localhost/ReportsEn la esquina superior derecha seleccione En la esquina superior derecha seleccione Site SettingsSite SettingsCasi debajo de todo, en Casi debajo de todo, en SecuritySecurity seleccione seleccione Configure system-level role definitionsConfigure system-level role definitionsOprima el botón Oprima el botón New RoleNew Role casi arriba de casi arriba de todotodoNameName: : Analista de reportesAnalista de reportesDescriptionDescription: : Puede ver propiedades del Puede ver propiedades del servidor y manejar calendarizaciónservidor y manejar calendarizaciónSeleccione Seleccione Manage shared schedules, View Manage shared schedules, View report server properties y View shared report server properties y View shared schedulesschedulesAcepte para guardar los cambiosAcepte para guardar los cambios

Page 28: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Crear un rol a nivel ItemCrear un rol a nivel Item

Nuevamente vamos a Site SettingsNuevamente vamos a Site Settings

Ahora seleccionamos en Security: Ahora seleccionamos en Security: Configure item-level role definitionsConfigure item-level role definitions

Nuevamente New RoleNuevamente New Role

Name: SoloLecturaName: SoloLectura

Description: Sólo puede ver los Description: Sólo puede ver los objetos del Servidorobjetos del Servidor

Seleccione Seleccione View data sources, View View data sources, View folders, View reports, View resourcesfolders, View reports, View resources

Acepte y el rol quedará incorporadoAcepte y el rol quedará incorporado

Page 29: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Asignación de RolesAsignación de Roles

Vuelva a la Vuelva a la HomeHomeIngrese a la carpeta Ingrese a la carpeta RapidoRapidoSeleccione el reporte Seleccione el reporte InicialInicialPase a la hoja de Pase a la hoja de PropertiesPropertiesClick en Click en SecuritySecurityOprima el Botón Oprima el Botón Edit Item SecurityEdit Item SecurityClick en Click en EditEditSólo deje tildado Sólo deje tildado SoloLecturaSoloLecturaApplyApplyAhora los Administradores sólo tendran los Ahora los Administradores sólo tendran los permisos asignados a SoloLecturapermisos asignados a SoloLectura¿Quiere dejar todo como estaba?¿Quiere dejar todo como estaba?

Botón Botón Revert to Parent SecurityRevert to Parent Security en el tab en el tab SecuritySecurity del Reportedel Reporte

Page 30: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Planificación de la Planificación de la ejecuciónejecución

Los reportes pueden planificarse, Los reportes pueden planificarse, estableciendo fecha de refresco y creando estableciendo fecha de refresco y creando así así snapshotssnapshots (fotografías), estas (fotografías), estas fotografías son guardadas en un históricofotografías son guardadas en un histórico

Se pueden establecer momentos de Se pueden establecer momentos de ejecución, de manera de aprovechar ejecución, de manera de aprovechar horarios de bajo accesohorarios de bajo acceso

También pueden cachearse También pueden cachearse temporalmente para economizar recursostemporalmente para economizar recursos

Page 31: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

¿Qué provee el Report ¿Qué provee el Report Manager?Manager?

Administración de la seguridadAdministración de la seguridad

PlanificaciónPlanificación

RepartoReparto

OrganizaciónOrganización

AdministraciónAdministración

NavegaciónNavegación

Page 32: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Report Manager (1 de 5)Report Manager (1 de 5)

Requiere Requiere Microsoft Microsoft Internet Explorer 6.0 Internet Explorer 6.0 con Service Pack 1 con Service Pack 1 (SP1) o Internet (SP1) o Internet Explorer 5.5 con SP2 Explorer 5.5 con SP2 como navegador como navegador cliente.cliente.Recuerde habilitar Recuerde habilitar Active Scripting en Active Scripting en Internet Explorer Internet Explorer en en la zona de Intranetla zona de Intranet

Page 33: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Report Manager (2 de 5)Report Manager (2 de 5)

Toda la Toda la funcionalidad funcionalidad de Reporting de Reporting Services (el Services (el Report Server) Report Server) está expuesta está expuesta como un como un servicio Webservicio Web

El Report El Report Manager es un Manager es un consumidor de consumidor de ese servicioese servicio

Page 34: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Report Manager (3 de 5)Report Manager (3 de 5)

El El Report ManagerReport Manager fue construido fue construido para apoyar sobre todo el manejo del para apoyar sobre todo el manejo del contenido dentro de la base de datos contenido dentro de la base de datos del servidordel servidor

Lo que hace es interactuar con el Lo que hace es interactuar con el Report ServerReport Server

Toda la información de los reportes Toda la información de los reportes se guarda en una base de datos de se guarda en una base de datos de SQL ServerSQL Server

Page 35: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Report Manager (4 de 5)Report Manager (4 de 5)

Utiliza la configuración de seguridad de Utiliza la configuración de seguridad de Windows (el usuario logueado)Windows (el usuario logueado)

Provee una carpeta My Reports para Provee una carpeta My Reports para configurar personalizaciónconfigurar personalización

Permite crear nuevas carpetas para Permite crear nuevas carpetas para facilitar la administraciónfacilitar la administración

Permite administrar totalmente los Permite administrar totalmente los orígenes de datos compartidosorígenes de datos compartidos

Page 36: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Report Manager (5 de 5)Report Manager (5 de 5)

Maneja Autenticación (identificación del Maneja Autenticación (identificación del usuario) y autorización (permisos del usuario) y autorización (permisos del usuario)usuario)

Los usuarios forman parte de rolesLos usuarios forman parte de roles

Los roles tienen acceso o no a Los roles tienen acceso o no a determinadas tareasdeterminadas tareas

Al instalar agrega una configuración por Al instalar agrega una configuración por defecto con roles predefinidos que defecto con roles predefinidos que conviene mantener pero que pueden ser conviene mantener pero que pueden ser incrementados con roles a definirincrementados con roles a definir

Page 37: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Procesos de Procesos de representaciónrepresentación

Diferentes formatos de presentación Diferentes formatos de presentación ((NONO de exportación) posibles de exportación) posibles

On LineOn LineHTML con Office Web ComponentsHTML con Office Web ComponentsMHTMLMHTML

Intercambio de DocumentosIntercambio de DocumentosTIFFTIFFPDFPDF

Intercambio de DatosIntercambio de DatosExcelExcelCSVCSVXMLXML

Page 38: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

PrácticaPráctica

Exportar reportes a diferentes Exportar reportes a diferentes formatosformatos

Page 39: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

ProgramaciónProgramación

Mediante APIs (scripting o .Net)Mediante APIs (scripting o .Net)CreaciónCreación

AdministraciónAdministración

PresentaciónPresentación

ExtensiónExtensión

Page 40: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Utilizando .Net assembliesUtilizando .Net assemblies

Creación de una librería para Creación de una librería para Reporting ServicesReporting Services

Hacer el deployment adecuadoHacer el deployment adecuado

Utilizar la función dentro de un Utilizar la función dentro de un reportereporte

Page 41: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Creación de una librería Creación de una librería para Reporting Servicespara Reporting Services

Reemplazar el Reemplazar el número de número de Versión en Versión en AssemblyInfo.vAssemblyInfo.vb por 1.0.0.0 b por 1.0.0.0 para evitar para evitar problemas de problemas de versionadoversionado

Page 42: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Una función para formateoUna función para formateo

Public Class CommonPublic Class Common

Public Public SharedShared Function ColorSegunValor (ByVal Function ColorSegunValor (ByVal Valor As Valor As Decimal, ByVal ValorMinimo As Decimal, ByVal ValorMinimo As Decimal, ByVal Decimal, ByVal ValorOptimo As Decimal) As ValorOptimo As Decimal) As StringString

Select Case ValorSelect Case ValorCase Is > ValorOptimoCase Is > ValorOptimo

Return "Green"Return "Green"Case Is > ValorMinimoCase Is > ValorMinimo

Return "SteelBlue"Return "SteelBlue"Case ElseCase Else

Return "Red"Return "Red"End SelectEnd Select

End FunctionEnd FunctionEnd ClassEnd Class

Page 43: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Hacer el deployment Hacer el deployment adecuadoadecuado

Compile la soluciónCompile la solución

Copie el binario (MGReportLibrary.dll) Copie el binario (MGReportLibrary.dll) a a C:\Program Files\Microsoft SQL Server\C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\MSSQL\Reporting Services\ReportServer\binbin y y C:\Program Files\Microsoft C:\Program Files\Microsoft SQLServer\80\Tools\Report Designer SQLServer\80\Tools\Report Designer o a o a los directorios adecuados del Report los directorios adecuados del Report Server y el Report DesignerServer y el Report Designer

Page 44: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Utilizar la función dentro Utilizar la función dentro de un reportede un reporte

En las En las Properties Properties del Report del Report agregue agregue la la ReferenciReferencia a la a a la libreríalibrería

Page 45: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

El color de un Textbox…El color de un Textbox…

En este En este caso caso utilizamos utilizamos la librería la librería para para producir producir una cadena una cadena que que determina determina el color de el color de la fuente la fuente de un de un campo del campo del reportereporte

Page 46: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

Por dónde continuarPor dónde continuar

Código embebidoCódigo embebido

Extensiones personalizadas de datosExtensiones personalizadas de datos

Generación de RDLGeneración de RDL

Utilidad RS (Scripting)Utilidad RS (Scripting)

Proveedor de WMIProveedor de WMI

Page 47: Reporting Services desde Cero Mauricio Grimberg mau@mug.org.arAxton

VínculosVínculos

http://msdn.microsoft.com/vstudio/tryhttp://msdn.microsoft.com/vstudio/tryit/hosted/sql/reportingservices/it/hosted/sql/reportingservices/http://www.devx.com/dotnet/Article/2http://www.devx.com/dotnet/Article/267596759http://www.codeproject.com/aspnet/Shttp://www.codeproject.com/aspnet/SQLRSViewer.aspQLRSViewer.asphttp://msdn.microsoft.com/sql/defaulthttp://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql2k/htm.aspx?pull=/library/en-us/dnsql2k/html/RSDSetEx3.aspl/RSDSetEx3.asphttp://www.microsoft.com/http://www.microsoft.com/sql/reporting/default.mspxsql/reporting/default.mspx