E ai pessoal, no artigo anterior o Vinícius Gregório nos mostrou como criar tabelas e campos customizados. Se não viu o artigo clique aqui e aprenda a respeito. Hoje veremos como criar gatilhos.
A principal função de um gatilho é preencher um campo através da ação de passar por outro campo. Esta não é a sua única função, mas é a principal e a que iremos explorar neste artigo.
Vamos utilizar como exemplo a seguinte necessidade, temos o campo Fisica/Juridica (A1_PESSOA) no cadastro de clientes (SA1) e precisamos que quando este campo estiver preenchido com F=Fisica o campo Ins.Estad. (A1_INSCR) seja preenchido com a palavra ISENTO.
A rotina de manutenção de gatilhos fica no seguinte caminho SIGACFG >> Base de Dados >> Dicionario >> Gatilhos.
Será exibida a ela abaixo.
Clicando na lupa é possível pesquisar e visualizar os gatilhos que já foram criados no campo de origem da informação, no nosso caso o A1_PESSOA.
Os demais botões funcionam da mesma forma que os botões da tela de manutenção dos campos.
Vamos então clicar no botão com o símbolo do + para realizar a inclusão do gatilho. Será exibida a tela abaixo.
Em “Campo” digitaremos o campo de origem da ação, que no nosso caso é o A1_INSCR.
A “Sequencia” será preenchida automaticamente.
Em “Cnt.Dominio” colocamos o campo que desejamos preencher com este gatilho, que no nosso caso será o A1_INSCR.
Em “Tipo” colocaremos a opção Primário que é a opção mais utilizada e que abordaremos no artigo.
Em “Regra” colocamos o conteúdo que iremos utilizar para preencher o Contra Dominio. Podemos colocar tanto uma função para que o sistema carregue o seu retorno para o campo, como um conteúdo fixo.
A nossa necessidade é preencher a inscrição estadual com a palavra ISENTO quando o tipo de pessoa for Física, então precisamos utilizar um IF (Logica de programação), que ficará da seguinte forma: If(M->A1_PESSOA==’F’,’ISENTO’,M->A1_INSCR)
Feito isso é só clicar em confirmar e testar o seu gatilho.
Obs: Se você escolher definir o campo A1_PESSOA como F, o sistema jogará a palavra ISENTO no campo A1_INSCR, mas se em seguida resolver mudar para J a palavra ISENTO permanecerá no campo A1_INSCR, pois a condição que definimos permite isso. Ela só joga a palavra ISENTO lá quando A1_PESSOA igual a F, qualquer valor diferente de F, o gatilho mantém o valor que estava lá. Se quiser mudar o valor para espaço em branco quando A1_INSCR diferente de F, é só utilizar a regra a seguir If(M->A1_PESSOA==’F’,’ISENTO’,’ ‘). No mais, fica ai o desafio para que você criem suas próprias regras.
É isso ai pessoal, Valeu
Acrescentei um campo virtual para apresentar a descrição do produto na tabela SD1 e fiz o gatilho IF(INCLUI,””,FDESC(“SB1″,SD1->D1_COD,”B1_DESC”,,SD1->D1_FILIAL)).
O que ocorre é que depois de salvo o documento de entrada, quando volto no documento para visualizar a descrição do campo some.
Está faltando alguma coisa no gatilho?
Solicito ajuda por gentileza.
[…] Gatilhos […]