Llamar reporte de Crystal 8 desde VB

Monica
03 de Julio del 2005
Alguien me puede decir cuales son las instrucciones para llamar un reporte de crystal report 8 desde visual basic.... GRACIAS a quien me pueda ayudar

Mario P?z
03 de Julio del 2005
Primero debes de colocar un control CrystalReports y luego:

CryReporte.Connect = "DSN=OGeologia;UID=sa;PWD=;DSQ=BD_Geologia"
CryReporte.ReportFileName = App.Path + "RptrptLeyesLabor.rpt"
CryReporte.RetrieveDataFiles
CryReporte.DiscardSavedData = True
CryReporte.ReportSource = crptReport
CryReporte.WindowState = crptMaximized
CryReporte.Destination = crptToWindow
CryReporte.Action = 1
Espero ayudarte en algo, saludos

Spool
03 de Julio del 2005
Bien lo de Mario, una sola acotacion, las rutas siempre manejalas en un INI , asi si en una de esas se cambian de ruta no modificas los N informes que podas tener y modificas solo el archivo INI.

Salu2

Salu2.

Marko
03 de Julio del 2005
Pues a mi me sirvio de mucho te lo agradesco y cuando se te ofresca algo ya sabes que puedes contar conmigo

alberto
03 de Julio del 2005
Añadiendo un poco lo de Mario, tenes que tener en cuenta q el VB reconoce al control Crystal como uno solo, por mas que lo coloques en varios forms, razon por la cual te aconsejo que lo coloques en un MDI y simplemente colocas en el codigo algo parecido a esto
frmMDI.CrystalReports.Propiedades

Aca te envio un procedimiento que suelo utilizar para no escribir tantas lineas cuando llamo a un informe:

Public Sub OutReport(CryRptObj As CrystalReport, RptFile As String, Titulo As String, RptAction As Byte, NameDB As String, Optional SelFormula As String, Optional FormulasX As String)
On Error GoTo LimpErr
'procedimiento que lanza un informe
Screen.MousePointer = vbHourglass
CryRptObj.ReportFileName = RptFile 'Nombre del Informe
CryRptObj.WindowTitle = Titulo 'Titulo de la ventana del informe
If Trim(SelFormula) <> "" Then
CryRptObj.SelectionFormula = SelFormula ' Si existe alguna formula
End If
If Trim(FormulasX) <> "" Then
CryRptObj.Formulas(0) = FormulasX 'Si existe alguna formula
End If
CryRptObj.WindowState = crptMaximized 'Estado en el cual va a desplegarse la ventana
CryRptObj.Action = RptAction 'Modo en el cual se disparará el informe (pantalla, impresora)
CryRptObj.Reset 'Resetear el Crystal para otro informe
CryRptObj.DataFiles(0) = NameDB 'Nombre de la BD
Screen.MousePointer = vbDefault
LimpErr:
If Err.Number > 0 Then
MsgBox Err.Description, vbInformation,
End If
Err.Clear
Screen.MousePointer = vbDefault
End Sub
te aconsejo que el mismo lo coloques en un modulo para q puedas llamarlo desde cualquier formulario.

Espero q te ayude
saluds
alberto