Árvore de páginas

CONTEÚDO

  1. Visão Geral
  2. Parâmetros
  3. Exemplo de Utilização

01. VISÃO GERAL

Esse documento visa demostrar um exemplo do ponto de entrada CT105LOK que permite a adição de novas validações ao Lançamento Contábil.


Atenção

Não é aconselhável modificar campos da tabela CT2 (Lançamentos contábeis) para obrigatório pois os campos são alimentados via lançamento padrão quando originados da contabilização de outros módulos ou por importação de arquivo texto e poderá ficar a base inconsistente de acordo com o dicionário.

Quando necessário deixar algum campo como obrigatório favor utilizar com ponto de entrada CT105LOK.

Os impactos causados pela utilização do ponto de entrada são de responsabilidade do cliente que o utiliza.

02. PARÂMETROS


Parâmetro

Tipo

Descrição

Obrigatório

PARAMIXB[1]ArrayOpçãoNão 
PARAMIXB[2]ArrayData do LançamentoNão


03. EXEMPLO DE UTILIZAÇÃO


Exemplo do Ponto de Entrada
#INCLUDE "PROTHEUS.CH"

User Function CT105LOK()

 	Local nOpc := PARAMIXB[1]
    Local dDataLanc := PARAMIXB[2]
    Local lRet := .T.
	
	If(FwIsInCallStack("CTBA102")) // valida se vem do fonte ctba102
		If (X3Obrigat('CT2_ORIGEM') .and. Empty(TMP->CT2_ORIGEM))// valida se o campo é obrigatório e se está vazio
			if(!IsBlind()) // valida se vem de execauto para não aparecer o help
				Help( "",1,"CTBA102" ,,"Campo Origem Obrigatório",1,0,)// campo origem obrigatorio 
			EndIF	
			lRet := .F. // retorna falso não permitindo a inclusão
		EndIF
	EndIF

RETURN lRet // retorna verdadeiro ou falso dependendo do campo origem se ta vazio ou não 



Exemplo mais complexo de PE validando campos sem X3 OBRIGATORIO
#INCLUDE "FONT.CH"
#INCLUDE "PROTHEUS.CH"


User Function CT105LOK()

Local aCpoOrig := {"CT2_ORIGEM","CT2_VLR02"} //Colocar os campos desejaveis a serem obrigatórios
Local nx:=0
Local lRet:=.T.

    For nX := 1 TO len(aCpoOrig)
        If Empty(&("TMP->"+aCpoOrig[nx])) .and. TMP->CT2_DC !='4'
            SX3->(dbSetOrder(2))
            SX3->(MsSeek(aCpoOrig[nx]))
            SX2->(dbSetOrder(1))
            SX2->(MsSeek(SX3->X3_ARQUIVO))
            HELP(" ",1,"OBRIGAT2",,aCpoOrig[nx]+CRLF+ "Campo:" +" "+ X3DESCRIC()+ CRLF +"Linha :" + TMP->CT2_LINHA,3,1) //"Campo: "###"Linha: "
            lRet:=.F.
            Exit
        Endif
    Next
Return lRet



Observação

O ponto de entrada retorna a variável lRet informando se pode prosseguir ou se há inconsistência que precisa ser corrigida.



Evento de chamada do Ponto de Entrada
	If lRet
		If lCt105LOK
			lRet  := ExecBlock("CT105LOK",.F.,.F., {OPCAO , dDataLanc} )
         If !lRet .And. lEfetiva
				Aadd(aErro,18)
			EndIf
		Endif
	EndIf