Crystal Report
Hola todos.
Quisiera saber cómo invoco un informe hecho en Crystal Report desde visual Basic. Debo crear el informe e incluirlo en un formulario aparte cada uno.
Si los equipos donde se va a instalar no tienen Crystal fucionaría el programa o debe incluirse algo.
Espero me puedan ayudar. Gracias de antemano.
Quisiera saber cómo invoco un informe hecho en Crystal Report desde visual Basic. Debo crear el informe e incluirlo en un formulario aparte cada uno.
Si los equipos donde se va a instalar no tienen Crystal fucionaría el programa o debe incluirse algo.
Espero me puedan ayudar. Gracias de antemano.
No necesita crystal en la maquina que se va a ejecutar la aplicacion solo necesita los archivo de ditribucion que lo puede hacer con el empaquetador de visual, como llamarlo es facil si lo hace con el ocx solo tiene que decir crystalreport1.action=1
Como podria hacer para teniendo un report en crystal que salga directamente a word desde visual 6.
Yo lo hago con un formulario donde va el control del reporte y otro desde donde lo llamo. Primero debes agregar al proyecto los componetes y referencias del crystal reports. En componentes es Crystal Reports Viewer y en las referencias Crystal Reports runtime Active x Designer Runtime. Luego al formulario donde va el reporte le agregas un Control Crviewer.
Al formulario donde va el botón que llama al reporte, le agregas el siguiente código:
Private Sub botónReporte_Click()
Dim frmRep As New frmReporte
frmRep.Show vbModal
Set frmRep = Nothing
End Sub
donde frmReporte es el nombre del formulario donde colocaste el control viewer.
Ahora, el código del formulario frmreporte sería el 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
If TipoReporte = 0 Then
Set crReport = crApp.OpenReport(App.Path & "TuReporte1.rpt", 1)
End If
If TipoReporte = 1 Then
Set crReport = crApp.OpenReport(App.Path & "Tureporte2.rpt", 1)
End If
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
Fíjate en la variable tipoReporte. Es una variable global creada en un módulo .bas para indicarle al formulario cuál es el reporte que debe abrir. A esta variable le doy un valor según el botón con el que llame al reporte. Para este caso son 2 reportes, agregando más if, puedes hacer todos los que quieras con el mismo formulario.
Saludos!
Al formulario donde va el botón que llama al reporte, le agregas el siguiente código:
Private Sub botónReporte_Click()
Dim frmRep As New frmReporte
frmRep.Show vbModal
Set frmRep = Nothing
End Sub
donde frmReporte es el nombre del formulario donde colocaste el control viewer.
Ahora, el código del formulario frmreporte sería el 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
If TipoReporte = 0 Then
Set crReport = crApp.OpenReport(App.Path & "TuReporte1.rpt", 1)
End If
If TipoReporte = 1 Then
Set crReport = crApp.OpenReport(App.Path & "Tureporte2.rpt", 1)
End If
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
Fíjate en la variable tipoReporte. Es una variable global creada en un módulo .bas para indicarle al formulario cuál es el reporte que debe abrir. A esta variable le doy un valor según el botón con el que llame al reporte. Para este caso son 2 reportes, agregando más if, puedes hacer todos los que quieras con el mismo formulario.
Saludos!
hola, me llamo noelia y medio solucione mi problema con el consejo que has dado, pero ahora el problema que tengo es que me aparece como error: " el servidor aun no ha sido abierto" como aconsejaste o tro chico comprobé las conexiones del crystal y efectivamente estaban mal, tenia una conexion distinta. Pero sige el error , he cambiado la conexion y tampoco va, estoy desde hace dias con esto.
Ayúdame por favor.....
Ayúdame por favor.....
En el Visual Basic, menú Proyecto, ahí aparecen Componentes y Referencias. De la lista de componentes tienes que seleccionar Crystal Reports Viewer Control y en referencias tienes que seleccionar Crystal Reports Active x Designer Runtime (el número dependerá de la versión del Crystal Reports que tengas instalado)
Si no tienes el Crystal Reports instalado, no te aparecerán las referencias en V Basic.
Saludos!
Si no tienes el Crystal Reports instalado, no te aparecerán las referencias en V Basic.
Saludos!
Hola, Disculpa, hice aparentemente el mismo proceso que enviaste para generar el reporte, sin embargo me marca un error, en el momento en que se quiere abrir el reporte: CRViewer1.ViewReport, aparece: "El servidor aun no ha sido abierto", y me aparece mi reportes sin datos!!!
Me podrías ayudar?
Me podrías ayudar?
y como hago para pasarle parametros (selectionformula y formulas) al visor? Agradeceria me puedan ayudar en esto
GRACIAS POR TU INMENSA AYUDA, SI ME FUNCIONA PERO NO ENCONTRE LA REFERENCIA QUE ME INDICASTE.
Hola! Tengo un reporte en Crystal Report 9, pero los textos con tildes y ñ salen desconfigurados. Que formato de letra puedo usar? O cómo lo corrijo? En La versión 8 usaba Arial Turco, pero para la 9 no me permite seleccinar este tipo de letra.
yo he tenido problemas de tipos de letra al cambiar de la 8 a la 9, y se han solucionado actualizando los drivers de la impresora. prueba a buscar los nuevos e instalalos.
suerte
suerte
