Sunteți pe pagina 1din 5

Reporte en JasperReports sin Conexin a una

Base de Datos
Creamos en nuestra plantilla en Blanco todos los campos que vayamos a utilizar para
el reporte, especificando para cada uno su nombre y tipo de datos.

Una vez creados los campos necesarios los colocamos en las bandas que
consideremos dentro de la plantilla

Creamos una clase para el registro de cada tem a presentar en el reporte, donde
deben coincidir tanto los nombres y tipo de datos de cada campo con los
especificados dentro de los campos creados en la plantilla del reporte.

package pkgRegistros;
public class regRepCobradores {
private int cedulacob;
private String nombrecob;
private int numclientes;
private int numfactpend;
private double montofacpen;
private int numfaccanc;
private double montofaccanc;
public regRepCobradores(){
}
public regRepCobradores(int ced, String nom, int numcli, int facpen, double
montopen, int faccanc,
double montocanc){
this.cedulacob = ced;
this.nombrecob = nom;
this.numclientes = numcli;
this.numfactpend = facpen;
this.montofacpen = montopen;
this.numfaccanc = faccanc;
this.montofaccanc = montocanc;
}
public int getCedulacob() {
return cedulacob;
}
public void setCedulacob(int cedulacob) {
this.cedulacob = cedulacob;
}
public String getNombrecob() {
return nombrecob;
}
public void setNombrecob(String nombrecob) {
this.nombrecob = nombrecob;
}
public int getNumclientes() {
return numclientes;
}
public void setNumclientes(int numclientes) {
this.numclientes = numclientes;
}
public int getNumfactpend() {
return numfactpend;
}
public void setNumfactpend(int numfactpend) {

this.numfactpend = numfactpend;
}
public double getMontofacpen() {
return montofacpen;
}
public void setMontofacpen(double montofacpen) {
this.montofacpen = montofacpen;
}
public int getNumfaccanc() {
return numfaccanc;
}
public void setNumfaccanc(int numfaccanc) {
this.numfaccanc = numfaccanc;
}
public double getMontofaccanc() {
return montofaccanc;
}
public void setMontofaccanc(double montofaccanc) {
this.montofaccanc = montofaccanc;
}
}
Creamos una clase de lo que ser nuestro DataSource del reporte
package pkgReportes;
import
import
import
import
import

java.util.ArrayList;
java.util.List;
net.sf.jasperreports.engine.JRDataSource;
net.sf.jasperreports.engine.JRException;
net.sf.jasperreports.engine.JRField;

public class repCobradoresDataSource implements JRDataSource{


private List<pkgRegistros.regRepCobradores> listaregReporte =
new
ArrayList<pkgRegistros.regRepCobradores>();
private int indiceLineaActual = -1;
@Override
public boolean next() throws JRException {
return ++indiceLineaActual < listaregReporte.size();
}
public void addLineaReporte(pkgRegistros.regRepCobradores Linea){
this.listaregReporte.add(Linea);
}
@Override

public Object getFieldValue(JRField jrf) throws JRException {


Object valor = null;
if ("cedulacob".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getCedulacob();
}else{
if ("nombrecob".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getNombrecob();
}else{
if ("numclientes".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getNumclientes();
}else{
if ("numfactpend".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getNumfactpend();
}else{
if ("montofacpen".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getMontofacpen();
}else{
if ("numfaccanc".equals(jrf.getName())){
valor = listaregReporte.get(indiceLineaActual).getNumfaccanc();
}else{
if ("montofaccanc".equals(jrf.getName())){
valor =
listaregReporte.get(indiceLineaActual).getMontofaccanc();
}
}
}
}
}
}
}
return valor;
}
}
Para mandar a ejecutar el reporte desde un botn, utilizamos el siguiente cdigo:
private void btnRepCobradoresActionPerformed(java.awt.event.ActionEvent
evt) {
JasperPrint jasperPrint= null;
pkgReportes.repCobradoresDataSource
pkgReportes.repCobradoresDataSource();

datasource

pkgEstructuras.clsArregloTemp listadoCobradores = cobradores.listaCobradores();


int indcobra = listadoCobradores.getIndice();
for(int pos = 0; pos <= indcobra; pos++){
int tcedcob = listadoCobradores.registro(pos).getCedulacob();
String tnomcob = listadoCobradores.registro(pos).getNombrecob();
int tnucli = listadoCobradores.registro(pos).getNumclientes();
int tnufapen = listadoCobradores.registro(pos).getNumfacturaspend();
double tmofape = listadoCobradores.registro(pos).getMontopend();
int tnufaca = listadoCobradores.registro(pos).getNumfacturascanc();
double tmofaca = listadoCobradores.registro(pos).getMontocob();
pkgRegistros.regRepCobradores lineasReporte;

new

lineasReporte = new pkgRegistros.regRepCobradores(tcedcob, tnomcob, tnucli,


tnufapen, tmofape,
tnufaca, tmofaca);
datasource.addLineaReporte(lineasReporte);
}
try{
JasperDesign
jasperDesign
=
JRXmlLoader.load("src/pkgReportes/rptCobradores.jrxml");
JasperReport
jasperReport
=
JasperCompileManager.compileReport(jasperDesign);
//java.net.URL
in
=
this.getClass().getResource("src/pkgReportes/rptCobradores.jasper");
//JasperReport jasperReport = (JasperReport) JRLoader.loadObject(in);
jasperPrint = JasperFillManager.fillReport(jasperReport, null, datasource);
//*******************************************
//se crea el visor con el reporte
JRViewer jRViewer = new JRViewer(jasperPrint);
//Fijamos el tamao por defecto para nuestro visor
jRViewer.setPreferredSize(new Dimension(760, 410));
// PARA PRESENTAR EL REPORTE DENTRO DE UN PANEL (JPanel
panelVisor) EN EL FORMULARIO
// se elimina elementos del contenedor JPanel
panelVisor.removeAll();
//para el tamao del reporte se agrega un BorderLayout
panelVisor.setLayout(new BorderLayout());
panelVisor.add(jRViewer, BorderLayout.WEST);
jRViewer.setVisible(true);
panelVisor.repaint();
panelVisor.revalidate();
}catch (JRException e){
JOptionPane.showMessageDialog(null,"Error al cargar fichero jrml jasper report
"+e.getMessage());
}
}

S-ar putea să vă placă și