Jasper Reports (Porque compilar em tempo de execução?)

22 respostas
robinsonbsilva

Bom dia a todos(as)!!!

Alguém saberia me dizer o porque de compilar os .jrxml em .jasper em tempo de execução?
Notei na maioria dos exemplos que pesquisei que essa técnica é adotada em 99% deles.

Eu particularmente sempre trabalhei deixando o arquivo já compilado num package de resources da minha aplicação.

Desde já agradeço.

22 Respostas

darlan_machado

Eu sempre compilei e utilizei os .jasper.
Qual tutorial está seguindo? Vi isso de compilar em runtime há muito tempo atrás.

robinsonbsilva

isso mesmo, só tenho encontrado tutoriais antigos!
Estamos estudando a fundo sobre jasper, pois criaremos uma API Restful de Relatórios, e teremos muita concorrência.

javaflex

Usa algo mais leve como iText. Pelo menos do C# é leve.

robinsonbsilva

Nunca usei o iText!
Ele possui alguma IDE para desenharmos os relatórios?

darlan_machado

O problema do iText é que você precisa programar tudo… O jaspersoft studio é superior, nesse ponto.

javaflex

Até onde conheço pelo menos do C# não, nunca busquei isso porque engessa, ele é totalmente flexível via programação.

rmendes08

O JasperReports é justamente escrito sobre iText … portanto, partindo direto para o iText muito provavelmente você tem que refazer muita coisa que já está pronta no JasperReports.

javaflex

Não conheço muito o Jasper, mas opções programáticas costumam proporcionar maior controle e flexibilidade. Acho que é mais na comunidade Java que ainda usam designer de relatórios.

robinsonbsilva

Valew Senhores!!

Como vim do VB6, na época usávamos o Crystal Reports, era um excelente ferramenta, me adaptei rapidamente ao Jasper, sinceramente não consigo imaginar gerar um relatório programaticamente, sem querer polemizar,!!

javaflex

Tambem já usei o Crystal na época do VB, e Report Builder na época do Delphi. Hoje a maioria dos relatórios que trabalho são em Excel ou HTML.

darlan_machado

@javaflex a questão, neste caso, é que se constrói a estrutura do relatório, no designer e, após isso, pega-se o código fonte (jrxml), coloca-se no projeto e, quando vai-se gerar um relatório, compila o mesmo e exporta.

javaflex

É fácil de ajuste fino neste jrxml?

rmendes08

Que tipo de ajuste fino ? Eu acho que a questão basicamente é essa, do quão fino precisa ser ajuste … até onde eu precisei, o iReport sempre me atendeu

javaflex

Não programo em Java, só foi uma dúvida mesmo pelo histórico de designer de relatórios serem engessados.

darlan_machado

Se vamos considerar produtividade, o iReport/jasperreports studio é imensamente mais produtivo que fazer com o iText diretamente. Eu já participei de projetos em que os relatórios eram gerados no iText e a mudança para iReport foi simples, indolor e tranquila.
O que eu, assim como o autor do tópico, não entendo é a razão pela qual cria-se o relatório do iReport, compila-se o mesmo e utiiza-se o jrxml para compilar e, só então, gerar o produto final.
Eu penso que é desperdício, pois é muito mais tranquilo usar direto o .jasper.

javaflex

Estou por fora, mas ambas as opções são compiladas? Se não teria problema de performance.

robinsonbsilva

@javaflex posso dizer com experiência no assunto!
Uma vez “desenhado” o relatório, é bem provável que nunca mais você o altere, o ultimo que fiz foi uma DARF, foi super rápido o desenho.

Num ponto acho mais interessante gerar os relatórios em excel, assim da a possibilidade do usuário manusear, filtrar, tratar os dados conforme desejado, MAS infelzmente existem alguns tipos de relatórios que devem ser read only, e nesses casos o Jasper é perfeito!!

Quando puder faz uns testes, certamente gostará.

rmendes08

Se o relatório for embarcado no sistema, realmente não tem sentido. Mas já trabalhei em um sistema em que o usuário tinha a possibilidade de cadastrar os próprios relatórios no sistema. Assim, o usuário poderia elaborar seu próprio relatório no iReport, fazer o upload dos arquivos para o sistema e a partir desse cadastro poderia gerar ou itens no menu do sistema ou agendar o envio dos relatórios por email. Como era feito o upload dos arquivo .jrxml, então era necessário compilar os arquivos em tempo de execução e colocar o arquivo compilado em um cache.

darlan_machado

Eu posso dizer justamente o contrário.
Trabalhei 1 ano e meio em uma distribuidora de medicamentos e eu só fazia alterações em relatórios.

robinsonbsilva

Puxa, que azar o seu, felizmente não passei por isso, tudo era muito bem definido antes de fazermos.

javaflex

Não sei se tem Jasper para C#, mas a maioria não usa designer de relatório. Tem o ReportViewer que é bem fraquinho.

iText é bem tranquilo, e dá pra usar HTML nele. Mas 95% dos relatórios que trabalho são em Excel e na própria tela em HTML.

darlan_machado

Não é nem uma questão de definição.
A legislação mudou, novas filiais, novos itens, cada novidade exigia novas informações e isso acaba tendo um reflexo no que está pronto.

Criado 15 de fevereiro de 2018
Ultima resposta 16 de fev. de 2018
Respostas 22
Participantes 4