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 
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 
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.