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 24-07-2007
armando armando is offline
Miembro
 
Registrado: dic 2003
Posts: 74
Poder: 21
armando Va por buen camino
insertar

hola nuevamente
utilizo delphi 7, word 2000
intento generar contratos desde delphi
a word pero los datos no se me muestran en word, ahi el codigo
Cita:
procedure TForm1.BitBtn4Click(Sender: TObject);

const
Fichero = 'Contrato';
// DirectorioContratos: 'C:\word\contratorenta.doc';
var
MiWord: OleVariant;

procedure SustituirMarcador(Marcador, Contenido: string);
begin
if MiWord.ActiveDocument.Bookmarks.Exists(Marcador) then
MiWord.ActiveDocument.Bookmarks.Item(Marcador).Range.InsertBefore(Contenido);
end;


begin
// Intento abrir Word...
MiWord:= CreateOleObject('Word.Application');
if VarIsEmpty(MiWord) then
raise exception.create('No puedo abrir Word, puede que no este instalado!');
// Abre el documento de Word
MiWord.Documents.Open('C:\WORD\CONTRATORENTA.doc');
// Selecciono los marcadores del documento y los reemplazo
// con los valores de los campos del formulario.
// Los marcadores se crearon previamente en word
SustituirMarcador('ELARRENDADOR', table1nombre.asstring);
SustituirMarcador('AVAL',table1aval.asstring);
// etc

// maximizo la ventana de Word
MiWord.WindowState:=wdWindowStateMaximize;
MiWord.ActiveWindow.WindowState:=wdWindowStateMaximize;
// visualizo la ventana de Word
MiWord.Visible:=True;
end;
se abre el word y me muestra los marcadores pero no sustituye nada
saben porque ???
saludos
Responder Con Cita
  #2  
Antiguo 06-08-2007
cecibel cecibel is offline
Registrado
 
Registrado: ago 2007
Ubicación: Panamá
Posts: 1
Poder: 0
cecibel Va por buen camino
hola armando. Prueba esto

Cambiar marcadores de un documento de Word por valores del formulario de una aplicación

Este artículo explica como insertar los valores de un formulario de una aplicación realizada en Visual Basic en un documento de Word. Puede ser muy útil para simular "Combinar correspondencia" de Word, generar cartas personalizadas para los clientes de nuestra base de datos o cualquier comunicado con datos particulares.
En primer lugar, utlizando Microsoft Word, crearemos el documento modelo que contendrá los marcadores y el texto queramos utilizar. Para ello abriremos Microsoft Word, insertaremos el texto y, donde queramos insertar texto variable (que obtendremos de la aplicación, de la base de datos o del formulario de entrada de datos) escribiremos el nombre del marcador, lo seleccionaremos:


Con el marcador seleccionado pulsaremos el menú "Insertar", "Marcador":


Volveremos a escribir el mismo nombre y pulsaremos "Agregar":


Añadiremos todos los marcadores y el texto que necesitamos en la plantilla de Word:


Desde Visual Basic 6 añadiremos la referencia a Microsoft Word, para ello accederemos al menú "Proyecto" - "Referencias":


Seleccionaremos la referencia "Microsoft Word 11.0 Object Library" (esto cambiará en función de la versión de Word que tengamos instalada):

Añadiremos al formulario de nuestra aplicación los componentes necesarios, un TextBox para la ubicación de la plantilla (documento de Word con los marcadores), otro para el documento resultante de la fusión de los datos del formulario con los marcadores de Word y tantos TextBox como marcadores hayamos insertado en el documento de Word (plantilla). Añadiremos también un botón que será el que ejecute el proceso de fusión de marcadores de Word:



En el evento "Form_Load" (evento Load del formulario principal) colocaremos el siguiente código:

Private Sub Form_Load()
txtPlantilla.Text = App.Path & "\plantilla.doc"
txtDocumento.Text = App.Path & "\documento.doc"
End Sub

El código anterior inserta en los TextBox de plantilla y documento la ruta desde la que se está ejecutando la aplicación más el valor "plantilla.doc" y "documento.doc".

En el evento bFusionarMarcadores_Click (evento Click del botón bFusionarMarcadores) colocaremos el siguiente código:

Private Sub bFusionarMarcadores_Click()
Dim MSWord As New Word.Application
Dim Documento As Word.Document

FileCopy txtPlantilla.Text, txtDocumento.Text

Set Documento = MSWord.Documents.Open(txtDocumento.Text)

Documento.Bookmarks.Item("marcador1").Range.Text = txtMarcador1.Text Documento.Bookmarks.Item("marcador2").Range.Text = txtMarcador2.Text Documento.Bookmarks.Item("marcador3").Range.Text = txtMarcador3.Text
MSWord.Visible = True
End Sub

El código anterior realiza una copia del fichero de Word que incluye los marcadores (para no reemplazarlo):

FileCopy txtPlantilla.Text, txtDocumento.Text

a continuación crea un objeto de tipo Word.Document a partir del objeto Word.Application.

Set Documento = MSWord.Documents.Open(txtDocumento.Text)

y, por último, inserta el texto en los marcadores del documento Word:
Documento.Bookmarks.Item("marcador1").Range.Text = txtMarcador1.Text


Para probar la aplicación generaremos el ejecutable pulsando en "Archivo" - "Generar fusionarMarcadores.exe":


Seleccionaremos la ruta y el nombre del fichero .exe resultante de la compilación de la aplicación:


Ejecutaremos el fichero .exe resultante, rellenaremos los datos correspondientes a los marcadores y especificaremos la plantilla de Word y el documento resultante:



Al pulsar el botón "Fusionar marcadores" se abrirá Microsoft Word y el documento seleccionado, habiéndose insertado los valores del formulario en el documento de Word:





Prueba esto que encontre en la web de http://www.ajpdsoft.com/.
a mi me funciono... suerte

Última edición por cecibel fecha: 06-08-2007 a las 21:22:44.
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
Error al Insertar con ADO trex2000 Conexión con bases de datos 1 18-01-2007 11:16:52
Insertar un registro psll Conexión con bases de datos 2 26-10-2006 19:33:42
Insertar un txt dentro de mi .EXE rjsitruiz Varios 2 21-03-2005 18:29:08
Insertar con Ado comba Conexión con bases de datos 1 17-02-2004 10:40:51
insertar en mayusculas vetustas Conexión con bases de datos 1 18-11-2003 18:12:23


La franja horaria es GMT +2. Ahora son las 16:32:00.


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