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 29-09-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Documento word sin grabar a disco por correo

Hola, espero me puedan ayudar, les cuento que tengo que hacer una aplicación donde tengo una plantilla de word que tengo que enviar por correo.

Esta plantilla lleva el nombre de la persona, el cual sale de mi base de datos.

Bueno ya genere mi plantilla, (gracias al foro he aprendido todo esto), ya puedo ver que se genera con los nombre de cada persona, sin embargo cuando hago esto me genera un documento sin nombre, por cada uno y esta bien, pero de esta forma tendria que guardar cada archivo y despues tomar el nombre de cada archivo para enviarlo por correo(cosa que tambien aprendi buscando en el foro).

Mi pregunta es, hay forma de que se genere la plantilla con cada nombre e inmediatamente enviarla por correo?, sin tener que guardar la plantilla de cada registro y luego enviarla.

Perdón si estoy mal en el foro que use, pero vi varios mensajes parecidos y me dije aqui es.

Saludos y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 03-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Documento word sin grabar a disco por correo

Hola de nuevo, alguien podria decirme como muevo este hilo a el de "Servers", ó es algo que solo pueden hacer los moderadores?, si fuera asi, me podria ayudar algun moderador?, gracias.
Responder Con Cita
  #3  
Antiguo 03-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Ya está este Hilo en en el apartado de los Foros que mencionas.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Ayuda

Alguien podria ayudarme?, replanteo mi duda:

Tengo una plantilla de Word, que quiero enviar por correo, esta plantilla debe llevar datos, que saco de alguna tabla, mi problema es como envio esta plantilla con los datos por correo.

De alguna manera ya lo hice, en donde lleva el nombre del archivo adjunto, le pongo el nombre de la plantilla, pero llega la plantilla vacia, es decir, como está originalmente con los "docvariable" dentro de la plantilla, pero yo quiero que llegue con los datos.

Al hacer el envio me genera una plantilla por cada registro de mi tabla, y le pone por nombre Documento1, Documento2 y asi hasta DocumentoN, pero hasta ahi esos documentos no se han guardado, y si pongo este nombre en donde va el nombre del archivo adjunto me dice que no existe, por eso la pregunta, se puede enviar un documento que no ha sido guardado, pero esta en memoria?, como se haria?, ó tengo que guardar cada documento antes de enviarlo?.

No quiero guardarlo en la pc, porque al generarme un documento por registro y al tener N registros, pues corro el riesgo de quedarme sin espacio en disco
Responder Con Cita
  #5  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
De antemano, gracias por la ayuda que me pudieran ofrecer.
Responder Con Cita
  #6  
Antiguo 04-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se exactamente como hacer lo que pides pero, si a la fuerza tienes que guardar dicho archivo, por que no haces una carpeta temporal, guardas el archivo, lo envias y lo borras en la misma ejecucion.
Es solo una idea.
Saludos
Responder Con Cita
  #7  
Antiguo 04-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Se me acaba de ocurrir una locura:
Se podra guardar el archivo en una variable y una vez que se envie por el nombre de variable no por el nombre de archivo, esta se elimine de la memoria, ya se estoy alucinando.
Solo ideas.
Saludos
Responder Con Cita
  #8  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Si gracias, no se me habia ocurrido asi, que tonto soy, lo hare, muchas gracias.
Responder Con Cita
  #9  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Voy a intentar esa ultima, si me sale , les platico, gracias.
Responder Con Cita
  #10  
Antiguo 16-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
Gracias

Gracias por las ideas, aqui esta el codigo que originalmente me sirvio, por si les sirve.

Código:
unit UWord;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, OleServer, DB, DBTables;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Table1: TTable;
    DataSource1: TDataSource;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
uses UDMWord, IdSMTP, IdMessage;
procedure TForm1.Button1Click(Sender: TObject);
var
 Word: Variant;
 Documento: Variant;
 smtp: TIdSMTP;
 mail: TIdMessage;
 ArchivoE: String;
 ArchivoS: String;
begin
Word := CreateOleObject('Word.Application');
ArchivoE:='c:\Archivo\Algo.dot';  // mi plantilla de word
ArchivoS:='c:\Envio.doc';  //el archivo que voy a enviar
DataModule1.Table1.Active:=True;
DataModule1.Table1.First;
while not DataModule1.Table1.Eof do
 begin     //abajo, el paso de los datos a mis variables de word
    Documento:=Word.Documents.Open(ArchivoE);
   Documento.Variables.Add('numexp',DataModule1.Table1.FieldValues['numexp']);
   Documento.Variables.Add('asunto',DataModule1.Table1.FieldValues['asunto']);
   Documento.Variables.Add('fojas',DataModule1.Table1.FieldValues['fojas']);
   Documento.Fields.Update;
   Documento.SaveAs(ArchivoS);  //guardo el archivo
   Documento.Close(False);
  smtp:=TIdSMTP.Create(Self);
  mail :=TIdMessage.Create(Self);
  with smtp do
    begin
      Port := 25;
      Host := 'nombre del host';
//      AuthenticationType:=atLogin;
      UserName := 'nombre de mi cuenta de correo';
      PassWord := 'mi password de la cuenta de correo';
    end;
  with mail do
    begin                     //Con bcc para que no se vean todas las direciones a las que envio, bueno aqui solo a una cuenta pero ya adapte a mi necesidad
      BccList.Add;
      BccList[0].Name:='Nombre de la persona a quien envias';
      BccList[0].Address:='su direccion de correo';
      From.Address:= 'mi direccion de correo, como la de arriba';
      Subject:='Asunto del correo';
      Body.Text:='Cuerpo del mensaje';
    end;
    TIdAttachment.Create(mail.MessageParts,ArchivoS);  //adjunto el archivo
  smtp.Connect(30000);
  try
    try
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage(E.Message);
    end;
  finally
    if smtp.Connected then
       smtp.Disconnect;
  end;
   DataModule1.Table1.Next;
  mail.Free;
  smtp.Free;
  DeleteFile(ArchivoS);
 end;
end;
Responder Con Cita
  #11  
Antiguo 16-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, eso es exactamente lo mismo que hice para una aplicación en mi trabajo. Y resulta que esa aplicación hacía lo que pedías en un principio: enviar por correo el documento sin grabar en disco. Con la diferencia de que el documento era un Excel en lugar de un word, pero para el caso es lo mismo.
Era muy sencillo de hacer, y es que el mismo documento tiene un método que es SendMail y desde allí envia por correo con el documento en Excel como fichero adjunto, pero el problema reside en que el correo se envíaba a través del Outlook, con lo que pedía autorización por parte del usuario para poder enviar el correo.

Y lo que yo tenía que hacer era evitar eso, la autorización, no encontramos solución, pero si una alternativa. Guardar el fichero de forma temporal, enviar el correo con un componente Indy o SMTP con el documento adjunto y por ultimo borrar el fichero.

Y va estupendo. Aquí dejo la historia

Saludos
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
Cerrar Documento y no Word bbjb Servers 2 22-09-2006 00:19:01
Crear un documento Word destrukthor Servers 2 28-08-2006 14:05:44
modificar documento word sin el word instalado joaquinmol Servers 0 30-03-2005 19:58:54
Documento Word a PDF walace_soy Servers 0 23-11-2004 13:21:43
abrir un documento word marianaf Servers 3 22-12-2003 14:49:57


La franja horaria es GMT +2. Ahora son las 01:56:33.


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