Estou começando a trabalhar com sub-relatórios. No relatório mestre e mostro os dados pessoais de um determinado cliente. No sub-relatório, eu trabalho com um JRBeanCollectionDataSource que recebe uma List de um determinado tipo de objeto - Dependente - , isto é, devem ser repetidos no detail do mestre quadros com dados de cada um dos dependentes.
O problema é que, ao ser gerado o PDF, sempre falta o quadro do primeiro Dependente da List. Eu busco os objetos do banco utilizando Hibernate, e eles vêm no número correto. Somente no sub-relatório que o primeiro objeto desaparece; só resolvo se adicionar qualquer coisa (até null) na primeira posição da lista, isto é, a lista tem que possuir um elemento a mais para que todos os dependentes sejam exibidos no sub-relatório. Do contrário, o primeiro não aparece.
Em resumo: o jasper desconsidera sempre o primeiro elemento da lista.
Ele gera o número correto de páginas também.
É assim mesmo, ou algo bizarro está acontecendo?
(...)
List dependentes = dependenteDAO().findById(cliente.getId()); //todos vêm OK, já verificado.
dependentes.add(0, new Dependente()); //se não fizer isso, o primeiro some do relatório.
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(dependentes);
map.put("dependentes", ds);
JasperFillManager.fillReportToFile("dependentes.jasper", map, ds);
JasperExportManager.exportReportToPdfFile("dependentes.jrprint", "C:/relatorios");
//Gerado com sucesso.

