Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 26-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 24
andres1569 Va por buen camino
Hola de nuevo:

No he utilizado nunca estos componentes, sino que como te decía he generado archivos Excel a la vieja usanza, mediante OLE variants. De esto hay varios ejemplos en estos foros, en concreto en el foro de Servers, por ejemplo:

http://www.clubdelphi.com/foros/show...p?threadid=703

La clave es recorrer tu Dataset y a cada registro asignar las filas, algo así como:

Código:
var
  ExcelObj : Variant;  // variable global

procedure TForm1.Button1Click (...);
var
  WBk, WSh : Variant;
  i, j : Integer;
  CodFarmacia : String;
begin
  ExcelObj := CreateOleObject ('Excel.Application');
  WBk := ExcelObj.Workbooks.Add('Farmacias.xlt');  // si usas una plantilla
  WSh := WBk.WorkSheets[1];
  Table1.First;
  i := 0; // lleva el contador de filas
  CodFarmacia := Table1CODFARMACIA.AsString;
  while NOT Table1.EOF do
  begin
    for j:=0 to Table1.FieldCount - 1 do
      Wsh.Cells[j, i] := Tabla1.Fields[j].AsString;
    Inc (i);
    // controlamos el cambio de grupo
    if CodFarmacia <> Table1CODFARMACIA.AsString then
    begin
      CodFarmacia := Table1CODFARMACIA.AsString;
      Inc (i);  // una forma de dejar una linea en blanco
    end;
    Table1.Next;
  end;
  ExcelObj.Visible := TRUE;
  WBk.SaveAs('Farmacias.xls');
end;

procedure TForm1.Destroy;
begin
  if NOT VarIsEmpty(ExcelObj) then ExcelObj.Quit;
end;
Insisto en que esto se sale de este foro de Impresión, es mejor que lo mires en el foro adecuado o si vas a la opción Buscar y tecleas Excel te aparecerán varios hilos donde se trata este tema. En este ejemplo que te pongo te encargas tú mismo de controlar cuándo hay un cambio de grupo (CODFARMACIA) y ahí puedes hacer lo que creas oportuno, como muestra he dejado una linea en blanco.

De todas formas, esto es muy manual, quizás encuentres algún componente que haga algo parecido.
__________________
Guía de Estilo
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 15:40:14.


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