Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Pasar informacion de delphi a word (https://www.clubdelphi.com/foros/showthread.php?t=68382)

warrior79 10-06-2010 17:33:37

Pasar informacion de delphi a word
 
Buenas dia a todos, que gran pagina es esta felicidades,soy nuevo aqui y esta es mi primera vez que pregunto algo jejeje
Tengo un problema conla automatizacion de word ya logre abrir el archivo template y mande de un query un registro al template y si se genera
Mi pregunta es que el query que tengo tiene 8 registros y en el template solo me muestra un solo registro
quiero hacer que en el mismo template se genere la misma carta con todos los usuarios que tengo en el query ya que hasta ahorita solo se refleja un usuario

este es el codigo que tengo que si funciona haber si alguien me puede decir algun ejemplo de como hacer que funcione

procedure TForm2.Button3Click(Sender: TObject);
var
WordApp,Documento: OLEvariant;
Template: string;
begin
Screen.Cursor := crHourglass;
try
// Create Word Instance
WordApp := CreateOleObject('Word.Application');
except
ShowMessage('Cannot start MS Word.');
Screen.Cursor := crDefault;
Exit;
end;
try
// Open a Word Document
WordApp.Documents.Add(Template := 'C:\Users\jibarra.acsmet\My Documents\Doc.Doc');
Documento := WordApp.Documents.Item(1);

Documento.Variables.Add('Nombre', Query1.fieldbyname('FIRST_NAME').asstring);
Documento.Variables.Add('Apellido', Query1.fieldbyname('LAST_NAME').asstring);
Documento.Variables.Add('Direcc', Query1.fieldbyname('ID').asstring);
Documento.Variables.Add('Zip', Query1.fieldbyname('WINID').asstring);
Documento.Fields.Update;
// Show Word
WordApp.Visible := True;
finally
WordApp := Unassigned;
Screen.Cursor := crDefault;
end;
end;

Saludos

pabloloustau 25-06-2010 19:32:23

te recomiendo que uses los componentes de quick report, estan diseñados para hacer presentaciones con registros de base de datos.

warrior79 07-07-2010 19:12:09

respuesta
 
gracias por la informacion si e usado quickreport pero queria ver si se lograba hacer con la automatizacion en word

saludos

edgargh 10-07-2010 04:31:00

si se puede hacer, pero tendrias que hacerlo a traves de la propiedad insertable de word.

esa propiedad te pide de parametros el ancho de la tabla, numero de registros, numero de columnas, separador (el caracter con el que quieres que se pase de una columna a otra), texto (la informacion con la que vas a llenar la tabla) y el marcador en donde vas a insertar la tabla con la informacion

para el texto yo utilizo una variable tipo string en donde voy generando la cadena con la información de los registros del query que quiero mandar a la tabla

ejemplo:

cadena:string;

cadena:='';

qry_x.close;
qry_x.open;

qry_x.first

while not qry_x.Eof do
begin
cadena := cadena+qry_x.FieldByName('nombre').AsString;
cadena := cadena+'&'+qry_x.FieldByName('apellido').AsString
end;

inserttable(500,qry_x.RecordCount+1,2,'&','Nombre & Apellido'+wraptext(#10+cadena,'nombredelmarcador');


La franja horaria es GMT +2. Ahora son las 12:13:26.

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