Aller au contenu principal

Champs personnalisés calculés

Vue d'ensemble

Formules de calcul

Les formules de calcul sont applicables à différents types de champs utilisateurs. Le type de champ doit correspondre au type d'information du résultat du calcul.

Exemple de principe

Correspondance des types

Exemple : concaténation de 2 champs textes, le résultat étant un texte, le type à choisir pour le champ ayant la formule est texte.

Configuration

Définition d'une formule

Pour définir une formule, il faut :

  1. Sélectionner "Formule" dans la colonne "Calcul" du champ utilisateur
  2. Saisir la formule dans la colonne "Valeurs possibles ou formule ou prochain compteur"

Menu d'accès aux champs personnalisés

Interface de configuration des formules

Syntaxe des formules

Syntaxe standard

La syntaxe des formules est la même que pour les frais d'approches :

  • # + Nom d'un champ
  • $ + Nom d'une constante numérique
  • Opérateurs : +, -, /, *
  • Parenthèses
Champs utilisables

Seuls sont utilisables dans une formule les champs de la table dans laquelle est ajouté le champ utilisateur. Les autres champs utilisateurs de la table (non calculés) sont utilisables.

Exécution des calculs

Moment d'exécution

L'opération est effectuée lors de l'enregistrement de la fiche, ou le passage à une autre ligne (pour les champs calculés présents dans des grilles de saisie (lignes de document, Écriture, etc.).

Limitations
  • Le résultat n'est pas modifiable
  • Lors de l'insertion de champs calculés dans une table, les calculs ne se feront pas de manière rétroactive

Fonctions disponibles

Fonctions logiques

NomDescription
Case(Index, Result1, Result2, ...)Sélection conditionnelle basée sur un index
If(Value, If_True_Result, If_False_Result)Condition if/then/else

Fonctions mathématiques

NomDescription
Abs(Value)Retourne la valeur absolue du nombre
Distance(X1, Y1, X2, Y2)Retourne la distance en pixels entre 2 points, par la formule de Taylor
Factorial(Value)Retourne la factorielle du nombre
Frac(Value)Retourne la partie décimale du nombre
Par exemple : Frac(10.5) retourne 0.5
Interpolate(Position, Value1, Distance1, Value2, Distance2)Interpolation linéaire
IntPower(Base, Exponent)Retourne la multiplication du nombre par lui même répétée N fois
ln(Value)Retourne le logarithme népérien du nombre
log10(Value)Retourne le logarithme en base 10 du nombre
logN(Base, Value)Retourne le logarithme en base N du nombre
Max(Value1, Value2, ...)Retourne le plus grand des nombres
Min(Value1, Value2, ...)Retourne le plus petit des nombres
Odd(Value)Retourne vrai si le nombre est impair
PiRetourne la valeur du nombre Pi
Power(Value, N)Retourne la multiplication du nombre par lui même répétée N fois
Round(Value)Retourne l'arrondi du nombre à l'entier le plus proche
Si le nombre se trouve à mi chemin entre les deux nombres entiers les plus proches, alors le résultat sera le nombre entier pair le plus proche
Sqr(Value)Retourne le carré du nombre
Sqrt(Value)Retourne la racine carrée du nombre
Trunc(Value)Retourne la partie entière du nombre

Fonctions textes

NomDescription
Copy(Text_Value, StartIndex, Count)Retourne une partie de la chaîne de caractères
FloatToText(Value)Transforme le nombre à virgule en chaîne de caractères
IntToText(Value)Transforme le nombre entier en chaîne de caractères
Length(Text_Value)Retourne la taille de la chaîne de caractères
LowerCase(Text_Value)Retourne la chaîne de caractères en minuscules
Pos(SubText, Text_Value)Retourne l'index de la première occurrence de la sous-chaîne dans la chaîne de caractères
PosEx(SubText, Text_Value, Offset)Retourne l'index de la première occurrence d'une sous-chaîne dans la chaîne de caractères
TextToFloat(Text_Value)Transforme la chaîne de caractères en nombre à virgule
TextToFloatDef(Text_Value, DefaultResult)Transforme la chaîne de caractères en nombre à virgule avec la possibilité de passer une valeur par défaut en cas d'erreur
TextToInt(Value)Transforme la chaîne de caractères en nombre entier
TextToIntDef(Value, DefaultResult)Transforme une chaîne de caractères en nombre entier avec la possibilité de passer une valeur par défaut en cas d'erreur
Trim(Text_Value)Supprime les espaces de début et de fin de la chaîne de caractère
UpperCase(Text_Value)Retourne la chaîne de caractères en majuscules

Fonctions trigonométriques

NomDescription
ArcCos(Value)Retourne le cosinus inverse de la valeur
ArcCosh(Value)Retourne le cosinus hyperbolique inverse de la valeur
ArcSin(Value)Retourne le sinus inverse de la valeur
ArcSinh(Value)Retourne le sinus hyperbolique de la valeur
ArcTan2(Y, X)Retourne l'angle et le quadrant d'arc-tangente de la valeur
ArcTanh(Value)Retourne la tangente hyperbolique inverse de la valeur
Cos(Value)Retourne le cosinus en radians de la valeur
Cosh(Value)Retourne le cosinus hyperbolique de l'angle
DegToRad(Value)Convertit des degrés en radians
RadToDeg(Value)Convertit des radians en degrés
Sin(Value)Retourne le sinus en radians d'une valeur
Sinh(Value)Retourne le sinus hyperbolique d'un angle
Tan(Value)Retourne la tangente de la valeur
Tanh(Value)Retourne la tangente hyperbolique de la valeur

Exemples pratiques

Exemple 1 : Extraction de caractères

Copy(#PCF_CP, 1, 2)
Résultat

Renvoie les 2 premiers caractères du code postal.

Exemple 2 : Condition complexe

If((#PAY_CODE = "FR") and (#FAT_CODE = "FA3"), "A traiter", "")
Résultat

Condition qui vérifie le code et le code famille du tiers et qui renseigne un texte quand ces 2 codes ont la valeur "FR" et "FA3".