Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Exportar varios registros a Word con el mismo nombre de Variable (https://www.clubdelphi.com/foros/showthread.php?t=92210)

feliz-58 27-08-2017 16:26:25

Exportar varios registros a Word con el mismo nombre de Variable
 
Saludos, Me explico, Después de poner patas arriba este foro, he encontrado la solución, pero solo me funciona con un registro,
(El código que encontré incluye crear una plantilla, crear las variables en el Documento y a traves de Delphi, asignarles el valor)
tengo una tabla en word, donde quiero insertar los registros de una tabla, imaginemos.

Nombre | Apellido | Pais
VarNombre VarApellido VarPais


Si tengo 5 registros en mi base de datos, como los agrego todos a esa tabla en word, he implementado códigos pero me salta el error de que ya la variable a la que le asigne el valor a sido utilizada, es decir solo me funciona con un registro, no con mas de uno, aquí va el código.

Código Delphi [-]
var
  Word: Variant;
  Documento: Variant;
begin

Try
  Word := CreateOleObject('Word.Application');
 (* Añades un documento basado en la plantilla *)
  Word.Documents.Add('C:\Nombres.dot');
  Documento := Word.Documents.Item(1);

        QReporte.First;
        Documento.Variables.Add('Nombre', Qreporte.FieldByName('Nombre').AsString);
        Documento.Variables.Add('Apellido',Qreporte.FieldByName('Apellido').AsString);
        Documento.Variables.Add('Pais',Qreporte.FieldByName('Pais').AsString);


  Documento.Fields.ToggleShowCodes;
  Documento.Fields.Update;

  Word.ActiveDocument.SaveAs('C:\documento.docx');

Word.Visible := true;
 
  ShowMessage('Operación Completada!!');

except
 on exception do
 begin
     Word.quit;
  end;
end;
end;

Intente hacer esto y me da el error que mencioné:
Código Delphi [-]
 if Qreporte.RecordCount>0 then
     While Not Qreporte.Eof do
     begin
      Documento.Variables.Add('Nombre', Qreporte.FieldByName('Nombre').AsString);
      Documento.Variables.Add('Apellido',Qreporte.FieldByName('Apellido').AsString);
      Documento.Variables.Add('Pais',Qreporte.FieldByName('Pais').AsString);
      Qreporte.Next;
     end;

Gracias de Antemano ^\||/

feliz-58 31-08-2017 03:47:46

Mmmm....
 
Nadie tiene una respuesta a mi pregunta? :confused::confused::confused: :eek:

Casimiro Notevi 31-08-2017 11:41:26

Cuando eso ocurre es porque nadie la ha entendido.

feliz-58 31-08-2017 14:53:46

Cita:

Empezado por Casimiro Notevi (Mensaje 520716)
Cuando eso ocurre es porque nadie la ha entendido.

Si preguntan que es lo que no entienden creo que muestra la intensión de ayudar...

Casimiro Notevi 31-08-2017 16:03:46

Vale ^\||/


La franja horaria es GMT +2. Ahora son las 22:45:07.

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