Árvore de páginas

Versões comparadas

Chave

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

...

No caso os pontos de entrada que anteriormente eram executados deverão ser substituídos colocando o evento de validação do formulário e de persistência após gravação dos dados na transação, portanto os pontos de entrada CTA080TOK e CT080GRV deverão ser reescritos na User Function CTBA080.
  • CTA080TOK

Link: http://tdn.totvs.com.br/display/public/mp/CTA080TOK+-+Valida+lancamentos+padroes+--+109592DT_PE_CTA080TOK - Valida lancamentos padroes


Utilização em MVC: Pode ser substituído pela função MODELPOS

  • CT080GRV

Link: DT_PE_CT080GRV - Após gravar o lançamento padrão -- 90628
Utilização em MVC: Pode ser substituído pela função FORMCOMMINTTTS.

...

Descrição:

O ponto de entrada CTBA080 permite tratar os diversos eventos no cadastro de Lançamento Padrão.

Eventos:

MODELPRE

Antes da alteração de qualquer campo do modelo.

Retorno:
Requer um retorno lógico

MODELPOS

Na validação total do modelo.

Retorno:
Requer um retorno lógico

FORMPRE

Antes da alteração de qualquer campo do formulário.

Retorno:
Requer um retorno lógico

FORMPOS

Na validação total do formulário.

Retorno:
Requer um retorno lógico

FORMLINEPRE

Antes da alteração da linha do formulário FWFORMGRID.

Retorno:
Requer um retorno lógico

FORMLINEPOS

Na validação total da linha do formulário FWFORMGRID.

Retorno:
Requer um retorno lógico

MODELCOMMITTTS

Após a gravação total do modelo e dentro da transação.

Retorno:
Não espera retorno

MODELCOMMITNTTS

Após a gravação total do modelo e fora da transação.

Retorno:
Não espera retorno

FORMCOMMITTTSPRE

Antes da gravação da tabela do formulário.

Retorno:
Não espera retorno

FORMCOMMITTTSPOS

Após a gravação da tabela do formulário.

Retorno:
Não espera retorno

FORMCANCEL

No cancelamento do botão.


Retorno:
Requer um retorno lógico

BUTTONBAR

Para a inclusão de botões na ControlBar.
Retorno:
Requer um array de retorno com estrutura pré definida

Programa Fonte:

CTBA080

Retorno:

de acordo com evento conforme documentação http://tdn.totvs.com/pages/viewpage.action?pageId=208345968 


Exemplo: 

#include "Protheus.ch

...

"
#include "FWMVCDEF.CH"

Static lFlag := .F.

User Function CTBA080()

...


Local aParam := PARAMIXB

...


Local xRet := .T.

...


Local oObj := ''

...


Local cIdPonto := ''

...



Local cIdModel := ''

...


Local lIsGrid := .F.

...


Local nLinha := 0

...


Local nQtdLinhas := 0

...


Local cMsg := ''

...


Local cClasse := ""

...

 

...





If aParam <> NIL
	oObj := aParam[1]

...


	cIdPonto := aParam[2]

...


	cIdModel := aParam[3]

...


	
	lIsGrid := ( oObj:ClassName()=="FWFORMGRID" )   //.F. //( Len( aParam ) == 5 .And. aParam[5] != NIL )

...


	
	If lIsGrid

...


		nQtdLinhas := oObj:GetQtdLine()

...


		nLinha := oObj:nLine

...


	EndIf



	If cIdPonto == 'MODELPOS

...

'
	
		lFlag := !lFlag
		
		If lFlag

			If 		oObj:GetOperation() == MODEL_OPERATION_INSERT
					// para inclusão;
					cMsg := 'P E Exemplo do metodo GetOperation INCLUSAO (NECESSARIO include FWMVCDEF.CH.' + CRLF
					cMsg += 'ID ' + cIdModel + CRLF
					If !( xRet := ApMsgYesNo( cMsg + ' - Continua ?' ) )
						Help( ,, 'Help',, 'OPERACAO INCLUSAO .F.', 1, 0 )
					EndIf
			
				
			ElseIf oObj:GetOperation() == MODEL_OPERATION_UPDATE
					// para alteração;
					cMsg := 'P E Exemplo do metodo GetOperation ALTERACAO (NECESSARIO include FWMVCDEF.CH.' + CRLF
					cMsg += 'ID ' + cIdModel + CRLF
					If !( xRet := ApMsgYesNo( cMsg + ' - Continua ?' ) )
						Help( ,, 'Help',, 'OPERACAO ALTERACAO .F.', 1, 0 )
					EndIf
			
			ElseIf oObj:GetOperation() == MODEL_OPERATION_DELETE
					//para exclusao
					cMsg := 'P E Exemplo do metodo GetOperation EXCLUSAO (NECESSARIO include FWMVCDEF.CH.' + CRLF
					cMsg += 'ID ' + cIdModel + CRLF
					If !( xRet := ApMsgYesNo( cMsg + ' - Continua ?' ) )
						Help( ,, 'Help',, 'OPERACAO EXCLUSAO .F.', 1, 0 )
					EndIf
			
			Else
					cMsg := 'P E Exemplo do metodo GetOperation Visualizacao (NECESSARIO include FWMVCDEF.CH.' + CRLF
					cMsg += 'ID ' + cIdModel + CRLF
					If !( xRet := ApMsgYesNo( cMsg + ' - Continua ?' ) )
						Help( ,, 'Help',, 'Visualizacao .F.', 1, 0 )
					EndIf
			
			EndIf
	
			cMsg := 'P E Validação total do modelo (MODELPOS).' + CRLF
			cMsg += 'ID ' + cIdModel + CRLF
			If !( xRet := ApMsgYesNo( cMsg  + If(oObj:GetValue( "CT5MASTER", 'CT5_STATUS' )=='1',

...

 "L P   A t i v o ", "LP Desabilitado") + ' - Continua ?' ) )

...


				Help( ,, 'Help',, 'O MODELPOS retornou .F.', 1, 0

...

 )
			EndIf

		EndIf

	ElseIf cIdPonto == 'FORMPOS'
		/*
		cMsg := 'Chamada na validação total do formulário (FORMPOS).' + CRLF

...


		cMsg += 'ID ' + cIdModel +

...

 CRLF
		
		cClasse := oObj:ClassName()

...

 
		
		If cClasse == 'FWFORMGRID'

...


			cMsg +=  um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ;

...


			' linha(s).' + CRLF

...


			cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF

...


		ElseIf cClasse == 'FWFORMFIELD'

...


			cMsg +=  um FORMFIELD' + CRLF

...


		EndIf
		If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) )

...


			Help( ,, 'Help',, 'O FORMPOS retornou .F.', 1, 0 )

...


		EndIf
		*/

...



	ElseIf cIdPonto == 'FORMLINEPRE'

...


		/*

...


		If aParam[5] == 'DELETE'

...


			cMsg := 'Chamada na pré validação da linha do formulário (FORMLINEPRE).' + CRLF

...


			cMsg += 'Onde esta se tentando deletar uma linha' + CRLF

...


			cMsg +=  um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) +;

...


			' linha(s).' + CRLF

...


			cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF

...


			cMsg += 'ID ' + cIdModel + CRLF

...


			If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) )

...


				Help( ,, 'Help',, 'O FORMLINEPRE retornou .F.', 1, 0 )

...


			EndIf
		EndIf
		*/

	ElseIf cIdPonto == 'FORMLINEPOS'
		/*
		cMsg := 'Chamada na validação da linha do formulário (FORMLINEPOS).' + CRLF

...


		cMsg += 'ID ' + cIdModel + CRLF

...


		cMsg +=  um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + 		' linha(s).' + CRLF

...


		cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) +

...

 CRLF
		
		If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) )

...


			Help( ,, 'Help',, 'O FORMLINEPOS retornou .F.', 1, 0 )

...


		EndIf
		*/
		
	ElseIf cIdPonto == 'MODELCOMMITTTS'
		//ApMsgInfo('Chamada apos a gravação total do modelo e dentro da transação (MODELCOMMITTTS).' + CRLF + 'ID ' + cIdModel )

...



	ElseIf cIdPonto == 'MODELCOMMITNTTS'

...


		//ApMsgInfo('Chamada apos a gravação total do modelo e fora da transação (MODELCOMMITNTTS).' + CRLF + 'ID ' + cIdModel)

...


		
		If CT5->(FieldPos("CT5_USUARI"))  > 0

...


			RecLock("CT5", .F.)

...


			CT5->CT5_USUARI := "Paulo da Silva Nunes"

...


			MsUnlock()

...


		EndIf


	ElseIf cIdPonto == 'FORMCOMMITTTSPOS'

...


		//ApMsgInfo('Chamada apos a gravação da tabela do formulário (FORMCOMMITTTSPOS).' + CRLF + 'ID ' + cIdModel)

...



	ElseIf cIdPonto == 'MODELCANCEL'

...


		/*

...


		cMsg := 'Chamada no Botão Cancelar (MODELCANCEL).' + CRLF + 'Deseja Realmente Sair ?'

...


		If !( xRet := ApMsgYesNo( cMsg ) )

...


			Help( ,, 'Help',, 'O MODELCANCEL retornou .F.', 1, 0 )

...


		EndIf
      */
      
	ElseIf cIdPonto == 'MODELVLDACTIVE'
		/*
		cMsg := 'Chamada na validação da ativação do Model.' + CRLF + ;
		'Continua ?'
		If !( xRet := ApMsgYesNo( cMsg ) )
			Help( ,, 'Help',, 'O MODELVLDACTIVE retornou .F.', 1, 0 )

...


		EndIf
		*/

...


	ElseIf cIdPonto == 'BUTTONBAR'

...


	   /*

...


		ApMsgInfo('Adicionando Botão na Barra de Botões (BUTTONBAR).' + CRLF + 'ID ' + cIdModel )

...


		xRet := { {'Salvar', 'SALVAR', { || Alert( 'Salvou' ) }, 'Este botão Salva' }

...

 }
      */
      
	EndIf

EndIf  

Return xRet

 

EndIf

Return xRet