Muitas vezes quando programamos em ADVPL conseguimos reutilizar fontes de outros projetos no que estamos atuando, porem alguns campos podem não serem importantes ou não estarem presentes no novo ambiente. Neste caso é uma boa prática proteger o nosso código verificando se o campo realmente existe antes de trabalharmos com ele. Para isso, podemos utilizar uma função chamada FieldPos().

A função FieldPos tem a funcionalidade de retornar a posição de um determinado campo dentro da estrutura do alias corrente. Caso o campo não exista na estrutura, é retornado zero.

 

Abaixo um exemplo onde verificamos se o campo A1_ZCOD existe em nosso ambiente.


#INCLUDE "TOTVS.CH"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TOPCONN.CH"

#Define ENTER Chr(13)+Chr(10)

/*/{Protheus.doc} SPFLDPOS
Função SPFLDPOS, para exemplificar o uso da função FieldPos().
@param Não recebe parâmetros
@return Não retorna nada
@author Rafael Goncalves
@owner sempreju.com.br
@version Protheus 12
@since Mai|2020
/*/
User Function SPFLDPOS()
	Local cMsgHead := "TDRFocus - Conhecimento sem limite"
	//-> Verifica se o novo campo existe.
	If FieldPos("A1_ZCOD") > 0
		MsgInfo("O campo A1_ZCOD existe!", cMsgHead)
	Else
		MsgStop("O campo A1_ZCOD não existe!", cMsgHead)
	EndIf
Return

 

Não deixe de assinar a nossa newsletter e fica por dentro de todos os post.

O código fonte desse e outros exemplos podem ser encontrados em nosso git.

Post interessantes:

Aprenda a instalar o Protheus aqui.

Retornar datas por extenso aqui.

Barras de progresso aqui.

Dúvidas e sugestões, entre em contato.

Obrigado e até a próxima!

 

 

 

 

 

 

Categorias: ADVPL - Dicas

0 comentário

Deixe um comentário