Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
FastReport enviar datos mediante un while

Hola como delphi y excel es muy lento cuando son mas de 1000 lineas quiero enviar datos a un fastreport y de ahi lo transformo en excel. Pero mi problema que no es solo una tabla sino que por cada linea de excel agrego en cada columna datos. Ejemplo Apellido, nombre, primer sueldo del año..etc. No se como hacer para escribir esto en un fastreport en el masterdetalle.


Seria algo asi que no me funciona: el mastedetalle no esta asociado a ningun dataset y solo me escribe el ultimo registro cuando envio el codigo de abajo. Hay forma mediante este while hacer que el mater tenga como un next para agregar el siguiente registro manual?-
ejemplo: Perez
garcia...





Código Delphi [-]
while not zquery3.EOF do
   begin

          frxReport1.Variables.Variables['apellido']:= QuotedStr(zquery3.Fields[0].AsString);

     zquery3.Next;
   end;

    If frxReport1.PrepareReport() then
      begin
         frxReport1.PrintOptions.ShowDialog := True;
         frxReport1.ShowReport;
      end;
Responder Con Cita
  #2  
Antiguo 22-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No se entiende bien el problema, eso de que delphi y excel son muy lentos
Responder Con Cita
  #3  
Antiguo 26-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fastreport

Hola Casimiro si ejecuto un listado por Ole delphi excel, cuando son listados de mas de 1000 lineas se hace lentisimo, comienza a generar linea a linea cada mas mas lento, dentro del while. Por eso encontre que fastreport hace listados de 160 hojas en segundos y lo exporto a excel. Pero se me genera el problema como explico mas arriba cuando quiero enviar a una linea datos de distintas tablas no se como hacer en fastreport. Es decir si se enviar de una tabla con sus relaciones datos a fastreport, pero si quiero enviar a una linea por ejemplo apellido, despues ultimo ingreso en la facultad , etc... combinar datos por linea ahi me hago lio. Con respecto a delphi excel hice la prueba de hacer la carga de datos en memoria mediante vector pero aunque es mas rapido, igual es lento para listados de 10000 registros.
Gracias.

Última edición por shoulder fecha: 26-02-2020 a las 13:36:12.
Responder Con Cita
  #4  
Antiguo 26-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo entender que deberías usar un dataset del fastreport.
Responder Con Cita
  #5  
Antiguo 26-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fastreport

Cierto casimiro pero al usar un dataset no me deja escribir mas texto en la linea que no vengan de ese dataset. Es decir solo me deja ver lo que viene de Select apellido.... pero si en la misma linea quiero agregar texto que no tiene nada que ver con ese select no me deja. En cambio con el excel directo mientras me encuentre en la misma linea ejemplo linea 12, puedo agregar en cada celda lo que yo quiera. Puede ser casimito que Ole delphi excel sea lento o me pasa a mi?, hasta 500 lineas va bien pero despues es cada vez mas lento.
Saludos.
Responder Con Cita
  #6  
Antiguo 26-02-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
FastReport es un reporteador de bandas, asi que su logica es diferente, pero puedes hacer de todo.

Con respecto a Excel, OLE es lento. La forma correcta es generar directamente el archivo. Aqui se mencionan algunas librerias:

https://stackoverflow.com/questions/...t-having-excel
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 26-02-2020
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Podrías crear un dataset en memoria que representará el contenido que enviarás a excel. Llenarlo como quieras y asociar ese dataset a la banda de FR.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como enviar un Record mediante un Socket? jednavlop Internet 5 27-05-2012 09:18:54
Enviar fax mediante código vivamotos C++ Builder 0 08-07-2010 12:31:54
Enviar correo electronico mediante MAPI adebonis API de Windows 3 12-10-2006 08:38:25
Enviar informacion mediante IdTCP Lionel Varios 0 31-05-2004 10:05:30
Error al enviar mails mediante smtp, AUXILIO!!! Walterdf Internet 1 18-12-2003 17:58:55


La franja horaria es GMT +2. Ahora son las 01:03:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi