Datapayasadas

septiembre 11, 2009

Parámetros Multivalor con Reporting Services 2005 y ASP.NET ReportViewer

Archivado en: .Net, ASP.NET, C#, Reporting Services — Etiquetas: , , , — pabloide86 @ 3:21 pm

Buenasss como les va? Esta vez me trae por aquí este tema de los reportes. Resulta que me han pedido que haga un reporte donde pueda filtrar los valores a mostrar en el reporte pero desde el Report Viewer en una página Aspx…

Empecemos por el reporte. Supongamos que tenemos un reporte que debe mostrar un listado de proyectos y quiero elegir cuales mostrar y cuales no.

El reporte es bastante sencillo de hacer:

  • Crear un DataSource para conectarse a la base de datos
  • Crear un DataSet con una consulta que tenga la siguiente forma:
  • SELECT ID, Nombre, Descripcion FROM Proyectos WHERE ID IN(@IdProyectos)
    

    @IdProyectos es un parámetro del reporte que admite múltiples valores.

    Finalmente le damos el estilo visual al reporte, agregando una tabla con los campos del DataSet.

    Hasta aquí es bastante sencillo.

    Luego, en nuestra página ASPX agregamos un ListBox, un botón (para cargar el reporte) y el ReportViewer.

    Luego, para pasarle los valores al reporte:

    
    BindingList parametrosReporte = new BindingList();
    
    ReportParameter idProyectos = new ReportParameter("IdProyectos");
    
    for (int i = 0; i < listProyectos.Items.Count; i++)
    {
            idProyectos.Values.Add(listProyectos.Items[i].Value;
    }
    
    parametrosReporte.Add(idProyectos);
    

    Con esto creamos un parámetro de reporte y lo agregamos a la colección. Luego tenemos que asignar estos parámetros al ReportViewer que insertamos en la página. Para ello podemos usar el siguiente código:

    try
    {
            ReportViewer1.ServerReport.SetParameters(parametrosReporte);
    }
    catch
    {
            //Manejamos la excepción
    }
    

    Y listo. Espero que les sea de utilidad!!!

    Saludos

    1 comentario »

    1. BUEN COMIENZO

      Comentario por online-maris — octubre 7, 2009 @ 9:21 am


    RSS feed para los comentarios de esta entrada. URI para TrackBack.

    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

    Tema Shocking Blue Green. Blog de WordPress.com.

    Seguir

    Get every new post delivered to your Inbox.