Nesse vídeo demonstraremos a utilização das funções BoF e EoF que servem para validar se um alias esta no começo ou no fim.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe068
Exemplo para verificar se esta no começo ou no fim de uma tabela
@type Function
@author Atilio
@since 06/12/2022
@see https://tdn.totvs.com/display/tec/Bof e https://tdn.totvs.com/display/tec/EOF
@obs 
    Função BoF
    Retorno
        + lRet  , Lógico  , .T. se estiver no começo do alias ou .F. se estiver no fim
    Função EoF
    Retorno
        + lRet  , Lógico  , .T. se estiver no fim do alias ou .F. se estiver no começo
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe068()
    Local aArea      := FWGetArea()
    Local nTot
    
    DbSelectArea('SB1')
    SB1->(DbSetOrder(1)) //B1_FILIAL + B1_COD
    
    //Posiciona no fim da tabela
    SB1->(DbGoBottom())
    nTot := 0
    //Enquanto não estiver no começo da tabela
    While ! SB1->(BoF())
        nTot++
        
        SB1->(DbSkip(-1))
    EndDo
    FWAlertInfo("Foram processados "+cValToChar(nTot)+" registros.", "Teste BoF")
    //Posiciona no começo da tabela
    SB1->(DbGoTop())
    nTot := 0
    //Enquanto não estiver no fim da tabela
    While ! SB1->(EoF())
        nTot++
        
        SB1->(DbSkip())
    EndDo
    FWAlertInfo("Foram processados "+cValToChar(nTot)+" registros.", "Teste EoF")
    FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
 
 
