Árvore de páginas

Versões comparadas

Chave

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

...

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

Informações
titleAtenção
   Não

Não é aconselhável modificar campos da tabela CT2 (Lançamentos contábeis) para obrigatório pois irá ter efeitos indesejáveis quanto a contabilização. 

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

02. PARÂMETROS


Parâmetro

Tipo

Descrição

Obrigatório

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

...

Bloco de código
languagegroovy
themeDJango
titleExemplo do Ponto de Entrada
collapsetrue
#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 

Bloco de código
languagegroovy
themeDJango
titleExemplo mais complexo de PE validando campos sem X3 OBRIGATORIO
collapsetrue
#INCLUDE "FONT.CH"
#INCLUDE "PROTHEUS.CH"


User Function CT105LOK()

Local aCpoOrig := {"CT2_ORIGEM","CT2_"} //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



Informações
titleObservação


O ponto de entrada retorna a variável aBotoes contendo todos os menus a serem adicionados.lRet informando se pode prosseguir ou se há inconsistência que precisa ser corrigida



Bloco de código
languagegroovy
themeDJango
titleEvento de chamada do Ponto de Entrada
collapsetrue
If ExistBlock("CT060BUT")
	aCT060BUT := ExecBlock("CT060BUT",.F.,.F.,aRotina)
	
	IF ValType(aCT060BUT) == "A" .AND. Len(aCT060BUT) > 0
		For nX := 1 to len(aCT060BUT)
			aAdd(aRotina,aCT060BUT[nX])
		Next
	ENDIF
Endif

...