Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Relatório com CSV e Connection

Bom dia! Estou produzindo um relatório que apresentará vários gráficos. A maioria desses gráficos serão alimentados via banco de dados e irão apresentar dados sobre abertura de chamados, numero de chamados fechados por um analista em um determinado período entre outros, porém, um gráfico em específico não está será alimentado por esse banco de dados. Trata-se do gráfico que traz quantos chamados foram atendidos conforme o tipo de contrato do cliente. Essa informação nós não temos no banco de dados, o sistema não difere o tipo de contrato dos clientes. Assim é feita uma contagem "manual" dos chamados atendidos por tipo de contrato, a partir dai é gerada uma planilha de excel com essas informações.

Conforme meu relato, gostaria de saber como eu faria para passar para o meu relatório uma connection e um CSV? Ou se vocês tem alguma outra sugestão de como contornar essa situação?

Desde já muito obrigado!

Att,

1 resposta
solução!

Consegui contornar o problema, não sei se é a melhor solução, porém funcionou perfeitamente.

// meu DataSource 
JRDataSource ds = new JRCsvDataSource("relatorios/meuArquivo.csv");
Map parNovaPagina =  new HashMap();
((JRCsvDataSource) ds).setColumnNames(new String[]{"tipo","quantidade"});

//meu relatório principal
relatorio = JasperFillManager.fillReport("relatorios/relatorio.jasper", parametrosRelatorioPrincipal,con);
JasperViewer jrviewer = new JasperViewer(relatorio,false);
// relatório alimentado pelo CSV
JRPrintPage novaPagina = (JRPrintPage) JasperFillManager.fillReport("relatorios/meuNovoRelatorio.jasper",parametrosNovaPagina,ds).getPages().get(0);
// adicionando relatório CSV como nova página do meu relatório principal
relatorio.addPage(novaPagina);
//exibindo relatório completo
jrviewer.setVisible(true);

Basicamente, criei um JRDataSource apontando para o arquivo e adicionei o relatório que é alimentado com o CSV como uma nova página do meu relatório principal. Caso alguém passe pela mesma situação, foi esse o caminho que encontrei para contornar.