Java - El reporte Jasper Report no me muestra el primer registro de un JRBeanArrayDataSource enviado

 
Vista:

El reporte Jasper Report no me muestra el primer registro de un JRBeanArrayDataSource enviado

Publicado por victor (1 intervención) el 04/05/2023 20:08:55
Buenas tardes estimados, estoy comenzando con jasper, estoy desarrollando un ejemplo con servlet, alli tengo una lista de objetos que deseo pasar a Jasper report, efectivamente lo hago sin embargo la tabla del reporte no me muestra el primer registro sino los que lo siguen, el codigo es el siguiente:

int i=0;
while (i < detalleCaja.size()) {
ReporteCajaCerrada temp = new ReporteCajaCerrada();
temp.setLinea(detalleCaja.get(i).getLlave().getLinea());
temp.setIngreso(detalleCaja.get(i).getIngreso());
temp.setEgreso(detalleCaja.get(i).getEgreso());
temp.setConcepto(detalleCaja.get(i).getConcepto());
temp.setNroDoc(detalleCaja.get(i).getNroDoc());
temp.setTipoDoc(detalleCaja.get(i).getTipoDoc());
temp.setRef1(detalleCaja.get(i).getRef1());
temp.setRef2(detalleCaja.get(i).getRef2());
temp.setFormaPago(detalleCaja.get(i).getFormaPago());
repCaja.add(temp);
i++;
}

En el siguiente extracto de codigo me aseguro que repCaja tenga los 6 registros,

Iterator it = repCaja.iterator();
ReporteCajaCerrada us;
while (it.hasNext()) {
us = (ReporteCajaCerrada) it.next();
System.out.println("valor de==" + us.getLinea());
System.out.println(us.getIngreso());
System.out.println(us.getEgreso());
System.out.println(us.getConcepto());
System.out.println(us.getNroDoc());
System.out.println(us.getTipoDoc());
System.out.println(us.getRef1());
System.out.println(us.getRef2());
System.out.println(us.getFormaPago());
}

y aca continuo con el llamado a jasper


try {
InputStream logoEmpresa = this.getServletConfig().getServletContext()
.getResourceAsStream("Reportes/EncabezadoPass.jpg"),
reporteCaja = this.getServletConfig().getServletContext()
.getResourceAsStream("Reportes/ReporteCaja.jasper");
if (logoEmpresa != null && reporteCaja != null) {

JasperReport report = (JasperReport) JRLoader.loadObject(reporteCaja);
JRBeanArrayDataSource ds;
ds = new JRBeanArrayDataSource(repCaja.toArray());
Map<String, Object> parameters = new HashMap();
parameters.put("ds", ds);
parameters.put("logoEmpresa", logoEmpresa);
parameters.put("sucursal", cc.getClave().getSucursal());
parameters.put("fechaCaja", cc.getClave().getFechaCaja());
parameters.put("moneda", cc.getClave().getMoneda());
resp.setContentType("application/pdf");
resp.addHeader("Content-disposition", "inline; filename=ReportesEmpleados.pdf");
JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, ds);
JasperExportManager.exportReportToPdfStream(jasperPrint, out);
out.flush();

el reporte imprime desde la linea 2 hasta la 6 y no tengo idea de porque lo hace
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder