01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Logística |
Módulo: | SIGATMS - Gestão de Transportes |
02. DESCRIÇÃO
Permite ao usuário efetuar várias tarefas durante a execução do fonte de registro de pendências. Existe naturalmente dentro de um fonte MVC, não sendo necessária nenhuma chamada dentro do fonte. Possui locais pré-determinados para as execuções de funções customizadas.
Por exemplo: Após a gravação do modelo e fora da transação, o MVC executa automaticamente a chamada deste ponto de entrada com a localização igual a "MODELCOMMITNTTS".
O nome da função do ponto de entrada que será executado em qualquer local do fonte, deve ter o mesmo nome do modelo definido na função "MPFORMMODEL", porém o nome do fonte que agrupa o ponto de entrada, não poderá ter o mesmo nome do fonte executor do registro de pendências.
O parâmetro de entrada possui 3 posições. A primeira traz o objeto do formulário ou do modelo. A segunda traz o Id do local de execução do ponto. A terceira traz o Id do formulário.
Os possíveis locais de execução são:
"MODELPRE" -- Antes da alteração de qualquer campo do modelo
"MODELPOS" -- Na validação total do modelo
"FORMPRE" -- Antes da alteração de qualquer campo do formulário
"FORMPOS" -- Na validação total do formulário
"FORMLINEPRE" -- Antes da alteração da linha do formulário FwFormGrid
"FORMLINEPOS" -- Na validação total da linha do formulário FwFormGrid
"MODELCOMMITTTS" -- Após a gravação total do modelo e dentro da transação
"MODELCOMMITNTTS" -- Após a gravação total do modelo e fora da transação
"FORMCOMMITTTSPRE" -- Antes da gravação da tabela do formulário
"FORMCOMMITTTSPOS" -- Após a gravação da tabela do formulário
"FORMCANCEL" -- No cancelamento do botão
"MODELVLDACTIVE" -- Na ativação do modelo
"BUTTONBAR" -- Para a inclusão de botões na ControlBar
Parâmetros de entrada:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | |||||||||||||||
aParam | Array | Array com as configurações de cada ponto de entrada. | Não há | Não há | ||||||||||||||||
A variável de retorno possui vários tipos de retorno dependendo de cada local de utilização.
Os possíveis tipos de retorno são:
"MODELPRE" -- Lógico
"MODELPOS" -- Lógico
"FORMPRE" -- Lógico
"FORMPOS" -- Lógico
"FORMLINEPRE" -- Lógico
"FORMLINEPOS" -- Lógico
"MODELCOMMITTTS" -- Nulo
"MODELCOMMITNTTS" -- Nulo
"FORMCOMMITTTSPRE" -- Nulo
"FORMCOMMITTTSPOS" -- Nulo
"FORMCANCEL" -- Lógico
"MODELVLDACTIVE" -- Lógico
"BUTTONBAR" -- Array
Retorno:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
xRet | Lógica, Array ou Nulo | Variável de controle de saída | |||||||||||||||
03. EXEMPLO DE UTILIZAÇÃO
Programa Fonte TMSAF89PE.PRW Sintaxe: TMSAF89- Pontos de Entrada MVC ( [ aParam ] ) --> Variável Lógica, Array ou Null. Exemplo: #INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function TMSAF89() Local lNewReg := .T. Local nOperation := 0 Local aParam := ParamIxb Local cIdLocal := "" Local cIdForm := "" Local xRet := .T. Local oIdModel If ValType(aParam) == "A" //-- Carrega informações dos parâmetros oIdModel := aParam[1] //-- Objeto do formulário ou do modelo cIdLocal := aParam[2] //-- Id do local de execução do ponto cIdForm := aParam[3] //-- Id do formulário nOperation := oIdModel:GetOperation() If cIdLocal == "MODELPRE" //-- Antes da alteração de qualquer campo do modelo xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "MODELPOS" //-- Na validação total do modelo xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "FORMPRE" //-- Antes da alteração de qualquer campo do formulário xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "FORMPOS" //-- Na validação total do formulário xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "FORMLINEPRE" //-- Antes da alteração da linha do formulário FwFormGrid xRet := U_TMS89Li1(oIdModel,cIdLocal,cIdForm,nLinGrd,cAcaoGrd,cIdCampo) ElseIf cIdLocal == "FORMLINEPOS" //-- Na validação total da linha do formulário FwFormGrid xRet := U_TMS89Li2(oIdModel,cIdLocal,cIdForm,nLinGrd) ElseIf cIdLocal == "MODELCOMMITTTS" //-- Após a gravação total do modelo e dentro da transação U_TMS89Gr1(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "MODELCOMMITNTTS" //-- Após a gravação total do modelo e fora da transação U_TMS89Gr1(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "FORMCOMMITTTSPRE" //-- Antes da gravação da tabela do formulário U_TMS89Gr2(oIdModel,cIdLocal,cIdForm,lNewReg) ElseIf cIdLocal == "FORMCOMMITTTSPOS" //-- Após a gravação da tabela do formulário U_TMS89Gr2(oIdModel,cIdLocal,cIdForm,lNewReg) ElseIf cIdLocal == "FORMCANCEL" //-- No cancelamento do botão xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "MODELVLDACTIVE" //-- Na ativação do modelo xRet := U_TMS89Vld(oIdModel,cIdLocal,cIdForm) ElseIf cIdLocal == "BUTTONBAR" //-- Para a inclusão de botões na ControlBar xRet := U_TMS89But(oIdModel,cIdLocal,cIdForm) EndIf EndIf Return xRet User Function TMS89Vld(oIdModel,cIdLocal,cIdForm) Local lRet := .T. Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" Return lRet User Function TMS89Li1(oIdModel,cIdLocal,cIdForm,nLinGrd,cAcaoGrd,cIdCampo) Local lRet := .T. Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" Default nLinGrd := 0 Default cAcaoGrd := "" Default cIdCampo := "" Return lRet User Function TMS89Li2(oIdModel,cIdLocal,cIdForm,nLinGrd) Local lRet := .T. Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" Default nLinGrd := 0 Return lRet User Function TMS89Gr1(oIdModel,cIdLocal,cIdForm) Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" Return User Function TMS89Gr2(oIdModel,cIdLocal,cIdForm,lNewReg) Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" Default lNewReg := .T. Return User Function TMS89But(oIdModel,cIdLocal,cIdForm) Local aRet := {} Default oIdModel := Nil Default cIdLocal := "" Default cIdForm := "" aRet := U_TMS89Ret(oIdModel) Return Aclone(aRet) User Function TMS89Ret(oIdModel) Local aRet := {} Aadd(aRet,{"Nome do Botão","BMPPOST",{|| U_TMS89New(oIdModel)},"ToolTip do Botão"}) Return Aclone(aRet) User Function TMS89New(oIdModel) MsgAlert("Teste de execução de Ponto de Entrada","Atenção") Return
04. DEMAIS INFORMAÇÕES
- Não há.
05. ASSUNTOS RELACIONADOS
- Não há.