ASP.net: Pasar parámetros a un reporte de Reporting Services (Modo Remoto)


Luego de crear el reporte (ver el mini-tutorial Parte I, Parte II y Parte III) vamos agregar un parámetro al reporte y luego desde Visual Studio le pasamos el valor a ese parámetro.

1. Lo primero es revisar las partes del mini-tutorial y luego en el reporte creado en la parte II vamos abrirlo y nos dirigimos a la pestaña de Datos:

Pestaña Datos

2. Modificamos el Query que allí creamos, agregándole una sentencia where para filtrar la información por el ContactID

Select ContactID, FirstName, LastName, EmailAddress, Phone from Person.Contact
Where ContactID=@ContactID

3. Ejecutamos la consulta para probar y que a su vez Reporting Services genere este parámetro dentro del reporte.

4. Para visualizar el parámetro generado en el reporte solo basta con ir al menú Informe-> Parámetros del Informe este le mostrara un cuadro de dialogo como este:

En esta ventana podrán visualizar la lista de todos los parámetros agregados a la consulta y pueden asignarles propiedades especificas como que valores permite, si el campo será visible, si es el resultado que viene de otra consulta, etc, etc. Además si lo prefieren pueden agregar mas parámetros y luego se lo asocian a la consulta de la siguiente forma.

En la sección de datos verán tres puntos suspensivos “” allí les aparecerá un cuadro de dialogo y se ubicaran en el tab de parámetros, en ese lugar le dirán a que parámetro le pasaran el valor agregado en el parámetro del informe.

Y ateniendo esto listo, le damos al proyecto o directamente al reporte botón derecho y seleccionamos la opción “Implementar o Deploy”.

Ahora desde Visual Studio exactamente en nuestro proyecto (me estoy basando en el proyecto creado en la parte III del mini-tutorial) escribiremos lo siguiente:

Al código mostrado en el articulo anterior le agregamos esto:

        //Definimos los parámetros
        ReportParameter parametro = new ReportParameter();
        parametro.Name = "ContactID";
        parametro.Values.Add("2");//txtContactID.Text
        //Aquí le indicaremos si queremos que el parámetro 
        //sea visible para el usuario o no
        parametro.Visible = false;

        //Crearemos un arreglo de parametros
        ReportParameter[] rp = { parametro };
        //Ahora agregamos el parámetro en al reporte
        ReportViewer1.ServerReport.SetParameters(rp);
        ReportViewer1.ServerReport.Refresh();

y el código completo seria:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Le indicamos al Control que la invocación del reporte será de modo remoto
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        //Le indicamos la URL donde se encuentra hospedado Reporting Services
        ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/ReportServer");
        //Le indicamos la carpeta y el Reporte que deseamos Ver
        ReportViewer1.ServerReport.ReportPath = "/DemoRS/Contacto";
        //Definimos los parámetros
        ReportParameter parametro = new ReportParameter();
        parametro.Name = "ContactID";
        parametro.Values.Add("2");//txtContactID.Text
        //Aqui le indicaremos si queremos que el parámetro 
        //sea visible para el usuario o no
        parametro.Visible = false;

        //Crearemos un arreglo de parámetros
        ReportParameter[] rp = { parametro };
        //Ahora agregamos el parámetro en al reporte
        ReportViewer1.ServerReport.SetParameters(rp);
        ReportViewer1.ServerReport.Refresh();
    }
}

Este código aplica por si lo estas haciendo desde Visual Studio 2005, 2008 o 2010.

Post Cruzado de AJDev.net

Anuncios

11 comentarios el “ASP.net: Pasar parámetros a un reporte de Reporting Services (Modo Remoto)

  1. Amigo! muy buen tutorial. tienes un excelente de mi parte… pero me podrías ayudar?. yo tengo mi base de datos en acces y mi proyecto en vb 2010. tengo mi reporte y todo lo demás pero no consigo que me muestre determinados registros de dos tablas tomando una consulta por código.

  2. Hola.. amigo una favor me podrias indicar si existe la posibilidad de enviar parametros desde aplicaciones de windows form a reporting services… gracias

  3. No pude encontrar Explorador de Reportes, he visto en unos videos también la pestaña ‘Datos del Informe’, pero tampoco…

    ¿Cómo lo soluciono?

    Atento a sus comentarios.
    HC

  4. Hola Alex:
    He hecho un reporte, leyendo las Partes I, II y III, y al llegar a ésta me di cuenta que no me aparece la ficha “Datos” en el SQL Server Bussines Intelligence (el complemento de Visual Studio). Ahí implementé el reporte, todo bien, pero “Datos” no aparece. ¿A qué se debe?

    Muchas gracias.
    Necesitaba aprender reportes.
    Horacio.

  5. Pingback: BlogESfera.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s