Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 16-02-2005
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 23
rafita Va por buen camino
Hola Jorge, como te dice Neftali tienes varias formas: componente TWordParaTorpes, MailMerge, sustituir marcadores,....

Te envío un trozo de código que he utilizado recientemente con el método de sustituir marcadores:
* Necesitas un documento-plantilla con los marcadores a sustituir
* Lo abres desde Delphi como "sólo lectura"
* Sustituyes los marcadores por campos de una consulta, campos de tu formulario, variables,... lo que necesites
* La sustitución no elimina el marcador, por tanto si pulsas varias veces en el botón que genera el informe, los datos aparecerán duplicados en el documento de word.
* Utilizo el procedimiento SustituirMarcador para no repetir todas las veces ese trozo de código
* Si no existe un nombre de marcador no pasa nada porque comprueba previamente su existencia. De esta forma reutilizo el mismo procedimiento para un montón de documentos aunque no todos tengan los mismos marcadores.


Código:
procedure TFEntradaVehiculos.GenerarDocumentoWord;
 var Fichero, Marcador, Contenido, SoloLectura, SalvarCambios, FormatoOriginal, Ruta : OleVariant;
 	MiDocumento : _document;
  
 	procedure SustituirMarcador;
 	begin
        if MiDocumento.Bookmarks.Exists(Marcador) then MiDocumento.Bookmarks.Item(Marcador).Range.InsertBefore(Contenido);
 	end;
  
 begin
   // Conexión con Word
   try
 	MiWord.Connect;
   except
 	ShowMessage('WordXP no está instalado en este equipo');
 	Abort;
   end;
   // selección del documento base
   if Combo1.Text='Comunicación Inicio Procedimiento' then
 	 Fichero:='y:\Inspeccion\Comunicación Inicio Marca.doc'
   else
   if Combo1.Text='Diligencia' then
 	 Fichero:='y:\Inspeccion\Diligencia Citación Marca.doc'
   else
   if Combo1.Text='Acta de Conformidad' then
 	 Fichero:='y:\Inspeccion\ACTA ConfOTMarca.doc';
 
   // abrir el documento seleccionado con los parámetros necesarios
   SoloLectura:=True;
   MiDocumento:=MiWord.Documents.Open(Fichero, EmptyParam, SoloLectura,
 			 EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
 			 EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
 
   // comienzan las sustituciones de los marcadores. 
   Marcador:='MN_Expediente1';
   Contenido:=Edit1.Text;
   SustituirMarcador;
   Marcador:='MN_Expediente2';
   SustituirMarcador;
   Marcador:='MSujeto_pasivo1';
   Contenido:=Edit6.Text;
   SustituirMarcador;
   Marcador:='MCIFNIF1';
   Contenido:=Edit7.Text;
   SustituirMarcador;
   Marcador:='MNotificacion_Inicio1';
   Contenido:=FechaLiteral(Edit35.Text);
   SustituirMarcador;
   Marcador:='MFecha_Diligencia1';
   Contenido:=FechaLiteral(Edit36.Text);
   SustituirMarcador;
 
   // maximizamos la ventana de Word y desconectamos
   MiWord.WindowState:=wdWindowStateMaximize;
   MiWord.ActiveWindow.WindowState:=wdWindowStateMaximize;
   MiWord.PrintPreview;
   MiWord.Visible:=True;
   SalvarCambios:=wdDoNotSaveChanges;
   FormatoOriginal:=unAssigned;
   Ruta:=unAssigned;
   try
 	MiWord.Disconnect;
   except
 	on e:Exception do
 	begin
 	  ShowMessage('Se ha producido el error '+e.Message);
 	  MiWord.Disconnect;
 	end;
   end;
He recortado el código dejando solamente lo básico para que funcione.

En el foro Server encontre una dirección proporcionada por Neftalí donde explica mediante ejemplo la comunicación Delphi-Word.

http://www.djpate.freeserve.co.uk/Automation.htm

Un saludo
__________________
Rafita.

Última edición por rafita fecha: 16-02-2005 a las 12:13:13.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 22:08:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi