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…
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
Bom dia,
Tenta fazer algo desse tipo, usando o texteditor do iReport
(new Integer($V{suaVariavel}.equals(“true”)?seuInteiro:$V{suaVariavel}.equals(“false”)?seuOutroInteiro)
L
lauronolasco
o ireport suporta tranquilamente operadores ternarios…::
$F{booleano}? 1 : 0
A
andrertd
entã rapaziada … não deu certo não… da um erro de construtor… sei lá qual é o problema
guilhermetonetto
cola o erro que ele apresenta…
A
andrertd
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…
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
guilhermetonetto
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?
A
andrertd
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…
guilhermetonetto
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
A
andrertd
BOM BLZ CARA;;; MAS MESMO ASSIM AGRADEÇO PELA AJUDA… VALEU MESMO
guilhermetonetto
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
A
andrertd
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??