Atualizar campo no registro mestre do forms
-
- Rank: DBA Pleno
- Mensagens: 248
- Registrado em: Sex, 06 Fev 2009 3:02 pm
- Localização: ERECHIM - RS
Pessoal preciso de ajuda. Tenho um forms com registro Mestre e Detalhe. Na tabela do registro Mestre, tenho um campo onde totalizo as quantidades informadas no registro detalhe. Cada vez que insere um registro novo no detalhe, utlizo a Key-Commit para atualizar o campo do registro mestre. Ocorre que quando preciso deletar um registro no detalhe, não sei como fazer para atualizar o registro no Mestre. Existe alguma função parecida com a Key-commit para fazer isto? Tentei utlizar a propria Key-commit mas não funcionou.
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Deve funcionar já que a key-commit dispara sempre que vai ser feito um commit no banco, o que serve para insert , delete e update.
O que aconteceu?
Posta teu código da key-commit.
O que aconteceu?
Posta teu código da key-commit.
-
- Rank: DBA Pleno
- Mensagens: 248
- Registrado em: Sex, 06 Fev 2009 3:02 pm
- Localização: ERECHIM - RS
Olha só. O codigo abaixo só está funcionando quando insere um novo registro no detalhe. Mas quando exclui algum, ele não atualiza o meste:
APP_STANDARD.EVENT('KEY-COMMIT');
Cursor C1 is
Select customer_trx_line_id LinhaId,
nvl(sum(quantidade),0) qtde
from pcn_comprovantes
where customer_trx_line_id = :PCN_ITEMEXP.customer_trx_line_Id
and :PCN_ITEMEXP.customer_trx_id = :PCN_BALCAO.customer_trx_id
group by customer_trx_line_id;
begin
for R1 in C1 loop
update pcn_itemexp set saldo = (quantidade - nvl(R1.qtde,0)) where customer_trx_line_id = R1.LinhaId;
Commit;
end loop;
end;
APP_STANDARD.EVENT('KEY-COMMIT');
Cursor C1 is
Select customer_trx_line_id LinhaId,
nvl(sum(quantidade),0) qtde
from pcn_comprovantes
where customer_trx_line_id = :PCN_ITEMEXP.customer_trx_line_Id
and :PCN_ITEMEXP.customer_trx_id = :PCN_BALCAO.customer_trx_id
group by customer_trx_line_id;
begin
for R1 in C1 loop
update pcn_itemexp set saldo = (quantidade - nvl(R1.qtde,0)) where customer_trx_line_id = R1.LinhaId;
Commit;
end loop;
end;
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
A lógica de quando insere é diminuir o saldo. Quando exlcui deveria aumentar o saldo?
Acredito que o teu cursor não está encontrando o detalhe do qual ele vai ter de buscar os dados para atualizar o mestre.
Tenta passar estas atualização na pre-delete e na pre-insert do detalhe.
Acredito que o teu cursor não está encontrando o detalhe do qual ele vai ter de buscar os dados para atualizar o mestre.
Tenta passar estas atualização na pre-delete e na pre-insert do detalhe.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes