Como chamar relatório IReport pelo Java com base de dados a partir de uma planilha?
4 respostasResolvido
ireportjasperswingprogramaçãojava
shodaime
Criei um relatório no IReport com o tipo de conexão Microsoft Excel(xls) datasource, apontei o caminho da planilha e pelo IReport gero o relatório normalmente e ele é exibido em PDF.
Procurei aqui no grupo e não consegui encontrar algum exemplo para tirar minha duvida que é como realizar a chamada pelo Java conforme a imagem abaixo qual chamada posso usar e se possível se tem algum exemplo.
tentei com chamar o relatorio com o código abaixo mas é gerado o seguinte erro
**ERRO AO GERAR RELATORIO ** Unknown column name : codigo
A coluna codigo esta na planilha e na ferramenta iReport gera normalmente, somente quando chamo pela aplicação acontece isso.
try {
Filearquivo=newFile(Constantes.CAMINHO_ARQUIVO+Constantes.PLANILHA_RECIBO);HashMapparam=newHashMap();JasperPrintrelatorio=null;System.out.println("Entra para gerar os relatorios");Stringdir=System.getProperty("user.dir");;relatorio=JasperFillManager.fillReport(dir+"/src/relatorios/teste_recibo.jasper",param,newJRXlsDataSource(arquivo));JasperViewer.viewReport(relatorio,false);}catch(Exceptionex){JOptionPane.showMessageDialog(this,"ERRO AO GERAR RELATORIO \n"+ex.getMessage(),"ERRO!",JOptionPane.ERROR_MESSAGE);System.out.println("ERRO AO GERAR RELATORIO \n"+ex.getMessage());}}
shodaime
alguem teria alguma sugestão para contornar este problema? Tentei enviando uma coleção de dados mas da erro de UTF-8 ao compilar o ireport
rodriguesabner
Cê tem certeza que a coluna ta lá? Pelo excel eu não manjo nada mano. Vê se vc usou algum acento em “coluna”, se tá falando que é desconhecida, não tem muito o que fazer.
Troca isso: System.out.println("ERRO AO GERAR RELATORIO \n" + ex.getMessage());
Por isso: ex.printStackTrace();
Solucao aceita
shodaime1 like
A coluna esta sim, porem consegui resolver o problema mudando a conexão do relatório, primeiro estou lendo a planilha pela aplicação e carrego uma lista e mando para o iReport ae deu certo.
Obrigado pela força