EOF, não consigo chegar no final da tabela.
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
Curtidas 0
Respostas
Comodelphi
01/06/2004
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.
GOSTEI 0