none
Cargar informe CrystalReport desde un dataGrid RRS feed

  • Pregunta

  • Hola a todos,

    Desde un webform tengo una serie de campos con los que filtro el contenido de un gridview. Una vez lleno este quiero dar la oportunidad al usuario de imprimir con CR el informe con los mismos datos que tiene el gridview.

    He creado un informe en CR que muestra todo, sin el filtro que hago en el webform origen, para poder organizar los datos en el diseño. Ahora lo que quiero es que cuando cargue el informe en vista previa, crear un dataset que contenga solo los datos filtrados y asignar al informe este dataset. os acompaño el código que he implementado, pero lo haga como lo haga, siempre me muestra todos los datos que hay en el la tabla, no tiene efecto el filtro. Esto lo cargo en el load del webform que carga el informe ¿alguna ayuda?

     

    Dim conexion As String = ConfigurationManager.ConnectionStrings("CadenaConRegistro"

    ).ConnectionString

     

    Dim cnn As Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection

    (conexion)

     

    Dim da As New Data.SqlClient.SqlDataAdapter(" SELECT [idEntradaSalida], [entradaSalida], [añoTrabajo], [idCentro], "

    & _

     

    " [numeroES], [fecha], [referencia], [idLocalidad], [idOrigenDestino], "

    & _

     

    " [idUnidadRegistro], [idTipoDocumento], [asunto], [Observaciones] FROM [tblEntSal] "

    & _

    Session(

    "SqlBusqueda").ToString, cnn)

    ' en Session("SqlBusqueda") está el where que he construido para filtrar el datagrid

     

    Dim ds As New Data.

    DataSet

    da.Fill(ds,

    "tblEntSal"

    )

    report.Load(Server.MapPath("crInformeRegistro.rpt"))

    report.SetDatabaseLogon(

    "sa", "proliant1600"

    )

    report.SetDataSource(ds)

     

    CrystalReportViewer1.ReportSource = report

     

    Report está definido como

    Private

     

     

    report As New CrystalDecisions.CrystalReports.Engine.

    ReportDocument

     

     
    Empezando ;)
    martes, 9 de agosto de 2011 11:27

Todas las respuestas

  • hola

    que contiene esta parte

    Session("SqlBusqueda").ToString

    porque por lo que veo viene media magica, pero alli esta le problema sino defines un WHERE de forma correcta no filtra

     

    prueba definir el filtro fijo usando

    FROM [tblEntSal] WHERE campo = valor"

    y verifica que asi si filtre, si lo ahce entocnes claramente el problema esta en esa Session que marco

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de agosto de 2011 12:39
  • Hola a todos,

    El código que tenía funcionaba, Leandro, en la variable de sesión iba lo correcto.

    El problema estába en que el codigo que os envie no lo había probado, lo que tenía mal era en la parte del llenado del Dataset, hacía  da.Fill(ds), una vez que puse   da.Fill(ds,"tblEntSal") siendo este nombre el mismo que tiene la tabla inicial de la que parte el informe.

     

    Saludos cordiales


    Empezando ;)
    miércoles, 10 de agosto de 2011 10:28