Oi galera, to com um seguinte problema. Eu tenho q popular um relatorio no jasper sem poder gerar um result set pra popular o relatorio. Gostaria de saber se existem outras formas, se possivel com exemplos de como fazer, para popular essa tabela, seja via um arquivo qualquer,xml, ou se eu posso atraves de um list com parametros. Minha necessidade era q eu pudesse atraves de uma estrutura poder preencher esse relatorio.Acredito q consigo solucionar via xml,mas se tiver outras formas por favor me ajudem
Oi. Eu verifiquei os links e nao consigo ver um exemplo. Um possui topico onde tb nao tem exemplo e o segundo parece q o servidor onde esta hospedado a pagina nao ta processando o html e nao mostra a hp…rs. Quem por favor tiver um exemplo de bean collection para q eu possa usar.
Obrigado
D
daniel.andf
Oi gente, montei o seguinte codigo e apareceu o seguinte erro :
Ja vi no google que geralmente aparece uma tipo dizem qual propriedade deu erro,mas nao meu caso nao esta aparecendo. Eu estou reaproveitando u mrelatorio que criei usando um sql,mas testando ao enviar num array list os campos que preencheriam uma linha desse relatorio. segue o codigo
jasperReport = caminho de seu .jasper
parametros = Map com seu parâmetros pro relatório
array = ArrayList de dados para seu relatório
espero ter ajudado, se vc conseguir, posta ai pra gente
qualquer dúvida, estamos ai …
vlw
D
daniel.andf
fala vinidouradoh , nao entendi mt bem a sua solucao…vc quer q eu passe o arraylist direto sem passar como parametro do beancollection? e q parametros sao esses q devo passar como map? eu reaproveitei esse exemplo de outro relatorio onde eu deixava esse campo como null,ja q eu gerava o preenchimento atraves de jdbc
vinidouradoh
Você queria uma forma diferente de popular um jasper, certo? Eu preencho ele com um arrayList. Eu faço uma pesquisa no banco e jogo em um array e passo para o jasper imprimir. Mas ele precisa saber qual jasper imprimir, por isso você deve passar o caminho do seu jasper. Eu não sei de sua experiência com iReport e jasper, mas você pode passar parâmetros para o relatório, que é justamente o Map. Caso você nao queira passar nenhum parâmetro, basta passar null. Essa é a maneira mais simples que encontrei para gerar um relatório, primeiro que você trabalhar com classes Java e também evita de colocar querys em relatório, já que muitas destas querys têm regra de negócio embutida.
Respondi sua pergunta?? Se nao… posta ai suas dúvidas,
você já prestou atenção no nome dos campos que você quer imprimir?? O nome dos campos deve ser o mesmo nome dos campos da classe JAVA que está sendo impressa.
Se não foi isso, posta ai a tela se iReport printado e sua classe pra gente da uma olhada.
vlw
D
daniel.andf
Ai eh q esta… O relatorio q eu to usando foi um gerado por um sql. eu posso fazer isso?caso contrario, qual das opcoes posso usar pra poder criar um relatorio. Eu tava usando a opcao java beans collection mas eu nao tenho nenhum bean criado…
vinidouradoh
daniel.andf,
se vc gerou o relatório via sql, entao os campos do relatorio tem o mesmo nome das colunas de sua tabela, por isso, quando você tenta passar um array, dá erro. Você tá usando o iReport para gerar o .jasper?? O array que você ta passando, é de uma classe de seu projeto, tipo Array<SuaClasse> ??
vlw
D
daniel.andf
Parou de dar erro,mas em compensacao os valores aparecem no relatorio como nulos. Eu preciso gerar um relatorio com objetos em hash map q sao os parametros q recebo de um sistema....segue a modificacao.
Main.java
importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args)throwsException{JasperListTestrelatorio=newJasperListTest();//Cliente c = new Cliente("Oi - Bahia",new java.math.BigDecimal(String.valueOf("553485")),"ANGELA CONCEICAO ANDRADE DIAS . ANGELA CONCEICAO ANDRADE DIAS",new java.math.BigDecimal(String.valueOf("1234"))); Maplst=newHashMap();//lst.add(c);lst.put("REGION","Oi - Bahia");lst.put("ACCOUNT_NO",newjava.math.BigDecimal(String.valueOf("553485")));lst.put("NAME","ANGELA CONCEICAO ANDRADE DIAS . ANGELA CONCEICAO ANDRADE DIAS");lst.put("PREV_BALANCE",newjava.math.BigDecimal(String.valueOf("1234")));relatorio.setItens(lst);relatorio.execute("report5");System.out.println("Funcionou");}}
os valores aparecem nulos em um relatório se ele realmente está nulo ou você nao está passando o campo no seu arrayList. Vale ressaltar que ele faz tipo reflexão, ele pega o nome do atributo da classe e joga no campo de mesmo nome do relatório.
vlw
D
daniel.andf
Entendi vinidouradoh . Só q dessa vez eu tirei a classe q eu tinha usado pra passar parametros. Tipo o sistema q to mexendo me retorma uma matriz de hashmap q tenho q usar como entrada do jrbeancollection, o problema eh q esse objeto nao aceita objeto do tipo hashmap e sim do array,como eu vc sugeriu…porem nao funcionou. Kra sera q vc tem algum exemplo de uma classe onde vc conseguiu rodar?tipo eu ja olhei varias coisas na internet e nada eu consegui botar pra funcionar…Mt obrigado pela força ai q vc ta me dando. Abraço
chravent
Boa tarde pessoal,
Estou com o mesmo problema. o mesmo erro: Erro no relatorioNo report compiler set for language : null
A minha classe esta assim
try{JasperReportpathjrxml=JasperCompileManager.compileReport("/home/Desktop/Relatorio/patrimonioweb2.jrxml");JasperPrintprintReport=JasperFillManager.fillReport(pathjrxml,null);JasperExportManager.exportReportToPdfFile(printReport,"/home/Desktop/Relatorio/patrimonioweb.pdf");System.out.println("Relatorio gerado");}catch(Exceptione){//TODO:handleexceptionSystem.err.println("Erro no relatorio"+e.getLocalizedMessage());}}
}
L
lpeixoto
Estou com problema em preencher os dados no meu relatório. Quando ele chega no método JasperFillManager.fillReport(pathJasper, parametros, jrDataSourse); quando o relatório não possui gráfico ele passa normal, porem quando o relatório possuiu algum gráfico ele para e não retorna erro nenhum, como se tivesse um break ali no meio.
estou algum tempo tentando fazer isso e até consegui fazer funcionar fora da minha aplicação, mas quando tento importar para a mesma para nesse JasperFIllManager…alguma ideia do que pode ser? Já testei as libs e aparentemente tá tudo certo.