Árvore de páginas


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

TM050BUT
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á.