Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Enviar datos a una plantilla MS Word desde Lazarus (https://www.clubdelphi.com/foros/showthread.php?t=88627)

El_Chava 06-07-2015 16:49:57

Enviar datos a una plantilla MS Word desde Lazarus
 
Hola amigos del foro, esperando que se encuentren bien aquí de nuevo con un problema y es el siguiente. Necesito usar una platilla de MS word y enviarle los datos desde lazarus. Uso la versión 1.4.0 de lazarus. Buscando ejemplos de como hacerlo encontre uno de tanto que hay en el foro pero al tratar de ejecutarlo me muestra el siguiente mensaje de error "El elemento del conjunto solicitado no existe." y no se como resolver el problema estuve buscando en san google pero no encontre nada en si que me pudiera ayudar a resolverlo. Espero sus respuestas y muchas gracias de antemano saludos

Código Delphi [-]
procedure TFrmElaborarNotificacion.SpeedButton1Click(Sender: TObject);
var
  Word: Variant;
  Documento,A, B, C: Variant;
  w:widestring;
begin
  (* Creas un objeto Word *)
  try
   w:= WideString(UTF8Decode(ExtractFilePath(AnsiToUtf8(ParamStr(0)))+ pchar('C:\Proyecto lazarus 140\sisco14\Reportes\planilla.dot')));
   Word := CreateOleObject('Word.Application');
    (* Añades un documento basado en la plantilla *)
   Word.Documents.open(w);
   Documento := Word.Documents.Item(1);
  (*Asignas Valores a la Variables*)
  A:='Usuario';
  B:='computer #303';
  C:= 'sistema operativo';
  (* Asignas valores a los campos *)
  Documento.Variables.Add('Nombre', A);
  Documento.Variables.Add('Direccion', B);
  Documento.Variables.Add('Colonia', C);
  Word.ActiveWindow.View.ShowFieldCodes := false;
  Documento.Fields.Update;
  Word.Visible := true;  {Make Word visible}
  except
   on E: Exception do
      ShowMessage(SysToUTF8(E.Message));
  end;
end;

El_Chava 06-07-2015 20:05:12

Solucionado
 
Hola de nuevo ya encontre la solución al mi problema les dejo el código.
Código Delphi [-]
procedure TFrmElaborarNotificacion.SpeedButton1Click(Sender: TObject);
var
  Word: Variant;
  Documento,A, B, C: Variant;
  w:widestring;
begin
  (* Creas un objeto Word *)
  try
    {* a la variable "w" le asigno la ruta donde se encuentra la plantilla a utilizar *}
    w:= UTF8Decode(ExtractFilePath(application.ExeName)+'Reportes\plantilla2015.dot');
   Word := CreateOleObject('Word.Application');
    (* Añades un documento basado en la plantilla *)
   Documento := Word.Documents.Add(w);
   Documento := Word.Documents.Item(1);
 
  (*Asignas Valores a la Variables*)
  A:='Usuario';
  B:='Lazarus ';
  C:= 'Object Pascal';
 
  (* Asignas valores a los campos *)
  Documento.Variables.Add('Nombre', A);
  Documento.Variables.Add('Direccion', B);
  Documento.Variables.Add('Colonia', C);
  Word.ActiveWindow.View.ShowFieldCodes := false;
  Documento.Fields.Update;
  Word.Visible := true;  {Make Word visible}
 
  except
   on E: Exception do
      ShowMessage(SysToUTF8(E.Message));
  end;
end;

ecfisa 06-07-2015 20:09:35

Muchas gracias por compartir la solución ^\||/

Saludos :)

Casimiro Notevi 06-07-2015 20:40:28

^\||/^\||/^\||/

nlsgarcia 06-07-2015 21:06:58

El_Chava,

Cita:

Empezado por El_Chava
...ya encontré la solución...les dejo el código...

^\||/

Nelson.

El_Chava 06-07-2015 22:56:24

Cita:

Empezado por ecfisa (Mensaje 494089)
Muchas gracias por compartir la solución ^\||/

Saludos :)

De nada para eso estamos para ayudar y compartir soluciones ^\||/ :)


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

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