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();</code>
    
    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

      Comment por online-maris — Octubre 7, 2009 @ 9:21 am


    Canal RSS de los comentarios de la entrada. URI para TrackBack.

    Deja un comentario

    Blog de WordPress.com.