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 27-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fastreport

Primero gracias por las respuestas, probe con tablas en memoria, pero cuando asocio al dataset para incorporar los campos en la banda me dice tabla inexistente porque todavia no fue creada y ahi no que hacer.
Porque haciendo un matriz y enviando a excel fuera de fastreport tambien es lento delphi. Hasta 11 columnas y 1000 lineas va bien pero despues se hace lento.
Por eso queria pasar todos los reportes del programa a fastreport ya que lo vi mucho mas rapido. Por ejemplo con OLE actualmente delphi7 y excel 5000 lineas x 50 columnas me tarda 5 minutos. Con vector baja a 3 minutos. Con fasreport 160 hojas en 5 segundos mas 1 minuto que lo transforma en excel.


Saludos.
Responder Con Cita
  #2  
Antiguo 27-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
Cita:
Empezado por shoulder Ver Mensaje
probe con tablas en memoria, pero cuando asocio al dataset para incorporar los campos en la banda me dice tabla inexistente porque todavia no fue creada
Depende del componente que estés usando. Lo más básico es usar un TClientDataset descoenactado de un servidor remoto y en tiempo de ejecución antes de usarlo usas la función CreateDataSet (También puedes crearlo en tiempo de diseño para hacer el reporte)
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 27-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fastreport

Gracias pero al estar desconectado no me deja incoporar los campos en la banda del master, cuando conecto como la tabla la creo en tiempo de ejecucion me da error. Perdon sere yo que no me doy cuenta.
Responder Con Cita
  #4  
Antiguo 27-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
En tiempo de diseño, hace click derecho del mouse y seleccionas la opción "Create Dataset", esto te permitirá manejar el dataset en tiempo de diseño para agregar campos y/o asociarlo a un reporte.

Si creas el dataset en tiempo de diseño, al iniciar la aplicación, el dataset ya estará abierto y listo para ser alimentado. No lo cierres, en lugar de ello usa la opción Dataset.EmptyDataset esta te permite vaciar el contenido con el que hayas estado diseñando o probando en memoria anteriormente.

Mayor información:
A Guide to Using the TClientDataSet in Delphi Applications
En especial este Defining a ClientDataSet's Structure Using TFields
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #5  
Antiguo 27-02-2020
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fastreport

Gracias lo voy a probar
Responder Con Cita
  #6  
Antiguo 06-03-2020
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 62
Poder: 10
marco3k Va por buen camino
Solución a Excel lento

Yo he tenido ese problema del excel lento para exportar un clientdataset de mas de 10,000 filas a excel y lo solucione con ADO.
Uso el clientdataset para las actualizaciones, pero para generar un listado en especifico de mas de 10,000 lineas uso TAdoDataSet, lo que hago es insertar en un modulo de datos un TAdoDataSet y le inserto los datos del clientdataset - lo cual por cierto a pesar la cantidad de filas este proceso es rápido - luego de eso Excel tiene un maravilloso método pero que solo trabaja con tecnologia ADO por eso es la necesidad de usar este componente. Creas un método con el nombre que desees y lo pones mas o menos asi:

Código Delphi [-]
var o_Excel,o_Libro, o_Hoja : OleVariant;
..
..

// Crea el objeto Excel, el objeto workBook y el objeto sheet
o_Excel := CreateOleObject('Excel.Application');
o_Libro := o_Excel.Workbooks.Add;
o_Hoja := o_Libro.Worksheets.Add;
// aca puedes recorrer los encabezados y otras cosas que desees
...

o_Hoja.Range['A2'].CopyFromRecordset(Rs.Recordset); // esta es el método importante del Excel y como parametro tiene un objeto ADO
//y por eso la necesidad de usar este objeto.

o_Excel.Visible := True;
Y listo este proceso es rapidísimo, espero te sirva como ami me sirvió.

Suerte.



Nota: otra solución sería que uses tecnología oledb y los componentes ado, pero en mi caso prefiero firebird y por eso sólo uso un componete TAdoDataSet para compatibilizar con Excel.
Responder Con Cita
  #7  
Antiguo 14-04-2021
luchifer luchifer is offline
No confirmado
 
Registrado: jul 2007
Ubicación: Santa Cruz - Bolivia
Posts: 50
Poder: 0
luchifer Va por buen camino
Recien me encontre con esta solucion.
Felicidades INGENIERO mas sencilla no podria ser
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 09:53:31.


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