Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Cambiar la extencion de reportes (https://www.clubdelphi.com/foros/showthread.php?t=74812)

soulhunter1980 12-07-2011 22:03:22

Cambiar la extencion de reportes
 
Muy buenos dias a todos, mi inquietud es la siguiente:

Debo enviar unos reportes generados (Crystal reports) desde mi aplicacion (delphi 2007), en donde el usuario selecciona el tipo del formato que desea, para posteriormente enviarlo por email.

El codigo utilizado es mas o menos el siguiente:

oApp := CreateOleObject('CrystalRuntime.Application');
FCR := oApp.openreport(FilePath,1);

Cuando se exporta un reporte(local) separado por caracteres (*.chr), se crea sin problemas. Pero cuando se envia por correo, segun exigencias del usuario, se debe cambiar la extension por txt, pero el adjunto del archivo sigue con extencion chr.

Antes de enviar el archivo se realiza el cambio de nombre, de la siguiente forma:

FCR.exportoptions.DiskFileName:= Archivo.txt;
FCR.Export(False);

Si cambio para exportar localmente, antes de generar dicho archivo, lo crea con la extension deseada (Es decir txt)
FCR.ExportOptions.DestinationType := 1;
FCR.Export(False);


Espero me puedan colaborar con esta duda, si es posible indicandome en donde puedo realizar este cambio de extension, o aportando ideas de como hacer esto mismo sin demasiados cambios de codigo.

Muchas gracias por dedicar algo de su tiempo, y un buen dia para todos

DarKraZY 13-07-2011 08:48:54

Si el fichero se genera en el disco duro puedes usar la función
Código Delphi [-]
function RenameFile(const OldName: string; const NewName: string): Boolean;

Saludos!

x_aguilarf 13-07-2011 09:02:48

La función ChangeFileExt te puede ser útil en estos casos:

Código Delphi [-]
var
  Path: string;
begin

  Path := 'C:\Archivo.chr';
  RenameFile(Path,  ChangeFileExt(Path, '.txt'))

end;

soulhunter1980 13-07-2011 15:24:20

Gracias a x_aguilarf y DarKraZY por sus respuestas. Y a continuacion me permito aclarar las cosas.

No hay inconvenientes cuando el reporte se genera localmente (es decir, en el disco duro), pues el archivo queda con la extension requerida.

El problema es cuando el archivo tiene como destino un Email, pues lo envia con una extension erronea. Todo esto se configura antes de crear el reporte, por medio de la instancia FCR, al cual se le indica nombre, ruta y tipo de archivo, parametros del email y demas. Desde delphi 7 no me es posible hacer un debug a FCR.Export(False) que se encarga de la exportacion y del envio por correo.

Sospecho que esa instruccion envia el correo antes de poder cambiar la extencion, pero una vez mas, no me es posible hacer debug de esto.

En ultimo caso tendria que generar el archivo local, y enviarlo por mapi, pero lo considero algo redundante.

Quedo en espera de sus valiosos aportes, y ya les comentare como termina todo esto.


La franja horaria es GMT +2. Ahora son las 15:16:31.

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