Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   ¿Reporteador gratuito y sin necesidad de componentes? (https://www.clubdelphi.com/foros/showthread.php?t=61727)

felipe88 19-11-2008 22:43:35

¿Reporteador gratuito y sin necesidad de componentes?
 
Puede que esto suene como "pedirle leche a un limón" pero la verdad es que me gustaría saber si existe un reporteador que aparte de ser gratuito, bueno y versátil no requiera usar componentes desde Delphi para pasarle los parámetros al reporte que se quisieran mostrar. ¿Alguna idea de una maravilla parecida? :rolleyes:

coso 19-11-2008 23:42:24

hola felipe, pues no es una idea tan descabellada...ten en cuenta que puedes recorrer Query.Fields, por ejemplo, e ir creando y colocando los consiguientes QRDBText por campo. Eso si, este componente necesitaria muchisimos parametros de configuracion, por lo que quiza te seria hasta mas facil hacerlo en tiempo de diseño.

droguerman 20-11-2008 00:40:14

Existe freereports pero no se en que estado irá el proyecto, aunque eso si, requiere componentes

Héctor Randolph 20-11-2008 00:49:58

Report Manager

1.- Es gratuito
2.- Es muy versátil
3.- No requiere componentes, aunque también se puede instalar en la paleta de componentes, existen otras formas de hacerlo funcionar. Por ejemplo, como un servidor web de reportes para crear documentos PDF enviando algunos parámetros y visualizarlos en el navegador web.

Saludos

Casimiro Notevi 20-11-2008 00:55:49

Cita:

Empezado por Héctor Randolph (Mensaje 326908)
Report Manager

1.- Es gratuito
2.- Es muy versátil
3.- No requiere componentes, aunque también se puede instalar en la paleta de componentes, existen otras formas de hacerlo funcionar. Por ejemplo, como un servidor web de reportes para crear documentos PDF enviando algunos parámetros y visualizarlos en el navegador web.

Saludos

Exacto, es supercompletísimo, la verdad, y totalmente libre.
Se pueden crear los informes desde un programita externo y no es necesario instalar nada en delphi.

felipe88 20-11-2008 02:30:09

Cita:

Empezado por coso (Mensaje 326887)
hola felipe, pues no es una idea tan descabellada...ten en cuenta que puedes recorrer Query.Fields, por ejemplo, e ir creando y colocando los consiguientes QRDBText por campo. Eso si, este componente necesitaria muchisimos parametros de configuracion, por lo que quiza te seria hasta mas facil hacerlo en tiempo de diseño.

Bueno amigo coso creo que me estas hablando de QuickReport, para mi caso no serviría, pero gracias por plantear esa idea ;)

Cita:

Empezado por droguerman (Mensaje 326905)
Existe freereports pero no se en que estado irá el proyecto, aunque eso si, requiere componentes

Bueno tendre que darle un vistaso...

Cita:

Empezado por Héctor Randolph (Mensaje 326908)
Report Manager

1.- Es gratuito
2.- Es muy versátil
3.- No requiere componentes, aunque también se puede instalar en la paleta de componentes, existen otras formas de hacerlo funcionar. Por ejemplo, como un servidor web de reportes para crear documentos PDF enviando algunos parámetros y visualizarlos en el navegador web.

Saludos

Hasta ahora y con lo que he encontrado, es verdad lo que dices...

Cita:

Empezado por Casimiro Notevi (Mensaje 326910)
Exacto, es supercompletísimo, la verdad, y totalmente libre.
Se pueden crear los informes desde un programita externo y no es necesario instalar nada en delphi.

¿Debo descargar la versión Report Manager Designer, no? :confused:... pero otra cosa ¿con que los visualizo?, ¿existe la posibilidad de que alguien lo pueda modificar facilmente?...

Casimiro Notevi 20-11-2008 11:00:42

Cita:

Resumen de características

Funciona en Windows y Linux. Peude distribuir el diseñador de informes, con esto consigue la modificación de informes sin modificar (recompilar) su aplicación, el resultado puede ser guardado como un archivo con formato Adobe PDF.
Report Manager dispone de múltiples características(inglés), incluyendo algunas exclusivas, como bibliotecas de informes, metaarchivos, fuentes de impresora, secciones externas y subinformes hijos (subinformes en cascada).
Si utiliza Delphi/Kylix/Builder, puede incluir el motor de informes en sus ejecutables, incluye presentación preliminar, diálogo de impresión, opciones del informe...

http://reportman.sourceforge.net/indexes.html

:)

felipe88 20-11-2008 16:21:55

Gracias Casimiro ayer estuve probando un poco el programa y la verdad se ve muy bien, y respecto al visor encontre el programa dentro de la misma carpeta aunque el reporte debe ser guardado primero como un meta archivo :o... gracias por la ayuda :)

Lepe 20-11-2008 16:35:06

Cita:

Empezado por Casimiro Notevi (Mensaje 326910)
Se pueden crear los informes desde un programita externo y no es necesario instalar nada en delphi.

Pero en ese caso (que no he mirado), cada vez que deseas imprimir un informe tienes que abrir el "Report Manager Designer" y desde ahí darlo todos los parámetros que necesite la consulta ¿no?

Gracias

Hasta ahora, he instalado los componentes en delphi y desde ahí llamo al generador de informes incrustado en mi aplicación (así no necesito instalar el Report Manager Designer en casa del cliente).

Saludos

felipe88 20-11-2008 16:47:53

Cita:

Empezado por Lepe (Mensaje 326986)
Pero en ese caso (que no he mirado), cada vez que deseas imprimir un informe tienes que abrir el "Report Manager Designer" y desde ahí darlo todos los parámetros que necesite la consulta ¿no?

Gracias

Hasta ahora, he instalado los componentes en delphi y desde ahí llamo al generador de informes incrustado en mi aplicación (así no necesito instalar el Report Manager Designer en casa del cliente).

Saludos

Bueno Lepe tienes razón, para poder mostrar el reporte y pasarle parámetros como debe ser, se necesita instalar los paquetes en Delphi, cosa que no es lo que quiero... ¿pero que mas puedo pedir? :rolleyes: aunque el resultado final sin usar los componentes no sería el apropiado :cool:

jorge82 20-11-2008 18:59:51

Hola, aquí encontré una guía para utilizar el report manager como un ActiveX, de esta manera se puede manipular el reporte sin los componentes. Solo hay que descargar y registrar el .ocx en la maquina que vaya a utilizar el reporte.

Espero te sea de utilidad.

Héctor Randolph 20-11-2008 19:14:22

Como dije anteriormente Report Manager es muy versátil y existen muchas formas de utilizarlo.

Una de ellas es llamar la biblioteca de funciones (en Windows Reportman.ocx) desde nuestro ejecutable, aquí encuentras la guía de como trabajar con la API

Cita:

Empezado por Report Manager Features
- Small footprint, the engine can be embedded inside your exe.


http://reportman.sourceforge.net/doc/gnuc.html

Incluso el motor puede ser invocado desde la línea de comandos, esto es útil para lenguajes de script como PHP, Phyton, Javascript, etc.

http://reportman.sourceforge.net/doc/otherlang.html

Saludos

felipe88 20-11-2008 21:30:28

También encontré esto para el ActiveX
Cita:

Empezado por Report Manager
With Delphi

Include the rpreportmanapiqt.pas unit in your uses clause, then use the functions.

Cita:

Empezado por Report Manager
Here is a list of properties and methods:

procedure SetDatasetSQL(datasetname:string;sqlsentence:string);
procedure SetDatabaseConnectionString(databasename:string;connectionstring:string);
function GetDatasetSQL(datasetname:string):string;
function GetDatabaseConnectionString(databasename:string):string;
procedure SetParamValue(paramname:string;paramvalue:Variant);
function GetParamValue(paramname:string):Variant;
function Execute:Boolean;
procedure ExecuteRemote(hostname:String;port:integer;user,password,aliasname,reportname:String);
procedure PrinterSetup;
function ShowParams:boolean;
procedure SaveToPDF(filename:string;compressed:boolean=false);
function PrintRange(frompage:integer;topage:integer;
copies:integer;collate:boolean):boolean;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer);override;
constructor Create(AOwner:TComponent);override;
{ Public declarations }
published
{ Published declarations }
property Filename:string read FFilename write SetFilename;
property Preview:boolean read FPreview write SetPreview default true;
property ShowProgress:boolean read FShowProgress write SetShowProgress;
property ShowPrintDialog:boolean read FShowPrintDialog write SetShowPrintDialog;
property Title:string read FTitle write SetTitle;
property Language:integer read FLanguage write SetLanguage;

Amigos muchas gracias :)

felipe88 21-11-2008 16:40:46

Hola,
Probando hice lo siguiente, instale el *.ocx y añadí el rpreportmanapi.pas al proyecto ejemplo... ahora, ¿alguién tiene algún ejemplo de como usar estas funciones?

Código Delphi [-]
int rp_execute(int hreport,char *outputfilename,int metafile,int compressed);
int rp_print(int hreport,char *title,int showprogress,int showprintdialog);
int rp_preview(int hreport,char *title);

Con esta tuve un error ya que "aparentemente" no encuentra el reporte...:confused:
Código Delphi [-]
int rp_open(char *filename);

Lepe 21-11-2008 19:41:29

Cita:

Empezado por felipe88 (Mensaje 326988)
aunque el resultado final sin usar los componentes no sería el apropiado :cool:

En realidad sólo lo decía para saber más sobre esa opción que no la había usado, es decir, ampliar horizontes.

Creo que el resultado apropiado, es el que resuelve el problema puntual. Habrá otros métodos, pero si, por ejemplo, usas las turbo delphi o tu jefe no te deja instalar componentes, ya has encontrado la solución apropiada :).

En cuanto a tu problema, ¿qué valores le pasa? ¿ruta completa del archivo?

La verdad, la declaración de la función no sirve de mucho para ayudarte :(

Saludos

felipe88 21-11-2008 23:31:14

Cita:

Empezado por Lepe (Mensaje 327265)
...La verdad, la declaración de la función no sirve de mucho para ayudarte...

Bueno la verdad las tome tal cual como estan en la documentación... con el open hacia la siguiente prueba en el evento onClick de un boton:

Código Delphi [-]
begin
  rp_open('C:\Prueba\Reportes\Reporteprueba.rep');
end;
Luego el mensaje de error al no encontrar el archivo... ¿alguna idea?

Y si... estoy seguro de que será la solución apropiada :)

Lepe 22-11-2008 00:17:43

Intenta con esto a ver:
Código Delphi [-]
var rphandle :integer;
begin
 rphandle := rp_open(pchar('c:\prueba\Reportes\ReportePrueba.rep'));
  rp_preview(rphandle,pchar('titulo del informe'));

Si no va intenta pasar el nombre de archivo encerrado entre comillas dobles (la que está encima del número 2), igual tienes una partición FAT y ReportePrueba es de más de 8 caracteres).

Saludos

felipe88 22-11-2008 00:46:56

Cita:

Empezado por Lepe (Mensaje 327313)
...igual tienes una partición FAT y ReportePrueba es de más de 8 caracteres...

¿podrias explicarme un poco esta relación, tiene que ver con el Handle? :confused:... apenas llegue a casa haré la prueba, no lo tengo instalado en este equipo :rolleyes:...

Gracias :)

felipe88 24-11-2008 18:34:22

Cita:

Empezado por Lepe (Mensaje 327313)
Intenta con esto a ver:
Código Delphi [-]
var rphandle :integer;
begin
 rphandle := rp_open(pchar('c:\prueba\Reportes\ReportePrueba.rep'));
  rp_preview(rphandle,pchar('titulo del informe'));

Si no va intenta pasar el nombre de archivo encerrado entre comillas dobles (la que está encima del número 2), igual tienes una partición FAT y ReportePrueba es de más de 8 caracteres).

Saludos

Me sacó el mismo error :confused::cool:... sin hembargo encontre un ejemplo en el FTP del Club, le daré un vistaso ;)

Lepe 24-11-2008 20:31:41

En particiones FAT, si tienes un archivo con más de 8 caracteres, debes encerrar el nombre de archivo entre comillas dobles para que lo encuentre.

Código Delphi [-]
 rphandle := rp_open(pchar('"c:\prueba\Reportes\ReportePrueba.rep" '));

Si no lo haces, el sistema operativo no encontrará el archivo y por consiguiente el Handle que obtienes será cero (error).

En particiones NTFS, puedes pasar el archivo tal cual y el sistema operativo lo interpreta correctamente y lo abrirá bien.

Recuerda que en windows da igual las mayúsculas y minúsculas en carpetas y archivos pero en Linux no.

Saludos


La franja horaria es GMT +2. Ahora son las 22:39:23.

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