La Web del Programador: Comunidad de Programadores
 
    Pregunta:  57250 - AGILIZAR UN REPORTE DE CRYSTAL REPORT 10
Autor:  jacqueline saavedra
Quisiera saber si es que existe alguna intruccion para ejecutar mas rapido un reporte hecho en crystal report 10 con una base de datos en sql server desde visual

mi problema es que diariamente la tabla donde hice mi reporte se le estan agregando gran cantidad de registros y al pasarle mis parametros se demora mucho en mostrar el informe que llega hasta aburrir, todo incluso pense que si hacia mi reporte con un procedimiento almacenado se demoraria menos pero es lo mismo

el codigo es el siguiente:

Dim appReporte As New CRAXDRT.Application

Set rptReporte = appReporte.OpenReport("aqui pongo la ruta de mi reporte y como se llama")

rptReporte.Database.Tables(1).ConnectionProperties("Provider") = "SQLOLEDB.1"

rptReporte.Database.Tables(1).ConnectionProperties("Data Source") = "Persist Security Info=False;User ID=sa;Initial Catalog=ZonaFranca;Data Source=SERVIDOR"

'Aqui le paso mis parametros'

rptReporte.RecordSelectionFormula = "DATEVALUE({Boleta.sFecha})>=#" & Format(frm_ImprimirDocxCliente.DTFecDesde.Value, "dd/mm/yyyy") & "# and DATEVALUE({Boleta.sFecha})<=#" & Format(frm_ImprimirDocxCliente.DTFecHasta.Value, "dd/mm/yyyy") & "#" & " and {Boleta.IdCliente}=" & IdCli & " and {Boleta.IdTipoDoc}=" & TipDocum

creo que estoy bien al pasarle mis parametros ya que me muestra el informe claro que en blanco y con el cursor del reloj de arena que me dice que esta procesando lo que yo le pase en mis parametros

Es por eso que pregunto si es que hay alguna forma de agilizarlo o es que difinitamente no la hay
si es que alguien me quiere contestar se lo agradeceria

  Respuesta:  Laubrisa Orellana
Los reportes se demoran porque para mostrar tiene que ejecutarse completamente y depende de la cantidad de informacion (de hecho si la informacion es n puedes superar la memoria disponible de imagen y el informe se cae por ello), quizas si no utilizas una vista previa lo envias directamente diminuya ya que windows no necesitaria dibujar el informe que en realidad ese es el tiempo mayor.
Lo otro que podrias hacer es tener una tabla intermedia con el resultado del informe y no pasarle a crystal los parametros sino que resolverlo antes y crystal solo se encargaria de leer y dibujar y no tendria que esperar la resolucion de la consulta osea los pasos a seguir serian
1.- limpiar tabla temporal de informe
2.- llenar tabla intermedia con parametros (lo ideal que sea en un procedimiento)
3.- ejecutar informe de crystal

suerte!!!!!!!!!!