Crystal Report 11 y VB6 Conexión
Tengo un pequeño inconveniente y es que vengo probando varios días como hacer para diseñar un reporte y mostrar en Visual Basic... He visto que se puede hacer desde afuera con el Diseñador de crystal report y también desde dentro con Visual Basic... Mi pregunta es como se debe hacer y al momento de llamarlo con que comandos utilizar si solo quiero mostrar una tabla productos... Nada más que eso:
Código, producto, unidad de medida, precio venta, stock
Sigo probando con ejemplos de los foros pero no me sale... Solo me sale que la conexión no es posible... Estoy usando Crystal Repor XI Developer, Visual Basic 6.0 y Access... Espero me puedas ayudar... AQUÍ VA EL CÓDIGO
Dim crxApp As New CRAXDRT.Application
Dim g_rptReporte As CRAXDRT.Report
Dim Rs As Recordset
Public Sub PreparaReporte(ByRef crxRep As CRAXDRT.Report, Optional ByVal strQuery As String = Empty, Optional rstDatos As ADODB.Recordset = Nothing)
On Error GoTo Err_handler
Dim intCount As Integer
With crxRep
.DiscardSavedData 'Descartamos la información que pueda traer el reporte consigo.
.Database.SetDataSource rstDatos 'Como viene un recordset entonces le indicamos al reporte que tome los datos de ahi.
.ReadRecords 'le indicamos que lea los registros.
End With
Exit Sub
Err_handler:
If Err.Number = 457 Or Err.Number = 35602 Then
Resume Next
End If
End Sub
Private Sub Form_Load()
Set Rs = New Recordset
Rs.Open "SELECT * FROM Producto ORDER BY des_pro", Cn, adOpenDynamic, adLockOptimistic
'SQL = "select * from tabla"
Set g_rptReporte = crxApp.OpenReport(App.Path & "\Informe1.rpt", 1)
'Set Rs = Nothing
'Set Rs = EjecutaSelect(SQL)
If Not Rs.EOF Then
PreparaReporte g_rptReporte, , Rs
CRViewer1.ReportSource = g_rptReporte
CRViewer1.ViewReport
End If
End Sub
Gracias de antemano... FERNANDO YANQUI - PERÚ
Código, producto, unidad de medida, precio venta, stock
Sigo probando con ejemplos de los foros pero no me sale... Solo me sale que la conexión no es posible... Estoy usando Crystal Repor XI Developer, Visual Basic 6.0 y Access... Espero me puedas ayudar... AQUÍ VA EL CÓDIGO
Dim crxApp As New CRAXDRT.Application
Dim g_rptReporte As CRAXDRT.Report
Dim Rs As Recordset
Public Sub PreparaReporte(ByRef crxRep As CRAXDRT.Report, Optional ByVal strQuery As String = Empty, Optional rstDatos As ADODB.Recordset = Nothing)
On Error GoTo Err_handler
Dim intCount As Integer
With crxRep
.DiscardSavedData 'Descartamos la información que pueda traer el reporte consigo.
.Database.SetDataSource rstDatos 'Como viene un recordset entonces le indicamos al reporte que tome los datos de ahi.
.ReadRecords 'le indicamos que lea los registros.
End With
Exit Sub
Err_handler:
If Err.Number = 457 Or Err.Number = 35602 Then
Resume Next
End If
End Sub
Private Sub Form_Load()
Set Rs = New Recordset
Rs.Open "SELECT * FROM Producto ORDER BY des_pro", Cn, adOpenDynamic, adLockOptimistic
'SQL = "select * from tabla"
Set g_rptReporte = crxApp.OpenReport(App.Path & "\Informe1.rpt", 1)
'Set Rs = Nothing
'Set Rs = EjecutaSelect(SQL)
If Not Rs.EOF Then
PreparaReporte g_rptReporte, , Rs
CRViewer1.ReportSource = g_rptReporte
CRViewer1.ViewReport
End If
End Sub
Gracias de antemano... FERNANDO YANQUI - PERÚ
1 Respuesta
Respuesta de Roberto Alvarado
1