Crystal Reports 8.5

Hace un tiempo estaba utilizando CR4.6 y aplicaba las siguientes líneas:
CrystalReport1.ReportFileName = "c:\ventas.rpt"
CrystalReport1.SelectionFormula = "{ventas.Fecha}>=Date(2000,2,2) and {dao.Fecha}<=Date(2003,5,1)"
CrystalReport1. PrintReport
Quiero hacer lo mismo por medio de código, pero en CR8.5, ¿cómo sería? Me podes orientar.

2 respuestas

Respuesta
1
Tan sólo he trabajado con la versión 4.6
Por lo que he estado averiguando la versión 8.5 sigue manteniendo la misma estructura. Mira si tienes bien instalados los ocx y las dll. Si quieres conocer que archivos son visita la web
www.crystaldecisions.com
En la sección suport y en el apartado technical briefs.
Respuesta
1
En CR 8.5 se puede hacer igual solo que te recomiendo que lo realices de esta forma, debido a que tu técnica obliga a seleccionar los registros por parte del Report y de la manera que te propongo lo realizaría el servidor de BBDD y el rendimiento es más optimo.
Dim rptApp As CRAXDRT.Application
Dim rptListado As CRAXDRT.Report
Dim rptSubListado As CRAXDRT.Report
Dim intI As Integer
Dim strQuery, strOrder, strWhere As String
'Abrimos el Informe
Set rptApp = CreateObject("CrystalRuntime.Application")
Set rptListado = rptApp.OpenReport(App.Path & "/infTalones.rpt")
' Establecemos conexiones para las tablas
For intI = 1 To rptListado.Database.Tables.Count
rptListado.Database.Tables(intI).SetLogOnInfo GetSetting("Talones", "Datos", "Servidor"), GetSetting("Talones", "Datos", "BBDD"), "Talones", "tlns"
Next
' Otenemos el SubInforme
Set rptSubListado = rptListado.OpenSubreport("ImportesTalon")
' Establecemos conexiones para las tablas
For intI = 1 To rptSubListado.Database.Tables.Count
rptSubListado.Database.Tables(intI).SetLogOnInfo GetSetting("Talones", "Datos", "Servidor"), GetSetting("Talones", "Datos", "BBDD"), "Talones", "tlns"
Next
'Cambiamos la sentencia SQL donde strQuery es la clausula Where
On Error Resume Next
strQuery = rptListado.SQLQueryString
strOrder = Mid(strQuery, InStr(1, strQuery, "ORDER BY"))
strQuery = Replace(strQuery, strOrder, "")
strWhere = Mid(strQuery, InStr(1, strQuery, "WHERE"))
strQuery = Replace(strQuery, strWhere, "")
strQuery = strQuery & Filtro() & strOrder
'Mostramos la ventana de impresión
CommonDialog1.CancelError = True
On Local Error Resume Next
CommonDialog1.ShowPrinter
DoEvents
If Err.Number > 0 Then Exit Sub 'Se ha seleccionado cancelar
On Error GoTo 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas