[URGENTE] Relatórios em Grails - Passagem de Parâmetros
07/11/2010 00:00
0
Bom dia a todos
Eu consegui chamar relatórios estáticos no grails usando o jasper e o IReport para criar os relatórios, até ai td bem
Meu problema começa agora, eu criei um relatório dinâmico onde por exemplo, peço para listar apenas alunos com uma nota passada por parametros. No assistente de criação IReport, funcionou blz, mais no Grails ele ja cria o relatório apenas com os valores padrões, sem nenhum prompt nem nada pedindo para eu digitar esses valores.

Alguem sabe como eu resolvo isso?
Tags: Grails


0
Henrique, aquele prompt que requisita os valores dos parâmetros é um utilitário para teste no IReport, no grails você tem que passar este valor dentro de uma lista de parâmetros. Essa parte de como passar os parametros tem em um post antigo http://grailsbrasil.com/viewtopic.php?f=1&t=1040&p=5279&hilit=jasper#p5279.
07/11/2010 00:00


0
Gente, boa tarde
Alguem tem algum exemplo de como eu chamo um relatório dinâmico pelo Grails?
eu ja fiz o relatório pelo IReport com a passagem de todos os parametros, mais não sei como enviar os parametros para o relatório.
Quando eu chamo ele pelo IReport, não da erro, apenas gera o relatório com um valor padrão no parametro.
07/11/2010 00:00


0
eu olhei o link passado, ele apenas menciona
mais entao eu teria que criar uma tela HTML onde eu digito os parametros em tempo de execução? ou isso e feito por um controlador?

obrigado pela ajuda


PS.: Desculpe a resposta anterior, na hora de enviar minha resposta ao link enviado eu fiz uma confusao nas janelas e mandei como resposta a esse tópico. Peço desculpas a todos.
07/11/2010 00:00


0
Imagina henrique, essas coisas acontecem <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->.
Então, basicamente você pode fazer destas duas maneiras que você falou, chamando diretamente do controlador, ou das views.
Se você chamar da view pode-se fazer assim:
<g&#58;jasperReport jasper=&quot;arquivoJasper&quot; format=&quot;TIPODOARQUIVO&quot; name=&quot;NomeDoArquivoQueSeraGerado&quot; > 
Nome&#58; <input type=&quot;text&quot; name=&quot;nome&quot;/>
Id&#58; <input type=&quot;text&quot; name=&quot;id&quot;/>
</g&#58;jasperReport>

Neste caso vai haver dois campos para preenchimento na tela, estes campos (id,nome) serão passados como parâmetros para o relatório quando clicado no botão gerar, o nome do campo input, é o nome do parâmetro no relatório.

Ou você pode passar pelo controller:

def geraRelatorio = {
def parametros;
parametros.nome = &quot;Lucas&quot;
parametros.id = 2;
chain(controller&#58;'jasper',action&#58;'index',params&#58;parametros)
}

Desta maneira estou criando uma variavel parametros, e estou passando dentro de uma closure chamada chain, que chamará o controller jasper do plugin passando os parametros.
07/11/2010 00:00


0
É o seguinte, criei no IReport um relatório onde eu quero filtrar dados por turma, disciplina, aluno ou notas.
Ja criei o relatório, criei os parametros no IReport e usei o seguinte código para acessar o relatório:


<g&#58;jasperReport jasper=&quot;RelatorioTurmaAluno02&quot; format=&quot;PDF&quot; name=&quot;RelatorioTurmaAluno02&quot; />
Turma&#58; <input type=&quot;text&quot; name=&quot;PAR_TURMA&quot;/><br>
Disciplina&#58; <input type=&quot;text&quot; name=&quot;PAR_DISCIPLINA&quot;/><br>
Aluno&#58; <input type=&quot;text&quot; name=&quot;PAR_ALUNO&quot;/><br>
Nota trabalhos&#58; <input type=&quot;text&quot; name=&quot;PAR_NOTATRAB&quot;/><br>
Nota provas&#58; <input type=&quot;text&quot; name=&quot;PAR_NOTAPROVA&quot;/><br>
Nota Final&#58; <input type=&quot;text&quot; name=&quot;PAR-NOTAFINAL&quot;/><br>



Criei uma view específica para esse relatório
RelatorioTurmaAluno02 é o meu arquivo .jrxml que está na pasta reports.
quando é gerado o relatório sai uma pagina em branco. O que está faltando para funcionar
08/11/2010 00:00


0
Boa noite gente.
Descobri o meu erro, que é um erro bastante &quot;inocente&quot; da minha parte rsrs
O código que escrevi anteriormente tem um pequeno erro:

Código:

<g:jasperReport jasper=&quot;RelatorioTurmaAluno02&quot; format=&quot;PDF&quot; name=&quot;RelatorioTurmaAluno02&quot; />
Turma: <input type=&quot;text&quot; name=&quot;PAR_TURMA&quot;/><br>
Disciplina: <input type=&quot;text&quot; name=&quot;PAR_DISCIPLINA&quot;/><br>
Aluno: <input type=&quot;text&quot; name=&quot;PAR_ALUNO&quot;/><br>
Nota trabalhos: <input type=&quot;text&quot; name=&quot;PAR_NOTATRAB&quot;/><br>
Nota provas: <input type=&quot;text&quot; name=&quot;PAR_NOTAPROVA&quot;/><br>
Nota Final: <input type=&quot;text&quot; name=&quot;PAR-NOTAFINAL&quot;/><br>




Eu estava fechando a tag
<g&#58;jasperReport jasper=&quot;RelatorioTurmaAluno02&quot; format=&quot;PDF&quot; name=&quot;RelatorioTurmaAluno02&quot; />

enquanto o que deveria fazer para funcionar é:

<g&#58;jasperReport jasper=&quot;RelatorioTurmaAluno02&quot; format=&quot;PDF&quot; name=&quot;RelatorioTurmaAluno02&quot; >
Turma&#58; <input type=&quot;text&quot; name=&quot;PAR_TURMA&quot;/><br>
Disciplina&#58; <input type=&quot;text&quot; name=&quot;PAR_DISCIPLINA&quot;/><br>
Aluno&#58; <input type=&quot;text&quot; name=&quot;PAR_ALUNO&quot;/><br>
Nota trabalhos&#58; <input type=&quot;text&quot; name=&quot;PAR_NOTATRAB&quot;/><br>
Nota provas&#58; <input type=&quot;text&quot; name=&quot;PAR_NOTAPROVA&quot;/><br>
Nota Final&#58; <input type=&quot;text&quot; name=&quot;PAR-NOTAFINAL&quot;/><br>
</g&#58;jasperReport>



Dessa forma o plugin reconhece os camps como os parametros a serem passados ao relatório.

Agora, segue meu problema: Dessa forma, eu preciso preencher todos os campos para que meu relatório me de algum resultado. Preciso que, quando a caixa de texto estiver vazia, o relatório liste todos os dados. Ex: No relatório que eu citei, se eu inserir somente a Disciplina, ele deve me fornecer todas as turmas, alunos e notas que tem vínculo com a disciplina.
É possível fazer isso?
Se for possível também gostaria de poder fazer filtros por opções como &quot;acima de:&quot; ou &quot;abaixo de:&quot; para que no caso das notas, eu possa buscar todos os alunos com notas inferiores a 60 por exemplo.
Obrigado a todos e boa noite
08/11/2010 00:00


0
henrique é possível fazer isso sim, basicamente de duas maneiras, uma é que você pode setar o valor dos parâmetros default, assim se não for passado valores pegará o valor default. Outra maneira é você verificar na sql se o valor do parâmetro é nulo, se for ele não adiciona a cláusula where especifica, não tenho estes exemplos aqui em mãos para passar agora, mas quando tiver eu passo.
09/11/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto