I would like to know how to do a preview of multiple reports of Ireport
, that is, I created a test project to run reports or forms created to check how they were before system.
I wanted to pass array
with names and it batch all, I made a for
and when running the second on, that "The document does not have pages".
public static void main(String[] args) throws JRException {
final String pastaImagens = "imagens/";
final String pastaFormulario = "formularios/";
// aqui deve se colocar o nome do arquivo da imagem do logotipo
final String imagem = pastaImagens.concat("logoBanco.png");
PropostaEmprestimoTest propostaEmprestimoTest = new PropostaEmprestimoTest();
// aqui deve alterar pelo tipo da proposta
//PropostaEmprestimo proposta = propostaEmprestimoTest.propostaEmprestimoVazia();
PropostaEmprestimo proposta = propostaEmprestimoTest.propostaEmprestimo();
String[] formularios = nomesDosFormulario();
HashMap<String, Object> parametros = new HashMap<String, Object>();
parametros.put("REPORT_LOCALE", new Locale("pt", "BR"));
parametros.put("logo", imagem);
parametros.put("empresa", propostaEmprestimoTest.createEmpresa());
parametros.put("endereco", EcredUtil.formatarEndereco(proposta.getCliente()));
setParameterRefinList(parametros, proposta.getRefins());
List<PropostaEmprestimo> propostaList = new ArrayList<>();
propostaList.add(proposta);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(propostaList);
// nome do formulário
String nomeArquivo = "";
String formulario = "";
for (int i = 0; i < formularios.length; i++) {
nomeArquivo = formularios[i];
formulario = pastaFormulario.concat(nomeArquivo).concat(".jrxml");
JasperReport pathjrmxl = JasperCompileManager.compileReport(formulario);
JasperPrint printReport = JasperFillManager.fillReport(pathjrmxl, parametros, ds);
JasperViewer.viewReport(printReport);
}
}
private static String[] nomesDosFormulario() {
return new String[] { "declaracaoConcordancia",
"declaracaoDesistenciaPortabilidade", "propostaPortabilidade",
"propostaPortabilidadeINSS",
"termoAutorizacaoLiquidacaoEmprestimoINSS",
"termoAutorizacaoLiquidacaoEmprestimoREFIN" };
}
private static void setParameterRefinList(HashMap<String, Object> parameters, List<ContratoRefin> contratoRefins) {
int i = 1;
Double somatorioRefin = contratoRefins.size() > 0 ? 0D : null;;
for (ContratoRefin contratoRefin : contratoRefins) {
parameters.put("contrato" + i, contratoRefin.getContrato());
parameters.put("valor" + i, contratoRefin.getValor());
parameters.put("dataAntecipacao" + i, contratoRefin.getDataAntecipacao());
somatorioRefin += Double.valueOf(contratoRefin.getValor());
i++;
}
parameters.put("somatorio_refin", somatorioRefin);
}