Fórum Dúvida em Mestre/Detalhe com 1 DataSetProvider 2 ClientDat #179435
03/09/2003
0
Olá pessoal.
Estou com um problema que não estou conseguindo resolver.
É o seguinte:
Tenho um cadastro de Notas de Compra, neste cadastro tem 2 SQLDataSet
(SQLNotaCompra, SQLNotaCompraItem), tenho 1 DataSetProvider (
DSPNotaCompra ) e 2 ClientDataSet ( CDSNotaCompra, CDSNotaCompraItem ).
No evento BeforeUpdateRecord do DSPNotaCompra tenho o seguinte código para
atualizar o Valor Total da Nota de acordo com cada item:
Estou mostrando apenas a parte de Atualização.
if ( UpdateKind = ukModify ) then
begin
if ( SourceDS = SQLNotaCompraItem ) then
begin
// O Total da Nota Recebe o Total da Nota MENOS O Antigo Valor do item
// MAIS o Novo Valor do Item
DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).NewValue :=
( DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).AsFloat -
DeltaDS.FieldByName(´vl_total´).OldValue ) +
DeltaDS.FieldByName(´vl_total´).NewValue;
end;
O problema é que os dados não são gravados no banco. O
´DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).AsFloat´ recebe o
valor certo, mas não grava no banco.
Estou fazendo alguma coisa errada? Como devo fazer esta atualização?
Aguardo qualquer ajuda.
Obrigado.
João Luís Amorim
joao(a)devway.com.br
DevWay Sistemas e Consultoria Ltda
http://www.devway.com.br/
Estou com um problema que não estou conseguindo resolver.
É o seguinte:
Tenho um cadastro de Notas de Compra, neste cadastro tem 2 SQLDataSet
(SQLNotaCompra, SQLNotaCompraItem), tenho 1 DataSetProvider (
DSPNotaCompra ) e 2 ClientDataSet ( CDSNotaCompra, CDSNotaCompraItem ).
No evento BeforeUpdateRecord do DSPNotaCompra tenho o seguinte código para
atualizar o Valor Total da Nota de acordo com cada item:
Estou mostrando apenas a parte de Atualização.
if ( UpdateKind = ukModify ) then
begin
if ( SourceDS = SQLNotaCompraItem ) then
begin
// O Total da Nota Recebe o Total da Nota MENOS O Antigo Valor do item
// MAIS o Novo Valor do Item
DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).NewValue :=
( DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).AsFloat -
DeltaDS.FieldByName(´vl_total´).OldValue ) +
DeltaDS.FieldByName(´vl_total´).NewValue;
end;
O problema é que os dados não são gravados no banco. O
´DeltaDS.DataSetField.DataSet.FieldByName(´vl_total´).AsFloat´ recebe o
valor certo, mas não grava no banco.
Estou fazendo alguma coisa errada? Como devo fazer esta atualização?
Aguardo qualquer ajuda.
Obrigado.
João Luís Amorim
joao(a)devway.com.br
DevWay Sistemas e Consultoria Ltda
http://www.devway.com.br/
Jlamorim
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)