Dúvida
Pontos de entrada MVC MATA030 na P12
Ambiente
Protheus - ADVPL – A partir da versão 11.80
Solução
Para utilizar os pontos de entrada da rotina MATA030 no padrão MVC, altere para .T. o parâmetro MV_MVCSA1.
O ID do modelo da dados da rotina MATA030 é CRMA980, assim sendo, a assinatura da função de usuário deve ser User Function CRMA980().
Obs.: O nome do arquivo.prw não poderá ser o mesmo da user function.
Exemplo:
#include "protheus.ch" #include "parmtype.ch" User Function CRMA980() 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 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 pré 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 após a gravação total do modelo e dentro da transação.") ElseIf cIdPonto == "MODELCOMMITNTTS" ApMsgInfo("Chamada após a gravação total do modelo e fora da transação.") ElseIf cIdPonto == "FORMCOMMITTTSPRE" ApMsgInfo("Chamada após a gravação da tabela do formulário.") ElseIf cIdPonto == "FORMCOMMITTTSPOS" ApMsgInfo("Chamada após 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_TSMT030()}}} EndIf EndIf Return xRet User Function TSMT030() Alert("Buttonbar") Return NIL |
Saiba mais
|
---|
0 Comentários