Bruninn Postado Fevereiro 15, 2007 Denunciar Share Postado Fevereiro 15, 2007 (editado) Olá, fiz este código no evento AfterDelete de uma Table:tbCaixa.Prior;while not tbCaixa.Eof dobegintotal_anterior := tbCaixaTOTAL.AsFloat;tbCaixa.Next;tbCaixa.Edit;tbCaixaTOTAL.AsFloat := total_anterior + tbCaixaCREDITO.AsFloat - tbCaixaDEBITO.AsFloat;tbCaixa.Post;end;tbCaixa.Close;tbCaixa.Open;Porém, mesmo quando chega na última linha de registro da minha tabela ele continua realizando a ação dentro do while...alguém sabe porque e como arrumar isso? vlw Editado Fevereiro 15, 2007 por Bruninn Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 16, 2007 Denunciar Share Postado Fevereiro 16, 2007 Olá, fiz este código no evento AfterDelete de uma Table:tbCaixa.Prior;while not tbCaixa.Eof dobegintotal_anterior := tbCaixaTOTAL.AsFloat;tbCaixa.Next;tbCaixa.Edit;tbCaixaTOTAL.AsFloat := total_anterior + tbCaixaCREDITO.AsFloat - tbCaixaDEBITO.AsFloat;tbCaixa.Post;end;tbCaixa.Close;tbCaixa.Open;Porém, mesmo quando chega na última linha de registro da minha tabela ele continua realizando a ação dentro do while...alguém sabe porque e como arrumar isso? vlwPor acaso o evento AfterPost não seria o da tabela tbCaixa, seria? Se for, este não é o lugar para você editar ela.Pelo que parece ser a função do seu código, eu lhe diria que o procedimento normal seria algo como:tbCaixa.First; // <= Posiciona no primeiro registro da tabela (normalmente "filtrada") while not tbCaixa.Eof do begin total_anterior := tbCaixaTOTAL.AsFloat; tbCaixa.Edit; tbCaixaTOTAL.AsFloat := total_anterior + tbCaixaCREDITO.AsFloat - tbCaixaDEBITO.AsFloat; tbCaixa.Post; tbCaixa.Next; // <= Avança para próximo registro end; tbCaixa.Close; tbCaixa.Open; Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruninn Postado Fevereiro 16, 2007 Autor Denunciar Share Postado Fevereiro 16, 2007 olá Micheus...vlw pela ajuda, mas na verdade o meu problema é o seguinte:na minha tabela (tbCaixa) tem os seguintes campos: credito, debito e total.O total = total + credito - debito que foram digitados. Porém, quando faço uma exclusão do registro, os valores do total ficam errados, como mostra na imagem.Antes de excluir:Depois de excluir:Gostaria que, quando eu excluisse um registro...pegasse o valor do total acima do excluido e somasse com o valor do credito/debito do abaixo...fazendo com que todos os registros que estavam depois do que foi deletado fiquem certos.Com o código que passei anteriormente funcionaria certinho se não fosse pelo looping que não parou no último registro... desde já agradeço pela ajuda Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruninn Postado Fevereiro 16, 2007 Autor Denunciar Share Postado Fevereiro 16, 2007 Consegui resolver! ficou assim:tbCaixa.First; total_anterior := tbCaixaTOTAL.AsFloat; tbCaixa.Next; while not tbCaixa.Eof do begin tbCaixa.Edit; tbCaixaTOTAL.AsFloat := total_anterior + tbCaixaCREDITO.AsFloat - tbCaixaDEBITO.AsFloat; tbCaixa.Post; total_anterior := tbCaixaTOTAL.AsFloat; tbCaixa.Next; end;tbCaixa.Close;tbCaixa.Open;vlw pela ajuda...se não fosse por você eu não teria conseguido! :D Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bruninn
Olá, fiz este código no evento AfterDelete de uma Table:
tbCaixa.Prior;
while not tbCaixa.Eof do
begin
total_anterior := tbCaixaTOTAL.AsFloat;
tbCaixa.Next;
tbCaixa.Edit;
tbCaixaTOTAL.AsFloat := total_anterior + tbCaixaCREDITO.AsFloat - tbCaixaDEBITO.AsFloat;
tbCaixa.Post;
end;
tbCaixa.Close;
tbCaixa.Open;
Porém, mesmo quando chega na última linha de registro da minha tabela ele continua realizando a ação dentro do while...alguém sabe porque e como arrumar isso? vlw
Editado por BruninnLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados