No visualiza reporte de Crystal en Visual Basic 6

Tengo un formulario que llama a un reprote de crystal, es una prueba para integrar en un programa pero, no muestra el informe. El informe lo tengo guardado en .rpt en la carpeta del proyecto. Simplemente debe cargar el reporte sin parámetros ni nada, de momento, gracias por adelantado.
Este es el código.
Option Explicit
Private crprogram As New CRAXDDRT.Application
Private crreport As New CRAXDDRT.Report
Private continuar As Boolean
Private Sub from_resize()
CRViewer.Top = 0
CRViewer.Left = 0
CRViewer.Height = ScaleHeight
CRViewer.Width = ScaleWidth
'Este proceso redimensiona la ventana donde se muestra el reporte
End Sub
Private Sub form_load()
' Con este proceso se carga el reporte en la ventana del Crystal Viewer
On Error GoTo errcontrol
'Abrir el rerporte
screen.MousePointer = vbHourglass 'El cursor del raton se mostrara como un reloj de arena mientas no se ordene lo contrario
continuar = True
Set crreport = crprogram.OpenReport(App.Path & "\Report1.rpt", 1)
CRViewer.ReportSource = crreport
CRViewer.DisplayGroupTree = False
CRViewer.ViewReport
screen.MousePointer = vbDefault
errcontrol:
If Err.Number = -2147206461 Then
    MsgBox "El archivo de reporte no se encuentra, contacte con su administrador", vbCritical + vbOKOnly
Else
    MsgBox Err.Description, vbCritical + vbOKOnly
End If
continuar = False
screen.MousePointer = vbDefault
End Sub
1

1 respuesta

Respuesta
1
He utilizado muy pocas veces el Cristal Report, por eso tampoco puedo decir que lo controle mucho.
He revisado algún código que tengo por ahí y al final del código pone lo siguiente para presentar el informe:
    Form_CRViewer. CRViewer. Zoom 1
    Form_CRViewer. CRViewer. ViewReport
    Form_CRViewer.Show 1
Lógicamente 'Form_CRViewer' es el formulario donde tengo el objeto CRViewer.
Me extraña que antes de la etiqueta de error no termines el proceso. Donde pones:
    screen.MousePointer = vbDefault
    errcontrol:
    If Err.Number = -2147206461 Then
Yo pondría:
    screen.MousePointer = vbDefault
    exit sub ' Termina el proceso
    errcontrol:
    If Err.Number = -2147206461 Then
Más cosas. SI sigue sin aparecerte el informe, comprueba que el tamaño que estás poniendo no sea 0. Prueba a poner un mensaje detrás de la asignación del tamaño.
    CRViewer.Height = ScaleHeight
    CRViewer.Width = ScaleWidth
    msgbox "Tamaño " & CRViewer.Width & "x" & CRViewer.Height
Es posible que al ejecutarse durante la carga del formulario, todavía no estén asignados los tamaños.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas