Somar de valores numa coluna no Ireport

[size=18]Como consigo somar os valores de uma coluna no Ireport ?[/size]

criando uma variavel do tipo Sumarize() para o campo… certo ?

[quote=brlima]criando uma variavel do tipo Sumarize() para o campo… certo ?
[/quote]

Caro Lima,

poderia me dizer então como ficaria a sintaxe deste sumarize?
Eu teria que criar um campo no sql, usá-lo como field e fazer o quê? Já tentei “new double $F{tese}.sumarize” e diversas alterações neste sentido.
Como seria? Eu não quero resolver isto via SQL, uma vez que acredito que o ireport deve acumular as variáveis de um registro.
Como resolvo isto amigo?

É mais simples:

:arrow: Vai no meu View -> Report Variables
:arrow: Clica em New ( Variable )
:arrow: Seleciona o tipo do campo me Variable Class Type ( Acho que vc quer Double, né ? ) depois vai em calculation type e seleciona Sum
:arrow: Agora, vc pode selecionar o Reset Type para selecionar o lugar onde vai zerar a variavel: Se for uma somatorio de todos os registros do seu relatorio ( tipo um total do relatorio ), seleciona Report.
:arrow: Em Variable Expression, vc deve colocar o campo que ele irá sumarizar: no caso do SUM ele vai pegar o atual valor da variavel e somar ao valor desse cara. Coloca ai algo do tipo $F{SEU_CAMPO_QUE_VAI_SOMAR}.
:arrow: Finalmente, em Initial Value, vai o valor iniciarl ( normalmente 0 ). Se o seu campo for do tipo Double, inicia com new Double(0)

Observe que tanto no Variable Expression quando no Initial Value vc deve retornar o mesmo tipo do seu campo setado no Variable Class Type, então não vale colocar valores fixos do tipo “0”, ou “5,1” qua não rola. Tem que ser new Double(0) ou new Double(5.1).

Dicas:

De uma olhada nos outros tipos ( Calculatio type ) que tem.
Se não quiser usar o Sum, pode fazer na mão tb, dái vc coloca no Calculatio Type NOTHING e no variable expression coloca: $V{ESTA_VARIAVEL} + $F{FIELD_QUE_VAI_SOMAR}.

Não sei se o relatorio vai aceitar DOUBLE + DOUBLE. Se não aceitar faz assim: new Double( $V{var}.doubleValue() + $F{campo}.doubleValue() )

Espero que seja isso que procura. Flw!

Nossa Amigo, vc foi demais! Vá fiz todos os relatórios. Dica sensacional, todos os passos para realizar o campo do tipo sum.

Muito Obrigado,

Cristiano

Como fazer para contar um campo String e guardar numa variável inteira ??

estou fazendo da seguinte forma:

if($F(campo_rel).equals(“2”)) //o 2 é um campo do tipo caracter

Ola a todos. :slight_smile:

Estou trabalhando em um relatorio e estou com o seguinte problema.
Em um relatorio de livro caixa, quero colocar um saldo em cada detail impressa.
Como faço para colocar uma condição no meu saldo para somar ou diminuir?
Tenho um campo com o nome tipo de movimento que recebe C ou D (Credito ou Debito)
Quando for credito quero que some ao saldo, quando for debito diminua do mesmo.

Desde de já orgigado a todos.

Se colocar if nas expressões do iReport da erro.

cara achei no google e foi de grande ajuda valeu

Fiz conforme o nosso amigo brlima e funcionou perfeitamente. No meu caso usei variável BigDecimal.
Veja a imagem em anexo.

[img=http://img257.imageshack.us/img257/3201/somatorioireportsu3.th.jpg]

[img=http://img257.imageshack.us/img257/3201/somatorioireportsu3.jpg]
[img=http://img257.imageshack.us/img257/somatorioireportsu3.jpg/1/w1154.png]

http://img257.imageshack.us/img257/3201/somatorioireportsu3.jpg

[quote=brlima]É mais simples:

:arrow: Vai no meu View -> Report Variables
:arrow: Clica em New ( Variable )
:arrow: Seleciona o tipo do campo me Variable Class Type ( Acho que vc quer Double, né ? ) depois vai em calculation type e seleciona Sum
:arrow: Agora, vc pode selecionar o Reset Type para selecionar o lugar onde vai zerar a variavel: Se for uma somatorio de todos os registros do seu relatorio ( tipo um total do relatorio ), seleciona Report.
:arrow: Em Variable Expression, vc deve colocar o campo que ele irá sumarizar: no caso do SUM ele vai pegar o atual valor da variavel e somar ao valor desse cara. Coloca ai algo do tipo $F{SEU_CAMPO_QUE_VAI_SOMAR}.
:arrow: Finalmente, em Initial Value, vai o valor iniciarl ( normalmente 0 ). Se o seu campo for do tipo Double, inicia com new Double(0)

Observe que tanto no Variable Expression quando no Initial Value vc deve retornar o mesmo tipo do seu campo setado no Variable Class Type, então não vale colocar valores fixos do tipo "0", ou "5,1" qua não rola. Tem que ser new Double(0) ou new Double(5.1).

Dicas:

De uma olhada nos outros tipos ( Calculatio type ) que tem.
Se não quiser usar o Sum, pode fazer na mão tb, dái vc coloca no Calculatio Type NOTHING e no variable expression coloca: $V{ESTA_VARIAVEL} + $F{FIELD_QUE_VAI_SOMAR}.

Não sei se o relatorio vai aceitar DOUBLE + DOUBLE. Se não aceitar faz assim: new Double( $V{var}.doubleValue() + $F{campo}.doubleValue() )

Espero que seja isso que procura. Flw![/quote]


blz…tenho uma tabelinha de teste com os seguintes campos: codigo, regional,campo1 e campo2.

quero somar todos os valores do campo1 q estao na mesma regional, ou seja, por exemplo, todos os valores de campo1 que esteja na regional 1.

blz…inserir tres linhas de dados de teste no banco…2 com a mesma regional e uma com regional diferente…a variavel q eu criei ta somando diretinho, tods os campos1 da mesma regional, so que na hora de exibir o relatorio, em vez de mostra so o valor total, ele mostra tres pagina de relatorio, como so tem tres linhas de dados na tabela, sendo que na ultima pagina que aparece o valor total dos campos 1…eu queria que exibisse so o valor total e em uma unica pagina…

tipo: campo 1 valor total =100

alguem pode me ajudar??

Bom dia Pessoal do Guj.
Estou me batendo com um problema que acredito, deve ser fácil de resolver . Tenho um relatório com algumas colunas:


|Coluna 1   | Coluna 2  | Coluna 3               |
|Valor 11   | Valor 21  | Valor 11 - Valor 21    |
|Valor 12   | Valor 22  | Valor 12  - Valor 22   |
|Valor 13   | Valor 23  | Valor 13 - Valor 23    |

Meu objetivo é simplismente criar uma terceira coluna a qual o valor seja (coluna1 - coluna2)

Já tentei criar Variáveis assim :

new java.lang.Integer(($F{dias})-($F{carencia171}))

e assim

 $F{dias} - $F{carencia171}

O tipo que está vindo do Banco é Integer mesmo :?
e estou recebendo o seguinte erro:

 net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :       1. Variable not found : cobrados

Alguém me ajude por favor .


Bom dia!!!
Estou com uma dúvida nesse assunto e vou aproveitar esse tópico. Espero que possam me ajudar.

Eu tenho um agrupamento “Funcionario” no meu relatório, e, em “Detail”, eu somei todos os valores da banda(float), para gerar um total. Guardei numa variável “Soma_Valoresblabla” por ex. . Em “FuncionarioFooter”, eu puis essa variável ao lado de um campo texto de “Valor total do funcionário:”, imaginando que iria aparecer a soma do que acabei de fazer. Porém, o que acontece é que aparece um valor que eu não consigo entender daonde ele surgiu, pois não faz sentido com nada do relatório. Só para ser mais exato, na banda “Detail”, eu somei 6 variáveis e um campo para gerar o total do funcionário, utilizando exatamente a mesma maneira que o camarada pois aí em cima. O que será que pode estar havendo? Se puderem dar uma luz, eu agradeço. Muito obrigado!!

Daniel

O aí em cima que eu quis dizer foi do brLima.
Abraços!!

Boa tarde!

Como faço para somar no relatório principa o campo quantidadade que está no SubReport?

Desde já muito obrigado.

BrLima,
Valeu pelas dicas, mas no meu caso a variável não está somando e o valor está 0. Será que deve ao fato de eu estar utilizando um aliás na query. Neste relatório aparecem somente os totais, portanto o campo que coloquei no IREPORT é o “ENTRADA” que é o apelido da soma.

SELECT SUM(valor) AS ENTRADA FROM tbFluxo GROUP BY data

att,

Que banco está utilizando?

99% de chance em haver um valor nulo neste campo.

Access (se é que pode ser chamado de “banco”, rsrsrs.)

kkk

Pois é!

Então! Verifique todos os dados desta coluna.

Aplique um ORDER BY.

Depois nos diga o que encontrou.

Estarei aqui esperando.

Realmente meu velho,
Existem registros com valor = 0 e tratam-se de mensalistas ou estadia que entraram na tolerância do tempo minimo, portanto não custou nada. O que deve fazer neste caso para desconsiderar estes registros no SUM?