JasperReport

Olá!!!

eu tenho um valor fixo pra este carra $F{mct_pos_tax} (esse carra é float)e
tenho que dar outros valores pra ele caso isto for verdadeiro ou se aquilo for verdadeiro e não posso dar um valor fixo String pois preciso diminuir este cara do valor liquido.

alguem pode me ajudar?

obrigado.

Lá no textfield expression faça:


$P{CONDICAO1}.booleanValue() == true ||
$P{CONDICAO2}.booleanValue() == true ? $F{mct_pos_tax} :
$F{VALOR_LIQUIDO} - $F{mct_pos_tax}

Onde os parâmetros CONDICAO são do tipo BOOLEAN.

Sempre respeitando o tipo de dado esperado, no caso Float.

Por aí…

valeu!!

vou explicar melhor tenho uma condição

new Boolean((((Float)$V{vlr_sum_trans}).floatValue() >= 200)&&(((Float)$V{vlr_sum_trans}).floatValue() <= 399))
então nesta condição o $F{mct_pos_tax}tem que ser igual 15,00 por exemplo
eu coloquei várias condições em camada em campo e depois eu preciso pegar o valor naqueles casos e diminuir do vlor liq por exemplo.

como posso fazer isto?

valeu!!

vou explicar melhor tenho uma condição

new Boolean((((Float)$V{vlr_sum_trans}).floatValue() >= 200)&&(((Float)$V{vlr_sum_trans}).floatValue() <= 399))
então nesta condição o $F{mct_pos_tax}tem que ser igual 15,00 por exemplo
eu coloquei várias condições em camada em campo e depois eu preciso pegar o valor naqueles casos e diminuir do vlor liq por exemplo.

como posso fazer isto?

valeu!!

vou explicar melhor tenho uma condição

new Boolean((((Float)$V{vlr_sum_trans}).floatValue() >= 200)&&(((Float)$V{vlr_sum_trans}).floatValue() <= 399))
então nesta condição o $F{mct_pos_tax}tem que ser igual 15,00 por exemplo
eu coloquei várias condições em camada em campo e depois eu preciso pegar o valor naqueles casos e diminuir do vlor liq por exemplo.

como posso fazer isto? :idea:

Vixi, agora deu nó aqui nos Tico e Teco…

Não entendi mais nada.

O campo $F{mct_pos_tax} não vem da sua consulta? Esse campo é sempre 15,00? É isso?

Então esse mesmo campo vai assumir ora um valor ora outro e também será utilizado num cálculo? Os campos do cálculo serão todos da consulta?

Desculpa,

o campo $F{mct_pos_tax} tem valor que ele busca no banco, mas eu preciso atribuir um valor de 15,00 naquela condição,

new Boolean((((Float)$V{vlr_sum_trans}).floatValue() <= 199)&&(((Float)$V{vlr_sum_trans}).floatValue() >= 1)

será que consegui explicar direito?

Pois então Marlise, se eu entendi direito, basta você ir la no properties do campo (campo esse que deverá ter o resultado do seu IF) e ir na aba Text Field.

Lá no campo Texfield expression você coloca a seguinte linha:

((Float)$V{vlr_sum_trans}).floatValue() <= 199) && ((Float)$V{vlr_sum_trans}).floatValue() >= 1 ? new java.lang.Float(15) : $F{outro campo da consulta} 

O que vai acontecer é que será feita a comparação dos campos vlr_sum_trans e se for verdadeiro será impresso 15 senão será impresso o conteúdo de F${outro campo da consulta}

Sem esquecer que o campo F${outro campo da consulta} deverá ser também do tipo Float.

Caso você precise que seja impresso uma String qualquer, troque o Textfield Expression Class pra String e converta tudo pra String o resultado dessa sua comparação.

na realidade com String não posso aí fica valor fixo
e tenho mis condições pra colocar outros valores neste campo,

o problema esta sendo na hora de subtair o $V{vlr_sum_liq} - $F{mct_pos_tax} nestas condições,

pois o campo onde fica $F{mct_pos_tax} vai mudar de valor conforme as condições,

Vixi Maria, não estamos falando a mesma língua. Me desculpe mas ainda não entendi a sua necessidade…

Foi mal…

Fica pra outra…

vleu juliano!!

desculpa se não consegui me explicar direito, pois eu não entendo direito de jasperreport e peguei esse projeto em andamento e agora preciso fazer uns cálculos no meu relatório.

mesmo assim abrigado ajudou bastante.