Support - Le formulaire

PAYFORMS fait parti des rares plateformes qui permettent de mettre en place des contrôles de saisi ainsi que des automatismes évolués.
Chaque champ d'un formulaire peut utiliser des formules pour calculer sa valeur, son état visible, la validation de la valeur saisie, à partir des valeurs des autres champs.
Une formule commence par le signe = suivi par une expression valide.

Notation des valeurs :

Entier
1234456
Décimaux
123.5

Particularité : 
Pour utiliser un nombre décimal dans une formule il faut convertir sa valeur en utilisant la fonction n().
Exemple :
=n([CF3]) * n(3.14)
Dates
#15/06/2025# 
Textes
Les  textes contenus dans les formules sont sensibles aux majuscules/minuscules.
Exemple :
Si le champ CF11 contient "Toto", le système évalue l'expression  "= ([CF11] = 'toto')" à "=('Toto' = 'toto'), ce qui donne FAUX;
Références  

 

Champs standards

[CF1] ... [CF80]

 

Notation pour les champs standards :

[CFxxxxxx] ou [CFxxxxxx.Value]
Retourne une valeur Texte qui correspond à ce qui est 'affiché' dans le champ.
C'est cette valeur que le système enregistre pour chaque champ d'un formulaire et affiche dans la liste des opérations.

[CFxxxxxx.ItemValue]
Retourne la valeur numérique associée à la valeur affichée dans le champ, utilisée par exemple lors de la validation du formulaire pour calculer le montant à payer.

[CFxxxxxx.ExtraValue]
Retourne une valeur spécifique au type du champ utilisé.


Particularités :

- Champ Case à cocher

[CFxxxxxx.Value] retourne 'Oui' si la case est cochée et 'Non' dans le cas contraire
[CFxxxxxx.ItemValue] retourne la valeur de la propriété "Valeur par défaut" du champ.

- Champs Liste et Boutons radio
Pour ces champs chaque élément de liste ou bouton est composé d'une paire (Texte/Valeur)
La partie Texte correspond à la partie affichée de l'élément de liste ou au texte affiché à droite d'un choix de bouton radio.
La partie Valeur peut être composée d'une partie ItemValue et d'une partie Value séparées par #, ou simplement d'une partie Value.

[CFxxxxxx.Value] retourne la partie droite de la valeur par rapport au signe #, ou toute la valeur s'il n'y a pas de signe #.
[CFxxxxxx.ItemValue] retourne la valeur numérique de la partie gauche de la valeur par rapport au signe #, ou la valeur numérique de la valeur s'il n'y a pas de signe #.
[CFxxxxxx.ExtraValue] retourne la position de l'élément sélectionné dans la liste ou dans le bouton radio (le premier élément se trouvant à la position 0).

Exemple d'éléments de liste :
(Rame de papier/10#Rame) - Partie Texte : Rame de papier - Partie Value : Rame - Partie ItemValue : 10
(Rame de papier/10) - Partie Texte : Rame de papier - Partie Value : 10 - Partie ItemValue : 10


Notation pour le formulaire :

[Form.Value] 
Retourne le montant du paiement à réaliser.

[Form.ItemValue] 
Retourne le montant du paiement à réaliser.

[Form.CustomerItemCharges] 
Retourne le montant des frais pour l'utilisateur.(si les frais sont imputés à l'utilisateur)

[Form.SellerItemCharges] 
Retourne le montant des frais pour l'organisateur (si les frais sont imputés à l'organisateur)

 

Formulaire
[Form]

 

Champs spéciaux

[CFMail]
[CFGender]
[CFFirstname]
[CFLastname]
[CFAddress1]
[CFAddress2]
[CFCity]
[CFCountry]
[CFPostalCode]
[CFTelephone]


Opérateurs reconnus :

Opérateurs logiques

Exemple de formule de validation

= (( n([CF1]) <  2) and ([CF3] = 'herbe'))
and, or, not
Opérateurs relationnels Exemple de formule de validation

= (( n([CF1]) <  2) and ([CF3] = 'herbe'))
=, <>, <, <=, >, >=
Opérateurs mathématiques Exemple de formule de calcul

= ((n([CF4]) * n(3.14)) + n([CF6]))
+, -, *, % (modulo)
Concaténation de texte Exemple de formule de validation

=( [CF2]+[CF5] = 'Hello')

"Assemblage" de valeurs de champs sous forme de texte dans une formule.

Fonctions reconnues :

Fonctions de texte  
substring(texte, position de départ, longueur)

Retourne longueur caractères d'un texte à partir de position de départ (le premier caractère d'un texte se trouve à la position 0)

Exemple :
= substring('Hello',1,3) retourne 'ell'

toupper(texte)

Retourne texte transformé en majuscule

Exemple :
= toupper('Hello') retourne 'HELLO'

indexof(texte, texte à trouver)

Retourne la position de texte à trouver dans texte ou -1 si texte à trouver n'existe pas dans texte

Exemple :
= indexof('abcdefgh','def') retourne 3

startswith(texte, texte à trouver)

Retourne VRAI si texte commence par texte à trouver, sinon FAUX

Exemple :
= startwith('VTT 35km','VTT') retourne VRAI

endswith(texte, texte à trouver)

Retourne VRAI si texte se termine par texte à trouver, sinon FAUX

Exemple :
= endwith('VTT 35km','kms') retourne FAUX

len(texte)

Retourne la longueur de texte

Exemple :
Si la valeur dans le champ CF10 est Bateau
= len([CF10]) retourne 6

 trim(texte) Retourne texte avec les espaces de début et de fin supprimés

Fonctions d'information  
today() Retourne la date du jour sous forme de date

Exemple :
Si aujourd'hui nous sommes le 01/12/2014 la formule
=(today() = #01/12/2014#) retourne VRAI (la notation #JJ/MM/AAAA# désigne une valeur date)
year(date) Retourne la partie année d'une date au format texte sous forme de valeur numérique

Si le champ CF2 contient la valeur 01/12/2014, la formule
=(year([CF2]) = 2014) retourne VRAI
istn(texte, code pays, type) Retourne VRAI si texte est un numéro de téléphone du type attendu et valide pour le code pays

code pays  : Code pays de la nomenclature ISO (France = FR, Suisse = CH ...) ou '' pour le code pays FR par défaut
type : Type de numéro attendu, 'FIXE' (numéro de tel. fixe), 'MOBILE' (numéro de tel. mobile) ou '' pour l'un ou l'autre

Exemple :
Si la valeur dans le champ [CF2] est +3304789012
=istn([CF2],'FR','') retourne VRAI
=istn([CF2],'','MOBILE') retourne FAUX
isn(texte)

Retourne VRAI si texte est un nombre

Exemple :
Si la valeur dans le champ [CF2] est 12,5
= isn([CF2])  retourne VRAI

isd(texte)

Retourne VRAI si texte est une date

Exemple :
Si la valeur du champ [CF1] est 20/05/2014 00:40
=isd([CF1]) retourne VRAI

isvoucher() Retourne VRAI si l'opération courante est associée à une invitation/un bon de réduction
userisorganizer() Retourne VRAI si l'utilisateur courant est l'Organisateur (accès depuis le lien privé de l'événement, le compte PayForms)
wascreatedbyorganizer() Retourne VRAI si l'opération courante a été créée par l'Organisateur (depuis le lien privé de l'événement, le compte PayForms)
opcfcount
(
'Valeur',
'champ',
ExclureOperationCourante,
UniquemenrLesOpérationsConfirmées,
IDCampagne
)

Retourne le nombre de fois ou, dans les opérations enregistrées pour un évènement, valeur apparaît dans le champ champ, ou -1 si champ n'existe pas.

Si ExclureOperationCourante est égale à true (VRAI) l'opération courante n'est pas prise en compte, sinon false (FAUX) elle est prise en compte.
Si UniquemenrLesOpérationsConfirmées est égale à true (VRAI) seules les opérations confirmées sont prises en compte (facultatif).
Par défaut la fonction est exécutée sur l'évènement associé au formulaire mais vous pouvez indiquer un autre évènement en précisant son ID (facultatif).

Exemple :
Si dans un formulaire d'inscription le champ CF1 est utilisé pour récupérer l'âge et que dans l'évènement il existe 10 inscriptions (dont la courante) avec un age de '35'
=opcfcount('35','CF1',true) retourne 9
=opcfcount('35','CF1',false) retourne 10

grpcfcount'Valeur','Champ',ExclureOperationCourante) Retourne le nombre de fois ou, dans le groupe d'opérations en cours, valeur apparaît dans le champ champ, ou -1 si champ n'existe pas.

Si ExclureOperationCourante est égale à true (VRAI) l'opération courante n'est pas prise en compte, sinon false (FAUX) elle est prise en compte.

Exemple :
Si dans un formulaire d'inscription le champ CF1 est utilisé pour récupérer l'âge et que dans l'opération en cours il y a 4 inscriptions créées (dont la courante) avec un age de '35'
=grpcfcount('35','CF1',true) retourne 4
=grpcfcount('35','CF1',false) retourne 3

formcount('Valeur', champ1, champ2,...,champN)

Retourne le nombre de fois ou, dans le formulaire, valeur apparaît dans une liste de champs.

Exemple :
Si la valeur du champ CF2 est 'chaise', celle du champ CF4 'bureau'
=formcount('chaise',CF2,CF4) retourne : 1

Fonctions de conversion  
n(texte)

Retourne la valeur de texte convertie nombre, ou 0 si texte n'est pas un nombre

Exemple :
Si la valeur dans le champ [CF2] est 12,5
= n([CF2]) retourne 12.5
(en interne les nombres à virgule sont représentés avec le point comme séparateur)

Remarque :
Par défaut la référence à un champ renvoyant une valeur Texte, pour faire la somme numérique de deux champs il faudra utiliser la fonction n() pour convertir leur valeur en numérique.

d(texte)

Retourne la valeur de texte convertie en date, ou 01/01/1900 00:00:00 si texte n'est pas une date

Exemple :
Si la valeur dans le champ [CF3] est 20/05/2014
= d([CF3]) retourne 20/05/2014 (#20/05/2014# en notation interne)

Remarque :
Par défaut la référence à un champ renvoyant une valeur Texte, pour faire une comparaison de date entre deux champs il faudra utiliser la fonction d() pour convertir leurs valeurs en date.

b(texte) Retourne la valeur de texte convertie en booléen, ou false (FAUX) si texte n'est pas soit égale à 'true' ou 'false'

Exemple :
Si la valeur dans le champ [CF4] est 'true', la formule suivante
=b([CF4]) retourne true (valeur booléenne)
s(valeur) Retourne valeur sous forme de texte

Exemple :
Si des champs contiennent les formules suivantes 
=1 + 2  le résultat affiché sera 3
= s(1) + s(2) le résultat affiché sera 12 (concaténation du texte '1' et du texte '2')
Fonctions autres  
age(date de naissance,[date de référence]) Retourne l'age par rapport à date de référence en valeur entière pour date de naissance  ou -1 en cas d'erreur

date de naissance
: date sous forme de texte au format 'JJ/MM/AAAA'
date de référence (facultatif) : date sous forme de texte au format 'JJ/MM/AAAA' utilisée comme référence pour calculer l'âge
Si la date de référence n'est pas fournie la date de référence utilisée est la data courante

Exemple :
Si aujourd'hui nous sommes le 09/12/2015
=age('01/01/2014') retourne 1
 diffdays(date1,date2) Retourne le nombre de jours entre date1 et date2
Les dates date1 et date2 doivent être des dates sous forme de texte.

Exemple :

Si la valeur dans le champ [CF1] est '10/09/2019' et la valeur dans le champ [CF2] est '08/09/2019'
=diffdays([CF1],[CF2]) retourne 1
if (test, valeur si vrai, valeur si faux)

Retourne valeur si vrai si test est évalué à VRAI sinon valeur si faux si test est évalué à FAUX

Exemple :
Si la valeur dans le champ [CF4] est 2
= if ((n([CF4]) * 3) = 12, 'Ok','Erreur') retourne 'Erreur'

in(valeur, valeur 1, valeur 2,..., valeur n)

Retourne VRAI si valeur existe dans une liste de valeurs, sinon FAUX

Exemple :
= in('VTT','Route','Vtt','Bmx') retourne FAUX


Erreurs renvoyées :

#EVAL Erreur dans l'évaluation de la formule.
Le plus souvent liée à une syntaxe incorrecte dans l'expression
Exemples:

= ( ( n([CF1]) <  2) and ([CF2] = 3) )
Erreur générée par la comparaison entre un texte et un nombre.

= ( ( n([CF1]) <  2) and (n([CF2]) = 3)
Il manque une parenthèse à la fin de l'expression
#CIRCREF Référence circulaire dans la formule.
La formule fait référence à un champ qui fait référence au champ de la formule (boucle infinie).
Exemples :

formule de calcul de la valeur du champ CF3:
= (( n([CF1]) * 4) + n([CF2]))

formule de calcul de la valeur du champ CF1 :
= ( n([CF3]) + 2)



Des questions ?

Nous contacter à l'adresse info@payforms.fr

Nous contacter via notre page  Facebook