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.