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 := NILIf (aParam[2] == "FORMPRE")If (aParam[4] == "SETVALUE")cFldAtMnt := PARAMIXB[5]EndIfEndIfReturn (cFldAtMnt)
Exemplo
#Include "TOTVS.ch"// PONTO DE ENTRADA DA MATA020 UTILIZADO COMO EXEMPLOUser Function CUSTOMERVENDOR()Local aParam := PARAMIXBLocal 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 := NILEndIfEndIfReturn (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