Estou com um problema na hora de definir o valor inicial para uma variável no iReport. E defino qual a variável quero, ela tem um valor, mas mesmo assim não funciona. Tenho um relatório, no qual preciso ter uma variável do tipo SUM para geral saldo. Esse saldo deve ser mostrado em cada registro. Ele está assim:

Propriedades da variável “PARCIAL_SALDO”:

Porém… na hora de executar fica assim:

Se o saldo anterior é 5000, então na primeira linha… no campo saldo deveria mostrar 5100, na segunda, 5400 e na terceira 5250…
Alguém sabe como arrumar isso?
Cara,
O iReport tem um lance de avaliação do valor do campo: Agora, Relatório, enfim… Ai vc testa pra ver.
Qto ao valor não esta somando vc criou uma variavel e esta fazendo a soma na mesma ou já add direto no campo?
Pois é… já testei várias dessas opções e o 5000 não entra no cálculo mesmo assim.
Eu fiz o seguinte…
1- Criei um parâmetro chamado “SALDO_ANTERIOR”, que é passado para o relatório antes de ele ser criado.
2- Criei a variável “PARCIAL_SALDO” que usa “SALDO_ANTERIOR” como valor inicial e faz os cálculos necessários
Os cálculos estão certinhos… basta fazer as contas pra constatar isso.
100 + 300 = 400 - 150 = 250.
O problema mesmo é que a variável não está começando com o mesmo valor do parâmetro, conforme eu defini. Isso está me atrasando demais, pois muita coisa que preciso fazer ainda hoje depende desse relatório.
Qual o tipo desta variavel e como vc esta setando este valor?
Tanto a variável quanto o parâmetro são Double. Estou setnado o valor de “SALDO_ANTERIOR” como Initial Value na variável “PARCIAL_SALDO”.
é algo que vc esta fazendo errado.
eu já tive este problema, e definitivamente não é culpa do iReport 
sugestão. faça o calculo na aplicação… e envie para o relatório a resposta ja calculada
Se vc colocar o valor direto em “PARCIAL_SALDO”, como teste funciona?
Acabei de descobrir que o campo “Initial Value” serve apenas para exibição e não entra no cálculo mesmo. Então… tive que fazer uma mega gambiarra com a expressão pra resolver:
($V{PARCIAL_SALDO}==null ? ($F{TIPO}.equals("C") ? new Double($P{SALDO_ANTERIOR}.doubleValue() + $F{VALOR_PAGAMENTO}.doubleValue()) :
new Double($P{SALDO_ANTERIOR}.doubleValue() - $F{VALOR_PAGAMENTO}.doubleValue())) :
($F{TIPO}.equals("C") ? $F{VALOR_PAGAMENTO} :
new Double("-" + $F{VALOR_PAGAMENTO})))
O que essa coisa faz é:
1- se o valor da variável PARCIAL_SALDO é nulo:
1.1- verifica se TIPO é “C” (crédito), se for… soma SALDO_ANTERIOR com VALOR_PAGAMENTO e incrementa a variável com o resultado desse cálculo
1.2- se TIPO for diferente de “C” (débito)… subtrai VALOR_PAGAMENTO de SALDO_ANTERIOR e subtrai a variável com o resultado desse cálculo
2- se PARCIAL_SALDO já tiver um valor:
2.1 - verifica se TIPO é “C” (crédito), se for… incrementa a variável com o valor de VALOR_PAGAMENTO
2.2 - verifica se tipo é diferente de “C” (débito), se for… decrementa a variável com o valor de VALOR_PAGAMENTO
Bem que o campo Initial Value poderia servir para fazer cálculos também (espero isso nas próximas versões), mas enfim… Obrigado pela ajuda de todos. =)