SX7 e o "automatizador de campos" — gatilho dispara quando usuario digita em um campo, podendo posicionar (P) uma tabela ou calcular valor (V). Ferramenta poderosa pra logica simples sem PE.
Campos principais
| Campo | Tipo | Descricao |
|---|
| X7_CAMPO | C | Campo que dispara |
| X7_SEQUEN | C | Sequencia (se varios) |
| X7_REGRA | C | Expressao avaliada |
| X7_CDOMIN | C | Campo destino |
| X7_TIPO | C | P=Posicionamento, V=Valor |
| X7_SEEK | C | S=Posicionar antes; N=Nao |
| X7_ALIAS | C | Alias a posicionar (se SEEK=S) |
| X7_ORDEM | C | Indice a usar |
| X7_CHAVE | C | Chave de seek |
| X7_CONDIC | C | Condicao (so dispara se .T.) |
| X7_PROPRI | C | S=Customizacao, U=TOTVS |
Indices
| Ordem | Chave |
|---|
| 1 | X7_CAMPO+X7_SEQUEN |
Codigo tipico
// Gatilho: C5_CLIENTE → preenche C5_NOMECLI
PutSx7("C5_CLIENTE", "01", ".T.", ;
"SA1", 1, ;
"xFilial('SA1') + M->C5_CLIENTE + M->C5_LOJACLI", ;
"C5_NOMECLI", "SA1->A1_NOME", "U", "01")
Tabelas relacionadas
| Tabela | Relacao |
|---|
| SX3 | Campo de origem e destino |
Pegadinhas
- Gatilho em cascata: gatilho ativa outro gatilho — limite ~10 niveis de profundidade.
- Em ExecAuto, alguns gatilhos nao disparam.
- X7_PROPRI = "U" e da TOTVS — nao mexer.
- X7_CONDIC com lógica complexa em produção degrada digitacao.