Validando o começo ou fim de um alias com as funções BoF e EoF – Maratona AdvPL e TL++ 068

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação