O editor de fórmulas oferece muitas formas de escrever facilmente suas instruções. Pode clicar no nome dos campos, operadores e comandos, assim como em métodos de projetos, para adcionar eles à fórmula. Quando clicar em um elemento, é mostrada automaticamente na área de edição onde pode ser modificado utilizando as funções padrão cortar/copiar/colar. Também pode introduzir diretamente os elementos na área de edição ou arrastando e soltando desde a lista de elementos.
![](../../picture/464188/pict464188.pt.png)
O editor de fórmulas contém as seguintes áreas:
- Lista de tabelas e de campos: esta área mostra os campos da tabela. O menu localizado sobre a lista lhe permite definir os campos a mostrar. Pode utilizar campos da tabela atual, de tabelas relacionadas ou de todas as tabelas.
Nota: as tabelas e campos com a propriedade invisível não aparecem na lista. Para maior informação sobre esta propriedade, consulte o parágrafo “Atributos” nas seções Propriedades de Tabela e Armazenado em registro, arquivo de dados ou fora do arquivo de dados. - Lista de operadores: a lista de operadores permite selecionar os operadores a utilizar na fórmula. Os operadores estão agrupados em temas no menu localizado sobre a lista:
![](../../picture/464194/pict464194.pt.png)
Cada tema mostra todos os operadores disponíveis para o tipo de dados ou de operação correspondente. Por exemplo, o operador de atribuição := está disponível para todos os tipos de dados.
Para uma descrição de cada operador, consulte a seguinte seção. - Lista de comandos: a lista de comandos contém as funções 4D que pode utilizar em fórmulas, como também em métodos de projeto permitidos pelo desenvolvedor. O menu localizado sobre a lista permite mostrar os comandos por tema ou por ordem alfabético. Consulte o manual de Linguagem 4D para uma descrição dos comandos 4D que aparecem neste menu.
A princípio, os métodos de projeto utilizáveis nas fórmulas devem ser declarados previamente com ajuda do comando 4D SET ALLOWED METHODS. Entretanto, como padrão, o Desenhador e o Administrador do banco tem acesso completo aos comandos 4D e métodos de usuário no editor de fórmulas. Também é possível desativar totalmente o controle de acesso para todos os usuários. Estas opções são definidas na Página Segurança das Propriedades do banco.
Esta é uma breve descrição dos diferentes operadores disponíveis no editor de fórmulas. Para uma descrição mais detalhada das possibilidades oferecidas por esses operadores, consulte o capítulo Operadores do manual de Linguagem de 4D.
- Operadores de strings
A e B são strings de caracteres; N és um número.
Operador | Uso | Descrição |
:= Atribuição | A:=B | Atribui o valor de B a A |
+ Concatenação | A+B | Devolve AB |
* Repetição | A*N | Repite o valor de A N veces |
[[ ]] Índices | [[A]]N | Devolve o caractere enésimo de A |
"" Cadeia vazia | "" | Insere um par de aspas |
- Operadores numéricos
X e Y são números.
Operador | Uso | Descrição |
:= Atribuição | X:=Y | Atribui o valor de Y a X |
+ Soma | X+Y | Devolve X mais Y |
- Subtração | X-Y | Devolve X menos Y |
* Multiplicação | X*Y | Devolve X multiplicado por Y |
/ Divisão | X/Y | Devolve X dividido por Y |
\ Divisão inteira | X\Y | Devolve a divisão inteira de X por Y (X e Y deven ser inteiros) |
% Módulo | X%Y | Divide X por Y e devolve o resto. |
^ Exponenciação | X^Y | Devolve X elevado a Y |
Nota: o operador módulo % devolve os valores significativos com os números pertencentes a categoria de interos longos (de -2^31 a +2^31 menos 1). Para calcular o módulo de números que não formam parte deste intervalo, utilize o comando
Mod.
- Operadores de datas
D1 e D2 são datas; N é um número.
Operador | Uso | Descrição |
:= Atribuição | D1:=D2 | Atribui o valor D2 a D1 |
+ Soma | D1+N | Devolve D1 mais N dias |
- Diferença | D1-D2 ou | Devolve o número de dias entre D1 e D2 |
| D1-N | Devolve D1 menos N dias |
!//! Data vazia | !00/00/00! | Insere uma data vazia |
- Operadores de horas
H1 e H2 são horas; N é um número.
Operador | Uso | Descrição |
:= Atribuição | H1:=H2 | Atribui o valor H2 a H1 |
+ Suma | H1+H2 ou | Devolve H1 mais H2 |
| H1+N | Devolve H1 mais N segundos, expresso em segundos transcorridos desde a meia noite |
- Subtração | H1-H2 ou | Devolve H1 menos H2 |
| H1-N | Devolve H1 menos N segundos, expresso em segundos transcorridos desde a meia noite |
* Multiplicação | H1*N | Devolve H1 multiplicado por N, expresso em segundos transcorridos desde a meia noite |
/ Divisão | H1/N | Devolve H1 dividido por N, expresso em segundos transcorridos desde a meia noite |
\ Divisão Inteira | H1\N | Devolve a divisão inteira de H1 por N, expresso em segundos transcorridos desde a meia noite |
% Módulo | H1%N | Divide H1 por N e devolve o resto. |
?::? Hora vazia | ?00:00:00? | Insere uma hora vazia |
- Operadores de comparação
Z1 e Z2 podem ser de tipo cadeia, numérica, data ou hora.
Operador | Uso | Descrição |
= Igual a | Z1=Z2 | Devolve True se Z1 é igual a Z2 |
# Distinto de | Z1#Z2 | Devolve True se Z1 é distinto de Z2 |
> Maior que | Z1>D | Devolve True se Z1 é maior que Z2 |
>= Maior ou igual a | Z1>=Z2 | Devolve True se Z1 maior ou igual a Z2 |
< Menor que | Z1<Z2 | Devolve True se Z1 é menor que Z2 |
<= Menor ou igual a | Z1<=Z2 | Devolve True se Z1 é menor ou igual a Z2 |
- Operadores lógicos
B1 e B2 deven ser booleanos (expressões que são TRUE ou FALSE).
Operador | Uso | Descrição |
& AND | B1 & B2 | Devolve True se B1 é True e B2 é True |
| OR | B1 | B2 | Devolve True se B1 é True ou B2 é True |