No vídeo de hoje, iremos responder a dúvida em como validar se um campo existe via AdvPL usando a função FieldPos.
Hoje, a dúvida foi feita pelo grande Rodrigão, onde, ele tinha um campo que estava criado na base de testes, e ainda não estava em produção, então como ele precisava compilar o fonte, como fazer a validação se o campo existia para tratar esse cenário.
Com isso em mente, é necessário usar a classe FieldPos logo após dar um DbSelectArea na tabela, caso exista a informação, virá a posição do campo na estrutura.
E abaixo o código fonte desenvolvido para exemplificar:
//Bibliotecas
#Include 'Totvs.ch'
/*/{Protheus.doc} User Function zVid08
Função de exemplo demonstrando o uso da FieldPos
@author Atilio
@since 28/01/2022
@version 1.0
@type function
/*/
User Function zVid08()
Local aArea := GetArea()
DbSelectArea("SB1")
//Verifica se o campo existe
If FieldPos("B1_X_CAMPO") > 0
/* Aqui da para fazer a customização caso o campo exista*/
Else
Help(, , 'Atenção - Dicionário', , 'O campo [B1_X_CAMPO] não foi encontrado!', 1, 0, , , , , , {'Contate o Administrador do Sistema'})
EndIf
RestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.