Hace algunas semanas me enfrasqué en una lucha con Delphi y QuickReport para poder imprimir reportes con formatos de hojas no definidos en QuickReport sin obtener resultados interesantes… y hice creo que, casi de todo. Definir tamaños personalizados en el Windows, imprimir con drivers genéricos (necesitaba imprimir en una Epson LX-300+) y otras cosas más, pero no podía conseguir lo que necesitaba.
El asunto es que debo imprimir facturas en hojas continuas (hojas de 22cm x 14cm), y además, las impresiones debían ser rápidas, por lo que en cuanto al tema de QuickReport, dejó de ser una opción, las impresiones a través de QR se hacían mas lentas comparadas con escribir “texto puro” directamente en la impresora… por lo que opté por escribir directamente en el puerto LPT1 por lo que conseguí finalmente lo que quería… fui un poco más alla y investigando encontré comandos para cambiar estilos de fuente y algunas cosas más, pero aquí se me presentó otro problema… las facturas debían imprimirse una al lado de la otra en una misma hoja… aunque conseguía hacerlo, el largo variable del texto que se imprimía hacía muy dificil hacer que las dos impresiones estén una al lado de la otro sin afectarse mutuamente.
Fue así que llegué al Report Manager. Aunque al comienzo no entendía bien cómo funcionaba, probando aquí y allá finalmente pude conseguir conseguir lo que quería, lo mejor de todo, diseñando la factura como en QR pero imprimiendo en texto puro en la impresora… todo un flash… y yo con un sonrisa de oreja a oreja.
De todas formas todavía me falta investigar un poco más (me preocupa lo de la doble pasada del cabezal) y entender aún más como funciona. Es interesante el hecho de que los reportes se guardan en archivos separados (lo que hace más fácil extender los reportes en la aplicación) y se pueden “reutilizar” los Dataset’s disponibles en la aplicación pasándolos directamente al reporte para poder utilizarlos (aunque para lograr esto estuve un BUEN rato).
El Report Manager trae además una buena cantidad de características que la hacen _muy_ interesante para utilizarlo con Delphi.
Describo lo que fui haciendo para conseguir finalmente lo que quería, por ahí a alguien le sirve de ayuda:
- Primero lo primero, bajarse el Report Manager Designer. Con ella se hacen los diseños de los reportes y se guardan en archivos con extensión .rep.
- Segundo, bajarse los componentes (R. M. Components) para instalarlos en Delphi (en la misma página que la anterior).
- Instalar los paquetes de RM en Delphi en el siguiente orden:
- rppack_del.dpk
- rppackvcl_del.dpk
- rppackdesisgnvcl_del.dpk
- rppackdesigntime_del.dpk
- rppackv_del.dpk
- rppackdesign_del.dpk
- Con esto ya tenemos el RM funcionando en Delphi.
Lo siguiente es crear el Reporte, en mi caso, tenía una factura, por lo que necesitaba crear un Reporte con Cabecera y Detalle. En esto punto me llevo un buen tiempo entender como exactamente funcionaba el tema, ya que en mi caso necesitaba pasar los datos de mi dataset (un objeto Query de ZeosDBO) al reporte. El tema al final resultó ser algo muy simple, asi es que básicamente:
- Se crea el reporte con una Cabecera de Página, un Detalle y un Pie de Página.
- Luego vamos a Informe, Configuración de datos, luego a la pestaña Conexiones de base de datos.
- En el ícono de Agregar (un icono de tabla más un “+”), Nuevo, e introducimos el nombre de la conexion, puede ser PRUEBA.
- De ahi fui a Conjunto de datos del informe (pestaña).
- Allí agregamos nuestros dos conjuntos de datos, en mi caso, FACTURA y DETALLE. A ambas le asigné la conexión PRUEBA y en el conjunto DETALLE le asigné FACTURA como Datos maestro.
- Luego en la ventana principal, en la pestaña Estructura seleccioné SubInforme y en Con.D.Principal (Conjunto de Datos principal) seleccioné DETALLE (le decimos a la banda detalle de donde va a recuperar los registros para reportar).
- Luego solo me quedó diseñar el reporte. Los campos de datos los introduje con RpExpression y en Expresión introduje el nombre del conjunto de datos y la variable (Ej.: FACTURA.idfactura)
- Para obtener mi bendita impresión con texto en la impresora LX300, seleccione la Fuente Win como sans serif 15cpi y la variable paso lo puse también como 15cpi (aun no entendi si ambas variables están relacionadas)
Luego en mi aplicación me quedó incluir un objeto TRpAlias (con esto “linkeamos” el reporte a los datasets en la aplicación) y un objeto TVCLReport. Al TVCLReport le asigné en AliasList al TRpAlias y en Filename el nombre del reporte que había diseñado. Luego TRpAlias, en List, agregué los items cuidando de definir en Alias el nombre exacto de los conjuntos de datos definidos en el RM Designer y en Dataset enlazándolos a los querys correspondientes.
Y eso fue todo, ya estaba imprimiendo en texto en la impresora… genial.
- Releyendo mi post veo que hay muchas inconsistencias gramaticales/de sintaxis, asi es que disculpen el apuro ![]()










ppql dijo:
Interesante lo voy a probar y te cuento. Siempre he utilizado Quick Report pero es valido probar alternativas.
06 Abr 2007, 10:07 amhector perez Salgado dijo:
Muy interesante el articulo, pero me gustaria saber como instalo los componentes en Delphi, ya que despues de bajarlos no he logrado instalarlos…….si me podrias dar una mano…muchas gracias !!
06 Abr 2007, 5:28 pmeverdaniel dijo:
hola héctor, como ya lo mencioné, debes bajarte los componentes para Delphi (R.M. Componentes), extraerlos en algún directorio (un buen lugar sería en Archivos de Programa\Borland\Delphi\reportman, y luego abrir el archivo reportman_d6.bpg. ahí ya tienes todos los dpk’s que debes instalar (click derecho y Compile/Install)
si aún tienes problemas, escríbeme un mail y vemos como solucionarlo
06 Abr 2007, 9:16 pmBADSEE dijo:
HOLA PANA, MIRA ESTOY EMPEZANDO A USAR EL REPORT MANAGER, LO BAJE TODO, YO USO VB 6 Y SQL SERVER 2000, USO EL DATA PROVIDER MSDATASHAPE, PUSE LA MISMA CONEXION Q TENGO EN MI MODULO DE SISTEMA, PUSE EL MISMO EN ELREPORT MANAGER ME CONECTA BIEN, PERO NOSE Q PASA Q CUANDO PONGO UNAS CONSULTAS SHAPE SELECT NO ME LAS MUSTRA, SOLO CONSULATAS SELECT SIMPLE, SABES SI SOPORTA SHAPE JERARQUICOS??? MUCHAS GRACIAS AMIGO
06 Abr 2007, 12:52 pmeverdaniel dijo:
hola badsee, para serte sincero, no tengo ni idea, nunca programé con VB ni mucho menos, use el SQL Server…
disculpa que no te sea de ayuda…
06 Abr 2007, 7:23 pmWalter dijo:
Hola
06 Abr 2007, 11:11 pmsaludos y gracias por tu ayuda, te cuento que baje los componentes y se me instalo en la paleta unos componentes pero no todos los que necesito para poder abrir una aplicacion de tengo en delphi ya que me pide el TVCLReport y no logro instalarlo me podrias ayudar para ver su funcion. gracias
eddy dijo:
no jodan pe manos yo quelo saver como acer reportes no quero saves historias……… -_-
06 Abr 2007, 9:01 amabgame dijo:
Un saludo compañero, en la poca experiencia que tengo me encuentro tropesando a cada rato. Uno de esos malos momentos ha sido tratar de que un campo memo se muestre justificado a la derecha e izquierda. Probe con:
.
06 Abr 2007, 11:06 am1.- Qreport: aunque me quedo el informe como queria, no logre lo comentado; desisti despues de intentar trucos con rutinas de justificacion, una me justificaba el texto pero dañaba el interlineado.
2.- Rave: Logre todo menos justificar, (mas de lo mismo), aunque tiene un atributo “alineacion” que se configura a Block, pero no funciono, ni idea de porque, consulte en el foro de http://www.Clubdelphi.com, pero como que nadie, ha tenido la necesidad.
3.- Brasilreport, fast repor (free), identico a los anteriores.
Casi me pongo a programar el cambas!!!!
Todo por un atributo que deberia estar -y funcionar- en todos los reporteadores.. :(…
Hasta que decidi probar con el Report Manager y para mi sorpresa pude desde el diseñador crear el informe y se muestra justificado el campo memo
el unico detalle que me queda es: Como lanzarlo desde Delphi?… Tengo instalados los componentes que describes pero se que me falta el codigo…
Puedes darme una mano?
Un saludo y gracias por tu articulo….
JACOB CASTRO NARVAEZ dijo:
HOLA AMIGO QUE BUEN ARTICULO, LO ACABO DE LEER Y DE HECHO ESTOY TRATANDO DE MANDAR A LA IMPRESORA DATOS DE UNA FACTURA QUE LLENO EN UN FORMULARIO EN DELPHI7, PERO HASTA AHORA NO HE TENIDO EXITO, RECONOZCO QUE CUENTO CON POCA INFORMACION PERO PROBARE TU ARTICULO AL PIE DE LA LETRA. PARA QUE ME DES MAS IDEA MIRA COMO LE HAGO POR EJEMPLO MANDAR LOS DATOS DE UN STRINGRID DONDE HAGO QUE EL VENDEDOR CAPTURE LOS DATOS DE LOS ARTICULOS QUE QUIERE COMPRAR COMO LE HAGO PARA MANDARLOS A IMPRMIR USANDO EL REPORTMANAGER Y QUE FUNCION UTILIZO PARA IMPRIMIR EL TEXTO PLANO QUE MENCIONAS. ME PODRIAS MANDAR UN PEQUEÑO EJEMPLO DEL CODIGO PARA DARNOS MAS IDEA. TE LO VOY AGRADECER MUCHISIMO. LA IMPRESORA QUE ESTOY USANDO ES UNA MULTIFUNCIONAL HP Y LAS FACTURAS NO SON FORMAS CONTINUAS. GRACIAS AMIGO POR TU AYUDA.
06 Abr 2007, 9:34 pmdgimenez dijo:
Hola amigo
06 Abr 2007, 7:17 pmQuiero pedirte ayuda con respecto al Report Manager, quiero hacer una conexión utilizando el controlador Zeos Database Object a una base de datos PostgreSQL 8.3 y no lo estoy consiguiendo ya que no esta encontrando los controladores, si me podrias dar una ayuda o consejo estaria muy agradecido desde ya muchas gracias.