VRaptor 3 - JasperMaker (para JasperReporter)  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Uma solução para transformar o resultado do jasperReporter em um download no browser... escolhendo nome, e podendo ou não forçar download.
além de oder enviar parametros, e enviar uma Coleção como DataSource


http://pastebin.com/8ABRRHE7


coloca esse componente no seu projeto


e dentro da sua lógica faz assim




Pronto.... é isso

por padrão, o jasperMaker usa a pasta "WEB-INF/jasper/" para procurar seus arquivos *.jasper

caso queria trocar esse lugar padrão, é só trocar o lugar no web.xml colocando o seguinte



caminho que inicia com "/" é conciderado caminho absoluto da maquina
caminho que inicia sem a barra, que é o caso do exemplo que passei, usa como base o caminho do contexto, ou seja, o caminho do seu WebContent



dentro do jasper, vc vai ter dois parametros pra usar se quiser... o 1° é o "jasperPath" que contémo caminho para a pasta dos arquivos .jasper, que é útil para sub-relatorios, e o 2° é o "contextPath" que é o caminho do WebContent, e é útil pra encontrar qualquer arquivo dentro do container web.

é isso

boa sorte pra quem for usar

Agradecimentos ao Lucas, que ajudou a colocar o resultado do jasper dentro do objeto Download do vraptor.


Libs necessários para usar jasper, com essa solução (pelomenos as que eu precisei)
- commons-digester-1.7.jar
- commons-beanutils-1.7.0.jar
- groovy-all-1.5.5.jar
- iText-2.1.0.jar
- jasperreports-3.7.0.jar

This message was edited 6 times. Last update was at 01/12/2010 14:47:50


Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Oi Lavieri!
Estou usando o JasperMaker, agora preciso criar um form para passar parâmetro e gerar o relatório com os parâmetros passado:

Como eu poderia passar parâmetros ali? Outra dúvida é quanto a subrelatório, fiz um aqui pra teste, ao chamar o relatório principal o subrelatório será chamado automáticamente?
Abraço!! o/

This message was edited 1 time. Last update was at 16/09/2010 18:18:48




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Guevara wrote:Oi Lavieri!
Estou usando o JasperMaker, agora preciso criar um form para passar parâmetro e gerar o relatório com os parâmetros passado:

Como eu poderia passar parâmetros ali? Outra dúvida é quanto a subrelatório, fiz um aqui pra teste, ao chamar o relatório principal o subrelatório será chamado automáticamente?
Abraço!! o/


vc tem que criar um MAP, e dentro do map colocar, a srtring do nome do parametro no chave, e o objeto que será enviado como parametro no value.

veja a assinatura do método


como pode ver Map<String,Object> parametros


os sub-relatórios são chamados pelo jasper, elechama automaticamente, só colocar o caminho relativo, e os manter na mesma pasta do relatório principal.

This message was edited 1 time. Last update was at 16/09/2010 20:31:45


Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Beleza Lavieri! Consegui gerar o relatório, mas só veio o que têm os dados do proprietário, o subrelatório com os dados do imóvel que ele possui não veio. Lá no iReport ao criar o subrelatório, foi gerado outro jasper e os dois estão juntos na mesma pasta jasper do projeto. Preciso colocar mais alguma coisa no método ou era pra ter puxado automáticamente o subrelatório?
Veja como estão:



Abraço!!



Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Guevara wrote:Beleza Lavieri! Consegui gerar o relatório, mas só veio o que têm os dados do proprietário, o subrelatório com os dados do imóvel que ele possui não veio. Lá no iReport ao criar o subrelatório, foi gerado outro jasper e os dois estão juntos na mesma pasta jasper do projeto. Preciso colocar mais alguma coisa no método ou era pra ter puxado automáticamente o subrelatório?
Veja como estão:



Abraço!!


na referencia do seu relatório principal, para o subrelatório, tem que estar o caminho relativo, e não o absoluto....

ou então vc pode colcar "P{jasperPath}relProprietarios_subreportImovel.jasper"

confira o nome, posso ter digitado errado... o P{jasperPath} para usar ele, vc precisa declarar a propriedade no relatorio principal, colocando ela como string.

o parametro jasperPath é enviado automaticamente para o jasper, quando usado esse código q desenvolvi.

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Oi Lavieri!
Pelo iReport está trazendo os dados dos dois, mas pela aplicação não.

No Controller, estou passando a id assim:

Parece que o subrelatório não está recebendo a id do Master.

Veja como consegui linkar os dois usando HQL:
http://www.guj.com.br/posts/list/218802.java

Abraço!

This message was edited 1 time. Last update was at 27/09/2010 23:09:02




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Continuo com o problema, testei agora passando o CPF como parâmetro, no iReport o subrelatório é embutido no Master, mas pelo JasperMaker não. Só vêm os dados do proprietário. =/

Abraço!



Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Relatório feito no iReport:



Refiz o relatório umas 5 vezes, mas pelo JasperMaker só vêm os dados do proprietário. =/

Lá no iReport coloquei assim o "subreport expression":



O jrxml do Master na parte do sburelatório está assim:


Deve ser ai que o JasperMaker não está achando o caminho para o subrelatório...

Abraço!

This message was edited 2 times. Last update was at 28/09/2010 13:50:01




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

é algo assim

Obs.: eu não fiz pelo XML, eu fiz pelo jasper reporter mesmo, abre o IReport, e configurei o subrelatorio




o que importa mesmo desse trecho todo ???


E o que importa desse trecho menor ??



ou seja, no link do subreporter eu aponto como sendo

isso quer dizer que, ele vai usar como o relatorio de subreporter a pasta passada no argumento jasperPath + o nome do subreporter

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

se vc quer usar, $P{SUBREPORT_DIR} vc precisa passar esse parametro para dentro do jasper...

o parametro que eu passo é o $P{jasperPath}

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Tá brabo, deixei parecido com o seu, só que além do cpf, pede o jasperPath, preencho o cpf e me pede o jasperPath, deixando em branco ou colocando o nome do subrelatório, só vêm os dados do proprietário:

Tava querendo usar o $P{SUBREPORT_DIR}, ai eu substituo no lugar do jasperPath criado? Crio lá SUBREPORT_DIR?

Eu preciso usar esta configuração que está funcionando no JasperMaker:



Com essa configuração vêm td certo.
Valeu!!

This message was edited 1 time. Last update was at 28/09/2010 16:15:43




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Guevara wrote:Tá brabo

nop, se pareceu brabo devo ter me expressado errado ^^...

Guevara wrote:Com essa configuração vêm td certo.
Valeu!!


se funcionou agora então blz ^^

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Não não
Está perfeito no iReport, no JasperMaker vêm só os dados do proprietário, os dados dos imóveis não vêm. hehehe
Por algum motivo o JasperMaker não traz os imóveis com aquela configuração do print. =/

This message was edited 1 time. Last update was at 28/09/2010 16:28:00




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

o que deve estar faltando então é o campo "Data Source Expression", no meu caso o meu valor é



no seu pode ser outra coisa... ^^


Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Guevara
GUJ Master
[Avatar]

Membro desde: 24/02/2009 17:56:09
Mensagens: 1023
Offline

Então Lavieri, como eu tenho um atributo em Proprietario List<Imovel> imoveis, usei imoveis como data source:
connection type:

Data Source Expression

Mesmo assim os dados dos imóveis não são puxados.




Analista de Sistemas e desenvolvedor WEB Java e Python
http://twitter.com/eguevara2012
[WWW]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team