07 noviembre 2007

Creando informes con Rave Reports (IV)

Después de crear los informes utilizando el programa Rave Designer ahora vamos a ver como abrir esos informes con extensión RAV dentro de nuestro proyecto de Delphi.

ABRIENDO INFORMES RAVE DESDE DELPHI

Para llamar a los informes creados desde Delphi vamos a insertar en nuestro formulario los componentes de la clase TRvProject y TRvSystem situados en la pestaña Rave. Al objeto RvProject lo vamos a llamar Proyecto y al componente RvSystem lo llamaremos Sistema.


También vamos a vincular el componente Sistema al componente Proyecto a través de su propiedad Engine. Como estamos utilizando una conexión ADO tenemos que añadir en la sección uses de nuestro formulario la unidad RvDLADO, porque en caso contrario nos mostraría el error:

No DATA Link drivers have been loaded.

El objeto RvSystem realmente no es obligatorio utilizarlo, pero es recomendable porque con el mismo podemos personalizar todo lo relacionado con la impresión de documentos, desde el título, hasta los mensajes, la forma de como mostrar la vista previa, etc.

Pues con esto ya podemos lanzar la vista previa del informe:

begin
Proyecto.ProjectFile := ExtractFilePath( Application.ExeName ) + 'factura.rav';
Proyecto.Execute;
end;

Primero se nos abre una ventana para seleccionar el tipo de impresión y la impresora por donde va a salir:


Si queremos quitar esta ventana y que lance directamente la vista previa del informe tenemos que desactivar la propiedad ssAllowSetup que se encuentra dentro de la propiedad SystemSetups del componente RvSystem (que hemos llamado Sistema).

Para lanzar directamente el informe a la impresora sin vista previa hay que configurar la propiedad DefaultDest del componente RvSystem con el valor rdPrinter.

INSTALANDO NUESTRA APLICACION EN OTRO PC

Uno de los problemas que suelen ocurrir al llevarnos la aplicación a otro ordenador es que siempre falta que configurar algo para que pueda imprimirse el informe.

En mi caso he probado a ejecutar la aplicación en una máquina virtual limpia (VMWare con Windows XP) y sólo he tenido que hacer lo siguiente para que imprima el informe:

- Hay que instalar el driver ODBC de Firebird 2.0 como mencioné en otro artículo anterior.

- Hay que ir a herramientas administrativas dentro del panel de control de Windows y configurar nuestra conexión hacia el archivo BaseDatos.fdb. El alias de la conexión tiene que llamarse igual como lo hicimos anteriormente: BaseDatos_Rave.

- Me ha ocurrido que al hacer un test de conexión me faltaba la siguiente librería:

MSVCR71.DLL

Para solucionarlo lo copiamos de otro Windows XP que lo tenga y lo metemos en la carpeta C:\Windows\System32\ y listo. O bien lo bajamos de Internet.

Y con esto ya tenemos nuestros informes funcionando en otra máquina. Naturalmente damos por hecho de que tiene instalado el motor de bases de datos Firebird 2.0.

En el próximo artículo seguiremos viendo más cosas interesantes relacionadas con Rave Reports.

Pruebas realizadas en Delphi 7 y Firebird 2.0.

1 comentario:

Gerardo dijo...

Que tal Gente! Tengo un problema y quisiera saber si alguien puede orientarme. Tengo que hacer un reporte con Rave de 3 tablas: compras, itemscompra y stock. Las dos primeras estan en una base de datos y la segunda en otra. En las dos primeras tengo los datos de la compra y en la segunda la descripcion de cada articulo. Ahora bien hay alguna forma de poder hacer un reporte?
Un maestro/detalle entre compras e itemcompra funciona correctamente pero con stock simpre me muestra la descripcion del primer registro de itemcompra. Tambien intente hacer un buffer con un clientdataser y completarlo con los datos de cada tabla, lo cual funciona a medias porque en tiempo de diseño veo todas columnas de la clientdataset pero cuando ejecuto el reporte no muestra nada.
Bueno desde ya muchas gracias y mis felicitaciones para el autor de este blog espectacular.

Publicidad