PDA

Ver la Versión Completa : Generar rtf o pdf con rave reports


johurgi
15-11-2006, 18:17:56
Hola a tod@s:

Viendo el poco exito que tuvo mi anterior mensaje, voy a intentar plantear una nueva duda. Alguien sabe como generar con rave reports un '.rtf' o con '.pdf', como tengo que configurar el rava para cuando le de a ejecutar el informe(generar), me genere un '.rtf' que yo guardare por codigo y que luego mas tarde por codigo abrire con word.Todas las operaciones tienen que ser por codigo ya que el usuario lo unico que tiene que ver es el documento ya generado en word.

P.D.: Por si alguien lo menciona tengo ya los dos componentes del rave tanto para rtf como para pdf.

Gracias de antemano.

Loviedo
15-11-2006, 22:16:49
Esto puede servirte.
Saludos.

Loviedo
15-11-2006, 22:21:47
Perdón. me falló adjuntar fichero.

johurgi
16-11-2006, 11:20:06
Primero y antes de nada muchas gracias por tu respuesta, pero tengo un problema, me da un error cuando llega al rvproject1.execute,el error es el siguiente:

Cannot create file "".

La version de rave que utilizo yo es la 6.5 con Borland Developer Studio 2006.

Un saludo

johurgi
16-11-2006, 12:54:40
Ya lo solucione, era un parametro del RvNDRwriter,yo lo dejaba en modo por defecto como el delphi me lo insertaba y habia que cambiarlo a smuser, de esta forma no se vuelve loco y comienza a dar errores.

El codigo de como me ha quedado el metodo a groso modo es el siguiente:


procedure TFInformesPaciente.GenerarInformeConWord;
var
NDRStream: TMemoryStream;
fich: string;
begin
NDRStream := TMemoryStream.Create;
try
fich := 'C:\WINDOWS\temp\inftemporal.RTF';
RvProject2.Engine := RvNDRWriter1;
RvProject2.Open;
NDRStream := TMemoryStream.Create;
RvProject2.SaveToStream(NDRStream);
RvNDRWriter1.Stream:= NDRStream;
RvProject2.Execute;
try
RvRenderRTF1.PrintRender(NDRStream,fich);
except
raise Exception.Create('Error al crear fichero');
end;
RvProject2.close;
finally
NDRStream.Free;
end;
if fileExists(fich) then
begin
try
LMDStarter1.Command:='C:\Archivos de programa\Microsoft Office\OFFICE11\WINWORD.EXE';
LMDStarter1.Parameters:=fich;
LMDStarter1.Execute;
except
ShowMessage('Error al iniciar el word.');
end;
end;




Gracias Loviedo por tu ayuda.