Parâmetro condicional

260 views
Skip to first unread message

Robson

unread,
Feb 5, 2015, 6:24:14 AM2/5/15
to jasperreports-...@googlegroups.com
Prezados bom dia.

Estou com um problema em um parâmetro em que o usuário não precisa especificar ou seja é condicional, na verdade o total de parâmetros deste relatório são três dois são obrigatórios 
que seria o período ( data inicio e fim ) já o terceiro não é obrigatório segue imagem do arquivo em anexo onde na clausula Where eu entendi que colocando uma exclamação estaria indicando
se um parâmetro não obrigatório   $P!{Pgaragem_id}   

Contudo se eu não informar este terceiro parâmetro o relatório não apresenta dados, já se eu informar os dados são apresentados, então existe isto mesmo de utilizar a exclamação ou eu
em minhas pesquisas entendi errado? como posso fazer para que quando não informar este parâmetro ou seja ele ser Nulo retornar Todos os dados?

Obs. Estou no desenvolvimento do relatório então tudo que estou fazendo esta dentro do ambiente do Jasper Studio

Jasper.jpg

Denis Alves

unread,
Feb 5, 2015, 6:59:46 AM2/5/15
to jasperreports-...@googlegroups.com

Sim existe suas pesquisas não estão erradas, mas eu recomendo que caso o seu usuario não retorne nada, que devolva uma String “vazia” – “”

--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Robson

unread,
Feb 5, 2015, 7:09:15 AM2/5/15
to jasperreports-...@googlegroups.com
Olá bom dia Denis!

Meu caro a exclamação pode até resolver mais para outra coisa, a solução foi a seguinte

 Where R.rc_dtincl Between  $P{Pdata_ini}  And  $P{Pdata_fim} And
 (R.rc_gar = $P{Pgaragem_id}  Or  $P{Pgaragem_id} Is Null  )


De qualquer forma meu prezado obrigado ai pela interação, um abraço.

Denis Alves

unread,
Feb 5, 2015, 7:14:13 AM2/5/15
to jasperreports-...@googlegroups.com

Tranquilo sempre temos o SQL rs

 

From: jasperreports-...@googlegroups.com [mailto:jasperreports-...@googlegroups.com] On Behalf Of Robson


Sent: quinta-feira, 5 de fevereiro de 2015 10:09
To: jasperreports-...@googlegroups.com

--

Robson

unread,
Feb 5, 2015, 7:40:42 AM2/5/15
to jasperreports-...@googlegroups.com

Pesquisei um pouco mais e entendi que a exclamação diz ao jasper para compilar a expressão antes da consulta
então fariamos o seguinte criariamos um outro parâmetro por exemplo Pid_gar e na sua expressão default teria a seguinte expressão
($P{Pgaragem_id}=="" ? " and R.rc_gar= "+ $P{Pgaragem_id} )

só então o meu where poderia ter a exclamação ficando assim
  Where R.rc_dtincl Between $P{Pdata_ini} And $P{Pdata_fim} $P!{Pid_gar} 


Atenção: não cheguei a testar isto.
 
Reply all
Reply to author
Forward
0 new messages