Problemas no relatorio usando irepot

e ai galera tudo blz? fiz alguns relatorios usando ireport, mas encontrei alguns problemas…
Tenho q fazer um teste dentro do relatorio. mas estou usando if else. e não está dando certo… vou explicar o q estou tentando fazer… existem alguns campos no banco q são boolean. eu precisa fazer o teste c a mesma era true. caso seja eu teria q retornar uma variavel do tipo int…

alguem tem alguma dica de como posso fazer isso… e c alguem pudesse postar o codigo ajudaria mais ainda…

abraços

[quote=andrertd]e ai galera tudo blz? fiz alguns relatorios usando ireport, mas encontrei alguns problemas…
Tenho q fazer um teste dentro do relatorio. mas estou usando if else. e não está dando certo… vou explicar o q estou tentando fazer… existem alguns campos no banco q são boolean. eu precisa fazer o teste c a mesma era true. caso seja eu teria q retornar uma variavel do tipo int…

alguem tem alguma dica de como posso fazer isso… e c alguem pudesse postar o codigo ajudaria mais ainda…

abraços [/quote]

Bom dia,
Tenta fazer algo desse tipo, usando o texteditor do iReport

(new Integer($V{suaVariavel}.equals(“true”)?seuInteiro:$V{suaVariavel}.equals(“false”)?seuOutroInteiro)

o ireport suporta tranquilamente operadores ternarios…::

$F{booleano}? 1 : 0

entã rapaziada … não deu certo não… da um erro de construtor… sei lá qual é o problema

cola o erro que ele apresenta…

eu usei a segunte eguação:

(new Integer($F{cobrar}.booleanValue() == true?4:$F{cobrar}.booleanValue() == false?0)

e usei essa tbm
(new Integer($F{cobrar}.equals(“true”)?4:$F{cobrar}.equals(“false”)?0)

creio eu q estou fazendo alguma coisa de errado… mas não manjo muito de jasper. o field cobrar é um boolean e o erro q da é o seguinte:

Errors compiling .\pedido_produto.jasper!
it.businesslogic.ireport.ReportClassLoader@4f71a3 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Syntax error on token(s), misplaced construct(s) value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == true?4:((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == false?0)); <-------------------------------------------------------------------------------------------------------------------------------------------------------------> 2. Syntax error on token(s), misplaced construct(s) value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getOldValue()).booleanValue() == true?4:((java.lang.Boolean)field_cobrar_ipi.getOldValue()).booleanValue() == false?0)); <-------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3. Syntax error on token(s), misplaced construct(s) value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == true?4:((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == false?0)); <-------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193) at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:127) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:109) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:507) at java.lang.Thread.run(Unknown Source)
Compilation running time : 1281

se algume puder arrumar a formula pra mim ou me da alguma dica de como resolvo isso… ficarei grato…

 (new Integer($F{cobrar}.booleanValue() == true?4:new Integer($F{cobrar}.booleanValue() == false?0:0)))

tenta isso e ve se da certo…

obs: eu nao testei.

[]'s

então;. eu testei mas deu esse erro agora…

Compiling to file… .\pedido_produto.jasper -> E:\pc junior\d\sql e ireport\iReport\iReport-1.2.7\classic.java
Errors compiling .\pedido_produto.jasper!
it.businesslogic.ireport.ReportClassLoader@1455cf4 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Incompatible conditional operand types int and Integer value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == true?4:new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == false?0:0)))); <-----------------------------------------------------------------------------------------------------------------------------------------------------------------> 2. Incompatible conditional operand types int and Integer value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getOldValue()).booleanValue() == true?4:new Integer(((java.lang.Boolean)field_cobrar_ipi.getOldValue()).booleanValue() == false?0:0)))); <-----------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3. Incompatible conditional operand types int and Integer value = (java.lang.Integer)((new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == true?4:new Integer(((java.lang.Boolean)field_cobrar_ipi.getValue()).booleanValue() == false?0:0)))); <-----------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193) at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:127) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:109) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:507) at java.lang.Thread.run(Unknown Source)
Compilation running time : 1250

que tipo de dado que ta vindo do banco?

não tem como vc mudar e fazer com new Float? em vez de usar inteiros usar float?

vou tentar explçicar o q estou fazendo… é um relatorio de pedido… então. existem produtos q é cobrado 4% de ipi e exstem produtos q não é cobrado nada… do banco vem outro dado a quantidade de peças e o valor unitario… onde vou gerar mais 2 campos… o campo valor unitario com ipi… e o valor total. q é a multiplicação da quantiade com o valor unitario com ipi… caso tenha q ser cobrado o ipi eu coloco um boolean informando a cobrança ou não… não seria viavel pra mim muda o tipo do dado pq teria q mudar toda o logica do sistema onde eu perderia muito tempo… e to sem tempo…

já tentei varias coisas… naquela formula q vc me passo… fiz uns cast… inseri alguns metodos java… mas nada…

tu nao vai consegui fazer essa comparação que vc quer quando vc faz o new Integer vc ta pegando aqui e transformando pra inteiro , e ele não ta reconhecendo aquele true , false , vc vai ter que comparar o inteiro com o 4 e o 0 , vai te que faze uns mexe ae na tua aplicação …

só se alguem aqui souber , mas eu não consigo ver outra solução

BOM BLZ CARA;;; MAS MESMO ASSIM AGRADEÇO PELA AJUDA… VALEU MESMO

se vc conseguir resolver … posta ae como conseguiu , pq dae eu aprendo tbem

nunca se sabe qdo vai precisar né

valeu kra, desculpa nao conseguir ajudar

[]'s

então consegui resolver aquele problema. mas nada pelo ireport. mudei minha aplicação mesmo e o tipo de dado do banco… mas agora tenho outro problema c alguem puder me ajudar…

estou tendo problemas com arredondamento de double no ireport… quando eu faço uma conta de porcentagem ele gera muitas casas depois da virgula. por exemplo… 3,8561 ai eu arrednondo para duas casas e ele fica como 3,86, mas quando eu faço um multiplicação por 2 por exemplo ele gera 7,71 do q 7,72 q é esperado… o q eu posso fazer para resolver isso??