Passar lista de um datatable para o jasper!!!
19/10/2015 16:47
0
Boa tarde Pessoal!

Estou gerando relatórios com o plugin Jasper e tenho uma dúvida a respeito, gostaria da ajuda de você!

Minha página GSP hoje, gero um datatable com os registros do banco de dados! tenho em cima da pagina o botão do Jasper em PDF para gerar o relatório, só que  da forma que eu desenvolvi, quando clico para gerar o pdf, ele faz uma nova busca no banco de dados trazendo os mesmo registros existentes no datatable da minha GSP para depois exportar.

Não existe uma forma de passar a lista do meu Datatable pela tag <g:jasperReport/> para que eu export a lista que já foi gerada para datatable?
Tags: <g:jasperReport/>, Jasper, Datatable, PDF, Grails


1

Na documentação no plugin diz que  se você deixar a propriedade "reportData " em branco o plugin vai considerar a query dentro do relatorio e caso vc preencha o reportData
vai considerar o que você passa ali.
então... no seu service 
 def reportDef = JasperReportDef(name:'your_report.jasper', reportData : SEU DATA TABLE    fileFormat:JasperExportFormat.PDF_FORMAT )


Acredito que seja isso.


0
Obrigado Evandro!

Vou fazer o teste e te falo!!!


0
Mais na verdade não estou utilizando query dentro do relatório! O que eu estava planejando é pegar os registro que já estão na GSP!


0
Entendi. De qualquer forma você precisa primeiro passar esses dados do GSP para um service, seja ele o JasperService ou um service seu!
Direto do GSP não sei se tem como viu. Acho até que não seja possível .


1
Por que? É feita alguma modificação nestes dados por parte do usuário antes de executar o relatório? Ou você só quer economizar uma consulta no banco de dados?
Se é só pela consulta, SE isso realmente valer à pena, voce poderia guardar os registros na sessão

Agora se realmente você precisa pegar o que está na página e mandar para o relatório, você teria que passar os dados de volta para o server via requisição, e então fazer o que o Evandro falou


0
Entendi! É uma lista enorme, então acredito que seria melhor pegar a lista já existente ! No Grails eu consigo devolver a lista de objetos de volta para o controller  ou eu teria que fazer algum tratamento para pegar os registros?


0
Não existe isso de devolver... Veja bem:
Aqueles registros que foram carregados do banco e utilizados na renderização da view já não existem mais desde que o servidor devolveu a requisição para o navegador. Tudo o que sobrou foi o html renderizado NO CLIENTE, por isso ou você envia estes registros do cliente para o servidor na hora de gerar os relatórios (o que pode ser problematico já que você diz que é muita coisa) ou vê uma forma de fazer cache disso no servidor


0
Entendi Magno! Na verdade minha intenção seria fazer como acontece com o - https://editor.datatables.net/examples/advanced/exportButtons.html - ele gera o PDF com as informações do Datatable. Só que eu pensei em customizar o pdf utilizando o IREPORT por isso eu pensei no plugin do jasper e em salvar o pdf com os valores que já foram enviados para o cliente!!!



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto