Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Ponto de Entrada

...

MT20FOPOS na P12

Produto:

Protheus ADVPL

Versões:

P12

Ocorrência:

Pontos de entrada

MVC MATA020

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'

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.

Evidência:

http://tdn.totvs.com/download/attachments/317304617/teste_mvc_pe_mata020.rar?api=v2





Observações: