Error en VB6 con Crystal Reports

Belen
08 de Julio del 2005
Intento abrir un crystal reports desde visual basic y me dice fallo al abrir documento, no hay suficiente memoria.

utilizo

'*** Ruta donde se encuentran almacenados los ficheros rpt. ***
strReport = App.Path & "rpt" & strReport

'*** Informe a imprimir. ***
fMainForm.jobnum = PEOpenPrintJob(strReport)

Por favor es urgente....

gracias

mvallejos
08 de Julio del 2005
Esomes porque eb Viewer de Crystal el muy pesado y come muchos recursos, utiliza el Ocx de Crystal y llama a los reportes desde allì.

Saludos

Bel?
08 de Julio del 2005
He cambiado el código para abrir el crystal pero ahora no se pasarle los parametros....

Primero, creo un formulario exclusivo para el reporte, supongamos que se llama formReporte, en el cual va a ir el objeto CrViewer. Luego, para llamarlo, lo hago desde un botón ubicado en otro formulario cualquiera, con el siguiente evento:

Private Sub Botón_Click()\\'Este botón debe ir
\\'en otro form
Dim frmRep As New formReporte
frmRep.Show vbModal
Set frmRep = Nothing
End Sub


Luego en el formulario donde va el control CrViewer debes colocar lo siguiente:

Option Explicit
Private crApp As New CRAXDRT.Application
Private crReport As New CRAXDRT.Report

Private Sub Form_Load()
\\'Abrir el reporte
Screen.MousePointer = vbHourglass

Set crReport = crApp.OpenReport(App.Path & \"\\tu reporte\", 1)
\\'crReport.SQLQueryString = \"Tu consulta SQL\" \\' esta
\\'consulta es opcional

CRViewer.ReportSource = crReport
CRViewer.DisplayGroupTree = False
CRViewer.ViewReport
Screen.MousePointer = vbDefault
End Sub

Private Sub Form_Resize()
CRViewer.Top = 0
CRViewer.Left = 0
CRViewer.Height = ScaleHeight
CRViewer.Width = ScaleWidth
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set crReport = Nothing
Set crApp = Nothing
End Sub


¿Como puedo pasarle parametros??

Silvina
08 de Julio del 2005
no se si esto te podra ser util. yo imprimo de otra forma con crystal, pero he tenido el mismo error si tenia varios objetos de impresion. podrias fijarte en eso.