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.
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. |
Parâmetro | Tipo | Descrição | Obrigatório |
---|---|---|---|
PARAMIXB[1] | Array | Opção | Não |
PARAMIXB[2] | Array | Data do Lançamento | Não |
#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 |
#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 |
O ponto de entrada retorna a variável lRet informando se pode prosseguir ou se há inconsistência que precisa ser corrigida. |
If lRet If lCt105LOK lRet := ExecBlock("CT105LOK",.F.,.F., {OPCAO , dDataLanc} ) If !lRet .And. lEfetiva Aadd(aErro,18) EndIf Endif EndIf |
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |