Inicio > ASP.net, Reporting Services, SQL Server > ASP.net: Pasar parámetros a un reporte de Reporting Services (Modo Remoto)

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

  1. Horacio Contreras
    7 septiembre 2010 a las 11:42 AM | #1

    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.

  2. 7 septiembre 2010 a las 12:24 PM | #2

    Pero estas abriendo el SQL Server Bussines Intelligence de SQL Server 2005 o 2008??

  3. Horacio Contreras
    7 septiembre 2010 a las 6:43 PM | #3

    mm, 2008… Ahi el error?

    • 8 septiembre 2010 a las 6:44 PM | #4

      Si… ya que la pestaña de datos desaparece… y solo puedes acceder al query a traves del DataSet, y esto lo veras en el Explorador de Reportes.

  4. Horacio Contreras
    9 septiembre 2010 a las 12:15 PM | #5

    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

  5. Horacio Contreras
    9 septiembre 2010 a las 3:22 PM | #6

    Olvida todo, ya lo solucioné.
    Gracias…
    !!

  6. layoner
    17 septiembre 2010 a las 5:29 PM | #7

    Orale ese post esta muy bien y facilito de aprender grax mano

  1. 28 agosto 2010 a las 9:25 AM | #1

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 27 seguidores