Posteado por: jotas | Diciembre 7, 2007

Crear plugins de iReport – Final

En el artículo anterior comentaba la posibilidad que ofrece la aplicación iReport, desde su versión 0.3.1, de incluir aplicaciones propias en forma de plugins, o conectores en la versión traducida al castellano.

El proceso es tan sencillo que se explica en la documentación de iReport en una única página, pero vamos a ver paso a paso como se hace.

  • Lo primero que necesitamos es descargarnos el iReport, aunque se supone que este ya lo tenemos, e instalarlo en nuestro ordenador (c:\Archivos de programa\JasperSoft\iReport-2.0.2\ en mi caso y a partir de ahora IREPORT_PATH) .
  • Una vez instalado buscaremos en IREPORT_PATH/lib una librería lamada iReport.jar
  • Ahora ya nos podemos crear un proyecto e incluir esa librería en el classpath.
  • Crearemos ahora la clase que arrancará nuestra pequeña aplicación. Esta tendra que extender de IReportPlugin.(Se puede consultar en el enlace)
  • Como se ve en la clase, lo único que tenemos que implementar si o si es el método abstracto call(), que es el que ejecutara el iReport. En el ejemplo de iReport este sería el código del método:
	 public void call() {
    		javax.swing.JOptionPane.showMessageDialog(this.getMainFrame(), "Hello from plugin!");
  	 }
  • Con nuestro super plugin nos podemos crear un jar que dejaremos en la carpeta IREPORT_PATH/lib.
  • Solo nos queda crear el XML que describe el plugin, en el ejemplo que estamos viendo es este:
	<iReportPlugin
 		name="Example 1"
 		class="it.businesslogic.ireport.plugin.examples.HelloWorld"
		loadOnStartup="false"
		hide = "false"
		configurable = "true">
		<IconFile>/it/businesslogic/ireport/icons/menu/new.gif</IconFile>
		<Description>This example shows how to create a very simple plugin for iReport.</Description>
	</iReportPlugin>
  • Donde:
    	class="it.businesslogic.ireport.plugin.examples.HelloWorld" 

    es la clase que hemos creado y

    	<IconFile>/it/businesslogic/ireport/icons/menu/new.gif</IconFile>

    es el icono, que puede estar en nuestro jar o en el del iReport como en el ejemplo.

  • Una vez creado el xml de descripción del plugín se coloca en IREPORT_PATH/plugin y se inicia el iReport. Debería aparecer ya nuestro plugin (El mio es el del monito)

ireport-plugin-01

  • Que al ejecutarlo nos abrirá el plugin

ireport-plugin-02

Hasta aqui el ejemplo de la web. Para mi es interesante destacar el método getMainFrame() que nos devuelve un objeto MainFrame. Ese objeto es el gui de iReport, al que tenemos acceso total en nuestro plugin. El gui es una aplicación MDI (Multiple Documment Interface), al estilo Word y del que podemos obtener cada uno de los formularios abiertos o el activo de la siguiente manera:

	getMainFrame().getActiveReportFrame();

También podemos obtener el informe de ese Frame:

	Report r = getMainFrame().getActiveReportFrame().getReport();
	r.getFilename();

O las conexiones configuradas en la aplicación:

	List lista = getMainFrame().getConnections();

Y así con cada uno de los elementos de la aplicación. Es importante comentar que los objetos que vamos a obtener son propios de iReport y no de Jasper, es decir: con getParameters() obtendremos un array de JRParameter, pero de tipo it.businesslogic.ireport.JRParameter y no de tipo net.sf.jasperreports.engine.JRParameter.

Pues con esto, que ha sido como no decir nada, acabo el mini-tuto de crear plugins. El resto lo tendreis que descubrir experimentando, que es más divertido.

Desafortunadamente la documentación del código de iReport brilla por su ausencia (Javadoc, java que?), igual porque existe un libro a la venta.

Afortunadamente, iReport es open source, con lo que tenemos el código fuente completito en IREPORT_PATH/src, con lo que ¿Para qué queremos más?.

Que ustedes lo plugineen bien.


Dejar una respuesta

Su respuesta:

Categorías