Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2007
vipernet vipernet is offline
Miembro
 
Registrado: may 2006
Posts: 14
Poder: 0
vipernet Va por buen camino
excel lento

Buenas a todos, tengo un problema con la velocidad en la que se me generan los informes de excel, en el sistema se generan reportes a excel que no tienen menos de 1000 lineas y algunos llegan hasta las 65000, y se necesita si o si que los informes los genere a excel, pero el sistema tarda demasiado en generar los informes, mas especificamente en pegar los datos en la planilla. yo les dejo aca el codigo para ver que esta mal o que se puede mejorar(seguro que la mayoria de las cosas), pero tambien estuve buscando y no encontre el famoso componente datatoxls, queria ver si con ese componente podia aumentar la velocidad de generacion.

les comento que para generar un reporte de 9000 lineas tardo 3 minutos!!
y lo tarda en importarlas al excel, porque ya comprobe que la consulta la realiza en 1"

bueno, les dejo el codigo de la importacion.

saludos y gracias!!!!

procedure Tinfgastmens.Button1Click(Sender: TObject);
var i : integer;
begin
tinfgastomensual.Close;
tinfgastomensual.Prepared;
tinfgastomensual.Parameters.ParamValues ['@fecha1']:= datetimepicker1.Date;
tinfgastomensual.Parameters.ParamValues ['@fecha2']:= datetimepicker2.Date;
tinfgastomensual.Open;
excel.Workbooks.Add('C:\Sistemas vientos\sistemas ordenes de compra\reportes\listherrcargo.xls',0);
excel.Cells.Item[5,2]:=date;
for i:=0 to tinfgastomensual.RecordCount -1 do
begin
excel.Cells.Item[i+9,1]:=tinfgastomensual.FieldValues['apellido'];
excel.Cells.Item[i+9,2]:=tinfgastomensual.FieldValues['nombre'];
excel.Cells.Item[i+9,3]:=tinfgastomensual.FieldValues['area'];
excel.Cells.Item[i+9,4]:=vartostr (tinfgastomensual.FieldValues['tel']);
excel.Cells.Item[i+9,5]:=tinfgastomensual.FieldValues['cargo'];
excel.Cells.Item[i+9,6]:=tinfgastomensual.FieldValues['categoria'];
excel.Cells.Item[i+9,7]:=tinfgastomensual.FieldValues['denominacion'];
excel.Cells.Item[i+9,8]:=tinfgastomensual.FieldValues['cant'];
excel.Cells.Item[i+9,9]:= (tinfgastomensual.FieldValues['cant'] * tinfgastomensual.FieldValues['precio']);
excel.Cells.Item[i+9,10]:=tinfgastomensual.FieldValues['fecha'];
excel.Cells.Item[i+9,11]:=tinfgastomensual.FieldValues['intdest'];
excel.Cells.Item[i+9,12]:=tinfgastomensual.FieldValues['zonadest'];
label3.Caption := inttostr (i);
tinfgastomensual.next
end;
tinfgastomensual.First;
excel.Visible[0]:=true;
tinfgastomensual.Close;
infgastmens.close;
excel.Disconnect;
excel.Quit;
end;
Responder Con Cita
  #2  
Antiguo 04-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

La automatización OLE de Office es lenta debido a lo espeso de sus interfaces. Es por ello que algunos fabricantes se han dado a la tarea de crear bibliotecas de componentes para la exportación directa a archivos .xls, sin pasar por OLE, como es el caso de Developer Express con su súper poderosa rejilla TcxGrid (Quantum Grid).

Aunque existen muchas otras soluciones en el mercado.

Un abrazo ligero.

Al González.
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
excel a delphi, como mostrar columnas de excel Vyckso Servers 2 13-08-2007 12:38:08
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
MDI lento tomasgarcia OOP 1 27-07-2004 20:28:05
lento carlomagno Firebird e Interbase 4 02-07-2004 13:48:08
Cuando imprimen en excel o word se pone lento el sistema tulio Varios 0 07-04-2004 14:56:37


La franja horaria es GMT +2. Ahora son las 16:08:43.


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