DataGridView y CrystalReportView

De nuevo experto aquí tratando de recurrir a usted para ver si me puede ayudar con este código que he hecho y quiero que haga lo siguiente: Cuando el usuario presione el botón imprimir dentro del mismo formulario salga el crystalreportview y muestre el reporte con los datos del datagridview que tengo de una consulta.
Que me esta pasando todo funciona perfectamente lo único que es el datagridview1 no conecta con el crystalreportview y cuando presiono el botón imprimir sale el el reporte que he creado pero sin los datos, me imagino que el datagridview no esta pasando los datos.
No obstante el datagridview1 si tiene los datos de la consulta que he hecho pero no se en que estoy fallando anexo el código para ver si me pueden ayudar muchas gracias de nuevo.
Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
Dim cnn As New OleDbConnection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Jose Tallaferro\Escritorio\Efemerides\Reportes Diarios Dirección de Zona\Reportes Diarios Dirección de Zona\Data.mdb"
Dim ds_efemerides As New DataSet
Dim Adaptador As New OleDb.OleDbDataAdapter
Try
cnn.Open()
Dim consulta As String = "SELECT * FROM Efemerides WHERE N = " & Me.tbBusca.Text
Dim comando As New OleDbCommand(consulta, cnn)
Adaptador.SelectCommand = comando
Adaptador.Fill(ds_efemerides)
DataGridView1.DataSource = ds_efemerides.Tables(0)
Me.btnCerrarReporte.Visible = True
Me.crvReporteEfemerides.Visible = True
Me.DataGridView1.Visible = False
Dim Reporte As New rptEfemerides
Reporte.SetDataSource(ds_efemerides)
crvReporteEfemerides.ReportSource = Reporte
Catch ex As Exception
MessageBox.Show("No Hay Datos Para Imprimir")
Me.crvReporteEfemerides.Visible = False
Finally
If (cnn.State And ConnectionState.Open) <> 0 Then
cnn.Close()
End If
End Try

2 Respuestas

Respuesta
1
El problema es que no puedes pasar los datos de un grid a un crystal reports o bueno al menos no de una forma sencilla, lo que necesitas hacer es pasar la consulta al crystal reports,
Revisa este link:  http://www.forosdelweb.com/f29/llenar-dataset-xsd-con-datatable-para-verlo-crystal-reports-828443/
Hola que tal revise esa página que me mandas he probado de las dos formas y ninguna me sale en una no me sirve y en la que el usuario manda a otro para un tutorial lo hago todo pero cuando voy a programar no me sale el StringBuilder y no se porque debe ser por la version..
Complementando lo que dice en la página que te di. Para que funcione tienes que crear un Dataset con los campos de las tablas que quieres que salgan, deben de llamarse exactamente igual que en tu tabla, luego esos campos del dataset son los que vas a poner en la plantilla del crystal reports. Y pones el código en el botón que va a abrir el crystal reports viewer
Dim datas As New DataSet
datas.Tables.Add(dt)
datas.Tables(0).TableName = "Table1"
Dim Report As New ReportDocument
Report = New rpt_salidas_mayoreo2
Report.SetDataSource(datas.Tables("Table1"))
visorreportes.muestra.ReportSource = Report
visorreportes.Show()
Visorreportes es el nombre del formulario donde se muestra el reporte,
ahora la parte de muestra esta en el designer del formulario de visorreportes, es el control CrystalReportViewer que es donde se muestra el reporte.
Datas es el dataset.
"Table1" es el nombre de la tabla que se creo en el dataset.
Se que es algo confuso pero así va. La verdad ya tiene tiempo que trabaje en esto y no recuerdo bien el código.
Respuesta
1
Prueba primero asignado el reporte y después si el asignas la fuente de datos con el SetDataSources
Como seria más o menos ni idea...
La linea de código donde le asignas los datos al reporte la colocas después de la linea de código donde asignas el reporte al control viewer

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas