Fórum EOF, não consigo chegar no final da tabela. #235492
01/06/2004
0
Pessoal,
Estou com o seguinte problema: uso o código abaixo para calcular o valor total de uma NF. Incluo o primeiro item e tudo blz.
Ao incluir o segundo item, o ponteiro não vai para o final da tabela. Do primeiro para o segundo o ponteiro se move, mas não
sai do segundo. ou seja, fica dentro do laço infinitamente. Sei q tem alguma coisa de errado, só não consigo achar. Já fiz
backup, restore, gfix para ver se o problema é no arquivo... e nada. Até recriei as tabelas e continua o mesmo problema.
Desde já agradeço qualquer ajuda. Estou usando o FB 1.5 final.
uso o seguinte código para a ordem de compra e funciona:
Estou com o seguinte problema: uso o código abaixo para calcular o valor total de uma NF. Incluo o primeiro item e tudo blz.
Ao incluir o segundo item, o ponteiro não vai para o final da tabela. Do primeiro para o segundo o ponteiro se move, mas não
sai do segundo. ou seja, fica dentro do laço infinitamente. Sei q tem alguma coisa de errado, só não consigo achar. Já fiz
backup, restore, gfix para ver se o problema é no arquivo... e nada. Até recriei as tabelas e continua o mesmo problema.
Desde já agradeço qualquer ajuda. Estou usando o FB 1.5 final.
procedure TdmMaster.IBDItemNFEntradaAfterPost(DataSet: TDataSet); var bConsiderarDesconto: Boolean; begin IBTRMaster.CommitRetaining; IBDItemNFEntrada.DisableControls; IBDNFEntrada.Edit; IBDNFEntradaVALORDOSPRODUTOSCALCULADO.Value := 0; IBDNFEntrada.Post; IBDItemNFEntrada.First; while not IBDItemNFEntrada.Eof do begin IBDNFEntrada.Edit; IBDNFEntradaVALORDOSPRODUTOSCALCULADO.Value := IBDNFEntradaVALORDOSPRODUTOSCALCULADO.Value + IBDItemNFEntradaVALORTOTAL.Value; IBDNFEntrada.Post; IBDItemNFEntrada.Next; end; calcularNFE(IBDNFEntradaVALORDOSPRODUTOSCALCULADO.Value, bConsiderarDesconto, loja); if IBDNFEntrada.State in [dsedit, dsinsert] then IBDNFEntrada.Post; IBDItemNFEntrada.EnableControls; end;
uso o seguinte código para a ordem de compra e funciona:
procedure TdmMaster.IBDItemCompraAfterPost(DataSet: TDataSet); begin IBTRMaster.CommitRetaining; IBDItemCompra.DisableControls; IBDOCompra.Edit; IBDOCompraTOTALDOPEDIDO.Value := 0; IBDOCompraTOTALDOSPRODUTOS.Value := 0; IBDOCompraIPI.Value := 0; IBDOCompra.Post; IBDItemCompra.First; while not IBDItemCompra.Eof do begin IBDOCompra.Edit; IBDOCompraTOTALDOSPRODUTOS.Value := IBDOCompraTOTALDOSPRODUTOS.Value + IBDItemCompraSUBTOTAL.Value; IBDOCompraIPI.Value := IBDOCompraIPI.Value + IBDItemCompraVALORIPI.Value; IBDOCompra.Post; IBDItemCompra.Next; end; IBDOCompraTOTALDOPEDIDO.Value := IBDOCompraTOTALDOSPRODUTOS.Value - IBDOCompraDESCONTOSTRIBUTADOS.Value - IBDOCompraDESCONTOSISENTOS.Value + IBDOCompraDESPESASTRIBUTADAS.Value + IBDOCompraDESPESASISENTAS.Value + IBDOCompraOUTRASDESPESAS.Value + IBDOCompraFRETE.Value + IBDOCompraICMSR.Value; IBDItemCompra.EnableControls; end;
Lindomar.des
Curtir tópico
+ 0
Responder
Posts
01/06/2004
Comodelphi
Garoto, Vc esta usando o evento AfterPost para atualizar a mesma tabela, não vai sair dai nunca mesmo, eu ja vi um erro desse mas não ficava em loop infinito dava Stack OverFlow. Se vc ta usando interbase pq vc não faz um trigger no banco???? .... Ou então coloca esse depois do click do botao que faz o Post, mas prefiro usar Trigger.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)