calculo de 2 colunas em um campo

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

Gostaria de fazer um calculo com 2 colunas e mostrar o resultado em um campo, até ai tudo bem.
o problema é o seguinte se eu volto no registro anterior e altero o valor o resultado não fica atualizado, ele pega o valor que já estava antes e diminiu do que foi mudado.

ex. campo resultado tem 0
dai coloco na coluna valor 10
e na coluna qtde 1
o campo resultado aparece 10
dai se eu volto nesse registro e mudo o valor pra 20 em vez do resultado
me mostrar 20 me mostra 30 se eu volto e muda pra 10 o resultado me mostra 40 ele ta pegando o novo e add no antigo como faco para não acontecer isso.
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

se ajudar esta ai o codigo

Selecionar tudo

DECLARE
  v_valor number := 0; 
  v_retorno varchar(6);
begin
  v_valor := NVL(v_valor + (:BL_ETQ.QTD_REC_PARC*:BL_ETQ.QTD_ETQ),0);
  :BL_ETIQUETA.QTD_REST := (:BL_ETIQUETA.QTD_REST - v_valor);
  if :BL_ETIQUETA.QTD_REST = 0 then  	
		null;
  elsif :BL_ETIQUETA.QTD_REST < 0 then
   :BL_ETIQUETA.QTD_REST := (:BL_ETIQUETA.QTD_REST + v_valor);
   RAISE FORM_TRIGGER_FAILURE;
 	end if;
  	
end;

Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

você tentou colocar no When-validate-item, dos campos anteriores, a tua sumatória Teu bloco pl/sql ?
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

sim esta no when_validate_item.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Exemplo:
-----------

Se eu tenho um bloco, chamado TB_TESTE, neste bloco, tenho 3 itens:
-QTDE
-VALOR
-TOTAL

Tenho que ter uma trigger de when-validade-item, na QTDE, uma trigger de when-validade-item no VALOR.

Você tem essas duas?

Selecionar tudo

BEGIN 
 :TB_TESTE.TOTAL := (:TB_TESTE.QTDE * :TB_TESTE.VALOR);
END;
Esta trigger, tem que estar nos dois campos para funcionar legal.
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

Ok. é mais ou menos isso..
mas eu tenho alem desses um campo com o valor total que soma o valor total geral.
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

ah.. eu declarei uma variavel para receber esses valores..
mas o problema é bem esse mesmo..
seu eu volto em um campo que eu já tinha digitado e tento corrigir
ele pega o valor que estava digitado, faz o calculo, joga esse valor pra variavel e depois quando eu mudo ele pega esse novo numero também e adiciona nessa variavel então da furo o resultado.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Deu certo ai brother?
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

então.. aquele calculo ali eu já tinha feito.. o problema mesmo é se eu mudar o campo entende???
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Manda teu mail, que vou mandar um exemplo que tenho aqui.
Depois posto aqui no fórum, com mais tempo.
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

OK... AGRADEÇO..
ABRAÇO
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Segue o arquivo exemplo, brother.

Clique aqui para pegá-lo.
tchuck
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 70
Registrado em: Seg, 04 Dez 2006 9:22 am
Localização: Maringá

Trevisolli deu certo parceiro..
obrigado
eu criei mais um campo para jogar o resultado parcialmente e soma o total atraves deste campo..
valeu pela ajuda..
apanhei um bucado em uma coisa tão simples..

Abraços...
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

beleza, brother.
Precisando, tamos aí.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes