Crystal 8

Seré breve... NUNCA he utilizado Crystal para mis reportes, de hecho, haciendo mis pininos logré lo que quería, pero (por ejemplo) al cambiar la ruta de la carpeta contenedora del proyecto mi reporte no se vincula... Hay alguna instrucción de tipo app. Path & "\ruta\archivo.mdb" que deba usar...?, por otro lado ¿Los datos se actualizan por sí mismos o debo agregar alguna línea?... Todo lo jalo desde VB6...
Respuesta
1
Par lo primero, lo mejor es colocar el o los reportes en el mismo directorio donde se encuentra la base de datos y en el reporteador en el menú "Base de datos > Establecer ubicación" hay un botón llamado "La misma del informe", seleccionas una tabla de cada base de datos(al menos) que tengas en el reporte y haces clic en este botón y lo que hará será considerar que en el directorio donde se encuentra está el reporte está la base de datos.
Para lo segundo, los reportes toman la información cada vez que son llamados en este caso desde Vb6, solo debes considerar una opción que se encuentra en el menú "Archivo > Guardar datos con el informe" y esta debe estar desactivada ya que cuando está activada guarda los datos que se hayan generado.
Si tienes alguna duda dímelo
Hola... tu respuesta es muy buena... pero desafortunadamente no puedo hacerlo... ya que al instalar el Crystal 8 no tengo ningún ejecutable, por lo que creo el informe directamente agregando en visual basic un CrystalReport1... lo que me manda el asistente... conecto... visualizo datos... pero después no se activa la opción "Set location/same as report"... no sé si puedas ayudarme... pues entiendo que primero debo crear un "reporte" guardarlo (sin datos) y después hacer lo que me indicas... gracias...
No entiendo a que te refieres al decir que no tienes ningún ejecutable, ¿es decir que instalas el Crystal pero no puedes llamarlo para hacer los reportes?
Ya me confundí. No sé si lo que estás usando es el "Crystal report Viewer Control", a eso me suena ¿es así?
Hola... lamento haberme desconectado por la mañana... pero tuve que salir... verás... utilizo el "Crystal report Viewer Control", pero además... no existe en ningún lugar de mi disco duro el crw32.exe... no entiendo yo tampoco cómo es posible que la instalación "personalizada" de Crystal 8 no me haya dejado un ejecutable tal y como lo hace el Crystal 4... si puedes ayudarme... por favor... (tengo instalado Win2000)
Sobre la instalación creo que no tienes propiamente el instalador del CR, alguien más me preguntó lo mismo que tú sobre el Instalador pero aparentemente solo instala el viewer.
Pero volviendo al problema, ya solucioné el problema, solo que hay un pequeño gran cambio.
Intenté de la forma tradicional pero no funcionó así que hay que hacer lo siguiente.
Primero, tienes que crear tu reporte desde Vb6 seleccionando tu(s) base(s) de datos con ADO OLE DB(que es mejor o puede ser ODBC si tu quieres).
Enseguida, y ESTO ES MUY IMPORTANTE, cuando te pregunte la opción llamada "Elija de una lista de objetos de base de datos" seleccionas la opción "SQL" ya que esto es lo que nos va a permitir cambiar la ubicación de la base a donde nosotros queramos, de otra manera, no lo hará. Escribes la sentencia SQL, por ejemplo: Select * From Tabla.
Una vez que tengas ya creado el reporte, vas a escribir el siguiente código combinándolo con el que te crea el viewer:
Dim Report As New CrystalReport1
Dim rs As ADODB.Recordset
Private Sub Form_Load()
Set rs = CreateObject("ADODB.recordset")
rs.Open "Select * From Tabla", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MiBase.mdb;Persist Security Info=False", adOpenKeyset, adLockOptimistic
Report.Database.SetDataSource rs
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
End Sub
La única forma que encontré de hacerlo es con ADO y por otro lado, tendrías que hacer de nuevo tu reporte, ya que hay que indicarle que tome los registros de una instrucción SQL.
De otra forma no logré hacer que conectara a la base con una ruta de base de datos diferente a donde se creó originalmente.
Si no queda claro, escríbeme de nuevo.

1 respuesta más de otro experto

Respuesta
1
El control de crystal tiene dos propiedades que te pueden ayudar a realizar esto:
[formulario.]Informe.Connect [= Nombre;IdUsuario;Contraseña;CalificadorBaseDatos$]
Yo realizo la conexion a la BD mediante ODBC por lo tanto en mi caso sería algo así:
Informe.Connect = Nombre_Fuente_Datos_ODBC
[formulario.]Informe.DiscardSavedData [= VerdaderoFalso%]
Te permite actualizar los datos o utilizar los guardados con el informe.
Lamento molestarte nuevamente, verás, utilizo Win2000, y en mi proyecto vb solo existe el CrystalReportViewerControl, el cual tengo agregado en un formulario, con el siguiente código...
Dim Report As New CrystalReport1
Option Explicit
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End Sub
Por otra parte, tengo un formulario de tipo CrystalReport1, al cual llamo desde el formulario del código anterior... pero al escribir Report.conn... no existe la propiedad que mencionas..., es decir, pude ver que con Crystal 4 que viene con VB6 sí puedes manejar esos detalles... pero mi base de datos es del formato Access 2000... no considero conveniente convertirla a Access 97... ¿podrías ayudarme?... gracias...
p.d.: De hecho... tras instalar Crystal 8 no tengo el control Crystal Report (un icono que se puede agregar a los formularios como el de Crystal 4)
Lo siento pero me parece que estoy anticuado, yo utilizo el componente Crystal Report Control 4.6 de VB 6, una BD Access 2000 y el Crystal Report for Visual Basic 4.6
Unas antiguallas.
Lo siento.
Gracias por leer mi mensaje... como consuelo debo decirte que aprecio le hayas dedicado tanto tiempo a mi pregunta... además... nadie más pudo ayudarme, por lo que terminé usando CrystalReport4.6

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas