Tempo aproximado para leitura: 00:02:00 min
Dúvida
Como saber o campo que está sendo alterado no momento por meio de um ponto de entrada MVC?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 12.1.17
Solução
Crie uma função estática para ser utilizada em conjunto com os pontos de entrada MVC:
Static Function GetFldAtMoment(aParam)
Local cFldAtMnt := NIL
If (aParam[2] == "FORMPRE")
If (aParam[4] == "SETVALUE")
cFldAtMnt := PARAMIXB[5]
EndIf
EndIf
Return (cFldAtMnt)
Exemplo
#Include "TOTVS.ch"
// PONTO DE ENTRADA DA MATA020 UTILIZADO COMO EXEMPLO
User Function CUSTOMERVENDOR()
Local aParam := PARAMIXB
Local xRet := .T.
Local oObj := ""
Local cIdPonto := ""
Local cIdModel := ""
Local cField := NIL
If (aParam != NIL)
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
cField := GetFldAtMoment(aParam) // FUNÇÃO AQUI
If (cField != NIL)
MsgInfo("Field at Moment: " + cField, "MVC entry point")
cField := NIL
EndIf
EndIf
Return (xRet)
Importante
Quando o campo conter gatilhos, somente a primeira chamada da função retornará o campo que disparou a ação, as demais chamadas serão referentes aos campos alimentados pelo gatilho.
0 Comentários