Jasper com VRaptor[RESOLVIDO]

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 ?