Controller
Creamos una clase Controller para gestionar los reportes.
Importante que para los subreportes debemos indicar la ruta del master y del subreporte y pasarlo como parámetros.
String ruta = "/resources/reportes/facturas/facturas_master.jasper";
HashMap parameters = new HashMap();
printer.imprimir(facturasList, ruta, parameters);
String reportsDirPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/reportes/facturas");
reportsDirPath += "/detalles_subreport.jasper";
parameters.put("SUBREPORT_DIR", reportsDirPath);
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(facturasList, ruta, parameters);
ReportController.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.avbravo.webtestreport.controller;
// <editor-fold defaultstate="collapsed" desc="imports">
import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.avbravoutils.printer.Printer;
import com.avbravo.webtestreport.entity.Detalles;
import com.avbravo.webtestreport.entity.Facturas;
import com.avbravo.webtestreport.entity.Grupo;
import com.avbravo.webtestreport.entity.Modelo;
import java.util.ArrayList;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.faces.context.FacesContext;
// </editor-fold>
/**
*
* @authoravbravo
*/
@Named
@ViewScoped
public class ReportController implements Serializable {
// <editor-fold defaultstate="collapsed" desc="fields">
private static final long serialVersionUID = 1L;
List<Grupo> grupoList = new ArrayList<>();
Grupo grupo1;
Grupo grupo2;
Grupo grupo3;
Grupo grupo4;
List<Modelo> modeloList = new ArrayList<>();
Modelo modelo1;
Modelo modelo2;
Modelo modelo3;
@Inject
Printer printer;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="constructor">
public ReportController() {
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="init">
@PostConstruct
public void init() {
//grupo
grupo1 = new Grupo(1, "Laptop", "si");
grupo2 = new Grupo(2, "Server", "si");
grupo3 = new Grupo(3, "Mouse", "si");
grupo4 = new Grupo(4, "Monitor", "si");
//modelo
modelo1 = new Modelo(1, "HP", grupo1, 5);
modelo2 = new Modelo(2, "Samsung", grupo1, 63);
modelo3 = new Modelo(3, "Maxell", grupo3, 40);
//grupo
grupoList.add(grupo1);
grupoList.add(grupo2);
grupoList.add(grupo3);
grupoList.add(grupo4);
//modelo
modeloList.add(modelo1);
modeloList.add(modelo2);
modeloList.add(modelo3);
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printGrupoDetails()">
public String printGrupoDetails() {
try {
List<Grupo> list = new ArrayList<>();
list.add(grupo1);
String ruta = "/resources/reportes/grupo/details.jasper";
HashMap parameters = new HashMap();
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(list, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("printGrupoDetails() " + ex.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printGrupoAll()">
public String printGrupoAll() {
try {
String ruta = "/resources/reportes/grupo/all.jasper";
HashMap parameters = new HashMap();
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(grupoList, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("printGrupoAll() " + ex.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printModeloDetails()">
public String printModeloDetails() {
try {
List<Modelo> list = new ArrayList<>();
list.add(modelo1);
String ruta = "/resources/reportes/modelo/details.jasper";
HashMap parameters = new HashMap();
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(list, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("printModeloDetails() " + ex.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printModeloAll(">
public String printModeloAll() {
try {
String ruta = "/resources/reportes/modelo/all.jasper";
HashMap parameters = new HashMap();
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(modeloList, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("printModeloAll() " + ex.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printFacturaWizard()">
public String printFacturaSubReport() {
try {
List<Facturas> facturasList = new ArrayList<Facturas>();
List<Detalles> detallesList = new ArrayList<>();
detallesList.add(new Detalles(10, "Impresora"));
detallesList.add(new Detalles(20, "Disco Duro"));
facturasList.add(new Facturas(1, "Juana Bosquez", detallesList));
//
detallesList = new ArrayList<>();
detallesList.add(new Detalles(30, "Memoria RAM"));
facturasList.add(new Facturas(25, "Luris Bares", detallesList));
String ruta = "/resources/reportes/facturas/facturas_master.jasper";
HashMap parameters = new HashMap();
printer.imprimir(facturasList, ruta, parameters);
// String reportsDirPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/reportes/facturas/");
String reportsDirPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/reportes/facturas");
// reportsDirPath += "/";
reportsDirPath += "/detalles_subreport.jasper";
// parameters.put("SUBREPORT_DIR", reportsDirPath + "/detalles_subreport");
parameters.put("SUBREPORT_DIR", reportsDirPath);
parameters.put("P_EMPRESA", "WizardReport");
printer.imprimir(facturasList, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("printFacturaSubReport() " + ex.getLocalizedMessage());
}
return null;
}// </editor-fold>
}
Last updated