Programación General > Visual Basic 6.0 e inferiores
Crystal Reports 8.5 y SQL2000 conexión
(1/1)
Dieguinho..:
Buenos días, espero me puedan dar una mano con lo siguiente,
Tengo un proyecto armado que utiliza reportes de Crystal 8.0 enlazados a SQL (a cada .rpt se le pasaban los parameterfields necesarios) que deben salir a PDF.
Actualmente para eso, convierte los reportes en un formato tipo word (RTF) y despues los imprime por medio de una impresora virtual (PDF Creator) que los exporta a PDF.
Ahora lo que quiero hacer es realizar el pasaje a PDF directamente y por medio del crystal. Tengo entendido que la versión 8.5 se puede hacer, de hecho lo hice pero con un reporte de prueba y sin datos. Pero no consigo hacer la conexión al SQL y pasarle los parámetros.
Este es el código que se usa para abrir los reportes en crystal 8.0
--- Código: Visual Basic ---CrystalReport1.Connect = "DSN=.........."CrystalReport1.ParameterFields(1) = "parametro 1"CrystalReport1.ParameterFields(2) = "parametro 2"CrystalReport1.ParameterFields(3) = "parametro 3"CrystalReport1.ParameterFields(4) = "parametro 4"CrystalReport1.PrintFileType = crptRTF 'acá se pasa a WORD (crptRTF)CrystalReport1.PrintFileName = "nombre del archivo.rtf"CrystalReport1.Action = 1
y este el código que utilizao para abrir el reporte que usé de ejemplo en crystal 8.5 y que me sale en PDF
--- Código: Visual Basic --- Dim appl As New CRAXDRT.Application Dim rep As New CRAXDRT.Report Set rep = appl.OpenReport("d:prueba.rpt", 1) rep.ExportOptions.DiskFileName = "d:prueba.pdf" rep.ExportOptions.DestinationType = crEDTDiskFile rep.ExportOptions.FormatType = crEFTPortableDocFormat rep.Export False
la pregunta sería, como le paso la conexión al crystal 8.5? (los parametros vi que se pasan igual que la versión anterior).
o alguno tiene un código que haya usado con esta versión como para que lo use de base?
Saludos!!
Dieguinho..:
buenas,
bueno, sigo con este tema de los reportes hechos en crystal 8.5.
Ahora estoy trabado en lo siguiente. Tengo un reporte .rpt en donde el mismo reporte tiene armada una conexion al sql y a su vez apunta a una vista. Entiendo que el reporte funciona bien porque si presiono el boton 'Refresh' me pide unos parámetros y muestra los datos de manera correcta.
lo que necesito es ese mismo reporte abrirlo por código para generar una salida a PDF y lo estoy haciendo así:
--- Código: Visual Basic ---Dim crxApp As CRAXDRT.ApplicationDim crxReport As CRAXDRT.ReportSet crxApp = New CRAXDRT.ApplicationSet crxReport = crxApp.OpenReport("D:Report1.rpt", 1) crxReport.ExportOptions.DiskFileName = "D:prueba.pdf"crxReport.ExportOptions.DestinationType = crEDTDiskFilecrxReport.ExportOptions.FormatType = crEFTPortableDocFormatcrxReport.Export False de esta manera me sale un error que dice "Server has not yet been opened".
les suena? tienen idea que puedo hacer? me falta algo en el código?
yo estuve probando algunas cosa que vi en la web pero todavía no consigo dar con la respuesta justa, por lo que agradezco de antemano cualquier ayuda.
Saludos!
Dieguinho..:
parece que ya encontré la solución, me faltó agregar la parte del SetLogOnInfo...
ahi va el código
--- Código: Visual Basic ---Private Sub Form_Load() Dim crxApp As CRAXDRT.ApplicationDim crxReport As CRAXDRT.ReportDim crxTable As CRAXDRT.DatabaseTable Set crxApp = New CRAXDRT.ApplicationSet crxReport = crxApp.OpenReport("D:Report1.rpt", 1) For Each crxTable In crxReport.Database.Tables crxTable.SetLogOnInfo "nombreBD", "nombreBD", "user", "pass"Next crxReport.ExportOptions.DiskFileName = "D:prueba.pdf"crxReport.ExportOptions.DestinationType = crEDTDiskFilecrxReport.ExportOptions.FormatType = crEFTPortableDocFormatcrxReport.Export False End Sub
saludos!
Navegación
Ir a la versión completa