Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Guardar Reports en BD (https://www.clubdelphi.com/foros/showthread.php?t=26381)

OtroYo 20-10-2005 21:42:56

Guardar Reports en BD
 
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

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

Cita:

Empezado por Casimiro Notevi
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

Cita:

Empezado por OtroYo
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

Cita:

Empezado por Casimiro Notevi
¿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

Cita:

Empezado por OtroYo
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

Cita:

Empezado por OtroYo
...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:
Código Delphi [-]
 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

Urgente
 
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


La franja horaria es GMT +2. Ahora son las 07:03:19.

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