Colabora VB6

¿Cómo usar Report Manager con VB 6?

[Gestor de informes GNU en tus aplicaciones VB 6]

 

Fecha: 11/Oct/2006 (9 Octubre 2006)
Autor: J.Jesús Daryanani - GOPI (jesus@gopitelecom.com) 

 


Introducción

Desde hace tiempo andaba buscando una forma fácil de generar reportes o informes que pudieran ser editados, de manera más o menos sencilla, por el usuario final. Descarté, sin motivo previo, el Crystal Report y estuve probando otras alternativas como ActiveReport3 , FastReport y ReportManager. Al final opté por la solución más económica y porque se trataba de un "producto made in spain".

En este enlace http://reportman.sourceforge.net/ podemos visitar la página de Toni Martir, su autor. Además podemos observar todas las particularidades y funcionalidades de la herramienta que nos ocupa.

El código que adjunto no pretende sino ser un ejemplo de cómo podemos usar Report Manager en nuestras aplicaciones sin complicarnos con otras herramientas más pesadas y/o complicadas.

¿ Qué es Report Manager ? (Extraido literalmente de la página del autor).

Report manager es una aplicación de generación de informes (Report Manager Designer) y un conjunto de componentes para Delphi , Builder y Kylix, también puede utilizarse desde otros entornos de desarrollo con el componente ActiveX incluído (Visual Basic,Visual FoxPro,cualquier lenguaje de Visual Studio.Net...), se proporciona una librería dinámica estándar con funciones para su uso con cualquier lenguaje como GNU C.

Más información en : http://reportman.sourceforge.net.

Ejemplo Formulario

A continuación echaremos un vistazo a la aplicación de ejemplo. Primeramente el menu general :

La aplicación nos permite obtener tres informes diferentes (clientes, productos y pedidos) de cuatro formas diferentes, en vista previa, directa a la impresora predeterminada, con selección de impresora y en modo edición.

Antes de ejecuar este ejemplo hemos de instalar Report Manager que podemos descargar de la página de su autor ( http://reportman.sourceforge.net ).

También se ofrece un ejemplo de un informe que utiliza parámetros, en este caso se filtra una consulta usando como parámetro el código de cliente.

Nota:
Podemos descargar también el ocx necesario para la correcta ejecución. El ejemplo debe descomprimirse en la carpeta Ejemplo_Report_Manager de tu disco duro.

El código:

A pesar de la sencillez del código que forma este ejemplo, comentaré algunas partes del mismo.

Es necesario incluir en nuestro formulario un control reportmanx al que he llamado Rep

A continuación sigue código en Visual Basic para obtener una vista previa del informe:


' Activamos la vista previa
Rep.Preview = True
' No activamos el selector de impresora
Rep.ShowPrintDialog = False
' LLamamos al reporte seleccionado.
Select Case Index
    Case 0
        Rep.FileName = ruta & "\informes\rpt_clientes.rep"
    Case 1
        Rep.FileName = ruta & "\informes\rpt_productos.rep"
    Case 2
        Rep.FileName = ruta & "\informes\rpt_pedidos.rep"
    Case 3
        Rep.FileName = ruta & "\informes\rpt_buscar_pedido.rep"
        Rep.SetParamValue "cliente", Label2.Caption
End Select
' Ejecutamos el informe
Rep.Execute

Para obtener el informe a través de la impresora predeterminada :

Rep.Preview = False
Rep.ShowProgress = True
Rep.ShowPrintDialog = False
Select Case Index
    Case 0
        Rep.FileName = ruta & "\informes\rpt_clientes.rep"
    Case 1
        Rep.FileName = ruta & "\informes\rpt_productos.rep"
    Case 2
        Rep.FileName = ruta & "\informes\rpt_pedidos.rep"
End Select
Rep.Execute

Para poder seleccionar la impresora :

' Vista previa no
Rep.Preview = False
' Si al selector de impresora
Rep.ShowPrintDialog = True
Select Case Index
Case 0
Rep.FileName = ruta & "\informes\rpt_clientes.rep"
Case 1
Rep.FileName = ruta & "\informes\rpt_productos.rep"
Case 2
Rep.FileName = ruta & "\informes\rpt_pedidos.rep"
End Select
Rep.Execute

Para invocar al diseñador de reportes/informes :

' Dependiendo del informe seleccionado, invocamos al diseñador repmandxp.exe y le pasamos como parametro el informe a modificar.
Select Case Index
Case 0
son = Shell("C:\Archivos de programa\Report Manager\repmandxp.exe" & " " & ruta & "\informes\rpt_clientes.rep", vbMaximizedFocus)
Case 1
son = Shell("C:\Archivos de programa\Report Manager\repmandxp.exe" & " " & ruta & "\informes\rpt_productos.rep", vbMaximizedFocus)
Case 2
son = Shell("C:\Archivos de programa\Report Manager\repmandxp.exe" & " " & ruta & "\informes\rpt_pedidos.rep", vbMaximizedFocus)
Case 3
son = Shell("C:\Archivos de programa\Report Manager\repmandxp.exe" & " " & ruta & "\informes\rpt_buscar_pedido.rep", vbMaximizedFocus)
End Select

Para llamar a un informe usando parámetros para filtrar datos, lo haremos de la siguiente manera:

Rep.FileName = ruta & "\informes\rpt_buscar_pedido.rep" Rep.SetParamValue "cliente", Label2.Caption

Primero hemos de definir en el informe el parámetro (en nuestro caso cliente), y luego por código le asignamos el valor que en nuestro caso será el valor que tome la etiqueta label2.

Conclusión.

En este ejemplo hemos podido ver la sencillez con que podemos usar Report Manager como gestor de los informes en nuestras aplicaciones.

Para cualquier duda, aclaración, error, comentario, dejo en el encabezado mi correo. 

Saludos...

J. Jesús Daryanani - GOPI

 


Código de ejemplo (ZIP):

 

Fichero con el código de ejemplo: jesus_Ejemplo_Report_Manager.zip  - 508 KB

(MD5 checksum: 3565A7EF751A4A20044DC62D8ABE9468)

 


ir al índice principal del Guille