PDA

Ver la Versión Completa : Guardar Reports en BD


OtroYo
20-10-2005, 21:42:56
Hola a todos,

quiero guardar los reportes generados con FasReport en una BD y no acabo de ver como hacerlo. He conseguido guardar el diseño del report pero no los reports generados. ¿Algiuen me puede hechar una mano?

Saludos.

Casimiro Notevi
20-10-2005, 22:04:24
Puedes exportarlos en formato pdf (por ejemplo) y guardarlo así

Neftali [Germán.Estévez]
21-10-2005, 09:38:39
Normalmente casi todas las Bases de Datos tienen un campo de tipo "binary" para almacenar datos de tipos no-estandard; Para poder guardar ficheros, imágenes, videos, sonidos,...
Revisa la Base de Datos que estás utilizando.
Éste artículo te puede ser útil:
Storing/Playing an .AVI file in a database (http://community.borland.com/article/0,1410,16181,00.html)

AÑADIDO: Claro está (que se me ha quedado a medias el mensaje) es que debes guardar el reporte en disco. Dependiendo de cómo quieras abrirlo luego (cuando lo recuperes de BD) en ese formato deberás guardarlo.
La opción de PDF que te comentan no es mala -por la alta compresión de éste formato-, pero el sistema es igual para cualquier tipo de archivo (DOC, JPEG, TIFF, RTF,...)

OtroYo
21-10-2005, 13:33:58
Puedes exportarlos en formato pdf (por ejemplo) y guardarlo así
Es una opcion que tengo en reserva, pero me parece raro que se puedan guardar los diseños directamente en la BD y los reportes generados no. :confused::confused::confused:

Casimiro Notevi
21-10-2005, 15:18:52
Es una opcion que tengo en reserva, pero me parece raro que se puedan guardar los diseños directamente en la BD y los reportes generados no. :confused::confused::confused:
¿Y cómo guardas los diseños en la base de datos?, ¿en qué base de datos?.

Una cosa no tiene absolutamente nada que ver con la otra.

Porque, cómo sabe el generador de informes qué base de datos vas a usar, la estructura de esa base de datos, los campos y sus tipos, en qué campo quieres guardarlo, etc...

O alomejor es que no hemos entendido bien tu pregunta y es otra cosa lo que quieres hacer?

Saludos.

OtroYo
26-10-2005, 10:22:08
¿Y cómo guardas los diseños en la base de datos?, ¿en qué base de datos?.

Una cosa no tiene absolutamente nada que ver con la otra.

Porque, cómo sabe el generador de informes qué base de datos vas a usar, la estructura de esa base de datos, los campos y sus tipos, en qué campo quieres guardarlo, etc...

O alomejor es que no hemos entendido bien tu pregunta y es otra cosa lo que quieres hacer?

Saludos.
Perdona el retraso pero he estado unos dias 'desconectado'.

En este caso concreto utilizo SQLServer, pero no afecta la BD que utilices siempre que tenga campos BLOB. Para guardar un report en una BD esta el procedimiento SaveToBlobField, pero yo solo consigo guardar el diseño, no el report generado.

Estoy pensando que si hago frPreview personalizado igual puedo guardar el report en la BD en vez de en el disco.

Saludos.

Casimiro Notevi
26-10-2005, 11:09:04
Estoy pensando que si hago frPreview personalizado igual puedo guardar el report en la BD en vez de en el disco.
Creo que no nos comprendemos o tienes conceptos equivocados.

El informe que has generado, normalmente, es el resultado de una consulta, ese informe que puedes imprimir, también puedes guardarlo para verlo/imprimirlo/enviarlo por email/borrarlo más tarde, y también puedes guardarlo en una base de datos.

Pero ese informe generado no es un diseño, es un resultado, es como el resultado de una sentencia sql, por poner un ejemplo: select * from tbclientes te devuelve un resultado que puede ser desde cero hasta millones de registros, pero ese resultado no se guarda en ningún sitio. Pues el tema de los informes es igual.

No sé si te lo he aclarado, te he confundido más o simplemente no acabo de entender qué es lo que quieres conseguir.

Saludos.

Neftali [Germán.Estévez]
26-10-2005, 11:49:29
...Para guardar un report en una BD esta el procedimiento SaveToBlobField, pero yo solo consigo guardar el diseño, no el report generado.
Vamos a ver...
Tú puedes guardar cualquier cosa en la Base de Datos, puedes guardar el diseño o el resultado, pero para guardarlo necesitas tenerlo en un fichero.
(1) El diseño lo tienes enun fichero, si no recuerdo mal los de FastReport son Listado.fr
(2) ¿En qué fichero tienes el resultado?
¡¡Esa es la diferencia!! que el resultado lo ves en pantalla, pero no lo tienes en ningun fichero. Si lo guardas a fichero (por ejemplo a PDF como se dijo anteriormente) entonces lo puedes guardar igual que guardas el diseño.

OtroYo
26-10-2005, 21:35:18
Gracias por la información. Seguire luchando. Os mantendré informados de los progresos.

Un cordial saludo.

OtroYo
27-10-2005, 20:43:59
Bueno, dicen que el que la sigue la consigue: al final he conseguido guardar el report generado en la BD. La cuestion esta en que no hay que guardar el report, sino las EMFPages.

Aqui esta el codigo:

procedure TForm1.GuardarReportClick(Sender: TObject);
var
ms : TMemoryStream;
begin
ms := tmemorystream.create;
frReport1.loadfromfile('hola.frf');
frReport1.PrepareReport;
frReport1.EMFPages.savetostream(ms);
ms.seek(0,soFromBeginning);
reporttable.insert;
reporttablereport.loadfromstream(ms);
reporttable.post;
end;

procedure TForm1.VerReportClick(Sender: TObject);
var
ms : TMemoryStream;
begin
ms := tmemorystream.create;
reporttableReport.savetostream(ms);
ms.Position := 0;
frReport1.EMFPages.loadfromstream(ms);
frReport1.ShowPreparedReport;
end;


Saludos a todos y gracias de nuevo por vuestro interes.

Rofra
03-12-2007, 16:09:56
Hola ke tal yo kiero solucionar el mismo problema pero no encuentro ni forma he generado un reporte en Ireport pero kiero k ese reporte se guarde con con extencion pdf en una BD (oracle9i) pero con codigo java y estoy utilizando eclipse 3.0 te lo agradeceria mucho si me pudieras ayudar