L’éditeur de formules vous permet d’écrire facilement vos instructions. Il vous suffit de cliquer sur les noms de champs, les opérateurs et les fonctions 4D ainsi que, éventuellement, les méthodes projet pour les inscrire dans la formule. Lorsque vous cliquez sur un élément, il s’affiche automatiquement dans la zone d’édition, où vous pouvez ensuite le modifier à l’aide des fonctions standard de couper/copier/coller. Vous pouvez aussi taper directement les éléments dans la zone d’édition ou procéder par glisser-déposer depuis les listes d’éléments.
![](../../picture/464188/pict464188.fr.png)
L’éditeur de formules se compose des éléments suivants :
- Liste des tables et des champs : cette zone affiche les champs de la table. Le menu situé au-dessus de la liste vous permet de définir les champs à afficher. Vous pouvez utiliser les champs de la table courante, ceux des tables N liées, ou ceux de toutes les tables.
Note : Les tables et les champs ayant la propriété invisible n’apparaissent pas dans la liste des champs. Pour plus d’informations sur cette propriété, reportez-vous au paragraphe “Attributs” dans les sections Propriétés des tables et Propriétés des champs. - Liste des opérateurs : La liste des opérateurs permet de choisir les opérateurs à utiliser dans la formule. Les opérateurs sont classés par thèmes, auxquels vous pouvez accéder via le menu de la liste :
![](../../picture/464194/pict464194.fr.png)
Chaque thème affiche tous les opérateurs disponibles pour le type de données ou d’opération correspondant. Par exemple, l’opérateur d’affectation := est disponible pour tous les types de données. Pour une description de chaque opérateur, reportez-vous au paragraphe suivant. - Liste des commandes : La liste des commandes contient les fonctions 4D utilisables dans le cadre d’une formule utilisateur ainsi que les méthodes projet éventuellement autorisées par le développeur. Le menu situé au-dessus de la liste permet d’afficher les commandes par thèmes ou par ordre alphabétique. Reportez-vous au manuel Langage de 4D pour une description des fonctions 4D apparaissant dans ce menu.
En principe, les méthodes projet utilisables dans les formules doivent être déclarées au préalable à l’aide de la commande FIXER METHODES AUTORISEES. Toutefois, par défaut, le Super_Utilisateur et l’Administrateur de la base disposent d’un accès complet aux commandes 4D et méthodes utilisateur dans l’éditeur de formules. Il est également possible de désactiver totalement le contrôle d’accès pour tous les utilisateurs. Ces options sont définies dans la Page Sécurité des Propriétés de la base.
Voici une description succincte des différents opérateurs disponibles dans l’éditeur de formules. Pour une description plus détaillée des possibilités offertes par ces opérateurs, reportez-vous au chapitre Opérateurs dans le manuel Langage de 4D.
- Opérateurs sur les chaînes
A et B sont des chaînes de caractères, N est un nombre.
Opérateur | Usage | Description |
:= Affectation | A:=B | Affecte la valeur de B à A |
+ Concaténation | A+B | Retourne AB |
* Répétition | A*N | Répète N fois la valeur de A |
[[ ]] Indices | [[A]]N | Retourne le Nième caractère de A |
"" Chaîne vide | "" | Insère deux guillemets |
- Opérateurs sur les numériques
X et Y sont des numériques.
Opérateur | Usage | Description |
:= Affectation | X:=Y | Affecte la valeur de Y à X |
+ Addition | X+Y | Retourne X plus Y |
- Soustraction | X-Y | Retourne X moins Y |
* Multiplication | X*Y | Retourne X multiplié par Y |
/ Division | X/Y | Retourne X divisé par Y |
\ Division entière | X\Y | Retourne la division entière de X par Y (X et Y doivent être des entiers) |
% Modulo | X%Y | Divise X par Y et retourne le reste |
^ Exponentiation | X^Y | Retourne X à la puissance Y |
Note : L’opérateur modulo % retourne des valeurs significatives avec des nombres appartenant à la catégorie des entiers longs (de -2^31 à +2^31 moins 1). Pour calculer le modulo de nombres qui ne sont pas dans cet intervalle, utilisez la fonction Modulo.
- Opérateurs sur les dates
D1 et D2 sont des dates, N est un nombre.
Opérateur | Usage | Description |
:= Affectation | D1:=D2 | Affecte la valeur de D2 à D1 |
+ Addition | D1+N | Retourne D1 plus N jours |
- Différence | D1-D2 ou | Retourne le nombre de jours entre D1 et D2 |
| D1-N | Retourne D1 moins N jours |
!//! Date vierge | !00/00/00! | Insère une date vierge |
- Opérateurs sur les heures
H1 et H2 sont des heures, N est un nombre.
Opérateur | Usage | Description |
:= Affectation | H1:=H2 | Affecte la valeur de H2 à H1 |
+ Addition | H1+H2 ou | Retourne H1 plus H2 |
| H1+N | Retourne H1 plus N secondes, exprimé en secondes écoulées depuis minuit |
- Soustraction | H1-H2 ou | Retourne H1 moins H2 |
| H1-N | Retourne H1 moins N secondes, exprimé en secondes écoulées depuis minuit |
* Multiplication | H1*N | Retourne H1 multipliée par N, exprimé en secondes écoulées depuis minuit |
/ Division | H1/N | Retourne H1 divisée par N, exprimé en secondes écoulées depuis minuit |
\ Division entière | H1\N | Retourne la division entière de H1 par N, exprimé en secondes écoulées depuis minuit |
% Modulo | H1%N | Divise H1 par N et retourne le reste |
?::? Heure vierge | ?00:00:00? | Insère une heure vierge |
- Opérateurs de comparaison
Z1 et Z2 peuvent être de type chaîne, numérique, date ou heure.
Opérateur | Usage | Description |
= Egalité | Z1=Z2 | Retourne vrai si Z1 égale Z2 |
# Inégalité | Z1#Z2 | Retourne vrai si Z1 est différent de Z2 |
> Supérieur à | Z1>D | Retourne vrai si Z1 est supérieur à Z2 |
>= Supérieur ou égal à | Z1>=Z2 | Retourne vrai si Z1 est supérieur ou égal à Z2 |
< Inférieur à | Z1<Z2 | Retourne vrai si Z1 est inférieur à Z2 |
<= Inférieur ou égal à | Z1<=Z2 | Retourne vrai si Z1 est inférieur ou égal à Z2 |
- Opérateurs logiques
B1 et B2 doivent être des booléens (expressions valant VRAI ou FAUX)
Opérateur | Usage | Description |
& ET | B1 & B2 | Retourne Vrai si B1 est Vrai et B2 est Vrai |
| OU | B1 | B2 | Retourne Vrai si B1 est Vrai ou B2 est Vrai |