PDA

Ver la Versión Completa : Uso de correcto de los informes con FastReport


Delphitest
12-01-2015, 09:06:54
Buenos días,

estoy empezando a incluir informes en el programa que estoy haciendo con Delphi XE5.

Buscando en la red he encontrado información que apunta a que debo usar FastReport ya que está incluido en esta versión de Delphi.

Según he visto debo incluir un objeto para poder usar los datos y otro para el diseño del informe.

Hasta ahí no tengo dudas, he probado y consigo más o menos los resultados que necesito llamado con show al informe.

Mi duda es con respecto a la forma de usar FastReport. He observado que solo con el hecho de añadir esos dos objetos en un formulario, el ejecutable ha aumentado mucho en tamaño. Con uno no me preocupa pero calculo que debo meter unos 15 informes y no quisiera que el ejecutable pesara demasiado.

La pregunta es; Cuando un programa tiene muchos informes ¿Hay que incluirlos dentro del ejecutable aunque eso haga que pese mucho o existe la posibilidad de tener esos informes en archivos externos y acceder a ellos cuando sea necesario? (He visto programas que incluyen una carpeta "Reports" y que incluyen todos los informes)

Gracias por vuestras opiniones

Casimiro Notevi
12-01-2015, 09:39:33
Como quieras, en la última gestión que estuve trabajando tenía casi 800 informes dentro de la base de datos, no hay problema.

JXJ
12-01-2015, 16:58:23
se pueden cargar en tiempo de ejecucion los archivos de los reportes.

Delphitest
13-01-2015, 07:52:54
Yo estoy cargando el componente directamente en el Form donde lo necesito ¿No se hace así?

Casimiro, hablas de cargar el informe en la base de datos, no había pensado en eso la verdad, trabajo con Access y ADO ¿Podría usar informes creados desde Access?

JXJ ¿Te refieres a tener el archivo de los reportes en una carpeta externa y cargarlos cuando los necesito? Si es así, es lo que preguntaba.

Casimiro Notevi
13-01-2015, 10:01:21
Casimiro, hablas de cargar el informe en la base de datos, no había pensado en eso la verdad, trabajo con Access y ADO ¿Podría usar informes creados desde Access?Supongo que puedes guardarlos y recuperarlos cuando quieras. Usa un campo BLOB para ello.

pacopenin
13-01-2015, 11:09:42
Yo lo tengo como en archivo externo y lo cargo cuando lo necesito. Antes los guardaba en bases de datos pero me complicaba mucho las atreas de mantenimiento, al poder personalizar dichos informes para cada cliente. Si esto último no es problema supongo que dará igual donde lo guardes.

pacopenin
13-01-2015, 11:12:48
Te pongo un ejemplo de como lo hago :



procedure TInformes.VerInforme(Informe, Registros, Tabla, Orden, Where : String; Grupo : Integer; Impresora : Boolean);
var cInf : String;
f_ini, f_fin : TDateTime;
Memo : TFrxMemoView;
begin
cInf := curDir+'Data\Reports\'+Informe+'.fr3';
if FileExists(cInf) then
begin
frxInforme.LoadFromFile(cInf);
if ModoDemo then
aviso(buscaTraduccion('622'));
if Impresora then
frxInforme.Print
else
begin
frxPDFExport1.ShowDialog := True;
frxInforme.ShowReport;
end;
end;
end;

Delphitest
14-01-2015, 21:10:37
Muchas gracias Paco,

creo que es eso lo que busco.

Un duda, para crear los archivos de informe ¿Debo hacer desde delphi, guardarlo y luego borrar el objeto?

movorack
14-01-2015, 22:07:49
Hola,

El objeto del reporte se debe mantener y con uno basta para manejar los n reportes que tengas.
El peso que aumenta es normal y no es por la cantidad de reportes sino por lo que agrega FRX al ejecutable.
Si no quieres que aumente de tamaño puedes activar "Runtime Packages" pero de todos modos deberás distribuir las bpl con el ejecutable
Para diseñar el reporte lo puedes hacer desde el IDE o puedes usarlo en runtime con el designer pero para esto debes cargar los archivos desde el disco (ya sea que los alojes inicialmente en la DB o no)
Si no quieres guardar el reporte en su versión original en el ejecutable debes desactivar la característica "StoreinDFM" en el FrxReport