L’ordre d’exécution des événements dans les champs de formulaire PDF

L’ordre d’exécution des événements dans les champs de formulaire PDF enfin expliqué clairement

 

Le schéma résume l’ordre d’enchainement des événements lorsque l’utilisateur final utilise un champ dans un formulaire PDF. Cela permet de voir d’un seul coup d’œil où on a le plus intérêt à placer scripts et Actions pour éviter les interférences et les incohérences.

En vert les événements utilisateur, ou « déclencheurs » dans la terminologie d’Acrobat. C’est-à-dire les actions effectuées via le clavier, la souris, l’écran tactile, etc.
En bleu les événements induits par les interactions de l’utilisateur final. Comme la vérification des formats de saisie, les calculs et autres validations pendant ou après la saisie.

 

L’ordre d’exécution des événements dans les champs de formulaire PDF

L’ordre d’exécution des événements dans les champs de formulaire PDF

 

Cependant il y a des conséquences logiques à relever :

  • Certains enchainements sont obligatoires, par exemple le déclencheur «Souris relevée» ne peut pas se produire tant que le déclencheur «Souris entrée» n’est pas survenu.
  • Certaines étapes ne sont pas obligatoires, on peut très bien passer directement de «Souris relevée» à «Champ désactivé».
  • Tous les types de champs ne disposent pas des mêmes événements induits. Les champs de type Bouton, Boutons-radio et Cases-à-cocher n’en on aucun.

 

A propos de l’événement « Calcul »

Cet événement a une particularité : il se déclenche à chaque fois qu’un des champs du formulaire passe par l’événement « Champ désactivé ». C’est très pratique pour enchainer les calculs mais attention parce-que ça peut avoir un impact significatif en terme de performances et de ressenti utilisateur dans un formulaire contenant de nombreux champs ou des calculs complexes, parce-que chaque événement utilisateur sur un champ déclenche nécessairement le recalcul de tous les autres champs.
Exemple avec ce formulaire qui contient 227 champs calculés : http://abracadabrapdf.net/pdf-de-demo/formulaires/les-gourmandines

De cette particularité découle une contrainte : « L’ordre de calcul » est très important, à l’évidence on ne peut pas calculer le montant d’une TVA avant d’avoir calculé la quantité de produits commandés. On doit donc toujours soigneusement vérifier que les calculs s’effectuent dans l’ordre logique dès qu’on utilise l’événement « Calcul » dans plus d’un seul champ.

Dernière chose à savoir : chaque utilisateur peut désactiver l’option « Calculer automatiquement la valeur des champs » dans les Préférences/Formulaires de son application. C’est rare mais ça peut arriver, en évitant les « Calcul » on évite aussi cet écueil.

C’est pour ça qu’il est souvent plus productif de placer une Action ou un JavaScript en « Validation », en « Champ désactivé » ou en « Format » quand c’est possible car ces événements ne sont déclenchés que par le champ hôte et lui seul, ou bien quand y a une modification induite via autre champ.

 

Les événements dans les Propriétés du champ (Acrobat)

Les « événements » des champs de formulaire (Acrobat)

 

Les événements dans les Propriétés du champ (Scribus)

Les « événements » des champs de formulaire (Scribus)

 

L'ordre de calcul des champs de formulaire

L’ordre de calcul des champs de formulaire (Acrobat)

 

Préférences : Formulaires

Préférences : Formulaires (Adobe Reader XI)

 

Print Friendly

Les commentaires sont clos.