Ir para conteúdo
Fórum Script Brasil
  • 0

Soma ou Subtração


hyrro

Pergunta

Bom dia!

Estou com um problema de soma/ subtração de campo no crystal... Eu tenho que fazer o seguinte:

Saldo ------------> 200,00 (header do group)

Details

Debito Credito Valor

50,00 0,00 250,00

50,00 0,00 300,00

0,00 10,00 290,00

20,00 0,00 310,00

Eu trago do banco o valor inicial (que é o saldo q coloco no cabeçalho do group), e as colunas de débito e crédito, mas não consigo fazer o cálculo da 3 coluna (Valor). Ele sempre soma (ou subtrai) pegando o valor do header, então acaba ficando assim:

Saldo ------------> 200,00 (header do group)

Details

Debito Credito Valor

50,00 0,00 250,00

50,00 0,00 250,00

0,00 10,00 190,00

20,00 0,00 220,00

A fórmula q uso é a seguinte:

global numbervar saldo;

saldo:= {relRazao.SaldoAtual};

If {relRazao.ContaCredito} = "0" Then

saldo := saldo + ToNumber({relRazao.Valor_Lan})

Else

saldo := saldo - ToNumber({relRazao.Valor_Lan})

Alguém pode me ajuda? Já tentei colocar a variável saldo no header, mas no detalhe ela acaba zerando......

Obrigado

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

tenta isso.

cria um campo formula chamado por exemplo, soma. dentro da formula dele ponha debito - credito.

crie um campo running total fields, chamado por exemplo, total, e mande fazer um sum() da formula soma criada anteriormente.

cria um segundo campo formula q seja a soma do campo total criado acima com o saldo q esta no header. e ponha ele pra ser mostrado na coluna de valor e veja se não funciona.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde, Kuroi. Muito obrigado pela ajuda!!!!

Fiz o que você sugeriu, e não funcionou....Aconteceu o seguinte:

Saldo: 5801,62

Debito --------- Credito ---------- Campo(Debito-Credito q você sugeriu)--------- Valor

76,02 --------- 0,00 --------- 76,02--------- --------- --------- --------- --------- 5877,64 (Correto)

0,00 --------- 446,02--------- (370,00)--------- --------- --------- --------- ------5507,64 (Errado, o correto seria 5431,62, q é 5877,64-446,02)

300,00--------- 0,00 --------- (70,00)--------- --------- --------- --------- --------- 5437,64 (Errado....)

o que será q errei?

tenta isso.

cria um campo formula chamado por exemplo, soma. dentro da formula dele ponha debito - credito.

crie um campo running total fields, chamado por exemplo, total, e mande fazer um sum() da formula soma criada anteriormente.

cria um segundo campo formula q seja a soma do campo total criado acima com o saldo q esta no header. e ponha ele pra ser mostrado na coluna de valor e veja se não funciona.

Olá!

Realmente, fiz besteira!

O segundo campo formula, eu somei errado, ao invés de somar o campo soma com o saldo, eu somei o running total field...kkkkk

Muito obrigado de novo, kuroi

Link para o comentário
Compartilhar em outros sites

  • 0
Agora estou com outro problema kkkkkkkkkkk

Estou trabalhando com group, e a cada group, a variavel soma tem q ser zerada.....tentei colocar:

numbervar soma:=0;

no header do group, mas ela não zera.....

acho q no Running Total Fields tem uma opcao Reset After ou qualquer coisa assim. ai você poe pra resetar a cada mudancao nesse grupo.

Link para o comentário
Compartilhar em outros sites

  • 0
Agora estou com outro problema kkkkkkkkkkk

Estou trabalhando com group, e a cada group, a variavel soma tem q ser zerada.....tentei colocar:

numbervar soma:=0;

no header do group, mas ela não zera.....

acho q no Running Total Fields tem uma opcao Reset After ou qualquer coisa assim. ai você poe pra resetar a cada mudancao nesse grupo.

O problema é q não precisei do running total field...estou usando só uma variável numérica....

soma:

numbervar soma;

if ({relRazao.ContaDebito} = "0") then

soma := soma - ToNumber({relRazao.Valor_Lan})

else

soma := soma + ToNumber({relRazao.Valor_Lan});

e no valor:

{@soma}+{relRazao.SaldoAtual}

Link para o comentário
Compartilhar em outros sites

  • 0
então compara o valor do campo pelo qual esta agrupado pelo previous() desse mesmo campo. se for diferente, significa q mudou, ai você zera.

Funcionou perfeitamente!!!

olha como ficou:

numbervar soma;

if OnFirstRecord and {relRazao.ContaDebito} = "0" then

soma := 0 - ToNumber({relRazao.Valor_Lan})

else if OnFirstRecord and {relRazao.ContaCredito} = "0" then

soma := 0 + ToNumber({relRazao.Valor_Lan})

else if ({relRazao.ContaDebito} = "0" and ({relRazao.Cd_Ccon} = Previous({relRazao.Cd_Ccon}))) then

soma := soma - ToNumber({relRazao.Valor_Lan})

else if({relRazao.ContaCredito} = "0" and ({relRazao.Cd_Ccon} = Previous({relRazao.Cd_Ccon}))) then

soma := soma + ToNumber({relRazao.Valor_Lan})

else if ({relRazao.Cd_Ccon} <> Previous({relRazao.Cd_Ccon}) and {relRazao.ContaDebito} = "0" ) then

soma := 0 - ToNumber({relRazao.Valor_Lan})

else if ({relRazao.Cd_Ccon} <> Previous({relRazao.Cd_Ccon}) and {relRazao.ContaCredito} = "0" ) then

soma := 0 + ToNumber({relRazao.Valor_Lan})

Muito obrigado novamente!!!!!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...