21 mayo 2010

El editor de informes Report Manager (1)

Pese a que no es un generador de informes muy conocido en el mundo Delphi, este editor de informes destaca por su sencillez (está en español) y que sobre todo es gratuito.

Si en algo aventaja a QuickReport es en que permite generar los informes en archivos con extensión REP para luego ser cargados desde Delphi e incluso podemos modificarlos en tiempo de ejecución. Tampoco da las explosiones que ocasiona el editor Rave cuando te equivocas, aunque hay que reconocer que es un poco raro en algunas cosas.

DESCARGANDO EL EDITOR

Puede descargarse de esta página web:

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

Dentro del apartado Descarga nos llevará a otra página de SourceForge donde se encuentra la versión 2.9a

Lo que ocurre es que solo nos bajamos el editor y también necesitamos los componentes. Para ello pulsamos en la misma página web el botón View all files y descargamos este archivo repporman_delphi_builder_2_9.zip:


INSTALANDO EL EDITOR

La ventana de instalación permite elegir el idioma español y solo hay que ir pulsando el botón Siguiente:


INSTALANDO LOS COMPONENTES


Creamos una carpeta llamada ReportManager dentro de la carpeta:

\CodeGear\RAD Studio\5.0\Componentes\

Y descomprimimos dentro de la misma el archivo que hemos descargado:

Repporman_delphi_builder_2_9.zip

Nos vamos a Delphi y abrimos el archivo rppack2007.groupproj:

Veremos estos paquetes en la parte derecha de Delphi:

Pulsamos el paquete rppack_del2007.bpl con el botón derecho del ratón y seleccionamos Install:

Con solo hacer esto se instalará todo. Si todo ha ido correctamente veremos esto en la paleta de componentes:

Pasemos a ver el entorno de trabajo de este editor.

EL ASPECTO DEL EDITOR

Al ejecutar por primera vez el editor de informes vemos que aparece completamente pelado:

Pulsamos el botón Nuevo y mostrará este aspecto:

Lo mejor de todo es que se encuentra en nuestro idioma. Dentro del editor podemos distinguir estas partes:

Barra de herramientas superior

Contiene las típicas opciones de abrir o guardar archivos, mostrar la vista previa, etc. Y abajo tenemos los iconos para insertar componentes: etiquetas, campos vinculados a tablas, formas geométricas, dibujos y códigos de barras. Ya iremos viendo detenidamente cada uno de ellos según los necesitemos.

Estructura del informe

Aquí vemos las bandas de las que se compone el informe. Si seleccionamos por ejemplo el Detalle mostrará abajo el inspector de objetos con sus propiedades. A su lado tenemos la pestaña Datos donde veremos las variables globales que podemos utilizar:


La zona de trabajo

Aquí es donde iremos colocando componentes para crear el informe. No os dejéis engañar por la simpleza de este editor, ya que como veremos más adelante se pueden crear informes avanzados por programación interceptando en tiempo real los componentes al igual que hacemos con QuickReport.

CREANDO UN INFORME

Para probar que todo ha ido bien, vamos a crear un pequeño informe a partir de una base de datos de Interbase que contiene una tabla de CONTACTOS. Lo primero que tenemos que hacer es establecer la fuente de donde van a venir los datos. La vinculación con el origen de datos es otra característica algo rara que confunde por sus múltiples pantallas.

Seleccionamos en el menú superior las opciones Informe - Configuración de datos:

Y aparecerá esta ventana:

Seleccionamos Interbase Express que equivale realmente a una conexión DBExpress al pulsar el botón Configurar:

Aquí trae como ejemplo la configuración a una base de datos Interbase cuya conexión DBExpress está configurada dentro de Delphi 7, pero lo que vamos a hacer es crear una nueva conexión pulsando este botón:

En el nombre de la conexión le ponemos AGENDA:

Entonces volverá a la pantalla anterior y configuramos donde se encuentra la base de datos:

No hay que olvidar poner la propiedad SQL Dialect a 3. Probamos la conexión pulsando el botón:

A continuación nos pedirá identificarnos:


Y si todo ha ido bien nos dirá esto:

Volvemos a la primera pantalla y seleccionamos la conexión que hemos creado:

Lo añadirá a la lista de conexiones disponibles:


Ahora nos vamos a la pestaña Conjunto de datos del informe para elegir las tablas de la que queremos sacar la información:


Pulsamos el botón Nuevo conjunto de datos y lo llamamos CONTACTOS:

La ventana cambiará a esta otra:

Escribimos la sentencia SQL de los datos que nos vamos a traer:

Pulsamos Aceptar y al volver al editor veremos en la pestaña Datos la tabla que hemos vinculado:

Para no perder la configuración guardamos el informe con Archivo Guardar comoContactos.rep. Como lo que quiero diseñar es un listado, tenemos el problema de que solo tenemos la banda de detalle. Para insertar la banda de la cabecera seleccionamos Informe Añadir Cabecera de página. Ya tenemos las dos bandas:

Vamos a pulsar este icono para añadir una etiqueta al informe:

Una vez tenemos la etiqueta seleccionada nos vamos a la izquierda al inspector de objetos y en la propiedad texto escribimos LISTADO DE CONTACTOS:

Una de las cosas raras que hace este editor es que al insertar una etiqueta le da un anchura y altura muy pequeña. Tenemos que estirarla siempre. Así creamos el resto de etiquetas:

Para copiar etiquetas no podemos utilizar la combinación de teclas CTRL + C y CTRL + V, hay que hacerlo con ALT + C y ALT + V. Esta es también una característica algo rara.

Ahora insertamos los campos arrastrándolos desde la pestaña de datos a la banda del detalle:

Así quedaría después de insertarlos:

Pulsamos el botón de vista previa para ver el informe:

Aquí encontramos el primer inconveniente:

Para que se listen todos los registros tenemos que vincular la tabla CONTACTOS al informe. Para ello nos vamos a la pestaña Estructura y en la propiedad Con. D. Principal seleccionamos CONTACTOS:


Ahora si sale bien:

En el próximo artículo veremos como cargar este informe desde nuestro proyecto de Delphi así como exportarlo a PDF y otros formatos. También veremos otros formatos más avanzados como una factura.

Pruebas realizadas en RAD Studio 2007.

25 comentarios:

MAXIUM dijo...

Excelente!!!. Justo necesito aprender sobre reportes.

Una consulta, ¿se pueden imprimir reportes directos, sin la necesidad de tener una vista previa?

Administrador dijo...

Claro que sí, o puedes mandarlo directamente a PDF.

Victor Acosta dijo...

Buen aporte y explicación sobre el uso de este generador de reportes. Mi Pregunta ¿Se ouede realizar un editor de Reportes propio, tal como ud. lo hizo con con QuickReport? Gracias.
Salu2

Administrador dijo...

No creo que se pueda hacer un editor utilizando Report Maganer directamente.

Para ello habría que manejar directamente las clases que trae internamente Report Maganer y crear los componentes en tiempo de ejecución. Difícil pero no imposible. No creo que ese fuera el cometido del programador de este generador de informes.

Saludos.

arainfor dijo...

Estupendos articulos.

Consultarte un tema, tengo Delphi 6 Profesional y no consigo instalar los componentes a causa de un error de localización del fichero IdCoderUUE.dcu.

¿Podrias orientarme?

Gracias y un saludo.

malobo

arainfor dijo...

Estupendos articulos.

Consultarte un tema, tengo Delphi 6 Profesional y no consigo instalar los componentes a causa de un error de localización del fichero IdCoderUUE.dcu.

¿Podrias orientarme?

Gracias y un saludo.

malobo

arainfor dijo...

Estupendos articulos.

Me gustaria hacerte una consulta: al instalarlo en Delphi 6 Profesional, me da un error del fichero IdCoderUUE.dcu, ¿podrias orientarme?

Gracias y un saludo

Administrador dijo...

Eso tiene pinta de que has utilizado los componentes Indy pero no le has puesto en las opciones del proyecto la ruta donde se encuentran los mismos.

Tienes que dársela añadiendo la ruta a la opción Search Path.

Saludos.

MAXIUM dijo...

A sido un dolor de cabeza intentar instalarlo en Delphi 7. Además de prácticamente exigirte tener instalado Indy 10 (otro dolor de cabeza), no resulta el editar el archivo rpconf.inc

No resulta, errores por todos lados.

MAXIUM dijo...

OK, para instalarlo en Delphi 7, hay que tener instalada la Versión 9 de Indy y compilar e instalar rppack_del.dpk y rppackvcl_del.dpk

Hasta el momento esto me ha resultado.

MAXIUM dijo...

Nuevo problema, no puede cargar GDS32.DLL osea, no arranca con Firebird ya que este al instalarse cambia la versión del dll.

Administrador dijo...

Este editor de informes está muy bien pero a veces da la sensación de que está medio abandonado.

Una verdarera lástima.

javier dijo...

Hola, hace tiempo vi tus articulos sobre programacion de videojuegos con SDL, logre hacer todos los ejemplos que mostrabas, pero no con Delphi, si no con Lazarus y FreePascal, haciendo los juegos multiplataforma y compilado, si te interesa mandame un mensaje javier_ecf@hotmail.com

Isidoro dijo...

hola, tengo el mismo problema con GDS32.DLL. Como comentaba Maxium.

Félix dijo...

Hola, estuve realizando los pasos p/la instalación del ReportManager, con la misma configuración mencionada, esto lo hice en Windows 7 y me da un error [DCC Error] rpzlibzutil.pas(551): Could not create output file 'rpzlibzutil.dcu' al tratar de Instalar dentro del Delphi.
Qué hago p/terminar la instalación? Gracias y saludos.

Administrador dijo...

Hola Felix, eso podría ser por cuestión de permisos, ya que Windows 7 a veces no deja compilar archivos pas en ciertos directorios si no le das permiso de escritura en dicha carpeta.

Saludos.

luk2009 dijo...

Hola como estas. Pertenezco al foro www.delphiaccess.com y alguien a creado un hilo donde ha compilado tu blog en un archivo pdf y lo ha subido a megaupload. Quisieramos saber tu opinion sobre esto y si deseas que se bloquee este contenido.

Queria contactarte directamente, pero no he visto como hacerlo.

saludos
luk2009

luk2009 dijo...

contactanos y puedes registrarte en el foro www.delphiaccess.com y dar tu opinion dentro de este hilo.

El interes es no permitir que se violen tus derechos.

Administrador dijo...

No han ningún problema sobre ello. No es la primera vez que alguien compila todos mis artículos en un PDF y los pone en la red.

Siempre he dado mi permiso para ello. La información la pongo aquí para compartirla con toda la comunidad Delphi, de la que tanto he aprendido, incluida vuesta página.

Saludos.

Félix dijo...

Hola a todos. Consulto sobre cómo lograr un reporte de la sgte. estructura:
CLIENTE_A
FECHA. DOCUMENTO Nº. MATERIAL
CIUDAD01
XXXXX XXXXXXXXXX XXXXXXXX
SUBTOTAL CIUDAD01
CIUDAD02
XXXXX XXXXXXXXXX XXXXXXXX
SUBTOTAL CIUDAD02
TOTAL CLIENTE_A
LOS DATOS TENGO EN UNA CONSULTA Y YA TENGO ARMADA LA ESTRUCTORA (EN REPORT MANAGER) CABECERA CLIENTE, CABECERA DESTINO, DETALLE, PIE DESTINO, PIE CLIENTE..PERO NO LOGRO MOSTRAR DATOS EN EL DETALLE. Gracias y saludos cordiales.

Horacio dijo...

hola quiero ver si me puedes ayudar a realizar la conexion de report manager con sql server 200, ya tengo rato investigando y no he podio realizar la conexion.

muchas gracias

Administrador dijo...

Lo siento pero nunca he trabajado con SQL server. Sólo con Interbase y Firebird.

Mark Ward dijo...

oh... thanks you for your share.

php development

Kisho_kei dijo...

hola buenos dias donde descargo el QuickReport como lo uso tengo muchas dudas gracias

Unknown dijo...

Hola tengo problemas para encontrar la ruta \CodeGear\RAD Studio\5.0\Componentes\ tengo instalado el delphi7 en windows 8, agradesco tu ayuda

Publicidad