E ai pessoa, olhei umas discuções aki no forum sobre o jasper, mas não consegui fazer rodar. Alguem ai teria como postar um exemplo de como eu faço pra construir um relatorio usando jasper e apresenta-lo na minha jsp para o cliente.
Agradeço quem puder me ajudar. Pode ser um tutorial ou um site que tenha algo. obrigado
o Lavieri fez um componente do vraptor que ajuda a integrar com o Jasper:
http://www.guj.com.br/posts/list/201107.java
dá uma olhada, qualquer coisa dá um toque…
PS: qdo for abrir tópicos sobre o vraptor, use o forum de frameworks brasileiros: http://guj.com.br/forums/show/23.java que fica mais fácil da gente achar
Boa noite, estou tentando utilizar o componente citado, será que posso alterar o componente e invés de utilizar o dataSource do tipo collection<?> para o tipo Connection, tenho dificuldade de utilizar um dataSource deste tipo, será q poderia postar um exemplo usando collection? agradeço.
acho que esse dataSource em questão são só os parâmetros pra passar pro jasper, não é o DataSource de conexão a banco de dados…
public Download makePdf(String jasperFile,Collection<?> dataSource, String fileName, boolean doDownload) {
return makePdf(jasperFile, dataSource, fileName, doDownload, new HashMap<String, Object>());
}
o dataSource em questão que digo é este Collection<?> dataSource que é utilizado no fillreport
JasperPrint print = JasperFillManager.fillReport(jasperFile, parametros, new JRBeanCollectionDataSource(dataSource));
para mim poder usar um tipo Connection eu terei que alterar o componente, o problema não é alterar o componente em si, o problema é que não sei se este é o procedimento certo, pois estou muito recente no java, agradeço se poder me esclarecer melhor este ponto, se eu não estiver correto, como posso fazer para retornar o tipo Collection<?> para a classe… obrigado
Neste caso posso utilizar este tipo de lista resultante do hibernate?
@SuppressWarnings("unchecked")
public List<Produto> listaTudo(){
return this.sessao.createCriteria(Produto.class).list();
}
pq meu ponto é utilizar hibernate+vraptor+jasper, sem precisar criar objetos Connection
Obrigado
bom… é só alterar o componente mesmo… já que vc tem o código fonte é só fazer isso…
Lucas, usei a minha lista, e consegui obter o datasource mas agora quando chega no metodo do jaspermaker ele resulta este erro
java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule
net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.(ComponentsExtensionsRegistryFactory.java:86)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
o que poderá ser este erro?
[quote=kivervinicius]Neste caso posso utilizar este tipo de lista resultante do hibernate?
@SuppressWarnings("unchecked")
public List<Produto> listaTudo(){
return this.sessao.createCriteria(Produto.class).list();
}
pq meu ponto é utilizar hibernate+vraptor+java, sem precisar criar objetos Connection
Obrigado[/quote]
sim a ideia é essa… vc faz as queries do hiberante fora do jasper, por exemplo esse seu LIST, e passa a coleção como parametro para o jasper…
e no jasper, usa a coleção… isso é muito mais fácil, e mais limpo( na minha opinião) do que colocar lógicas de criteria dentro do jasper…
afinal o jasper é uma view, e trablahar com coleções é mais limpo do que montar queries e outras coisas dentro do jasper…
[quote=kivervinicius]Lucas, usei a minha lista, e consegui obter o datasource mas agora quando chega no metodo do jaspermaker ele resulta este erro
java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule
net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.(ComponentsExtensionsRegistryFactory.java:86)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
o que poderá ser este erro?[/quote]
no meu post original =>http://www.guj.com.br/posts/list/201107.java
tem falando as libs necessárias, seguem elas novamente…
[quote]Libs necessários para usar jasper, com essa solução (pelomenos as que eu precisei)
- commons-digester-1.7.jar
- groovy-all-1.5.5.jar
- iText-2.1.0.jar
- jasperreports-3.7.0.jar [/quote]
no caso o commons-digester-1.7.jar é uma delas…
todas as libs vem com o Jasper… na pasta de libs do jasper
Lavieri e Lucas, muito obrigado pela ajuda, após alguns dias utilizando formas de POG’s, e outros, este foi a unica forma que consegui utilizar na web, muito obrigado aos dois pela ajuda, e ao Lavieri ao componente desenvolvido,
Abraço a todos, e uma boa noite,
[i]
ps. Lavieri, o erro estava com problema em dois .jar, commons-beanutils-1.8.2, e no commons-digester-1.7.jar que vc avisou, desculpe por naum ter lido duas vzes, não reparei na versão do digester, o commons-beanutils-1.8.2 não está na lista citada que vc me passou, não sei se foi falha minha mas mesmo assim caso possa adicionar lá para evitar problemas como o meu de outro andarilho nos foruns, rsr, obrigado novamente
[/i]
[quote=kivervinicius]Lavieri e Lucas, muito obrigado pela ajuda, após alguns dias utilizando formas de POG’s, e outros, este foi a unica forma que consegui utilizar na web, muito obrigado aos dois pela ajuda, e ao Lavieri ao componente desenvolvido,
Abraço a todos, e uma boa noite,
[i]
ps. Lavieri, o erro estava com problema em dois .jar, commons-beanutils-1.8.2, e no commons-digester-1.7.jar que vc avisou, desculpe por naum ter lido duas vzes, não reparei na versão do digester, o commons-beanutils-1.8.2 não está na lista citada que vc me passou, não sei se foi falha minha mas mesmo assim caso possa adicionar lá para evitar problemas como o meu de outro andarilho nos foruns, rsr, obrigado novamente
[/i]
[/quote]
realmente essa lib esta no meu classpath (em outra versão commons-beanutils-1.7.0.jar ) … já usava ela por dependencia de outras coisas que meu projeto usa…
só coloquei no post as libs que precisei adicioanr a mais para o Jasper… como eu ja tinha essa na pasta de libs, nem percebi que era requerida pelo jasper ^^
vlw por avisar… vou editar o outro post
Valeu ai pessoal, acompanhei ai a discução com meu amigo KIVER e conseguimos resolver. Valeu ai mais uma vez lucas, e obrigado Lavieri pela ajuda tb.
E se eu quiser passar mais de um tipo de objeto.
Passar 4 objetos diferentes.
Como eu pego os valores desses objetos lá dentro ?