Pontos de Entrada MVC MATA010 na P12

Produto:

Protheus ADVPL

Versões:

P12

Ocorrência:

Pontos de entrada MVC MATA010 na P12 ?

Ambiente:

P12

Passo a passo:

Na rotina MATA010 o ponto de entrada no Padrão MVC o nome da user function é ITEM 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 ITEM()//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 ?' )


ElseIf cIdPonto == 'MODELCOMMITTTS'

ApMsgInfo('Chamada apos a gravação total do modelo e dentro da transação.')


ElseIf cIdPonto == 'MODELCOMMITNTTS'

ApMsgInfo('Chamada apos a gravação total do modelo e fora da transação.')


ElseIf cIdPonto == 'FORMCOMMITTTSPRE'

ApMsgInfo('Chamada apos a gravação da tabela do formulário.')


ElseIf cIdPonto == 'FORMCOMMITTTSPOS'

ApMsgInfo('Chamada apos a gravação da tabela do formulário.')


ElseIf cIdPonto == 'MODELCANCEL'

cMsg := 'Deseja Realmente Sair ?'

xRet := ApMsgYesNo( cMsg )


ElseIf cIdPonto == 'BUTTONBAR'

xRet := { {'Salvar', 'SALVAR', { || u_TESTEX() } } }

EndIf

EndIf

Return xRet


User Function TESTEX()

ALert ("passou")

Return


Mais Detalhes
Todos os pontos de entrada terão seu legado mantido, salvo pontos que consideramos como pontos padrões como validação após a gravação e botões que serão substituídos, os pontos que trazem conteúdo do sistema por paramixb esses serão mantidos com sua particularidades.



Observações: