cancel
Showing results for 
Search instead for 
Did you mean: 

Subtrair valor de um subrelatório no Crystal

Former Member
0 Kudos

Prezados

Criei um relatório onde constam as vendas, nesse mesmo relatório tem um subrelatório com as NF de devolução de vendas, como faço para no relatório principal, subtrair as devoluções no tota.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Deparei-me com um problema que não estou conseguindo resolver, estou usando a função shared para utilizar valores do sub-relatório em fórmulas do relatório principal, mas ela está retornando o valor na linha (registro) errada e repetindo-o nas linhas (registros) zeradas.

Estou agrupando o relatório pela descrição.

Para situá-lo:

- A questão é que preciso utilizar o valor dos pedidos na formula de sugestão de compra (sugestão = media projetada – estoque - pedidos).

- As Vendas, o estoque e os pedidos estão em tabelas distintas sendo que os pedidos tive que gerar como sub-relatório.

A questão básica portanto é, porque os valores estão sendo exibidos no registro errado e porque se repetem.

Former Member
0 Kudos

Osanito,

Eu faria de Outra Forma, Inclusive já montei pra mostrar:

Observa-se que:

Na devolucao o total é multiplicado por (-1)

logo é sumarizar no Crystal que já bate o valor,

dispensando o SubRelatório

(Se a função do Sub Relatório for só esta).

--Inicio da Consulta

declare @dataini datetime

declare @datafin datetime

set @dataini = '2012-18-10 00:00:00'

set @datafin = '2012-18-10 00:00:00'

select

'Nota Fiscal de Saida' 'Tipo',

a.CardName,

a.DocDate,

DocTotal

from

oinv a

where

DocDate >= @dataini

and DocDate<= @datafin

union all

select

'Devolucao' 'Tipo',

a.CardName,

a.DocDate,

(DocTotal*(-1))

from

orin a

where

DocDate >= @dataini

and DocDate<= @datafin

Former Member
0 Kudos

Valeu Eric, quase deu certo, o problema agora é só relacionar os campos corretos.

Former Member
0 Kudos

Bom dia!

No sub-relatório vc cria um novo campo de fórmula de o nome desejado, por exemplo totaldev, e coloca a seguinte função

Shared Numbervar V_totaldev:=({campo que quer levar para o relatório principal})

este campo deve ser colocado no corpo do sub-relatório e você pode suprimir para ele não aparecer

No relatório principal você cria outro campo de fórmula com o nome desejado , pode ser o mesmo do sub-relatório, e coloca a seguinte função

Shared NumberVar v_totaldev:=(V_totaldev)

Ele transporta o valor do sub-relatório e você pode usar para fazer os cálculos necessários para seu relatório

Espero ter ajudado

Eric