Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mauricioszabo/jasper_on_rails
Sistema de relatórios - integração do Jasper com Rails
https://github.com/mauricioszabo/jasper_on_rails
Last synced: about 2 months ago
JSON representation
Sistema de relatórios - integração do Jasper com Rails
- Host: GitHub
- URL: https://github.com/mauricioszabo/jasper_on_rails
- Owner: mauricioszabo
- Created: 2009-10-19T02:03:14.000Z (about 15 years ago)
- Default Branch: master
- Last Pushed: 2010-06-29T12:01:56.000Z (over 14 years ago)
- Last Synced: 2023-03-10T20:22:46.155Z (almost 2 years ago)
- Language: Ruby
- Homepage:
- Size: 283 KB
- Stars: 10
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
== 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.