PDA

Ver la Versión Completa : FastReport Numeracion de Hojas


hecospina
01-02-2008, 23:17:48
Hola amigos del foro
Trabajo con FastReport 4, esta aplicacion tiene una funcion denominanda doble pasada
Me sirve entre otras cosas para determinar el numero total de hojas que tiene un informe y poder imprimir el dato: "Página 1 de 20" por ejemplo

El problema que tengo es que duplica el tiempo de generacion del reporte es decir cuando desactivo esta opcion solo realiza un pasada, no me da el numero total de paginas pero el reporte es mas agil

Alguien sabe como determinar desde fastreport cuantas hojas contiene el reporte sin utilizar esta opcion

Gracias

jachguate
02-02-2008, 00:40:28
Si tu reporte imprime una cantidad fija de detalles en cada hoja, sería tan fácil como dividir el número de registros entre este número y aproximar al entero mayor.

Si es un reporte ya mas o menos complejo, quizás con subtotales, o cuyas líneas varían de altura dependiendo de la cantidad de texto o de otras condiciones, indudablemente resulta mucho mas rápido (al menos de programar) hacer la doble pasada por el reporte.

Otra cosa que puede estar afectando la velocidad, es que realices cálculos tardados, por ejemplo, en el evento OnCalcFields del DataSet asociado, que al recorrerse dos veces, obligará a que los cálculos se realicen innecesariamente 2 veces.

Podrías hacer los cálculos una sola vez, mantenerlos en memoria (tipo cache) y así evitar el desperdicio de tiempo.

Hasta luego.

;)

PepeLolo
02-02-2008, 19:29:29
Para poder obtener el número de páginas totales de informe, necesitas que el sistema realice una doble pasada, esta segunda pasada es la que obtiene el número de paginas totales y parciales. Si el reporte tarda es porque tienes algun proceso que realiza alguna operación en alguno de los dataset del reportte. Revisa los eventos Afterscroll, oncalcfields, etc.

un saludo.

hecospina
04-02-2008, 15:21:12
Gracias por las respuestas
Ya hice la revision y estas opciones estan bien
Cuando digo que el reporte se tarda no es un retardo muy grande, es el doble del tiempo del reporte unos 5 segundos
Lo que sucede es que debo optimizar lo mas que puede dicho tiempo ya que estos reportes podran ser consultados en una aplicacion que se conecta via tcp ip con un equipo remoto por internet
Muchas gracias por su tiempo