Histórico da Página
...
Ponto de Entrada
...
MT20FOPOS na P12
Produto: | Protheus ADVPL |
Versões: | P12 |
Ocorrência: | Pontos de entrada |
MT20FOPOS na P12 ? | |
Ambiente: | P12 |
Passo a passo: |
Na rotina MATA020 o ponto de entrada no Padrão MVC o nome da user function é CUSTOMERVENDOR que é o o ID do Modelo de Dados
Obs. o nome do arquivo.prw não poderá ser o mesmo da user function
Segue exemplo
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'
User Function CUSTOMERVENDOR()//Nome
o ID do Modelo de Dados (Model) ou Nome da rotina
Local aParam := PARAMIXB
Local xRet := .T.
Local oObj := ''
Local cIdPonto := ''
Local cIdModel := ''
Local lIsGrid := .F.
Local nLinha := 0
Local nQtdLinhas := 0
Local cMsg := ''
If aParam <> NIL
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
lIsGrid := ( Len( aParam ) > 3 )
//If lIsGrid
// nQtdLinhas := oObj:GetQtdLine()
// nLinha := oObj:nLine
//EndIf
If cIdPonto == 'MODELPOS'
cMsg := 'Chamada na validação total do modelo.' + CRLF
cMsg += 'ID ' + cIdModel + CRLF
xRet := ApMsgYesNo( cMsg + 'Continua ?' )
ElseIf cIdPonto == 'FORMPOS'
cMsg := 'Chamada na validação total do formulário.' + CRLF
cMsg += 'ID ' + cIdModel + CRLF
If lIsGrid
cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF
cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF
Else
cMsg += 'É um FORMFIELD' + CRLF
EndIf
xRet := ApMsgYesNo( cMsg + 'Continua ?' )
ElseIf cIdPonto == 'FORMLINEPRE'
If aParam[5] == 'DELETE'
cMsg := 'Chamada na pre validação da linha do formulário. ' + CRLF
cMsg += 'Onde esta se tentando deletar a linha' + CRLF
cMsg += 'ID ' + cIdModel + CRLF
cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF
cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF
xRet := ApMsgYesNo( cMsg + 'Continua ?' )
EndIf
ElseIf cIdPonto == 'FORMLINEPOS'
cMsg := 'Chamada na validação da linha do formulário.' + CRLF
cMsg += 'ID ' + cIdModel + CRLF
cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF
cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF
xRet := ApMsgYesNo( cMsg + 'Continua ?' )
Como a Rotina está em MVC é necessário Utilizar e utilizar o momento apos a gravação utilizando o método GetOperation() caso tenha necessidade de Retornar qual a função que o usuário utiliza Ex: Incluir = 3 Alterar = 4 Excluir = 5 ElseIf cIdPonto == 'MODELCOMMITTTS'
|
ElseIf cIdPonto == 'MODELCANCEL'
|
xRet := ApMsgYesNo( cMsg
|
ElseIf cIdPonto == 'BUTTONBAR'
xRet := { {'Salvar', 'SALVAR', { || u_TESTEX() } } }
EndIf
EndIf
Return xRet
User Function TESTEX()
ALert ("passou")
Return
Mais Detalhes |
---|
Evidência:
Observações: |