Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS RH

Linha de Produto:

Linha Protheus

Segmento:

RH

Módulo:

TOTVS RH (Linha Protheus) - Ponto Eletrônico (SIGAPON)

Função:PONA200
País:Brasil
Ticket:21293839
Requisito/Story/Issue (informe o requisito relacionado) :DRHJORNPRT-8094


02. DESCRIÇÃO

A rotina de Manutenção de Banco de Horas permite apenas a utilização dos pontos de entrada no padrão MVC.

03. DEMAIS INFORMAÇÕES

Em MVC criamos um único ponto de entrada e este é chamado em vários momentos durante a execução da rotina.
Este ponto de entrada único deve ser uma User Function e ter como nome o ID do Modelo de Dados (Model) do Fonte, por padrão o nome do modelo é o mesmo do arquivo, como:


User Function PONA200()

Local aParam := PARAMIXB
Local xRet := .T.

[...]

Return xRet


O ponto de entrada criado recebe via parâmetro (PARAMIXB) um vetor com informações referentes a rotina. Estes parâmetros variam para cada situação, em comum todos eles tem os 3 primeiros elementos, no quadro seguinte existe a relação de parâmetros de cada ID:
Posições do array de parâmetros comuns a todos os IDs:

Posição

Tipo

Descrição
1ObjetoObjeto do formulário ou do modelo, conforme o caso
2CaractereID do local de execução do ponto de entrada 
3CaractereID do formulário


Os IDs do local de execução do ponto de entrada padrão do MVC (2ª posição) é possível verificar na documentação Pontos de Entrada para fontes Advpl desenvolvidos utilizando o conceito MVC

Os IDs dos formulários (3ª posição) dos modelos de dados do MVC para a rotina de Manutenção de Banco de Horas são:

    • PONA200_SRA: Este modelo de dados representa os dados do Funcionário.
    • PONA200_SPI: Este modelo de dados é relacionado ao modelo de dados PONA200_SRA e representa os lançamentos do banco de horas.


Exemplo de utilização do ponto de entrada para a criação de um novo botão na rotina, substituindo o PNA200BUT

Exemplo de Utilização
#INCLUDE "PROTHEUS.CH"
User Function PONA200()
	
	Local aParam := PARAMIXB
	Local xRet := .T.
	Local oObj := ''
	Local cIdPonto := ''
	Local cIdModel := ''
	
	If aParam != NIL
		oObj := aParam[1]
		cIdPonto := aParam[2]
		cIdModel := aParam[3]
		
		If cIdPonto == 'BUTTONBAR'
			xRet := {{'Teste', 'Teste', {|| Alert( 'Ponto de entrada')}, 'Botão adicionado'}}
		EndIf
		
	EndIf
	
Return xRet


04. ASSUNTOS RELACIONADOS