[Resolvido] Soma de valores em coluna do IReport

Bom dia.
Pesquisei pelo forum por dúvidas de usuários quanto ao IReport e não encontrei nenhuma que correspondesse a minha.
Estou desenvolvendo um relatório que lista a transação de um produto em um determinado período e preciso fazer um somatório da quantidade que entrou/saiu.
O meu caso não se resolve em simplesmente usar uma variável que soma a coluna “Quantidade”, pois ele só fará a soma da quantidade movimentada nesse período, e o que eu preciso é que ele some/diminua da quantidade que tinha disponível no dia anterior ao começo do meu filtro.
Para ser mais clara:
Filtrei o produto Janela dos dias 01/05/2012 à 02/05/2012 e a quantidade disponivel no dia 30/04/2012 era de 10. No dia 01/05 teve 3 saídas de um item, e no dia 02/05 1 saidas de 1 item, e 1 entrada de 10 itens. Ficaria assim:


Data … | Produto | Quantidade Mov. | Saldo
01/05… | Janela… | -1.00 … | 9
01/05… | Janela… | -1.00 … | 8
01/05… | Janela… | -1.00 … | 7
02/05… | Janela… | -1.00 … | 6
02/05… | Janela… | 10.00 … | 16

O que não consigo fazer é o saldo. Tenho um campo que traz a quantidade anterior (Qtde Total) só que se eu fizer uma variável que some/diminua desse valor, ele a cada linha diminuirá do mesmo valor, e não do valor da linha anterir. Ex:
Saldo anterior: 10

Data . | Quantidade Mov. | Saldo
01/05… | …-1.00… | 9
01/05… | … 1.00… | 11 (em vez de voltar a 10.)

Bm, espero que tenham entendido.
Se alguém tiver alguma sugestão, eu agradeço.
Qualquer dúvida por favor, poste nos comentários.
Att.
Catia :slight_smile:

Como passa os parâmetros ao iReport?
Via conexão jdbc?

[quote=drsmachado]Como passa os parâmetros ao iReport?
Via conexão jdbc?[/quote]

Não… pois não chamo o relatório de um sistema Java normal… é através do Adempiere…
Mas não entendi o porque da pergunta…
Você tem alguma sugestão nesse sentido?

Obrigada.

Não seria mais fácil fazer isso usando uma query em sql que faz o cruzamento do que foi vendido x estoque, não?

[quote=catia.alessandra][quote=drsmachado]Como passa os parâmetros ao iReport?
Via conexão jdbc?[/quote]

Não… pois não chamo o relatório de um sistema Java normal… é através do Adempiere…
Mas não entendi o porque da pergunta…
Você tem alguma sugestão nesse sentido?

Obrigada.[/quote]
Bom, neste caso, fica mais complicado.
Se fosse através de java, poderia fazer toda a montagem no código java e, então, passar apenas as informações relevantes, através do JRCollectionDataSource. Eu tenho relatórios parecidos com o que você pretende fazer, e faço desta forma.
Por isso a pergunta.

Bom no meu ver a solução é bem simples catia, cria uma variavel no ireport a qual vai iniciar com o valor em estoque que foi passado para o relatorio e esta é que irá mudar de valor de acordo com a entrada e saida de valores. Como fazer isto? bom vamos lá, considerando que você está recebendo a quantidade em estoque anterior via parametro.

1º - vá no Report Inspector e procure por variables, clica com o botão direito e adiciona uma nova variable.
2º - vai seleciona a variable criada e a renomeia como achar melhor
3º - seleciona a variavel criada, clica com o botão direito e escolhe a opção propriedades ou vai na aba de propriedades e modifica o initial value expression colocando $P{NOME_DA_PROPRIEDADE_COM_QUANTIDADE_EXTOQUE} (o parametro com o valor antigo)
4º - considerando que os valores incrementados e decrementados já vem com sinal como foi dado no exemplo é só configurar esta variavel para somar os valores como você já deve estar fazendo.

aguardado feedback.

[quote=CharlesAlves]Bom no meu ver a solução é bem simples catia, cria uma variavel no ireport a qual vai iniciar com o valor em estoque que foi passado para o relatorio e esta é que irá mudar de valor de acordo com a entrada e saida de valores. Como fazer isto? bom vamos lá, considerando que você está recebendo a quantidade em estoque anterior via parametro.

1º - vá no Report Inspector e procure por variables, clica com o botão direito e adiciona uma nova variable.
2º - vai seleciona a variable criada e a renomeia como achar melhor
3º - seleciona a variavel criada, clica com o botão direito e escolhe a opção propriedades ou vai na aba de propriedades e modifica o initial value expression colocando $P{NOME_DA_PROPRIEDADE_COM_QUANTIDADE_EXTOQUE} (o parametro com o valor antigo)
4º - considerando que os valores incrementados e decrementados já vem com sinal como foi dado no exemplo é só configurar esta variavel para somar os valores como você já deve estar fazendo.

aguardado feedback.[/quote]

Noossa, muito obrigada :smiley:
a única coisa que fiz de diferente foi na Variável de Expressão colocar o seguinte $V{SomaQtde}.add($F{qtdemov}) onde $V{SomaQtde} é a minha variável, e esse campo eu coloco no saldo final.
Muito bom.

Obrigado a todos pela ajuda.