Árvore de páginas

Versões comparadas

Chave

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

01. CNTA121 - Exemplos de utilização de pontos de entrada MVC


Produto:

Solucoes_totvs_cross
SolucaoCrossTOTVS Backoffice

Linha de Produto:

Linhas_totvs
SegmentoDistribuição
RegionConstrução Projetos
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoBackoffice

Módulo:Gestão de Contratos
Função:CNTA121 - Medições
ObjetivoListar exemplos de implementação dos pontos de entrada MVC

02. Impedir o encerramento da medição


Descrição:

Possibilitar ao desenvolvedor realizar a mesma operação anteriormente feita no ponto de entrada CN120ENVL

Eventos:

MODELVLDACTIVE

Programa Fonte:

CNTA121.PRW

Função:

CN121VlAct

Parâmetros:
PosiçãoTipoDescrição
PARAMIXB[1]Objeto do tipo MPFormModel

Modelo do CNTA121 antes da sua ativação

PARAMIXB[2]caractereIdentificador do evento, nesse exemplo será sempre MODELVLDACTIVE
PARAMIXB[3]caractereIdentificador do modelo, nesse exemplo será CNTA121
Retorno:
ValorTipoDescrição
xRetlógico

O evento MODELVLDACTIVE requer um retorno lógico.

.T. = Prossegue com a operação

.F. = Aborta a operação




Bloco de código
titleExemplo
linenumberstrue
#INCLUDE "Protheus.ch"
#INCLUDE "FWMVCDEF.CH"

/*{Protheus.doc} CNTA121()
	Possibilitar ao desenvolvedor realizar a mesma operação anteriormente feita no ponto de entrada CN120ENVL
*/
User Function CNTA121()
	Local aParam := PARAMIXB
	Local xRet := .T.
	Local oModel := ''
	Local cIdPonto := ''
	Local cIdModel := ''

	If aParam <> NIL
		oModel 	:= aParam[1]
		cIdPonto:= aParam[2]
		cIdModel:= aParam[3]
		
		/*O evento de id <MODELVLDACTIVE> será sempre chamado ao iniciar uma operação com o modelo de dados via método Activate do MPFormModel,
		então para nos certificarmos que a validação só será executada no encerramento tal qual o p.e CN120ENVL, é necessário verificar se a chamada está sendo realizada
		através da função CN121MedEnc, pra isso utilizamos a função FwIsInCallStack
		 */
		If cIdPonto == 'MODELVLDACTIVE' .And. FwIsInCallStack("CN121MedEnc")
			/*Como o modelo ainda não foi ativado, devemos utilizar as tabelas p/ validação, a única informação que constara em oModel 
			será a operação(obtida pelo método GetOperation), que nesse exemplo sempre será MODEL_OPERATION_UPDATE. 				
			*/
			If (CND->CND_VLTOT > 1000)
				Help("",1,"CNTA121ENC",,"Nao foi possivel realizar essa operacao",1,1)
				xRet := .F.
			EndIf
		EndIf
	EndIf
Return xRet