none
Generar informe RRS feed

  • Pregunta

  • Buenos días, 

    tengo una pregunta. Tengo una sentencia sql de la que obtengo un número de campos variables y los muestro en un datagridview. Todos estos campos que se muestran en mi datagridview los obtengo desde una sóla columna de una tabla de la base de datos y. Esos valores de esa columna pueden ser de un tipo o de otro y puede haber desde 1 hasta n de ahí el número de columnas variables y de ahí la necesidad de hacer una query que me devuelva varias columnas. Mi duda llega a la hora de querer generar un informe ya que es necesario crear un tablix y enlazar columnas de la base de datos. Yo quiero crearme las columnas del tablix dinámicamente dependiendo del número de columnas que obtenga con mi sentencia sql. He hecho lo siguiente pero no me muestra el tablix porque no lo he creado, pero si lo creo sin enlazar datos me dice que necesito enlazarle datos.

     Dim dt As New DataTable()
            dt = cargaRegistros(0, 50).Tables(0)
            Me.ReportViewer.LocalReport.DataSources.Clear()
            Me.ReportViewer.LocalReport.DataSources.Add(New ReportDataSource("DataSet1", dt))

    Me.ReportViewer.
            Me.ReportViewer.RefreshReport()

    ¿Hay alguna forma de hacer lo que quiero hacer?

    Muchas gracias y un saludo


    • Editado Josean_85 miércoles, 3 de febrero de 2016 8:34
    • Cambiado Enrique M. Montejo viernes, 5 de febrero de 2016 8:05 Pregunta relacionada con el control ReportViewer de Windows Forms.
    miércoles, 3 de febrero de 2016 8:33

Todas las respuestas

  • No conviertas los valores en columnas. En lugar de eso, alimenta tu dataset con esa única columna que ya tienes y que contiene los datos "en vertical". Y luego con ese dataset, alimenta a un Tablix configurado en modo "Matriz" (no en el habitual modo "Tabla") y dile que las columnas de la matriz las saque de los valores que tenías en esa columna que los trae en distintas filas. Suponiendo que configures bien la Matriz, esto debería producir en pantalla una tabla con varias columnas variables, tal como querías.
    miércoles, 3 de febrero de 2016 9:53
  • Bueno es que realmente no traigo sólo los datos de una tabla quizás me expliqué mal. Hago un left join de  varias tablas para poder distinguir el tipo de dato. Verás la tabla tiene los campos valuestring, valuedate, valuenumber, fieldId y registroId. Pues varias filas en esta tabla pueden pertencecer a una misma entidad, es decir pueden haber dos filas (o más) con el mismo registroId (una fila será la clave y la otra el valor y eso se muestra en mi datagrid como una sola fila), por lo tanto necesito traerme los datos de esa consulta en columnas.
    miércoles, 3 de febrero de 2016 15:30