preciso alterar um cálculo no relatório e pricisaria usar (if else) como isso pode ser colocado no codigo do .jrxml, tipo se isto for verdedeiro executa
uma ação :idea:
Jasperreport
6 Respostas
Marlise,
você pode fazer o seguinte, se você tem de testar alguma condição para gravar algum valor em variável ou campo do relatório, você pode tentar uma abordagem assim, no campo onde você define o valor de um campo coloque:
<condicao> ? <true> : <false>
// no valor do campo
$V{VarX} > $V{VarY} ? "x > y" : "x < y"
mas lembre-se de que você pode ter somente uma instrução em cada bloco de condição.
[]'s :wink:
Valeu !!
consegui fazer algo mas esta dando problema de cast, não sei como fazer a converção no jasper,
tenho algo assim,
new Boolean(((Float)$F{trans_amount}).floatValue() <= 199)
se isso for veradeiro então
$F{pos_tx} = 15
algo parecido com isso.
Obrigado.
Marlise,
faça o seguinte, no textfield que você deseja mostrar o valor que dependa da condição, coloque em Textfield Expression o seguinte:
supondo que $F{trans_amount} seja do tipo Float e que esse Textfiled que você vai mostrar seja String.
($F{trans_amount}.floatValue() <= 199 ? "15" : "valor caso condicao seja falsa")

esse relatorio já estava pronto, eu só tenho que fazer alumas modificações,
vou tentar explicar oque acontece,
tenho uma colun que mostra $F{trans_amount} e outra com $F{pos_tx},
essa coluna da pos_tx quero que mostre o valor ; (a coluna que vai mostrar o valor é do pos_tx)
se o valor de trans_amount for <400 e trans_amount for >= 200 e
a pos_tx = 25,
se o valor de trans_amount for < 200 e pos_tx = 15
se o valor de trans_amount for >=400 e pos_tx = 50
são varias empresas com pos_tx diferentes então somete nestes casos mostre o valor,
não sei se vc entendeu.
obrigado
Blz!!!
consegui resolver o problema.