PDA

Ver la Versión Completa : Fastreport - Tabla Virtual


shoulder
08-09-2020, 16:13:20
Hola hay una forma de enlazar una tabla virtual a fastreport o sino de un while enviar lineas de reporte?. Porque uso con Delphi 7 reportes en excel donde en el while envio lineas, aunque levanto el array en memoria y envio al final a excel es muy lento cuando son mas de 2000 renglones. Pero no encuentro como hacer esto en fastreport, si uso fr con tablas comunes. Gracias.

Casimiro Notevi
08-09-2020, 16:43:30
No me he enterado de lo que quieres hacer ni del problema que tienes.
Tampoco sé qué parte estás preguntando ni qué parte estás informando.

shoulder
08-09-2020, 18:50:58
Hola uso desde delphi 7 dentro de un while un array donde va informacion desde distintas tablas (ej. VarArray[I,1] := zquery3.Fields[4].AsString;) , que envio despues a un excel. Pero es lento a la linea 1500 comienza a ser mas lento. Estaba pensando eliminar el excel y grabar en vez de un array a una tabla virtual y enviarlo a FR o se puede al recorrer el while enviar renglon por renglon a FR?:

Casimiro Notevi
08-09-2020, 18:53:51
Perdona, pero no entiendo la relación entre un excel, una tabla virtual y fastreport.

shoulder
08-09-2020, 19:26:39
Hola hoy en dia por ejemplo me piden saber licencias de empleados de una empresa de un rango de fechas, hago un select y dentro de un while hago calculos de dias y otros calculos mas especiales que em piden, una vez hecho esto, antes de hacer el next del while envio esa linea a un excel y es lentisimo. Para acelerar hice un array una vez que termina de leer la tabla y hace todos los calculos envio ese array al excel (no renglon por renglon) es menos lento, pero para mas de 1000 lineas de excel se hace pesado.


Si elimino el excel puedo hacer un fastreport y enviar una tabla virtual a fasreport o como hago linea por linea que envio a excel se puede enviar asi la informacion a FR renglon por renglon a Fastreport?.


Gracias.

Casimiro Notevi
08-09-2020, 19:32:19
Y por qué no pasas la consulta sql al fastreport, directamente, no tienes que hacer nada más y será instantáneo.

shoulder
08-09-2020, 19:44:34
Hola porque tengo que hacer calculos por ejemplo si pidieras licencias del 01/10 al 03/10, pero tu abriste una licencia el 26 de septiembre y la cerraste el 05/10, tendria que escribir tres dias de ese rango, o si esta abierta la licencia la fecha final estaria en blanco y calculo solo los dias que fueron pedidos mas otros calculos que dentro de un sql como la sumatoria total de dias por documento se me hace muy engorroso . Por eso hoy en dia funciona bajo listado excel pero es lento.


Saludos.

Al González
08-09-2020, 22:52:03
Un componente TClientDataSet te puede servir como tabla virtual. Es estable, rápido y admite alimentación desde queries, además de alimentación manual en sus campos. Si con "tabla virtual" te refieres a un data set (relación de campos y registros) en memoria, entonces ese componente te puede servir y se puede usar con FastReport y con cualquier otra biblioteca de reportes.

De otro modo, te invitamos a exponer de forma más clara la necesidad que quieres resolver.

Saludos.

shoulder
09-09-2020, 17:51:02
Gracias lo hice como me explicaste, realmente muy rapido.

Al González
10-09-2020, 01:20:42
Ahora me tomo unos minutos para "traducir" tu primer mensaje. A como yo creo que pudo haberse entendido mejor. ;)

Hola hay una forma de enlazar una tabla virtual a fastreport o sino de un while enviar lineas de reporte?. Porque uso con Delphi 7 reportes en excel donde en el while envio lineas, aunque levanto el array en memoria y envio al final a excel es muy lento cuando son mas de 2000 renglones. Pero no encuentro como hacer esto en fastreport, si uso fr con tablas comunes. Gracias.
Hola.

Mi aplicación en Delphi 7 genera un lista de información que el usuario me pide en alguna forma de reporte o documento. Encontré la manera de enviarla a Excel, pero cuando son miles de registros el proceso se ralentiza demasiado. Así que pensé que sería mejor usar algún componente para reportes como los de FastReport. Mi experiencia con estos componentes ha sido siempre conectándolos a un query o tabla de base de datos.

¿Existe en Delphi algún componente tipo "tabla virtual", es decir, de sólo memoria, que mi programa pueda alimentar, y que además se pueda conectar con FastReport para generar el reporte?

Muchas gracias de antemano.

Casimiro Notevi
10-09-2020, 09:12:48
Un TClientDataSet te viene perfecto para lo que quieres.
^\||/^\||/^\||/

shoulder
10-09-2020, 21:24:19
Si Gracias realmente asi la velocidad es mucho mayor, sino no se el porque los programas en delphi con listados excel funcionan mas rapido en windows 10 que en versiones anteriores de windows.