You are on page 1of 6

Parmetros con Reporting Services Ace le mando la forma de enviar parmetros a un informe de reporting Services

List parameter = new List(); parameter.Add(new ReportParameter("pIDCompania", AppSettings.IDCompania.ToString())); parameter.Add(new ReportParameter("IDEmpleado", this.cboIDEmpleado.SelectedValue.ToString())); parameter.Add(new ReportParameter("IDProyecto", this.cboIDProyecto.SelectedValue.ToString())); parameter.Add(new ReportParameter("pApeNom", this.cboIDEmpleado.Text)); parameter.Add(new ReportParameter("pProyecto", this.cboIDProyecto.Text)); viewReport.ReportParameter = parameter;

Esta guia se trabaja con la base de datos Northwind. Ejercicio 1 - Primer Reporte en SSRS En un nuevo proyecto de SSRS, agregar un Nuevo Item, utilizando el Asistente ReportWizard. En el Asistente hacer compartida la Data Source. Conectarse a Northwind. Utilizar las tablas Products y Categories Crear un Reporte de tipo Tabular Agrupar por CategoryName En Detalle Seleccionar ProductName, Descontinued, UnitePrice Incluir SubTotales y Habilitar DrillDown. Seleccionar un estilo que ms le agrade. Renombrar cambiar el titulo al reporte a Productos por Categora Editar la propiedades de UnitPrice y darle formato de dos decimales y separador de miles. Editar el Shared Data Source para almacenar las credenciales, y almacenar las credenciales de sa. 12. Visualizar el reporte. 13. Crear otro reporte para Customers utilizando nuevamente el asistente. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Ejercicio 2 Creando un Reporte Tabular Agregar Nuevo ItemReport (esta vez no usaremos el asistente) llamado rptCustomers Agregar el objeto Table desde ReportItem Nos levanta un asistente, donde configuramos la conexin, seleccionamos Shared Data Source que creamos anteriormente. Siguiente. Con el QueryDesigner creamos la consulta para SELECT * FROM CUSTOMERS. Finalizar Agregamos Contacto, Compania, Pais, Ciudad, Telefono. Agregamos un Page Header Creamos un Titulo, Listado de Cliente, centrado letra grande y con negrilla y subrayado. Visualizamos el reporte. Ejercicio 3 Reporte desde un DataSet Agregamos un Nuevo Reporte, rptEmpleados En report Data seleccionamos nuevo Dataset Configuramos el Dataset lo llamamos dsEmpleados Agregamos la tabla Employees Luego creamos el reporte. Ejercicio 4 Agregando Imgenes En el reporte rptCustomers, en el Page Header, agregar un elemento del tipo Image Selecciona la opcin Embedded y luego Import, buscar una imagen e Importarla. Visualizar el reporte. Elliminar la imagen y agregarla nuevamente, pero esta vez quedo registrada para el reporte.

1. 2. 3. 4. 5. 6. 7. 8.

1. 2. 3. 4. 5.

1. 2. 3. 4.

Ejercicio 5 Imgenes desde Base de Datos En el reporte rptEmpleados, agregar un objeto de Image en la tabla Nos mostrara el cuadro de dialogo para configurar la imagen. Seleccionamos desde base de datos y buscamos el campo Photo. Seleccionamos el tipo de imagen como BMP. 3. Visualizamos el reporte y nos dara un error. ( Ver Post sobre esto en el blog) 4. Configuraremos la imagen para que trabaje con la siguiente expresin: 1. 2.

=System.Convert.FromBase64String(Mid(System.Convert.ToBase64String(Fields!Pho to.Value), 105)) 5. Visualizamos el reporte nuevamente.


1. 2. Ejercicio 6 Repitiendo Ttulos por cada pagina En el reporte rptCustomers, seleccionamos la fila de ttulos y vamos a TabLixProperties Checamos Repeat Header Rows on Each Page, Repeat Header Columns on Each Page,

3. 4. 5. 6. 7.

Visualizamos el reporte y no pasa nada. Ponemos en modo avanzado los ColumnsGroups. Nos ubicamos sobre Static en RowsGroups y damos propiedades F4. Ponemos en True la propiedad RepeatonNewPage. Visualizamos el reporte, y el problema fue corregido. Ejercicio 7 Editando Page Footer / Page Header En el reporte rptCustomers, agregamos el Page Footer Vamos a las propiedades del Reporte en el MenuReport, Properties. Cambiamos a Landscape, y cambiamos los mrgenes a 0.5 Agregamos un textbox en el footer. Click derecho Expressions Agregamos ExecutionTime y lo personalizamos (Codigo VB.NET) Desde Report Data podemos agregar ms variables como usuario, numero de pagina, etc. Visualizamos el Reporte. Ejercicio 8 Creando Fichas Crear un nuevo reporte llamado rptFichasClientes Crear un nuevo dataset configurado para la tabla Customers Agregar un Rectangle Control Habilitar la regla en el men Report Crear la ficha del cliente: Compania, Contacto, Pais, Ciudad, Telefono (Poner Negrilla a los Titulos, usar copiar y pegar) Definir un Borde para el Rectangle Visualizar el reporte. En Row Groups , Details, Group Properties, Page Breaks, Seleccionar Between each Instance of a group. Visualizar el reporte Ejercicio 9 Trabajando con Rich Text Crear un nuevo reporte llamado rptCorreo Crear un nuevo datasetdsCuentas para Customers unidos con orders y ordersdetails, obtener los datos de Customers y de orderDetails nicamente un campo llamado ventas. Agregar un Listbox ubicarlo en toda el area del reporte. Agregar dentro del Listbox un Textbox y ubicarlo en todo el area del Listbox Iniciar a crear un Carta, Contacto, Direccion, Ciudad y Pais, Pais. Crear el cuerpo de la carta: Estimado Contacto . Ventas por .. Atentamente .. Visualizar el reporte Dar formato, al campo ventas, formatear de colores y negrilla los campos Estimado Contacto. Definir el reporte para que se vea un elemento por pagina (similar ejemplo anterior) Exportarlo a Word, visualizar el archivo

1. 2. 3. 4. 5. 6. 7. 8.

1. 2. 3. 4. 5. 6. 7. 8. 9.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

GuiaPracticaReportingServices 2008 - Intermedio


1. Ejercicio 1: Expresiones En un reporte de rptExpresiones de la tabla Customers de Northwind, consulta: con la

SELECT c.CustomerID, CompanyName, ContactName, City, Region, Country, SUM(UnitPrice) UnitPrice, SUM(Quantity) Quantity, SUM(Discount) Discount FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID GROUPBYc.CustomerID, CompanyName, ContactName, City, Region, Country

Tenemos un Campo, Name, Company, UnitPrice, Quantity Nueva columna relacionamos: Ubicacin Click Derecho Expressions = Fields!.City.Value& & Fields!.Region.Value& , & Fields!.Country.Value Visualizamos el reporte. Nueva Columna SubTotal = UnitPrice * Quantity Nueva Columna Descuento en Monto Columna Total = SubTotal Descuento Visualizamos el reporte. Nueva Columna Tipo Cliente: =IIF( Calculo Total) > = 10000, Gran Consumidor, Pequeno Consumidor) 11. Modificar la columna para el uso de SWITCH (CASE) =Switch(Calculo Total >= 20000, Gran Consumidor Calculo Total >= 5000, Mediano Consumidor, Calculo Total < 5000, Pequeo Consumidor) 12. Visualizamos el Reporte 13. Para todas las filas poner un Color de Fondo Especial cuando los precios sean menores a 50. 14. Aplicar ordenamiento Interactivo para Name, Company 1. Ejercicio 2: Trabajando con Agrupaciones Crear un nuevo reporte llamado rptAgrupaciones con la siguiente consulta:
SELECTo.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName, od.UnitPrice, Quantity, od.UnitPrice * Quantity AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID

2. 3. 4. 5. 6. 7. 8. 9. 10.

Agregar en el Detalle ProductName , Cantidad , Precio, Total Crear Grupo para CategoryName y su Total Crear Grupo para City y Su Total Crear Grupo para Country y su Total Visualizar el Reporte Cambiar los Totales de Precio a Promedio Cambiar Formato a los Totales Cambiar Colores por Grupo. Hacer Visible con Click en cada uno de los Grupos. NOTA: Hacerlo desde los grupos y no desde las Celdas. Hacer ver la diferencia. 11. Visualizar el Reporte Ejercicio 3: Trabajando con Parametros 1. Crear un nuevo reporte llamado rptParametrosFiltros con la siguiente consulta:

2. 3. 4. 5. 6. 7. 8. 9. 10.

SELECTo.ShipCountry, o.ShipCity, c2.CategoryName, SUM(od.UnitPrice) ASPrecio, SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID GROUPBYo.ShipCountry, o.ShipCity, c2.CategoryName

2. 3. 4. 5. 6. 7.

Agregar Todos los campos a una Tabla En las propiedades del Dataset1 agregamos un parmetro llamado Pais. Hacer click en OK Nuevamente en las propiedades del dataset1, en Filters buscar ShipCountry y evaluarlo contra una expression donde se seleccione el parmetro Pais Visualizar el Reporte Realizar los mismos pasos 3 y 4 para Ciudad Visualizamos el Reporte.

Ejercicio 4: Trabajando con Parametros 1. Crear un nuevo reporte llamado rptParametros. 2. En Management Studio ejecutamos el siguiente procedure:
CREATEPROCsp_VentasxPais @PaisVARCHAR(100) AS SELECTo.ShipCountry, o.ShipCity, c2.CategoryName, SUM(od.UnitPrice) ASPrecio, SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID WHEREo.ShipCountry = @Pais GROUPBYo.ShipCountry, o.ShipCity, c2.CategoryName

3. 4. 5.

Luego creamos un Dataset con el procedimiento y hacemos click en OK Creamos el Reporte agregando los campos en una Tabla Verificamos en las propiedades del Dataset que se nos creo automticamente un Parametro con el nombre de @Pais. Ademas en la carpeta Parameters deber estar este mismo parametro 6. Visualizamos el reporte 7. En las propiedades del parametro, AvailableValues, SpecifyValues, Asignamos:
Valores de Paises

8. 9. 10. 11. 1.

Visualizamos el reporte Crear un nuevo Dataset lo llamaremos dtPaises con la siguiente consulta:
SELECTDISTINCTo.ShipCountryFROMOrders o En las propiedades del parametro, AvailableValues, GetValuesfrom a Query, Asignamos: los valores de ShipCountry. Visualizamos el Reporte

Ejercicio 5: Multiples Valores en Parametros Crear un nuevo reporte llamado rptParametrosMultiples.


SELECTo.ShipCountry, o.ShipCity, c2.CategoryName, SUM(od.UnitPrice) ASPrecio, SUM(Quantity) Cantidad, SUM(od.UnitPrice * Quantity) AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID WHEREo.ShipCountry IN (@Pais) GROUPBYo.ShipCountry, o.ShipCity, c2.CategoryName

2. 3. 4. 5. 6.

Creamos el Reporte agregando los campos en una Tabla En las propiedades del parmetro, definimos que sea multivalor. Crear un nuevo Dataset lo llamaremos dtPaises con la siguiente consulta:
SELECTDISTINCTo.ShipCountryFROMOrders o En las propiedades del parametro, AvailableValues, GetValuesfrom a Query, Asignamos: los valores de ShipCountry. Visualizamos el Reporte

Ejercicio 6: ReporteMatrix 1. Crear un Nuevo Reporte llamado rptMatrix con la siguiente consulta:
SELECT MONTH(o.OrderDate) ASMes, YEAR(o.OrderDate) Anio, o.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName, od.UnitPrice, Quantity, od.UnitPrice * Quantity AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID

Agregar un Matrix Configurarlo: Filas Pais, Ciudad, Categoria, Producto, Columnas Anio y Mes, Data Total, Cantidad 4. Cambiar Colores por Columnas y por Filas 5. Hacerlo Dinamico para que se oculte y se muestre al hacer click en el. 1. Ejercicio 7: Creando un Grafico Crear un Nuevo Reporte llamado rptGrafico con la siguiente consulta:
SELECT MONTH(o.OrderDate) ASMes, YEAR(o.OrderDate) Anio, o.ShipCountry, o.ShipCity, c2.CategoryName, p.ProductName, od.UnitPrice, Quantity, od.UnitPrice * Quantity AS Total FROM customers c INNER JOIN Orders o ONc.CustomerID = o.CustomerID INNER JOIN [Order Details] odONo.OrderID = od.OrderID INNER JOIN Products p ONp.ProductID = od.ProductID INNER JOIN Categories c2 ON c2.CategoryID = p.CategoryID

2. 3.

2. 3. 4. 5. 6. 7. 8.

Agregar un Grafico Seleccionar de Barra Configurarlo: Categorias Categorias, Series Anio, Data Poner Titulo Visualizamos el reporte Cambiar tipo de Grafico Visualizamos el reporte

Total