none
Crear un reporte con Reporting Services Vb.Net 2010 RRS feed

  • Pregunta

  • Hola amig@s.

     

    Quiero saber si existe alguna posibilidad de crear un reporte con Reporting Services del VS 2010 (Petición del cliente) pero que funcione con una query realizada por mi, esto por que necesito aplicar distintos tipos de filtros a dicho informe, importante que las columnas no varian, solo la cantidad de registros.

    Ya he creado este tipo de informes con el asistente pero me limita a las tablas y/o vistas seleccionadas en el DataSet seleccionado, mi idea es cambiar los datos de ese DataSet para ser reflejados en el informe.

     

    La verdad no se por donde comenzar y estoy un tanto preocupado con ese tema. Agradeceré cualquier ayuda con el tema este.

     

    Un abrazo.

    • Cambiado Fran DiazModerator jueves, 21 de julio de 2011 11:59 Es de SSRS (De:Lenguaje VB.NET)
    viernes, 8 de julio de 2011 4:28

Respuestas

Todas las respuestas

  • A ver, que nos aclaremos: ¿es un informe de Reporting Services (.rdl) o un informe cliente de Visual Studio (.rdlc)?

    En el primer caso, lo que podrías hacer es parametrizar la sentencia SQL, lo cuál automáticamente te creará prámetros del mismo nombre en el informe, y esos parámetros podrías pasárselos desde la parte del cliente cuando llames al informe de servidor.

    En el segundo caso, no solo puedes, sino que es forzoso, pasarle tu propio DataSet al informe. Durante tiempo de diseño, se utiliza un dataset ya predefinido con el único fn de que te ofrezca las columnas disponibles para poder pintar el informe. Pero una vez que lo has pintado y has salvado el .rdlc, ese dataset inicial no tiene por qué usarse para nada. En tiempo de ejecución lo alimentas con un dataset cualquiera que puedes rellenar con la consulta que quieras (o incluso rellenarlo por código sin usar ninguna consulta). Puede ser cualquier dataset, incluso uno no-tipado. Eso sí, los nombres de las columnas que haya en el dataset tienen que coincidir con los nombres que tenían las columnas que usaste en tiempo de diseño, para que el report pueda tomar sus datos y ubicarlos en el informe.

     

    viernes, 8 de julio de 2011 5:51
    Moderador
  • Ok Albert, Primero que todo, Muchas gracias por responder.

     

    El tipo de reporte es un (rdlc) y quiero llenarlo con un DataSet. hasta ahora tengo lo siguiente.

     

    Public Sub CreaDataSet()
    
        '[abre la conexión]
        ClsConn.IniciaConexion(My.Settings.CnnSql, "")
    
    
        '[Query consulta]
        Dim q As String = _
          "Consulta SQL... "
    
        '[crear el sqladapter]
        Dim AdCompras As _
            New SqlDataAdapter(q, ClsConn.Cnn)
    
        '[crear el DataSet]
        Dim DsCompras As New DataSet("DsCompras")
    
        '[Método]
        AdCompras.Fill(DsCompras, "Tabcompras")
    
        '[Objeto DataTable]
        Dim tblCompras As DataTable
        tblCompras = DsCompras.Tables("Tabcompras")
    
        '[Pasar DataSet a informe]
    
        'Aca es donde debo asignar este DataSet al informe y la verdad es que no recuerdo la manera!
    
        '[Actualiza informe]
        Me.ReportViewer1.RefreshReport()
    
    
    
        '[Cerrar conexión]
        ClsConn.FinalizaConexion()
    
    
      End Sub
    


    Por otra parte Creo el informe y pongo una Tablix para agregar los datos contenidos en el DataSet pero necesariamente me pide un origen de datos para diseñarlo...

     

    Agradecido de sus repuestas.

    viernes, 8 de julio de 2011 6:13
  • hola

    pero no usas un dataset tipado para los reportes ? o sea podrias crear tu mismo la query que lo cargue

    [Reporting Service] Campo Imagen desde un DataSet Tipado

    veras alli como cargo la info de forma manual, pero si haces una query a la db para luego en el Fill() cargar el datatable tambien es valido

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 8 de julio de 2011 12:11