PDA

Ver la Versión Completa : Exportar varios registros a Word con el mismo nombre de Variable


feliz-58
27-08-2017, 16:26:25
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.

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é:
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
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
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 ^\||/