Soma de 2 campos no Ireport

Como eu faço soma entre dois campos no ireport?

esse tipo de soma só pode ser feito na query , ou poderia criar uma variable e lá fazer a soma dos campos ?

VERSÃO 1.2.3
COMO SERIA FEITO?

Download - VERSÃO 1.2.3

http://sourceforge.net/project/showfiles.php?group_id=64348&package_id=64215&release_id=421969

DOWLOAD PARA VERSAO 1.2.5

http://sourceforge.net/project/showfiles.php?group_id=64348&package_id=64215&release_id=431462

$F{campo1} + $F{campo2} ?
Tu também podes criar uma variável e utilizar funções de cálculo (count, sum, …)

Creio que seja só criar a variable do tipo BigDecimal e colocar em “variable expression” (ou “initial value expression”, não me lembro direito) a soma dos campos da mesma forma que se faria via programação Java.

Mas eu ainda não entendi direito o que tu deseja… seria só apresentar o valor da soma de 2 campos que vem do datasource, certo? Se for somente isto, tu pode criar um “Text Field” no teu report e colocar em “Text field expression” a soma dos campos. Só tem que lembrar de selecionar a classe correta para a saída do campo… o default é String.

eU FIZ DO JEITO QUE VC ME DISSE E GERA ESSE ERRO

Errors compiling .\r_pedido.jasper! it.businesslogic.ireport.ReportClassLoader@1fb2122 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. The operator + is undefined for the argument type(s) java.math.BigDecimal, java.math.BigDecimal value = (java.math.BigDecimal)(((java.math.BigDecimal)field_VL_UNITARIO.getValue()) + ((java.math.BigDecimal)field_VL_DESCONTO.getValue())); <-----------------------------------------------------------------------------------------------------------> 2. The operator + is undefined for the argument type(s) java.math.BigDecimal, java.math.BigDecimal value = (java.math.BigDecimal)(((java.math.BigDecimal)field_VL_UNITARIO.getOldValue()) + ((java.math.BigDecimal)field_VL_DESCONTO.getOldValue())); <-----------------------------------------------------------------------------------------------------------------> 3. The operator + is undefined for the argument type(s) java.math.BigDecimal, java.math.BigDecimal value = (java.math.BigDecimal)(((java.math.BigDecimal)field_VL_UNITARIO.getValue()) + ((java.math.BigDecimal)field_VL_DESCONTO.getValue()));

Não costumo trabalhar com BigDecimal, ele não deve permitir somar desta forma, somente com os métodos…

VL_UNITARIO e VL_DESCONTO são campos que vem de uma consulta do banco de dados ou são um objeto de BigDecimal?

Se forem campos String usa algo assim:

new BigDecimal($F{VL_UNITARIO}).add(new BigDecimal($F{VL_DESCONTO}))

Senão pode usar o método add diretamente com os fields.

VL_UNITARIO E VL_DESCONTO
SAO CAMPOS QUE VEM DE UMA CONSULTA AO BD
NAO CONSEGUI AINDA FAZER A SOMA

Esses fields estão declarados como Integer?
O que eu quero dizer é que a questão passa a ser de programação java… o que tu tem que fazer é colocar em “field expression” algo que também funcionaria num programa java… se os campos estão declarados como Integer o construtor do BigDecimal vai gritar, ao passo que se for String irá funcionar.

Consegui resolver assim
para *, / , - ,+ … campos

$F{nomedocampo}.tipodocampoValue() * $F{nomedocampo}.tipodocampoValue()

Valeu pessoal

Como ja lhe falei via mp, faça a soma na sua query exemplo…

SELECT (CAMPO1 + CAMPO2) AS SOMA FROM TABELA1

Pode sim ser feita no IReport, mais a perfomance de fazer isso com poucos campos (que não vao se repetir é claro) seria melhor fazer em sql…

No IReport é possivel sim, fazer somas de variaveis sem vc digitar nenhuma linha de codigo…

Qual versão do IReport…?

Calma que vou baixar essa versão e logo te explico como fazer.

Se possivel gostaria q vc procurase pra mim um link pra download, pois no meu trampo a internet e travada, so e liberado dpois de meio dia e travada novamente as 13. Não vo perder tempo procurando o down, ache coloque aqui o link que na hora do almoço eu baixo e te explico como fazer…

Att,