informatica
En el primer post de la serie de JasperReports hablé de cómo crear una biblioteca para trabajar con JasperReports y cómo crear un reporte en múltiples formatos. Además hicimos un ejemplo de creación de reportes usando una conexión JDBC directa a nuestra base de datos.
Ahora veremos cómo generarnuestros reportes sin hacer uso de una conexión. Esto puede ser muy útil en los casos en los que ya tengamos los datos en memoria y no necesitemos realizar una conexión a la base de datos; o en el caso en que, por alguna razón ajena a nosotros, no podamos obtener la conexión.
Para poder hacer esto se nos proporciona una interface: "net.sf.jasperreports.engine.JRDataSource". Esta interface tiene solodos métodos:
• getFieldValue(JRField jrField)
• next()
Explicaré estos métodos un poco más adelante, por ahora comencemos a generar todo lo necesario para tener nuestro reporte.
Creamos un nuevo proyecto en NetBeans (menú "File -> New Project..."). En la ventana de nuevos proyectos seleccionamos la categoría "Java" y como tipo de proyecto seleccionamos "Java Application" y hacemos clic enel botón "Next". En la siguiente ventana introducimos el nombre de nuestro proyecto y dejamos seleccionada las opciones "Create Main Class" y "Set as Main Project".
Para que podamos pasar datos a nuestro reporte es necesario que utilicemos un datasource. En el ejemplo anterior veíamos que el datasource que usábamos era la base de datos y la conexión a la misma. En esta ocasión el datasourceserá una de nuestras clases. Esta clase deberá implementar la interface "JRDataSource" y contendrá la lógica para pasar los datos correspondientes a nuestro reporte.
Creamos una nueva clase haciendo clic derecho sobre el nodo "Source Packages" de la ventana "Projects", o sobre el paquete que ya tenemos creado, y en el menú contextual que se abre seleccionamos la opción "New -> Java Class...".En la ventana que se abre escribimos como en nombre de la nueva clase "Participante" y presionamos el botón "Finish". Con esto veremos en la ventana de nuestro editor la nueva clase "Participante".
Esta clase "Partcipante" representará los datos que se mostrarán en el reporte, tal como en el ejemplo anterior cada uno de los registros de la tabla "participantes" representaba una fila en elreporte final, cada objeto participante que creemos representará una fila en el nuevo reporte.
Agreguemos los siguientes atributos a nuestra clase:
private int id;
private String nombre;
private String username;
private String password;
private String comentarios;
Además agregamos sus getters y sus setters y dos constructores, uno sin argumentos y uno que reciba como argumentostodaslas propiedades declaradas anteriormente.
Si están utilizando el NetBeans para seguir este tutorial pueden generar tanto los setters y los getters de forma automática presionando las teclas "Alt + Insert", con lo cual se abrirá un menú contextual con las opciones necesarias para hacer esto:
Al terminar, su clase debe verse más o menos así:
public class Participante
{
privateint id;
private String nombre;
private String username;
private String password;
private String comentarios;
public Participante()
{
}
public Participante(int id, String nombre, String username, String password, String comentarios)
{
this.id = id;
this.nombre = nombre;
this.username = username;
this.password =password;
this.comentarios = comentarios;
}
public String getComentarios()
{
return comentarios;
}
public void setComentarios(String comentarios)
{
this.comentarios = comentarios;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String...
Regístrate para leer el documento completo.