none
Imposible generar reporte con cristal report con datos de un datagrid view RRS feed

  • Pregunta

  • Buenas,

    no soy capaz de crear el reporte.

    Tegno esto:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim conexion As New MySqlConnection("Server=localhost;Database=grupomontes;Uid=root;Pwd=;")
            Dim da As New MySqlDataAdapter("select * from albaranes where num_albaran = '" & Me.TextBox1.Text & "'", conexion)
            Dim ds As New DataSet
            Dim i = 0
            da.Fill(ds, "grupomontes")
            Me.DataGridView1.DataSource = ds
            Me.DataGridView1.DataMember = "grupomontes"

        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim rpt As New reporte
            Dim FORMULARIO As New generar_reporte
            Dim conexion As New MySqlConnection("Server=localhost;Database=grupomontes;Uid=root;Pwd=;")
            Dim da As New MySqlDataAdapter("select * from albaranes where num_albaran = '" & Me.TextBox1.Text & "'", conexion)
            Dim ds As New DataSet
            da.Fill(ds, "grupomontes")
            rpt.SetDataSource(ds)
            FORMULARIO.CrystalReportViewer1.ReportSource = rpt
            FORMULARIO.CrystalReportViewer1.Dock = DockStyle.Fill
            Dim frmreporte As New Form()
            With frmreporte
                .Controls.Add(FORMULARIO.CrystalReportViewer1)
                .Text = "Reporte Albaranes"
                .WindowState = FormWindowState.Maximized
                .ShowDialog()
            End With
            conexion.Close()
        End Sub
    End Class

    Tengo los datos a mostrar en el reporte en el datagrid pero luego no los "coge" el cristal report.

    Tegno ya el diseño del reporte con los datos de las tablas puestos en "detalle" del cristal report. Me salen solo las etiquetas de textos, imagenes pero no me coge los datos de la base de datos..

    Tengo que entregar esto medio funcionando esta tarde y estoy desesperado...

    miércoles, 25 de abril de 2012 10:51

Respuestas

  • Me salen solo las etiquetas de textos, imagenes pero no me coge los datos de la base de datos..

    pero estas usando un dataset tipado para vincular los datos al reporte ?

    [Crystal Reports] Usar DataSet Tipado con dos Datatable

    un dataset sin tipo podria enviar campos que el reporte no reconozca y por ende no pueda mapear a datos

    por eso lo idea es validar que los campos de la query coinciden con los que crystal espera usar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 25 de abril de 2012 15:47
  • Hola

    Exacto, como dice Leonardo. Tienes 3 posibles opciones rapidas.

    - DataSet tipado.

    - Objetos.

    - Generar DataSet tipado por medio al asistente.

    En cualquiera de las 3 opciones debes enlazar la fuente de datos y esta debe coincidir con la diseñada para el reporte.

    Saludos. 

    miércoles, 25 de abril de 2012 15:52

Todas las respuestas

  • Hola.

    Debes diseñar el reporte antes de usarlo para enlazar los campor que vas a mostrar.

    Mire estos videos para que tenga una idea:

    Local Reports: Formatting and Remote Data Access

    How Do I: Build Reports?

    How Do I: Create a Report From a Database?

    PD: Los videos estan en ingles, pero en escencia sin tener que entenderlo se aprecia todo lo que necesita para generar un reporte ;).

    Saludos.


    • Editado By AlaN miércoles, 25 de abril de 2012 12:20
    miércoles, 25 de abril de 2012 12:20
  • ya tengo los reportes diseñados,

    las cabeceras me salen lo que no me salen son los datos que si que me aparecen en el data grid

    miércoles, 25 de abril de 2012 14:04
  • Se supone que diseñaste tu reporte y conoces tu fuente de datos, por lo cual, debes ponerle esa misma fuente de datos al BindingSource que utiliza el reporte para mostrar la informacion.

    Mira los video que te deje en el comentario anterior para que te orientes mejor.

    Saludos.

    miércoles, 25 de abril de 2012 14:15
  • Gracias Alan,he vsito 50 videos y el procedimiento lo tengo muy muy claro.

    Pero no me funciona. Si observas el codigo que pongo arriba uso la misma fuente de datos para el datadrig y para el reporte pero en uno si me sale pero en el otro no..

    Acabo de ver todos los videos y yo no tengo problemas en cargar los datos en el grid ni con el reporte de microsft.

    Necesito poder imprimir un albaran diseñado por mi con los datos de una fila de la bbdd. Por pantalla a traves de un grid sin problemas pero no puedo llevaqrlo al cristal report.

    miércoles, 25 de abril de 2012 14:26
  • Hola.

    Lo que sucede es que cuando diseñas un reporte con el asistente debes indicarle la fuente de datos, la cual a su vez genera un BindingSoruce, es a ese BindingSource que debes ponerle la fuente de datos.

    Ejemplo:

    Saludos.

    miércoles, 25 de abril de 2012 15:41
  • Me salen solo las etiquetas de textos, imagenes pero no me coge los datos de la base de datos..

    pero estas usando un dataset tipado para vincular los datos al reporte ?

    [Crystal Reports] Usar DataSet Tipado con dos Datatable

    un dataset sin tipo podria enviar campos que el reporte no reconozca y por ende no pueda mapear a datos

    por eso lo idea es validar que los campos de la query coinciden con los que crystal espera usar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 25 de abril de 2012 15:47
  • Hola

    Exacto, como dice Leonardo. Tienes 3 posibles opciones rapidas.

    - DataSet tipado.

    - Objetos.

    - Generar DataSet tipado por medio al asistente.

    En cualquiera de las 3 opciones debes enlazar la fuente de datos y esta debe coincidir con la diseñada para el reporte.

    Saludos. 

    miércoles, 25 de abril de 2012 15:52
  • gracias chicos. Cuando la fuente es una sola tabla ok.

    cuando le quiero meter datos de la segunda digamos que lo que ya funciona de la 1ª tabla desaparece. El tomado del ejeplo de Leandro este codigo casi tal cual:

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim conexion As New MySqlConnection("server=localhost;User Id=****;database=grupomontes")
            Dim da As New MySqlDataAdapter("select * from albaranes", conexion)
            Dim ds As New grupomontesDataSet
            da.Fill(ds, "albaranes")

            da = New MySqlDataAdapter("select * from clientes", conexion)
            da.Fill(ds, "clientes")
            Dim report As New CrystalReport1
            report.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = report
        End Sub

    Cuando añado campos en el reporte de la base de datos de albaranes todo OK, sin embargo en cuanto meto algun campo de la tabla clientes dejan de aparecerme tanto unos como otros.

    jueves, 26 de abril de 2012 10:05