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 18-04-2006
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
Wink Insertar datos a word

Holas amigos del foro, hace tiempo que tengo la idea siguiente:

terner una plantilla en word mas o menos asi:

Señor
{nombre}
{direccion}

Estimado, le comunicamos que con fecha {fecha}, usted tiene una deuda de {deuda}, le rogamos regularizar su situacion.

Atentamen el cobrador

Ahora, los datos en {}, deberiaqn ser sacados de una base de datos en interbase y crear una aplicacion que fuera insertando esos datos en word, es posible?, me gustaria mucho si me dieron algunas ideas, gracias
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #2  
Antiguo 18-04-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es muy sencillo. Creas la plantilla .dot en Word usando campos de tipo DocVariable (menú Insertar|Campo). A cada campo le asignas un nombre al momento de insertarlo. El documento .dot te quedaría más o menos así:

Señor
{ DOCVARIABLE nombre\* MERGEFORMAT }
{ DOCVARIABLE direccion\* MERGEFORMAT }

Estimado, le comunicamos que con fecha { DOCVARIABLE fecha\* MERGEFORMAT }, usted tiene una deuda de { DOCVARIABLE deuda\* MERGEFORMAT }, le rogamos regularizar su situacion.

Atentamen el cobrador
Conviene que actives la visualización de campos en el menú Herramientas|Opciones|Ver.

En Delphi, puedes llenar la plantilla así:

Código Delphi [-]
uses ComObj;

...

var
  Word: Variant;
  Documento: Variant;

begin
  (* Creas un objeto Word *)
  Word := CreateOleObject('Word.Application');

  (* Añades un documento basado en la plantilla *)
  Word.Documents.Add('carta.dot');
  Documento := Word.Documents.Item(1);

  (* Asignas valores a los campos *)
  Documento.Variables.Add('nombre', 'pepe pérez');
  Documento.Variables.Add('direccion', 'domicilio conocido');
  Documento.Variables.Add('fecha', '1976-02-29');
  Documento.Variables.Add('deuda', '$1.00 m.n');
end;

Claro está que los valores que asignes a los campos los puedes tomar de una consulta a la base de datos o de cualquier otra fuente.

// Saludos
Responder Con Cita
  #3  
Antiguo 19-04-2006
CamiloU CamiloU is offline
Miembro
 
Registrado: dic 2005
Ubicación: Sincelejo - COlombia
Posts: 59
Poder: 19
CamiloU Va por buen camino
Me intereso el huilo y segui las instrucciones de Roman. Pero tengo una duda. Como puedo ver los resultados? Ejecute la aplicación pero no vi resultados en la plantilla. Es necesario realizar algún paso adicional?

Muchas Gracias.
Responder Con Cita
  #4  
Antiguo 19-04-2006
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Post

Aqui un link de Microsoft que creo te puede servir tambien.

Saludos.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 19-04-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por CamiloU
Ejecute la aplicación pero no vi resultados en la plantilla. Es necesario realizar algún paso adicional?
Sí bueno, me faltó ese detallito

Después de los pasos anteriores necesitas visualizar Word con

Código Delphi [-]
Word.Visible := true;

Con esto debe aparecerte ya la ventana de Word con el nuevo documento.

// Saludos
Responder Con Cita
  #6  
Antiguo 02-05-2006
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
gracias roman

segui los pasos que dijiste incluso el Word.Visible := true; me muestra la carta pero no los datos: justo como lo dijiste, use casi el mismo ejemplo, la plantilla asi:

Cita:
Carta

El señor
{ DOCVARIABLE nombres \* MERGEFORMAT}
Cita:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComObj,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
Word: Variant;
Documento: Variant;
begin
(* Creas un objeto Word *)
Word := CreateOleObject('Word.Application');

(* Añades un documento basado en la plantilla *)
Word.Documents.Add('c:\softcolegio\plantilla.dot');
Documento := Word.Documents.Item(1);

(* Asignas valores a los campos *)
Documento.Variables.Add('nombres', 'pepe ');
Word.Visible := true;
end;

end.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #7  
Antiguo 02-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Vaya! ¡Qué omisión! Acabo de revisar una vez más el código donde tengo implementado algo similar y veo que, en efecto, olvidaba algo que parece ser imprescindible.

Código Delphi [-]
Documento.Variables.Add('nombres', 'pepe ');
Documento.Fields.Update;
Word.Visible := true;

Espero que ahora sí.

// Saludos
Responder Con Cita
  #8  
Antiguo 27-01-2009
NashvilleX NashvilleX is offline
Registrado
 
Registrado: ene 2009
Posts: 1
Poder: 0
NashvilleX Va por buen camino
Talking

Cita:
Empezado por roman Ver Mensaje
Es muy sencillo. Creas la plantilla .dot en Word usando campos de tipo DocVariable (menú Insertar|Campo). A cada campo le asignas un nombre al momento de insertarlo. El documento .dot te quedaría más o menos así:


Señor
{ DOCVARIABLE nombre\* MERGEFORMAT }
{ DOCVARIABLE direccion\* MERGEFORMAT }

Estimado, le comunicamos que con fecha { DOCVARIABLE fecha\* MERGEFORMAT }, usted tiene una deuda de { DOCVARIABLE deuda\* MERGEFORMAT }, le rogamos regularizar su situacion.

Atentamen el cobrador

Conviene que actives la visualización de campos en el menú Herramientas|Opciones|Ver.

En Delphi, puedes llenar la plantilla así:

Código Delphi [-]

uses ComObj;

...

var
Word: Variant;
Documento: Variant;

begin
(* Creas un objeto Word *)
Word := CreateOleObject('Word.Application');

(* Añades un documento basado en la plantilla *)
Word.Documents.Add('carta.dot');
Documento := Word.Documents.Item(1);

(* Asignas valores a los campos *)
Documento.Variables.Add('nombre', 'pepe pérez');
Documento.Variables.Add('direccion', 'domicilio conocido');
Documento.Variables.Add('fecha', '1976-02-29');
Documento.Variables.Add('deuda', '$1.00 m.n');
end;


Claro está que los valores que asignes a los campos los puedes tomar de una consulta a la base de datos o de cualquier otra fuente.

// Saludos

Agradezco mucho la ayuda. Menos mal que encontré este hilo para enterarme del método que enseñas.

Gracias
Responder Con Cita
  #9  
Antiguo 12-03-2009
siriana siriana is offline
Registrado
 
Registrado: may 2008
Posts: 9
Poder: 0
siriana Va por buen camino
Unhappy insertar datos de builder a word

hola yo estoy trabajndo en c++ builder 6.0 y me maraca unos errores por que algunas propiedades no perteneces a ese tipo de builder, si me pudieran ayudar a sustitiur le codigo para c++ builder 6.0 estaria muy agradecida.ç
Responder Con Cita
  #10  
Antiguo 30-04-2015
emeritos emeritos is offline
Miembro
 
Registrado: may 2003
Posts: 307
Poder: 21
emeritos Va por buen camino
Y para insertar una imagen, la cual o bien la tengo en una variable longblob o su direccion algo como "c:\archivo\dibujo.jpg"

Gracias
Responder Con Cita
  #11  
Antiguo 30-04-2015
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Prueba esto

Código Delphi [-]
Archivo = 'c:\imagen.png'
rango = wordtable.Cell( i,j).Range;
word.selection.inlinesshapes.addpicture(archivo, emptyparam, emptyparam, rango


Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -

Última edición por fjcg02 fecha: 30-04-2015 a las 14:28:39. Razón: corregir ortografía
Responder Con Cita
  #12  
Antiguo 02-05-2015
emeritos emeritos is offline
Miembro
 
Registrado: may 2003
Posts: 307
Poder: 21
emeritos Va por buen camino
Ok, gracias.
Pero en word que variables debo de poner para que salga o como debo de poner la variable
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
Insertar filas en Tabla(word) Loviedo Servers 2 14-11-2007 00:12:40
Automatizacion de word (insertar tablas) alt126 C++ Builder 2 04-11-2005 10:44:29
Insertar objetos en Word ingel Varios 0 18-05-2005 22:42:12
Cómo insertar un salto de página a word desde delphi? nacho Servers 3 08-03-2005 21:02:16
Insertar Imagenes desde Delphi a un Documento Word ludan508 Servers 1 21-09-2004 01:07:02


La franja horaria es GMT +2. Ahora son las 09:59:23.


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