Skip to content

mauricioszabo/jasper_on_rails

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

== Jasper on Rails ==

A necessidade de um sistema de relatórios que funcionasse com Rails me levou a pesquisar algumas
bibliotecas de relatório. Uma delas, a Jasper (http://jasperforge.org/) aparentemente tinha tudo o que
eu queria: editor visual, exporta para vários formatos (PDF, HTML, XML, DOCX, ODT, ODF, XLS, CSV, TXT e
mais um monte) e funciona com arquivos .XML (pretendo migrar alguns sistemas para alguns bancos de dados
não-relacionais, portanto ficar dependendo de driver de banco de dados é inviável para mim). O problema é
que o Jasper é escrito em Java, portanto eu tinha duas alternativas:

1. Criar uma task que rodaria um java por relatório ou
2. Criar um aplicativo que me entregaria o relatório "por demanda".

O projeto Jasper on Rails é relativamente simples: Ele roda sob JRuby, e funciona semelhante ao REST: você
passa uma URL, do tipo:

http://localhost:3000/relatorio/pessoas/listagem/Por Nome.pdf

Onde /relatorio é para indicar que ele irá ao controlador RelatorioController, e o restante da URL é o caminho
do relatório. Relatórios ficam na pasta /relatorios, na raíz do aplicativo, e neste caso o caminho do relatório
seria /relatorios/pessoas/listagem/Por Nome.jasper. O .pdf é o formato desejado, esse aplicativo suporta os formatos
pdf, xls, rtf, docx, csv, ods e odt. HTML está desativado porque o Jasper não consegue colar as figuras "inlined".
Se for necessário passar um caminho que contém pontos, pode-se utilizar a versão:

http://localhost:3000/pdf/relatorio/pessoas/listagem/Por Nome

Resolvi não incluir as bibliotecas do Jasper no sistema, especialmente por causa de espaço no GitHub. Portanto,
para utilizar a biblioteca será necessário baixar o JasperReports, e incluir os arquivos .jar no diretório /lib/jasper,
da seguinte maneira:

1. O arquivo do jasper vai na pasta /lib/jasper (no meu caso, o arquivo estava no diretório do 
JasperReports/dist/jasperreports-3.6.0.jar)
2. Os arquivos de auxílio vão no diretório /lib/jasper/lib (no meu caso, todos os arquivos que estavam em
JasperReports/dist/lib)

Por fim: existe um aplicativo simples na raíz (teste.rb) que mostra como conectar-se ao servidor de relatórios
e emitir um relatório. Também há um relatório incluso no projeto, para mostrar a funcionalidade. Ele pode ser deletado
na hora de colocar o aplicativo em produção.

FUTURO: Autenticação antes de emitir um relatório, uma forma de fazer uploads de novos relatórios sem precisar entrar
no servidor do Jasper on Rails.

About

Sistema de relatórios - integração do Jasper com Rails

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published