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!!!!!!!!!! |