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 25-03-2008
lcarlos lcarlos is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
lcarlos Va por buen camino
Exclamation Insertar un campo MergeField en word

Buenas, abro este hilo por que ya he probado todas las posibles opciones que he encontrado en la pagina y en cualquier sitio relacionado, les cuento mi situación por si pueden ayudarme:

Tengo un ActiveX que carga un documento word que recibo por parámetro, además de recibir otro parametro con unos posibles campos a añadir.

El usuario de la aplicación debe poder modificar estos word añadiendo campos que el desconoce inicialmente pero que los va a seleccionar de un listbox y a añadir.

El word se incrusta en un olecontainer de la siguiente forma
Self.OleContainer.CreateObjectFromFile(Fuente,False); Siendo fuente el word.

Como no se hacer refencia al word lo que hago es en el botón que añade el campo hacer lo siguiente:
WordDocument1.ConnectTo(
IDispatch(OleContainer.OleObject) as _Document);

De esta manera ya puedo referenciarlo con WordDocument1

ahora viene el problema, si hago lo siguiente:
WordDocument1.MailMerge.Fields.Add(r, ElCampo); --> Me cierra el word y abre otro añadiendo elcampo, como un campo mergefield, pero lo que yo quiero es añadirlo en el word original donde ademas se puede escribir.

Si hago WordDocument1.Paragraphs.Last.Range.Text := '{ MERGEFIELD TratamientoCortesía\f " " }'; Si me añade el texto que pongo pero no se trata de un campo y no me sirve, además no se como añadirlo en la posición donde se encuentra el cursor.

Les agradeceré una ayudita, gracias.
Responder Con Cita
  #2  
Antiguo 26-03-2008
lcarlos lcarlos is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
lcarlos Va por buen camino
Solución

Buenas, ya tengo la solución , la pongo por si a alguien le sirve.

Salu2.
Código Delphi [-]
 
var
  Word: TWordApplication;
  Doc: TWordDocument;
 
begin
  Word := TWordApplication.Create(Application);
  word.Connect;
  Doc := TWordDocument.Create(Application);
  Doc.ConnectTo(
    IDispatch(OleContainer.OleObject) as _Document);
  // Valor de los parámetros
  r:= Doc.Range;
  tipo:= wdfieldmergefield;
  texto := ElCampo;
  formato:= true;
  // Añado el campo.
  Word.Selection.Fields.Add(Word.Selection.Range, tipo, texto, formato);
  // Oculto los códigos del campo
  Word.ActiveWindow.View.ShowFieldCodes := false;
 
end;

Última edición por marcoszorrilla fecha: 26-03-2008 a las 15:31:09.
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 datos a word Manuel Servers 43 10-06-2015 21:14:16
Insertar una Tabla en Word adebonis Servers 0 15-12-2007 07:53:28
insertar bitmap en word zidfrid C++ Builder 0 12-08-2007 23:52:46
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


La franja horaria es GMT +2. Ahora son las 23:17:15.


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