none
crystal report no muestra los datos RRS feed

  • Pregunta

  • buenas noches!! aqui tengo otra duda!! jajaj (me rio para no llorar)..

     tengo un datadridview vacio que voy llenando con atletas que participaran en una competencia, a medida que voy agregando atletas necesito que el reporte se actualice automaticamente.

    (hasta ahora he venido trabajando con procedimientos almacenados, pero para este caso solo debo mostrar los datos guardados en la memoria)

    por ejemplo si tengo 3 atletas cargados y elimino del datagridview uno de ellos, el reporte deberia mostrarme esos 2 atletas que quedaron.

    para esto he usado un dataset y creado una tabla con los campos necesarios .

    el problema es que el reporte sale vacio!!!!, cual podria ser la razon??? aqui dejo el codigo del boton "Imprimir"

     If dgvAtletasdeCalle.Rows.Count <> 0 Then
                Dim Dt As New DataTable
                Dt = Me.dgvAtletasdeCalle.DataSource

                Dim Cr As New Cr_Calle
                Cr.SetDataSource(Dt)

                Dim R As New frm_Cr_Calle
                R.CrystalReportViewer1.ReportSource = Cr
                R.ShowDialog()

            End If

    muchas gracias!!!!!


    valeria heredia


    • Editado valeriasheredia miércoles, 2 de agosto de 2017 5:39
    • Cambiado Enrique M. Montejo jueves, 3 de agosto de 2017 7:41 Pregunta relacionada con Crystal Reports.
    miércoles, 2 de agosto de 2017 5:33

Respuestas

  • Hola Valeria:

    No acabo de entender como rellenas el dataset, no lo veo.

    Mira, te adjunto un relleno correcto de un dataset para que lo puedas utilizar en tu crystal reports.

     
     Using cnn As DbConnection = da.CreateConnection()
    
                cnn.Open()
    
                dsInformes.Clear()
                    ' Creamos el Commando
                    Dim cmd As DbCommand = cnn.CreateCommand
    
                    'Creamos el dataAdapter 
                    cmd.CommandText = "SELECT  Orden,  Descripcion FROM Varios WHERE Cod_Empresa = @empresa ORDER BY Orden"
    
                    cmd.Parameters.Add(Configuracion.CreateParameter(cmd, "@empresa", VarGlobal.StrCodEmpresa))
    
                    'Creamos el dataAdapter 
                    Dim daInformes As DbDataAdapter = da.CreateDataAdapter()
    
                    daInformes.SelectCommand = cmd
                    'Poblar las tablas del dataset desde los dataAdaperts
                    daInformes.Fill(dsInformes, "Informe")
    
                    '******************
    ...

    Eso es esencialmente como lo tendrías que hacer, sustituye los datos por los tuyos.

    Un saludo.

    Gemma


    miércoles, 2 de agosto de 2017 7:03
  • Hola:
    Cambia estas 2 líneas

    Dim Dt As New DataTable
    Dt = Me.dgvAtletasdeCalle.DataSource

    Por esta            
                
    Dim Dt As DataTable = CType(Me.dgvAtletasdeCalle.DataSource, DataTable)
           
    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Pedro Ávila miércoles, 2 de agosto de 2017 12:17
    • Marcado como respuesta valeriasheredia jueves, 3 de agosto de 2017 3:40
    miércoles, 2 de agosto de 2017 8:17

Todas las respuestas

  • Hola Valeria:

    No acabo de entender como rellenas el dataset, no lo veo.

    Mira, te adjunto un relleno correcto de un dataset para que lo puedas utilizar en tu crystal reports.

     
     Using cnn As DbConnection = da.CreateConnection()
    
                cnn.Open()
    
                dsInformes.Clear()
                    ' Creamos el Commando
                    Dim cmd As DbCommand = cnn.CreateCommand
    
                    'Creamos el dataAdapter 
                    cmd.CommandText = "SELECT  Orden,  Descripcion FROM Varios WHERE Cod_Empresa = @empresa ORDER BY Orden"
    
                    cmd.Parameters.Add(Configuracion.CreateParameter(cmd, "@empresa", VarGlobal.StrCodEmpresa))
    
                    'Creamos el dataAdapter 
                    Dim daInformes As DbDataAdapter = da.CreateDataAdapter()
    
                    daInformes.SelectCommand = cmd
                    'Poblar las tablas del dataset desde los dataAdaperts
                    daInformes.Fill(dsInformes, "Informe")
    
                    '******************
    ...

    Eso es esencialmente como lo tendrías que hacer, sustituye los datos por los tuyos.

    Un saludo.

    Gemma


    miércoles, 2 de agosto de 2017 7:03
  • Hola:
    Cambia estas 2 líneas

    Dim Dt As New DataTable
    Dt = Me.dgvAtletasdeCalle.DataSource

    Por esta            
                
    Dim Dt As DataTable = CType(Me.dgvAtletasdeCalle.DataSource, DataTable)
           
    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Pedro Ávila miércoles, 2 de agosto de 2017 12:17
    • Marcado como respuesta valeriasheredia jueves, 3 de agosto de 2017 3:40
    miércoles, 2 de agosto de 2017 8:17