| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/03/2010 20:25:42
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 18:16:17
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 20:30:12
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 23:41:10
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/09/2010 00:57:36
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/09/2010 13:24:53
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2010 17:53:36
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 00:12:54
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 15:09:52
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 15:15:11
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 16:06:55
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 16:23:48
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 16:27:02
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 17:22:39
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/09/2010 17:43:56
|
Guevara
GUJ Master
![[Avatar]](/images/avatar/debb1f141bb07971081da87bb43c269b.png)
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 |
|
|
 |
|
|