182
Guide de base sur les scripts de Designer AEM 6.2 Forms

Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Guide de base surles scripts de Designer

AEM 6.2 Forms

Page 2: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Dernière mise à jour le 2/6/18

Informations juridiquesPour consulter les informations juridiques, voir https://helpx.adobe.com/fr/legal/legal-notices.html.

Page 3: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Table des matières

À propos de ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Objet et contenu du guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Informations complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Création de scripts avec Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Fonctionnement des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Objets prenant en charge les calculs et les scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 5Comprendre les relations entre les objets de la Bibliothèque d’objets . . . . . . . . . . . . . . 7Editeur de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Configuration de Designer pour les scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Pour afficher l’éditeur de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Pour passer de la vue uniligne à la vue multiligne . . . . . . . . . . . . . . . . . . . . . . . . . 11Pour paramétrer le langage de script par défaut pour les nouveaux formulaires . . . . . . . . 11Pour paramétrer le langage de script par défaut pour le formulaire en cours . . . . . . . . . . 12Pour paramétrer le langage de script par défaut pour le formulaire en cours . . . . . . . . . . 12Pour modifier le langage de script par défaut pour un modèle de formulaire . . . . . . . . . . 12Pour modifier le langage de script par défaut pour un modèle de formulaire . . . . . . . . . . 13Pour choisir l’application de traitement par défaut . . . . . . . . . . . . . . . . . . . . . . . . . 13Pour choisir l’application de traitement par défaut . . . . . . . . . . . . . . . . . . . . . . . . . 14Pour changer l’application de traitement par défaut pour un modèle de formulaire . . . . . . 14Pour changer l’application de traitement par défaut pour un modèle de formulaire . . . . . . 14Pour afficher des caractères en arabe, hébreu, thaï et vietnamien . . . . . . . . . . . . . . . . . 15Utilisation de l’espace de travail pour le débogage des calculs et des scripts . . . . . . . . . . . 16

i

Page 4: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Conventions de dénomination des objets et des variables dans une conception de formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Choix du langage de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Pour créer un calcul ou un script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Pour créer un calcul ou un script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Pour rechercher du texte ou d’autres éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Pour remplacer du texte ou d’autres éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Pour utiliser des options de fin d’instructions pour créer des calculs et des scripts . . . . . . . 25Pour insérer automatiquement la syntaxe de référence à un objet . . . . . . . . . . . . . . . . 26Détermination du moment de l’exécution de votre calcul ou script . . . . . . . . . . . . . . . 26Pour afficher les événements de script et les scripts . . . . . . . . . . . . . . . . . . . . . . . . 28Détermination de l’emplacement d’exécution de votre calcul ou script . . . . . . . . . . . . . 30Test et débogage des calculs et des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Pour vérifier la syntaxe des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Utilisation des mesures de protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Evénements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Types d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Evénements de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Evénements interactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Evénements d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38calculate, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40change, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42click, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43docClose, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44docReady, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45enter, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46exit, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Evénement form:ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49full, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50indexChange, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51initialize, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Evénement layout:ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53mouseDown, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54mouseEnter, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55mouseExit, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56mouseUp, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57postOpen, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58postPrint, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59postSave, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60postSign, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61postSubmit, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62preOpen, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63prePrint, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

ii

Page 5: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

preSave, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65preSign, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66preSubmit, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67validate, événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Ecriture d’un script avec FormCalc et JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . 70Utilisation de FormCalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Utilisation de fonctions intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Création de calculs de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Utilisation de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Création de scripts à l’aide de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Règles d’application de plage stricte dans JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 82Pour attacher un script JavaScript à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Attribution de noms aux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Pour définir une variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Pour définir une variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Pour visualiser une définition de variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . 90Pour visualiser une définition de variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . 90Pour supprimer une variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Pour supprimer une variable de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Utilisation des variables dans les calculs et les scripts . . . . . . . . . . . . . . . . . . . . . . . 91

Référence aux objets dans les calculs et scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Référence aux propriétés et aux valeurs d’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Référence aux objets sans nom et répétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Référence à l’objet actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Raccourcis de la syntaxe de référence FormCalc . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Création et réutilisation des fonctions JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 107Pour créer un objet de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Pour ajouter un script à un objet de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Pour référencer les fonctions JavaScript stockées dans un objet de script . . . . . . . . . . . 109

Utilisation de fragments de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Propriétés des fragments de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Pour créer un fragment de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Pour insérer un fragment de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

iii

Page 6: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Messages d’avertissement et de validation de la palette Rapport dans Designer . . . . . . . 113Affichage d’informations de débogage à l’aide de la méthode messageBox . . . . . . . . . . 114FormCalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Extraire des informations dans un champ de texte . . . . . . . . . . . . . . . . . . . . . . . . 115Débogage JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Conseils pour le débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Utilisation d’une application hôte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Propriétés et méthodes du modèle de script hôte . . . . . . . . . . . . . . . . . . . . . . . . . 122Comparaison des fonctionnalités du modèle de script hôte . . . . . . . . . . . . . . . . . . . 123

Utilisation du modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Propriétés et méthodes du modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . 125

Conversion de scripts Acrobat en scripts Designer . . . . . . . . . . . . . . . . . . . . . . . 127Conversion de formulaires Acrobat contenant des scripts . . . . . . . . . . . . . . . . . . . 128Utilisation d’objets JavaScript provenant d’Acrobat dans Designer . . . . . . . . . . . . . . 128Objets JavaScript provenant d’Acrobat pris en charge dans Designer . . . . . . . . . . . . . 130

Exemples de tâches de script courantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Modification des couleurs d’arrière-plan des champs, des zones remplissables et des sous-formulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Masquage et affichage d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Exclusion d’un objet de l’ordre de tabulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Modification des propriétés visuelles d’un objet sur le client . . . . . . . . . . . . . . . . . . 151Obtention de la valeur actuelle ou de la valeur précédente d’une liste déroulante . . . . . . 156Préservation du format en texte enrichi lors de la copie de valeurs de champs . . . . . . . . 157Ajustement de la hauteur d’un champ au moment de l’exécution . . . . . . . . . . . . . . . 158Définition d’une valeur de champ obligatoire au moment de l’exécution . . . . . . . . . . . 159Calcul des sommes d’un champ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final . . . . . . 161Réinitialisation des valeurs du sous-formulaire actif . . . . . . . . . . . . . . . . . . . . . . . 164Modification de la visibilité d’un objet de conception de formulaire . . . . . . . . . . . . . . 165Utilisation des propriétés du gestionnaire d’instances pour contrôler les sous-formulaires . . . 167Utilisation des méthodes du gestionnaire d’instances pour contrôler les sous-formulaires . . . . 169Utilisation du gestionnaire d’instances pour contrôler les sous-formulaires au moment de l’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

iv

Page 7: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

À propos de ce document

1. À propos de ce document

Bienvenue dans le guide des concepts de base des scripts de Designer. Concepts de base des scripts présente une vue d’ensemble des procédures d’utilisation des calculs et scripts Designer en vue de développer et d’étendre des formulaires créés dans Designer.

Il est possible d’utiliser les calculs et les scripts pour effectuer ces types d’actions :

• Modifier le comportement et l’aspect des objets au moment de l’exécution ;

• Contrôler la présentation des valeurs de champ ;

• Proposer une interaction avec les personnes remplissant les formulaires à l’aide de boîtes de dialogue et d’indications visuelles ;

• Automatiser le remplissage de formulaires ;

• Contrôler l’environnement hôte ;

• Communiquer avec les services Web ;

• Communiquer avec les bases de données et remplir des formulaires avec des données provenant de sources de données.

REMARQUE : Ce document utilise les termes d’Adobe Experience Manager Forms, d’AEM Forms, d’AEM Forms on JEE et de LiveCycle de manière interchangeable.

1.1. Objet et contenu du guide

Concepts de base des scripts , guide destiné aux auteurs et développeurs de formulaire souhaitant utiliser des calculs et scripts pour décupler les fonctionnalités des formulaires. Nous partons du principe que vous connaissez les langages de script, en particulier JavaScript.™, ainsi que les modèles d’objet. Vous devez également maîtriser Adobe® Acrobat® Professional ou Acrobat Standard et savoir travailler dans un environnement XML structuré.

Concepts de base des scripts fournit les informations suivantes :

• Une introduction à l’utilisation des calculs et scripts pour une conception plus étendue de vos formulaires

• Des informations détaillées et claires, ainsi que des exemples de fonctions de calculs et scripts

1

Page 8: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

À propos de ce document 1

• Des références à d’autres ressources proposant des informations supplémentaires relatives à la rédaction de scripts Designer et aux technologies associées.

Une fois que vous avez lu ce guide, vous devriez être fin prêt à utiliser les calculs et scripts Designer. Vous verrez que les descriptions et exemples contenus dans ce guide vous donnent suffisamment d’indications et d’informations pour vous permettre d’effectuer vos projets.

1.2. Informations complémentaires

Adobe propose un grand éventail de ressources dédiées à la rédaction de scripts Designer et destinées aussi bien aux auteurs qu’aux développeurs de formulaires.

1.2.1. Aide de Designer

Contient des informations détaillées sur l’utilisation du produit, notamment des informations sur l’utilisation des calculs et des scripts. Elle doit être votre source de référence pour toutes les questions relatives à Designer. Vous pouvez accéder à l’ Aide de Designer à partir du menu Aide, ou en ligne : Aide de Designer .

1.2.2. Concepts de base des scripts

Présentation les méthodes de création des calculs et des scripts à utiliser avec Designer. Il est destiné à vous aider lors de la création de calculs et scripts à l’aide de FormCalc et JavaScript.

1.2.3. Guide de référence pour les scripts

Le document relatif aux références sur les objets de script de est un document de référence détaillé des modèles, objets, propriétés et méthodes disponibles dans Designer. Le document PDF est conçu comme référence uniquement, il ne donne pas d’informations sur la création de calculs ou de scripts.

Voir Référence pour les scripts.

1.2.4. Forums utilisateurs

Le forum de Designer est un point de rencontre pour les professionnels souhaitant discuter de questions relatives à Designer. Il est possible de répondre aux questions des utilisateurs, de signaler un bogue ou un problème trouvé dans le produit, ou de poser des questions à d’autres créateurs de formulaires ou à des experts Adobe. Pour plus d’informations, voir www.adobeforums.com.

2

Page 9: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

À propos de ce document

1.2.5. Exemples de script

Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un formulaire exemple ainsi que toutes les données utilisées pour créer et afficher ce dernier. De nouveaux exemples sont régulièrement ajoutés par les experts Adobe et des tiers. Voir le Centre de développement.

3

Page 10: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer 2

2. Création de scripts avec Designer

Dans le processus de conception des formulaires, un développeur de formulaires peut utiliser des calculs et des scripts afin d’apporter à l’utilisateur un confort d’utilisation amélioré. Vous pouvez ajouter des calculs et des scripts à la plupart des champs et objets. Par exemple, le script JavaScript suivant multiplie les valeurs de deux champs numériques et affiche le résultat dans un troisième champ numérique :

NumericField3.rawValue = NumericField1.rawValue * NumericField2.rawValue;

A un niveau plus avancé, vous pouvez créer vos propres fonctions personnalisées répondant au mieux à vos besoins de traitement des formulaires.

Designer reconnaît deux langages de script, chacun d’eux étant défini selon les besoins d’un type particulier de développeur de formulaires. FormCalc est un langage immédiat, d’utilisation aisée, adapté aux fonctionnalités communes de tableaux. Il comprend diverses fonctions intégrées conçues pour réduire le temps nécessaire au développement de votre modèle de formulaire. JavaScript, langage de script puissant, offre une flexibilité optimale pour la création de scripts et vous permet de bénéficier des connaissances actuelles du langage.

Soyez conscient que l’ajout de scripts à un formulaire est une opération facultative. Vous pouvez choisir d’utiliser des scripts pour améliorer le confort d’utilisation, mais Designer propose de nombreuses fonctions, parmi les plus puissantes, pour créer un formulaire sans avoir à recourir aux scripts. Cependant, les scripts vous permettent de manipuler et de commander quasiment tous les aspects de votre conception de formulaire.

REMARQUE : Vous pouvez également utiliser la boîte de dialogue Créateur d’actions dans le menu Outils pour créer des fonctions interactives communes dans des formulaires dotés d’une disposition souple, sans avoir à écrire de scripts.

4

Page 11: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer

2.1. Fonctionnement des scripts

Les scripts de Designer reposent sur un modèle d’événement permettant de modifier divers aspects des objets de formulaire au moment de l’exécution. Les concepteurs de formulaires peuvent ajouter des scripts aux objets en fonction du moment souhaité pour l’exécution du script. Vous pouvez par exemple placer le script suivant sur l’événement click d’un objet de bouton, afin d’afficher un message lorsque l’utilisateur clique sur le bouton au moment de l’exécution :

xfa.host.messageBox("This is a message for a form filler.", "User Feedback", 3);

Les scripts associés à un événement particulier sont exécutés au moment où cet événement se produit. Certains événements peuvent se produire à plusieurs reprises au cours d’une même session de remplissage d’un formulaire. Par exemple, le script suivant ajoute le chiffre un à la valeur active d’un champ numérique :

NumericField1.rawValue = NumericField1.rawValue + 1;

Si vous ajoutez ce script à l’événement calculate pour NumericField1, lors de la première ouverture du formulaire, NumericField1 affiche la valeur 2. Cela indique que l’événement calculate s’est produit deux fois dans la séquence d’événements exécutée à l’ouverture du formulaire.

LIENS CONNEXES :EvénementsObjets prenant en charge les calculs et les scriptsComprendre les relations entre les objets de la Bibliothèque d’objets

2.2. Objets prenant en charge les calculs et les scripts

Le tableau suivant donne un rapide aperçu des scripts pris en charge par les objets standard inclus dans la palette Bibliothèque de Designer.

Objets prenant en charge les calculs et les scripts Objets ne prenant pas en charge les calculs et les scripts

Codes à barres Cercle

Bouton Zone de contenu

Case à cocher Ligne

Date/Heure Rectangle

Champ décimal Image

5

Page 12: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer 2

LIENS CONNEXES :Comprendre les relations entre les objets de la Bibliothèque d’objets

Champ de signature Jeux de sous-formulaires

Zone de liste déroulante Sections du tableau

Bouton Envoyer par messagerie Texte

Bouton Envoyer via HTTP

Champ d’image

Zone de liste

Champ numérique

Code à barres de formulaires pour support papier

Champ du mot de passe

Bouton Imprimer

Bouton radio

Bouton Réinitialiser

Sous-formulaire

Tableau (y compris les rangées de contenu, les rangées d’en-tête et les rangées de pied de page)

Champ de texte

Objets prenant en charge les calculs et les scripts Objets ne prenant pas en charge les calculs et les scripts

6

Page 13: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer

2.3. Comprendre les relations entre les objets de la Bibliothèque d’objets

Lorsque vous créez des calculs et des scripts dans Designer, n’oubliez pas que les objets auxquels vous ajoutez des scripts sont en réalité définis comme objets XML dans l’architecture de formulaires XML sous-jacente. Cela signifie que l’onglet Standard de la palette Bibliothèque d’objets contient une grande variété d’objets et que la plupart d’entre eux sont définis par le même objet XML. Par conséquent, les différentes propriétés et méthodes de script disponibles dépendent de la définition de cet objet XML et non de l’objet présent dans la palette Bibliothèque d’objets.

Les objets disponibles dans l’onglet Standard de la palette Bibliothèque d’objets dépendant de la même définition d’objet XML de base partagent une série de propriétés et de méthodes communes. Si vous faites référence à la section Objets de script, vous déterminez le jeu de propriétés et de méthodes disponibles selon l’objet XML de base correspondant. De même, chaque définition d’objet XML de base contient un objet enfant qui contrôle de manière spécifique l’apparence visuelle de l’objet Designer.

Par exemple, si vous voulez parcourir les propriétés et les méthodes disponibles pour un objet Champ Date/Heure, commencez par l’objet propriétés d’objet. Si vous voulez parcourir l’objet XML correspondant contrôlant l’apparence visuelle du champ Date/Heure, affichez dateTimeEdit.

Le tableau ci-dessous illustre le mappage entre les objets visibles dans l’onglet Standard de la palette Bibliothèque d’objets dans Designer, ainsi que l’objet de l’architecture de formulaires XML corres-pondant.

Objet de la bibliothèque d’objets standard

Objet de l’architecture de formulaires XML (base)

Objet de l’architecture de formulaires XML (IU)

Codes à barres propriétés d’objet barcode

Bouton propriétés d’objet button

Case à cocher propriétés d’objet checkButton

Date/Heure propriétés d’objet dateTime

Champ décimal propriétés d’objet numericEdit

Champ de signature propriétés d’objet signature

Zone de liste déroulante propriétés d’objet choiceList

Bouton Envoyer par messagerie propriétés d’objet button

Bouton Envoyer via HTTP propriétés d’objet button

7

Page 14: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer 2

LIENS CONNEXES :Objets prenant en charge les calculs et les scripts

2.4. Editeur de script

L’éditeur de script est l’endroit où vous créez, modifiez et visualisez les calculs et les scripts d’un formulaire donné. Par exemple, vous pouvez utiliser l’éditeur de script pour écrire un simple calcul ajoutant deux champs numériques ou scripts complexes, ce qui modifie l’apparence du formulaire en fonction des actions de l’utilisateur final. Designer prend en charge des scripts soit en langage FormCalc (langage de Designer) soit en langage JavaScript.

Par défaut, l’éditeur de script est affiché dans la partie supérieure de l’espace de travail de Designer. Vous pouvez toutefois l’ancrer à l’emplacement de votre choix. Il propose à la fois une vue uniligne et une vue multiligne, entre lesquelles vous pouvez basculer librement en fonction de vos besoins. La vue uniligne permet d’augmenter l’espace réservé à l’affichage de l’éditeur de disposition et des autres palettes. La vue multiligne permet, quant à elle, d’augmenter l’espace réservé à la rédaction des scripts.

Champ d’image propriétés d’objet imageEdit

Zone de liste propriétés d’objet choiceList

Champ numérique propriétés d’objet numericEdit

Code à barres de formulaires pour support papier

propriétés d’objet barcode

Champ du mot de passe propriétés d’objet passwordEdit

Bouton Imprimer propriétés d’objet button

Bouton radio propriétés d’objet checkButton

Bouton Réinitialiser propriétés d’objet button

Sous-formulaire sous-formulaire N/A

Tableau (y compris les rangées de contenu, les rangées d’en-tête et les rangées de pied de page)

sous-formulaire N/A

Champ de texte propriétés d’objet textEdit

Objet de la bibliothèque d’objets standard

Objet de l’architecture de formulaires XML (base)

Objet de l’architecture de formulaires XML (IU)

8

Page 15: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer

AfficherRépertorie tous les événements de conception de formulaire qui permettent à l’utilisateur de rédiger des scripts. Tous les événements qui ne s’appliquent pas à un objet en particulier apparaissent en grisé. Les événements qui contiennent un calcul ou un script sont affichés avec un * (astérisque) à côté du nom de l’événement.

Afficher les événements pour les objets enfant Affiche l’événement actuellement sélectionné dans la liste Afficher pour l’objet actif et tous

ses objets enfant. Si vous sélectionnez l’objet supérieur de la palette Hiérarchie, cette option affiche l’événement actuellement sélectionné dans la liste Afficher pour tous les objets de votre formulaire.

Fonctions Affiche une liste des fonctions intégrées FormCalc ou JavaScript, en fonction du langage

de script sélectionné dans la liste Langage.

Pour insérer une fonction sur votre champ d’édition de script, choisissez une fonction dans la liste et appuyez sur Entrée.

Vérifier la syntaxe des scripts Vérifie tous les scripts d’un formulaire afin d’assurer une bonne syntaxe et répertorie toutes

les erreurs dans l’onglet Avertissements de la palette Rapport.

LangueSpécifie le langage de script à utiliser pour le calcul ou le script actuel. Deux options sont disponibles :

• FormCalc FormCalc est un langage de calcul natif d’Adobe, idéal pour des scripts courts, tels que des calculs simples.

• JavaScript JavaScript est le langage de script par défaut pour les nouveaux formulaires. (Voir Pour paramétrer le langage de script par défaut pour les nouveaux formulaires.)

Le langage de script affiché dans la liste Langage correspond à l’option de langage de script que vous choisissez comme langage par défaut pour les nouveaux formulaires dans le panneau Espace de travail dans la boîte de dialogue Options. Cependant, si vous modifiez le réglage de langage de script pour le formulaire en cours dans l’onglet Valeurs par défaut dans la boîte de dialogue Propriétés du formulaire, le langage de script affiché dans la liste Langage est modifié de la même manière pour tous les nouveaux scripts des nouveaux événements. La modification de l’option de langage de script dans la boîte de dialogue Propriétés du formulaire n’affecte en rien le langage de script pour les scripts existants. Si un événement contient déjà un script et que ce script est supprimé, l’éditeur de script continue d’utiliser le même langage de script pour toute la durée de votre session de travail dans Designer.

9

Page 16: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de scripts avec Designer 2

Exécuter surIndique l’emplacement où le calcul ou le script doit être exécuté. Trois options sont disponibles :

• Client Les calculs et scripts sont exécutés pendant que l’application client (par exemple, Acrobat ou Adobe® Reader®ou un navigateur Web) traite le formulaire.

• Serveur Les calculs et scripts sont exécutés pendant que l’application serveur (par exemple, le générateur de formulaires) traite le formulaire.

• Client et serveur Les calculs et scripts sont exécutés pendant que l’application serveur (par exemple, Forms) traite le formulaire, sauf dans les cas où l’application client HTML prend en charge les scripts côté client. Il peut s’agir, par exemple, d’un script accédant à la base de données pour insérer automatiquement un certain nombre de données dans un formulaire.

Propagation de l’événementPour afficher la case à cocher Propagation de l’événement, accédez à la boîte de dialogue Outils > Options, et dans l’onglet Espace de travail, cochez la case d’affichage de l’option Propagation de l’événement.

Vous pouvez rendre vos scripts globaux, en activant la propagation de l’événement dans l’Editeur de script. Le paramètre permet aux événements de formulaire de se propager aux conteneurs ancêtres. La propagation de l’événement peut réduire le nombre de scripts dans un formulaire. Par exemple, vous pouvez créer un script global pour contrôler l’apparence des champs, des sous-formulaires ou des groupes d’exclusion non valides. Voici des exemples d’événements globaux :

• un événement enter/exit/mouseEnter/mouseExit qui colore le champ actif ;

• un événement de modification qui suit la saisie lors d’une session de formulaire.

10

Page 17: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts

3. Configuration de Designer pour les scripts

3.1. Pour afficher l’éditeur de script

1) Choisissez Fenêtre > Editeur de script.

REMARQUE : vous pouvez utiliser le bouton d’ajustement pour ancrer ou désancrer rapidement l’éditeur de script lorsque celui-ci est affiché dans l’espace de travail Designer.

3.2. Pour passer de la vue uniligne à la vue multiligne

1) Faites glisser la barre de la palette Editeur de script jusqu’à la taille de palette requise.

REMARQUE : la vue multiligne ajoute les options Tous les événements et Evénements avec scripts à la liste Afficher. L’option Tous les événements affiche tous les événements d’un objet de conception de formulaire donné, même si l’événement ne contient ni calculs ni scripts. L’option Evénements avec scripts affiche uniquement les événements d’un objet particulier qui contient des calculs ou des scripts.

3.3. Pour paramétrer le langage de script par défaut pour les nouveaux formulaires

1) Choisissez Outils > Options.

2) Cliquez sur Espace de travail

3) Dans la liste Langage par défaut pour les nouveaux formulaires, sélectionnez le langage de script par défaut à appliquer aux nouveaux formulaires.

11

Page 18: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts 3

3.4. Pour paramétrer le langage de script par défaut pour le formulaire en cours

1) Sélectionnez Fichier > Propriétés du formulaire.

2) Cliquez sur l’onglet Valeurs par défaut.

3) Dans la liste Langage par défaut, sélectionnez le langage de script par défaut à appliquer au formulaire actif.

3.5. Pour paramétrer le langage de script par défaut pour le formulaire en cours

1) Choisissez Edition > Propriétés du formulaire.

2) Cliquez sur l’onglet Valeurs par défaut.

3) Dans la liste Langage par défaut, sélectionnez le langage de script par défaut à appliquer au formulaire actif.

3.6. Pour modifier le langage de script par défaut pour un modèle de formulaire

1) Crée une nouvelle conception de formulaire.

2) Sélectionnez Fichier > Propriétés du formulaire.

3) Cliquez sur l’onglet Valeurs par défaut.

4) Choisissez votre langage de script par défaut dans la liste Langage par défaut.

5) Faites une copie de sauvegarde du fichier du modèle de formulaire original situé dans le dossier Templates où Designer est installé.

6) Enregistrez la nouvelle conception de formulaire au format TDS et écrasez le modèle de formulaire correspondant. Par exemple, enregistrez le fichier sous Letter.tds et écrasez le fichier Letter.tds situé dans le dossier Templates\Blank.

12

Page 19: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts

3.7. Pour modifier le langage de script par défaut pour un modèle de formulaire

1) Crée une nouvelle conception de formulaire.

2) Choisissez Edition > Propriétés du formulaire.

3) Cliquez sur l’onglet Valeurs par défaut.

4) Choisissez votre langage de script par défaut dans la liste Langage par défaut.

5) Faites une copie de sauvegarde du fichier du modèle de formulaire original situé dans le dossier Templates où Designer est installé.

6) Enregistrez la nouvelle conception de formulaire au format TDS et écrasez le modèle de formulaire correspondant. Par exemple, enregistrez le fichier sous Letter.tds et écrasez le fichier Letter.tds situé dans le dossier Templates\Blank.

3.8. Pour choisir l’application de traitement par défaut

1) Sélectionnez Fichier > Propriétés du formulaire.

2) Cliquez sur l’onglet Valeurs par défaut.

3) Choisissez votre application de traitement par défaut dans la liste Exécution par défaut sur le.

REMARQUE : cette procédure définit uniquement la valeur de l’application de traitement par défaut pour l’instance active du formulaire.

Pour éviter d’avoir à changer l’application de traitement par défaut chaque fois que vous créez un formulaire, vous devez modifier le fichier de modèle de formulaire correspondant utilisé pour la création de nouvelles conceptions de formulaire.

13

Page 20: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts 3

3.9. Pour choisir l’application de traitement par défaut

1) Choisissez Edition > Propriétés du formulaire.

2) Cliquez sur l’onglet Valeurs par défaut.

3) Choisissez votre application de traitement par défaut dans la liste Exécution par défaut sur le.

REMARQUE : cette procédure définit uniquement la valeur de l’application de traitement par défaut pour l’instance active du formulaire.

Pour éviter d’avoir à changer l’application de traitement par défaut chaque fois que vous créez un formulaire, vous devez modifier le fichier de modèle de formulaire correspondant utilisé pour la création de nouvelles conceptions de formulaire.

3.10. Pour changer l’application de traitement par défaut pour un modèle de formulaire

1) Crée une nouvelle conception de formulaire.

2) Sélectionnez Fichier > Propriétés du formulaire.

3) Cliquez sur l’onglet Valeurs par défaut.

4) Choisissez votre application de traitement par défaut dans la liste Exécution par défaut sur le.

5) Faites une copie de sauvegarde du fichier du modèle de formulaire original situé dans le dossier Templates où Designer est installé.

6) Enregistrez la nouvelle conception de formulaire au format TDS et écrasez le modèle de formulaire correspondant. Par exemple, enregistrez le fichier sous Letter.tds et écrasez le fichier Letter.tds situé dans le dossier Templates\Blank.

3.11. Pour changer l’application de traitement par défaut pour un modèle de formulaire

1) Crée une nouvelle conception de formulaire.

2) Choisissez Edition > Propriétés du formulaire.

3) Cliquez sur l’onglet Valeurs par défaut.

4) Choisissez votre application de traitement par défaut dans la liste Exécution par défaut sur le.

14

Page 21: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts

5) Faites une copie de sauvegarde du fichier du modèle de formulaire original situé dans le dossier Templates où Designer est installé.

6) Enregistrez la nouvelle conception de formulaire au format TDS et écrasez le modèle de formulaire correspondant. Par exemple, enregistrez le fichier sous Letter.tds et écrasez le fichier Letter.tds situé dans le dossier Templates\Blank.

3.12. Pour afficher des caractères en arabe, hébreu, thaï et vietnamien

Pour afficher les caractères arabes, hébreux, thaïs et vietnamiens dans le panneau Source XML/Editeur de script, vous devez modifier les paramètres de police utilisés par Designer dans ces onglets. Sinon, Designer affiche des rectangles à l’emplacement des caractères concernés.

1) Choisissez Outils > Options, puis Espace de travail dans la liste de gauche.

2) Sélectionnez l’une des options suivantes :

• Formatage de la syntaxe FormCalc pour définir la police dans l’éditeur de script lors de l’utilisation de FormCalc

• Formatage de la syntaxe JavaScript pour définir la police dans l’éditeur de script lors de l’utilisation de JavaScript

• Formatage de la syntaxe de la source XML pour définir la police dans le panneau Source XML

3) Dans la zone Options de polices, sélectionnez une police prenant en charge votre langue. Par exemple, Adobe Arabic prend en charge l’arabe, Adobe Hebrew prend en charge l’hébreu, Adobe Thai prend en charge le thaï et Myriad® Pro et Minion® Pro prennent en charge le vietnamien. Si la langue choisie ne se trouve pas sur votre système, vous pouvez la rechercher sur Internet.

4) Cliquez sur OK.

5) Cliquez sur OK pour refermer la boîte de dialogue.

15

Page 22: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts 3

3.13. Utilisation de l’espace de travail pour le débogage des calculs et des scripts

L’espace de travail Designer offre plusieurs solutions pour déboguer les calculs et les scripts.

Le tableau ci-dessous indique l’emplacement et le rôle des informations de débogage proposées dans les palettes et panneaux de Designer.

Emplacement dans l’espace de travail Fonction

Panneau Avertissements de la palette Rapport

Affiche les messages cible et d’avertissement ainsi que toutes les erreurs de syntaxe de script JavaScript ou FormCalc lorsque vous choisissez la commande Vérifier la syntaxe des scripts du menu Outils ou que vous cliquez sur le bouton Vérifier la syntaxe des scripts dans la barre d’outils Outils. Pour plus d’informations, voir Pour vérifier la syntaxe des scripts.Lorsque vous cliquez deux fois sur un message d’avertissement de syntaxe dans l’onglet Avertissements, le script qui contient l’erreur est chargé dans l’Editeur de script et la ligne contenant l’erreur est mise en surbrillance.Vous pouvez également cliquer deux fois sur un message d’avertissement pour sélectionner l’objet associé dans la Vue de conception de la palette Hiérarchie, puis appuyez sur F1 pour afficher les informations sur la manière de résoudre les avertissements.Pour vérifier les erreurs d’exécution JavaScript, vous pouvez activer la console JavaScript. Pour plus d’informations, voir Débogage JavaScript.

Panneau Liaisons de la palette Rapport

Si vous prévoyez des champs dans votre conception de formulaire qui sont liés à une source de données, le panneau Liaisons peut vous aider en affichant des listes de champs en fonction de la définition des liaisons de données que vous avez effectuée. Par exemple, vous pouvez afficher la liste des champs avec liaisons de données globales uniquement ou seulement ceux pour lesquels aucune liaison de données n’est définie. Cette fonction est particulièrement utile dans les formulaires comportant un grand nombre de liaisons de données.

Panneau Journal de la palette Rapport

Affiche des messages de validation, des erreurs d’exécution de script JavaScript ou FormCalc et des erreurs de rendu de formulaire générées par Designer lorsque vous importez ou enregistrez un formulaire ou que vous le prévisualisez dans l’onglet Aperçu PDF.

Hiérarchie, palette Vous pouvez vous servir de la palette Hiérarchie pour déterminer l’emplacement d’un objet de formulaire pour une syntaxe de référence. La palette Hiérarchie donne une représentation graphique de la structure de votre formulaire. Elle présente le contenu des panneaux Gabarit et Vue de conception.La palette Hiérarchie affiche également les objets référencés sous le nœud Objets référencés. Un objet référencé est un objet ajouté à un formulaire uniquement en cas de besoin. Dès que des données sont enchaînées sur plusieurs pages ou zones de contenu, des sous-formulaire de début et de fin de débordement sont insérés dans le formulaire aux endroits appropriés.

16

Page 23: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Configuration de Designer pour les scripts

Il peut être utile de modifier les options par défaut de l’éditeur de script afin de faciliter le débogage de vos calculs et scripts. Ces options figurent dans le panneau Espace de travail de la boîte de dialogue Options. Pour y accéder, choisissez Outils > Options, puis sélectionnez Espace de travail dans la liste à gauche. Vous pouvez par exemple choisir d’afficher les numéros de ligne dans l’éditeur de script ou de modifier le formatage de la syntaxe FormCalc ou JavaScript.

Panneau Liaison de la palette Objet

Chaque objet Designer pouvant être lié à une source de données possède un onglet Liaison dans la palette Objet. Si vous liez un objet de votre conception de formulaire à un nœud de données particulier à partir de votre connexion de données, la liste Liaison de données (Ouvrir, Enregistrer, Envoyer) affiche une syntaxe de référence FormCalc valide pour l’accès à ce nœud de données. Vous pouvez utiliser la syntaxe de référence FormCalc dans d’autres calculs ou scripts lors des tests.

Source XML, panneau Le panneau Source XML contient le code XML de la conception de formulaire. Le code source XML définit tous les aspects du formulaire. Vous pouvez vous servir du panneau Source XML pour vérifier la structure du modèle d’objet de formulaire XML pour une conception de formulaire et pour comprendre la relation entre les objets et les propriétés. Dans la source XML, les noms d’éléments XML sont équivalents aux noms d’objets dans le modèle d’objet de formulaire XML et les attributs sont équivalents aux propriétés.Lorsque vous sélectionnez un objet dans la palette Hiérarchie, puis cliquez sur le panneau Source XML, la première ligne de l’élément correspondant est mise en surbrillance. Le nom de l’objet dans Designer, tel qu’il est indiqué dans la palette Hiérarchie, devient la valeur de l’attribut name dans la source XML.Vous pouvez configurer les options dans la boîte de dialogue Outils > Options afin de visualiser la source dans le panneau Source XML de manière à afficher ou masquer les numéros de ligne et à définir la couleur de la syntaxe, par exemple.évitez de modifier directement le code source XML.

Emplacement dans l’espace de travail Fonction

17

Page 24: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4. Création de calculs et de scripts

Designer offre une grande variété de fonctions de calcul et de script prévues pour réaliser une multitude d’opérations. Par exemple, le script suivant modifie la couleur de bordure appliquée à la zone de texte et la taille de police de la valeur du champ de texte :

TextField1.border.edge.color.value = "255,0,0"; TextField1.font.typeface = "Courier New";

Il peut être intéressant d’élaborer des formulaires plus complexes pour tirer parti des fonctions de script dans le but d’établir une connexion à la source de données et de manipuler les données au moment de l’exécution. Pour obtenir des exemples de tâches de script courantes, voir Exemples de tâches de script courantes.

La création de calculs et de scripts dans Designer fait appel à une procédure générale que vous devez exécuter chaque fois que vous attachez un calcul ou un script à un objet. Bien que toutes les étapes de la procédure ne soient pas nécessaires lors de la création d’un calcul ou d’un script, il est conseillé de suivre le déroulement normal de la procédure pour éviter de générer des erreurs et d’obtenir des résultats inattendus.

En règle générale, chaque fois que vous créez un calcul ou un script, voici les différentes tâches qu’il convient d’effectuer :

• Sélectionnez l’objet auquel vous voulez attacher un calcul ou un script. Bien que vous puissiez créer des calculs et des scripts qui manipulent la plupart des objets de la conception de formulaire, tous les objets de champ ne prennent pas en charge les événements de formulaire. Pour obtenir la liste des objets standard inclus dans la palette Bibliothèque d’objets dans Designer et prenant en charge les scripts, voir Objets prenant en charge les calculs et les scripts.

• Ecrivez votre calcul ou votre script dans le champ de modification du script de l’éditeur de script.

• Testez le calcul ou le script à partir du panneau Aperçu PDF ou de votre environnement de test.

18

Page 25: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

4.1. Conventions de dénomination des objets et des variables dans une conception de formulaire

Lorsque vous définissez des calculs ou des scripts pour améliorer votre formulaire, soyez particuliè-rement vigilant quant aux noms que vous donnez aux objets et aux variables dans une conception de formulaire. Evitez d’utiliser des noms de propriétés, de méthodes et d’objets de modèle d’objet de formulaire XML pour désigner les objets et les variables dans la conception de formulaire. Les calculs et les scripts risqueraient sinon de ne pas s’exécuter correctement.

Par exemple, si vous créez un nouveau champ de texte nommé x dans un objet de sous-formulaire nommé Subform1, vous pouvez accéder à l’objet de champ de texte à l’aide de la syntaxe suivante :

Subform1.x.[expression]

Cependant, les objets de sous-formulaire présentent déjà une propriété Modèle d’objet de formulaire XML nommée x qui représente la position horizontale du sous-formulaire sur la conception de formulaire.

Pour éviter des conflits de noms, vous devez choisir des conventions d’attribution de noms de champ qui diffèrent des conventions d’attribution de noms du modèle d’objet de formulaire XML. Par exemple, vous pouvez utiliser un des noms de champ suivants pour le champ de texte de l’exemple ci-dessus :

• Valeur horizontale

• x_value

• xLetter

• hValue

Pour obtenir plus d’informations et la liste des noms d’objets, de méthodes et de propriétés Modèle d’objet de formulaire XML, voir Guide de référence pour les scripts.

LIENS CONNEXES :Attribution de noms aux variablesCréation de calculs et de scripts

19

Page 26: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4.2. Choix du langage de script

Designer prend en charge les scripts créés avec FormCalc et JavaScript. Avant d’écrire un script dans un formulaire, vous devez connaître les avantages que présentent chacun des langages de script.

FormCalc est un langage de calcul qui inclut une grande variété de fonctions intégrées destinées à simplifier les fonctionnalités de formulaire les plus courantes. Vous pouvez, par exemple, profiter des fonctions financières de FormCalc pour évaluer le montant du versement d’un prêt, compte tenu du montant du prêt, du taux d’intérêt et du nombre de versements.

JavaScript est un langage de script plus puissant et varié. Outre une plus grande flexibilité, il vous permet de mettre à profit vos connaissances en matière de script. Vous pouvez, par exemple, réuti-liser les fonctions JavaScript existantes dans Designer pour limiter le nombre de lignes de code à écrire.

REMARQUE : Designer prend en charge les versions JavaScript 1.6 et antérieures.

Vous pouvez sélectionner le langage de script utilisé pour les nouveaux formulaires dans le panneau Espace de travail de la boîte de dialogue Options et pour le formulaire actif dans l’onglet Valeurs par défaut de la boîte de dialogue Propriétés du formulaire.

Le langage de script affiché dans la liste Langage de l’éditeur de script correspond à l’option de langage de script que vous choisissez comme langage par défaut pour les nouveaux formulaires. Cependant, si vous modifiez le réglage de langage de script pour le formulaire actif, le langage de script affiché dans la liste Langage est également modifié pour les nouveaux scripts des nouveaux événements. La modification de l’option de langage de script dans la boîte de dialogue Propriétés du formulaire n’affecte en rien le langage de script utilisé pour les scripts existants. Si un événement contient déjà un script et que ce script est supprimé, l’éditeur de script continue d’utiliser le même langage de script pour toute la durée de votre session de travail dans Designer.

REMARQUE : À compter du 10 mars 2012, Adobe désapprouve l’utilisation de la fonctionnalité des guides d’Adobe® LiveCycle® ES. La fonction Guides est disponible uniquement à des fins de mise à niveau et sera retirée du produit après les deux prochaines versions majeures.

Le tableau suivant souligne quelques différences essentielles entre FormCalc et JavaScript.

FormCalc JavaScript

Langage de calcul natif valide d’Adobe dans Designer et Forms

Langage de script standard utilisé dans de nombreuses applications logicielles courantes

Scripts plus courts (généralement une ligne seulement)Reconnaît les boucles de script

Possibilité de scripts plus longs si nécessaire avec la possibilité d’utiliser des boucles

Non pris en charge par les guides de formulaire (désapprouvé)

Pris en charge par les guides de formulaire (désapprouvé)

20

Page 27: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

LIENS CONNEXES :Utilisation de FormCalcUtilisation de JavaScriptCréation et réutilisation des fonctions JavaScript

4.3. Pour créer un calcul ou un script

1) Sélectionnez un objet de la conception de formulaire qui prend en charge les événements. Ajoutez par exemple un bouton à un nouveau formulaire vierge.

2) Dans la liste Afficher de l’éditeur de script, choisissez un des événements qui s’applique à l’objet. L’événement que vous sélectionnez détermine le moment d’exécution du script. Si vous écrivez un calcul ou un script ayant un impact sur un objet qui ne reconnaît pas les événements de formulaire, vous devez ajouter votre calcul ou script à un objet de conception de formulaire qui prend en charge les événements. Par exemple, à l’aide du nouvel objet de bouton, sélec-tionnez l’événement click dans la liste Afficher.

3) Choisissez le langage de script dans la liste Langage. Par exemple, pour le nouvel objet de bouton, sélectionnez JavaScript.

4) Dans la liste Exécuter sur, choisissez l’emplacement où le script doit être exécuté. Par exemple, pour le nouvel objet de bouton, sélectionnez Client.

Vous pouvez choisir d’exécuter des calculs ou des scripts sur l’application cliente (par exemple, Acrobat ou un navigateur Web) ou l’application serveur (par exemple).

Contient une variété de fonctions intégrées utiles qui réduisent le nombre de scripts requis pour accomplir les tâches courantes sur les conceptions de formulaire

Fournit l’accès aux fonctions de modèle d’objet Acrobat et aux fonctions JavaScript d’Acrobat.

Reconnaît les formats de date, d’heure, de devise et de nombre

Débogage possible en utilisant JavaScript Debugger dans Acrobat

Les fonctions URL intégrées Post, Putet Get permettent des interactions Web

Possibilité de créer des fonctions adaptées à vos besoins

Compatible sur toutes les plateformes prises en charge par Designer et Forms

Compatible sur toutes les plateformes prises en charge par Designer et Forms

FormCalc JavaScript

21

Page 28: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

Dans le cas de l’application cliente, le traitement des calculs et des scripts s’effectue après la génération du formulaire. Dans le cas de l’application serveur, les calculs et des scripts sont exécutés au moment de la génération du formulaire. La prévisualisation de votre formulaire à l’aide du panneau Aperçu PDF permet de simuler l’ouverture du formulaire dans Acrobat. Ainsi, les scripts s’exécutent sur l’application cliente ou l’application cliente et serveur.

REMARQUE : si vous choisissez Client et serveur dans la liste Exécuter sur, le script est exécuté soit sur l’application client, soit sur l’application serveur, selon l’application qui traite le formulaire.

5) Dans le champ Source du script, insérez le calcul FormCalc ou script JavaScript. Vous pouvez tirer profit de la fonctionnalité de fin d’instructions de Designer pour créer les syntaxes de référence dans le cadre de calculs ou de scripts. Vous pouvez, par exemple, ajouter le script JavaScript suivant au nouvel objet de bouton :

xfa.host.messageBox("Hello World!", "Creating a new script", 3);

6) Une fois que vous avez terminé votre conception de formulaire, testez et déboguez vos calculs et scripts avant de les mettre en production. Par exemple, pour le nouvel objet de bouton, prévisualisez le document PDF du formulaire à l’aide du panneau Aperçu PDF. Cliquez sur l’objet de bouton pour afficher la zone de message indiquée à l’étape 5.

Pour plus d’informations sur les objets de Designer prenant en charge les scripts, voir Objets prenant en charge les calculs et les scripts.

4.4. Pour créer un calcul ou un script

1) Sélectionnez un objet de la conception de formulaire qui prend en charge les événements. Ajoutez par exemple un bouton à un nouveau formulaire vierge.

2) Dans la liste Afficher de l’éditeur de script, choisissez un des événements qui s’applique à l’objet. L’événement que vous sélectionnez détermine le moment d’exécution du script. Si vous écrivez un calcul ou un script ayant un impact sur un objet qui ne reconnaît pas les événements de formulaire, vous devez ajouter votre calcul ou script à un objet de conception de formulaire qui prend en charge les événements. Par exemple, à l’aide du nouvel objet de bouton, sélectionnez l’événement click dans la liste Afficher.

3) Choisissez le langage de script dans la liste Langage. Par exemple, pour le nouvel objet de bouton, sélectionnez JavaScript.

4) Dans la liste Exécuter sur, choisissez l’emplacement où le script doit être exécuté. Par exemple, pour le nouvel objet de bouton, sélectionnez Client.

Vous pouvez choisir d’exécuter des calculs ou des scripts sur l’application cliente (par exemple Acrobat, ou un navigateur Web) ou l’application serveur (par exemple).

22

Page 29: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

Dans le cas de l’application cliente, le traitement des calculs et des scripts s’effectue après la génération du formulaire. Dans le cas de l’application serveur, les calculs et des scripts sont exécutés au moment de la génération du formulaire. La prévisualisation de votre formulaire à l’aide du panneau Aperçu PDF permet de simuler l’ouverture du formulaire dans Acrobat. Ainsi, les scripts s’exécutent sur l’application cliente ou l’application cliente et serveur.

REMARQUE : si vous choisissez Client et serveur dans la liste Exécuter sur, le script est exécuté soit sur l’application client, soit sur l’application serveur, selon l’application qui traite le formulaire.

5) Dans le champ Source du script, insérez le calcul FormCalc ou script JavaScript. Vous pouvez tirer profit de la fonctionnalité de fin d’instructions de Designer pour créer les syntaxes de référence dans le cadre de calculs ou de scripts. Vous pouvez, par exemple, ajouter le script JavaScript suivant au nouvel objet de bouton :

xfa.host.messageBox("Hello World!", "Creating a new script", 3);

6) Une fois que vous avez terminé votre conception de formulaire, testez et déboguez vos calculs et scripts avant de les mettre en production. Par exemple, pour le nouvel objet de bouton, prévisualisez le document PDF du formulaire à l’aide du panneau Aperçu PDF. Cliquez sur l’objet de bouton pour afficher la zone de message indiquée à l’étape 5.

Pour plus d’informations sur les objets de Designer prenant en charge les scripts, voir Objets prenant en charge les calculs et les scripts.

LIENS CONNEXES :Utilisation de FormCalcUtilisation de JavaScriptEvénementsPour utiliser des options de fin d’instructions pour créer des calculs et des scriptsDétermination du moment de l’exécution de votre calcul ou scriptPour afficher les événements de script et les scriptsDétermination de l’emplacement d’exécution de votre calcul ou scriptTest et débogage des calculs et des scripts

4.5. Pour rechercher du texte ou d’autres éléments

Vous pouvez rechercher rapidement dans le panneau Source XML ou dans l’éditeur de script toutes les occurrences d’une expression ou d’un mot précis.

1) Dans le panneau Source XML ou dans l’éditeur de script, choisissez Edition > Rechercher ou cliquez avec le bouton droit pour afficher le menu contextuel.

2) Dans la zone Rechercher, entrez le texte à rechercher.

3) Sélectionnez les autres options de votre choix.

23

Page 30: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4) Cliquez sur Rechercher suivant.

Pour annuler une recherche en cours, appuyez sur Echap ou cliquez sur le bouton Annuler.

IMPORTANT : bien qu’il soit possible de modifier le code source XML directement dans le panneau Source XML, il est recommandé de ne pas faire de modifications à moins que vous ne soyez habitué à l’architecture de formulaires XML d’Adobe. Pour plus d’informations sur l’archi-tecture des formulaires XML, visitez le Centre de développement.

LIENS CONNEXES :Création de calculs et de scriptsPour créer un calcul ou un script

Pour remplacer du texte ou d’autres élémentsPour utiliser des options de fin d’instructions pour créer des calculs et des scriptsDétermination du moment de l’exécution de votre calcul ou scriptPour afficher les événements de script et les scriptsDétermination de l’emplacement d’exécution de votre calcul ou scriptTest et débogage des calculs et des scripts

4.6. Pour remplacer du texte ou d’autres éléments

Vous pouvez remplacer automatiquement du texte. Par exemple, vous pouvez remplacer Sté par Société.

1) Dans l’éditeur de script, sélectionnez Edition > Remplacer.

2) Dans la zone Rechercher, entrez le texte à rechercher.

3) Dans la zone Remplacer par, entrez le texte de substitution.

4) Sélectionnez les autres options de votre choix.

5) Cliquez sur Suivant, Remplacer ou Remplacer tout.

6) Pour annuler une recherche en cours, appuyez sur Echap ou cliquez sur le bouton Annuler.

Pour remplacer un texte apparaissant dans des scripts joints à plusieurs objets sur le formulaire, sélectionnez le sous-formulaire racine du formulaire (par défaut : formulaire1) et sélectionnez Afficher les événements pour les objets enfant, puis effectuez la procédure ci-dessus.

IMPORTANT : bien qu’il soit possible de modifier le code source XML directement dans le panneau Source XML, il est recommandé de ne pas faire de modifications à moins que vous ne soyez habitué à l’architecture de formulaires XML d’Adobe. Pour plus d’informations sur l’architecture des formulaires XML, visitez le Centre de développement.

LIENS CONNEXES :Création de calculs et de scriptsPour rechercher du texte ou d’autres éléments

24

Page 31: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

4.7. Pour utiliser des options de fin d’instructions pour créer des calculs et des scripts

La fonctionnalité de fin d’instructions de l’éditeur de script permet de créer des calculs et des scripts de manière interactive.

Durant la création d’un calcul ou d’un script, lorsque vous saisissez un point (« . ») immédiatement après un objet de formulaire ou un nom de propriété, la fonctionnalité de fin d’instructions affiche une liste des méthodes et des propriétés disponibles. Si la liste de fin d’instructions n’apparaît pas, assurez-vous d’avoir saisi correctement le nom de la propriété ou de l’objet et assurez-vous que celui-ci se trouve dans la plage d’objets dans laquelle vous créez votre script. Pour plus d’informa-tions sur les objets de référencement dans les calculs et les scripts, voir Référence aux objets dans les calculs et scripts.

1) Tapez le nom d’un objet de conception de formulaire, d’une propriété ou d’un raccourci FormCalc valide suivi d’un point (« . »).

2) Choisissez la méthode ou la propriété que vous souhaitez appliquer à l’objet de modèle de formulaire et poursuivez l’écriture du script. Pour fermer la liste de fin d’instructions sans sélectionner de fonction, appuyez sur la touche Echap.

La liste des propriétés disponibles du modèle d’objet de formulaire XML varie en fonction de l’objet de modèle de formulaire ou de la propriété qui apparaît avant le point (« . »).

REMARQUE : la liste de fin d’instructions apparaît uniquement lors de l’accès aux objets, propriétés et méthodes dans l’objet Modèle d’objet de formulaire XML. Elle n’apparaît pas lorsque vous travaillez avec des objets ou des méthodes JavaScript standard.

LIENS CONNEXES :Référence aux propriétés et aux valeurs d’objet

25

Page 32: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4.8. Pour insérer automatiquement la syntaxe de référence à un objet

Au lieu d’utiliser la liste de fin d’instructions pour créer une syntaxe de référence d’objet, vous pouvez tirer parti de la fonction d’insertion de syntaxe de référence d’objet pour intégrer automati-quement la syntaxe de référence à votre calcul ou à votre script. Cette fonction insère la syntaxe de référence abrégée pour l’objet sélectionné à partir de la zone du canevas dans le champ Source du script de l’éditeur de script. Vous perdrez ainsi beaucoup moins de temps lors de la création des calculs et des scripts et aurez l’assurance que la syntaxe est correcte.

1) Assurez-vous que le champ Source du script de l’éditeur de script est activé et que le curseur est positionné à l’endroit où vous souhaitez insérer la référence d’objet.

2) Dans votre formulaire, cliquez sur l’objet à référencer tout en maintenant la touche Ctrl enfoncée. Le curseur change de forme pour faciliter la sélection d’un objet.

LIENS CONNEXES :Référence aux objets dans les calculs et scripts

4.9. Détermination du moment de l’exécution de votre calcul ou script

Chaque fois que vous créez des calculs et des scripts, vous êtes tenu d’associer chaque entrée à un événement de formulaire spécifique. Chaque événement correspond à un changement dans l’état du formulaire qui se produit à un moment précis.

Ce changement peut survenir lors de la génération du formulaire sur le serveur par Forms, sur le client par Acrobat ou par Adobe Reader pendant qu’un utilisateur remplit un formulaire.

Lorsque le changement d’état se produit, tous les calculs ou scripts associés à l’événement sont traités automatiquement.

L’événement utilisé lors de la création d’un calcul ou d’un script détermine, dans une certaine mesure, les éléments à prendre en compte dans le calcul ou le script. La quantité et le type d’informations disponibles dans un formulaire peut varier en fonction du moment choisi pour le déclenchement de l’événement. Ainsi, un calcul ou un script ayant pour fonction de récupérer une valeur peut donner des résultats différents selon qu’il est exécuté avant ou après les actions effectuées par la personne remplissant le formulaire. Pour plus d’informations sur les événements, voir Evénements.

Selon le type de formulaire que vous créez, il est possible que certains événements n’aient jamais lieu. Si vous concevez, par exemple, un formulaire avec une disposition fixe et sans objet interactif, les événements interactifs associés aux actions de la personne chargée de remplir le formulaire risquent de ne jamais se produire. Les scripts correspondant à ces événements ne seront donc pas exécutés.

26

Page 33: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

Bien que Designer prenne en charge une grande variété d’événements de formulaire, il est possible de réaliser de très nombreuses tâches de calcul et de script en ayant recours simplement à quelques événements se produisant lors de changements majeurs dans l’état du formulaire, comme dans le cas des événements suivants :

docReadyCet événement s’exécute immédiatement après l’ouverture du formulaire dans Acrobat ou Adobe Reader® et juste avant que la personne remplissant le formulaire commence à interagir avec les objets du formulaire. Cet événement est le dernier qui se produit avant que le contrôle du formulaire ne soit donné à l’utilisateur.

enterSe produit lorsque la personne remplissant le formulaire active un champ, un bouton ou un sous-formulaire particulier.

exitSe produit lorsque la personne remplissant le formulaire active un autre objet à la place d’un champ, d’un bouton ou d’un sous-formulaire particulier.

changeSe produit lorsque la personne remplissant le formulaire modifie la valeur d’un champ. Cet événement est plus communément utilisé avec des listes déroulantes ou des zones de liste pour exécuter un script lorsqu’un utilisateur modifie la valeur actuelle.

clickSe produit lorsque la personne remplissant le formulaire clique sur un champ ou un bouton. Cet événement est plus communément utilisé avec les boutons pour exécuter un script lorsqu’un utilisateur clique sur un bouton.

LIENS CONNEXES :Pour afficher les événements de script et les scriptsEvénementsDétermination de l’emplacement d’exécution de votre calcul ou script

27

Page 34: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4.10. Pour afficher les événements de script et les scripts

L’éditeur de script offre différents moyens de visualiser des événements de script pour les objets de votre formulaire, selon le type d’objet que vous sélectionnez et le nombre d’événements que vous avez l’intention d’afficher.

Avant de commencer, assurez-vous que les paramètres suivants sont appliqués :

• Pour afficher l’éditeur de script, choisissez Fenêtre > Editeur de script.

• Si la fenêtre de l’éditeur de script n’est pas assez grande pour afficher au moins deux lignes de script à la fois, agrandissez-la en faisant glisser vers le bas sa bordure inférieure.

4.10.1. Pour afficher un événement de script pour un simple objet dans l’éditeur de script

1) Sélectionnez un objet dans votre formulaire.

2) Dans la zone Afficher, sélectionnez un événement de script valide.

4.10.2. Pour afficher un événement de script pour un objet conteneur et ses enfants dans l’éditeur de script

1) S’il n’est pas déjà en mode multiligne, développez l’éditeur de script afin d’afficher plusieurs lignes de script et assurez-vous que l’option Afficher les événements pour les objets enfant est sélectionnée.

2) Sélectionnez un objet conteneur, tel qu’un sous-formulaire.

3) Dans la zone Afficher, sélectionnez un événement de script valide.

Les événements sont présentés dans le champ de modification du script de l’éditeur de script, séparés par la syntaxe de référence pour chaque événement. Certains événements s’appliquent uniquement à des types d’objet spécifiques. Lorsque vous sélectionnez un événement de script, le champ de modification du script de l’éditeur de script présente seulement les instances valides de l’événement. Par exemple, si vous sélectionnez un sous-formulaire contenant une liste déroulante et choisissez l’événement preOpen preOpen, l’éditeur de script affiche une seule entrée représentant la liste déroulante. En effet, l’événement preOpen s’applique uniquement aux listes déroulantes. Sinon, la sélection de l’événement enter a pour effet d’afficher deux entrées, une pour la liste déroulante et une pour le sous-formulaire.

REMARQUE : pour identifier les événements contenant des scripts, la zone Afficher insère un astérisque (*) à la suite du nom de l’événement. Si un événement contient un script, dès que vous le sélectionnez dans la zone Afficher, la source est indiquée dans le champ de modification du script de l’éditeur de script.

28

Page 35: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

4.10.3. Pour afficher tous les événements de script pour un simple objet dans l’éditeur de script

1) Sélectionnez un objet dans votre formulaire.

2) Dans la liste Afficher, sélectionnez Tous les événements.

Les événements sont présentés dans le champ de modification du script de l’éditeur de script, séparés par la syntaxe de référence pour chaque événement.

4.10.4. Pour afficher tous les événements de script pour un objet conteneur et ses enfants dans l’éditeur de script

1) S’il n’est pas déjà en mode multiligne, développez l’éditeur de script afin d’afficher plusieurs lignes de script et assurez-vous que l’option Afficher les événements pour les objets enfant est sélectionnée.

2) Sélectionnez un objet conteneur, tel qu’un sous-formulaire.

3) Dans la liste Afficher, sélectionnez Tous les événements.

Les événements sont présentés dans le champ de modification du script de l’éditeur de script, séparés par la syntaxe de référence pour chaque événement.

4.10.5. Pour afficher tous les scripts pour un simple objet dans l’éditeur de script

1) Sélectionnez un objet auquel est associé un script.

2) Dans la zone Afficher, sélectionnez Evénements avec scripts.

Les scripts sont présentés dans le champ de modification du script de l’éditeur de script, séparés par la syntaxe de référence pour chaque événement.

4.10.6. Pour afficher tous les scripts pour un objet conteneur et ses enfants dans l’éditeur de script

1) S’il n’est pas déjà en mode multiligne, développez l’éditeur de script afin d’afficher plusieurs lignes de script et assurez-vous que l’option Afficher les événements pour les objets enfant est sélectionnée.

2) Sélectionnez un objet conteneur, tel qu’un sous-formulaire. Tous les événements correspon-dant à l’objet conteneur et ses objets enfant apparaissent dans l’éditeur de script.

3) Dans la liste Afficher, sélectionnez Tous les événements.

Les scripts sont présentés dans le champ de modification du script de l’éditeur de script, séparés par la syntaxe de référence pour chaque événement.

29

Page 36: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

4.11. Détermination de l’emplacement d’exécution de votre calcul ou script

Pour chaque calcul ou script créé dans Designer, vous devez préciser l’emplacement où le calcul ou le script doit être exécuté.

A moins que vous n’utilisiez un traitement sur serveur tel que Forms, assurez-vous que tous vos calculs et scripts sont exécutés sur l’application cliente (par exemple, sur Acrobat, un navigateur Web ou l’application Mobile Workspace).

REMARQUE : les calculs et les scripts FormCalc ne sont pas compatibles avec les formulaires générés au format HTML ; ils ne sont pas pris en compte lors du remplissage de ces formulaires.

Si vous utilisez un traitement sur serveur, vous avez le choix entre exécuter les calculs sur l’applica-tion cliente ou sur le serveur. Dans le deuxième cas, vous choisissez d’exécuter les scripts à un certain point durant le processus de rendu de formulaires.

Pour plus d’informations, voir Détermination du moment de l’exécution de votre calcul ou script.

Si vous choisissez Client et serveur dans la liste Exécuter sur, votre calcul ou script est disponible à la fois pour les applications de type client et serveur. Cette option peut s’avérer particulièrement utile, par exemple, si vous ne savez pas si vos utilisateurs souhaitent utiliser leurs formulaires sur des applications client ou serveur. Cette option est également pratique lorsque vous voulez que certains objets de formulaire se comportent différemment sur les applications client et sur les applications serveur.

LIENS CONNEXES :EvénementsDétermination du moment de l’exécution de votre calcul ou scriptPour afficher les événements de script et les scripts

4.12. Test et débogage des calculs et des scripts

Après avoir créé vos calculs ou scripts et testé votre formulaire, vous pouvez détecter des erreurs de script ou des valeurs de champ inattendues résultant des erreurs de script.

Designer propose trois méthodes principales pour tester et déboguer vos calculs et scripts :

• Utilisation des palettes Espace de travail de Designer. Pour plus d’informations, voir Utilisation de l’espace de travail pour le débogage des calculs et des scripts.

• Pour JavaScript uniquement, JavaScript Debugger vous aide à tester vos scripts. Pour plus d’informations sur l’utilisation du débogueur, voir Débogage JavaScript.

• Résolution des erreurs de votre formulaire à l’aide des propriétés et méthodes du modèle d’événement et du modèle d’hôte.

30

Page 37: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts

Le modèle d’événement et le modèle d’hôte offrent les fonctionnalités nécessaires pour interagir avec l’application hôte ou les différents événements liés au formulaire. Ces modèles renvoient des informations utiles pour le débogage des calculs et des scripts.

Par exemple, le script suivant renvoie un message au moment de l’exécution, indiquant le nom de l’événement contenant le script. Cela indique qu’un événement particulier a été déclenché :

xfa.host.messageBox(xfa.event.name) // FormCalc xfa.host.messageBox(xfa.event.name); // JavaScript

Un autre exemple consiste à obtenir la valeur d’un champ d’un formulaire interactif avant que l’utilisateur ne le modifie manuellement. Cela est utile pour déterminer comment les objets de votre conception de formulaire répondent aux données saisies par l’utilisateur :

xfa.host.messageBox(xfa.event.prevText) // FormCalc xfa.host.messageBox(xfa.event.prevText); // JavaScript

LIENS CONNEXES :Utilisation de l’espace de travail pour le débogage des calculs et des scriptsUtilisation d’une application hôteUtilisation du modèle d’événement

4.13. Pour vérifier la syntaxe des scripts

Lorsque vous travaillez sur une conception de formulaire, vous pouvez vérifier tous les scripts JavaScript ou FormCalc contenant d’éventuelles erreurs de syntaxe afin de vous assurer que les fonctions de formulaire sont celles prévues avant de le diffuser. Les erreurs de syntaxe de scripts trouvées dans le formulaire sont affichées sur l’onglet Avertissements de la palette Rapport. Sur l’onglet Avertissements de la palette Rapport, chaque erreur est répertoriée sur une ligne numérotée distincte avec le nom de l’événement et de l’objet de script ainsi qu’une description de l’erreur. Si de nombreux événements sont affichés, le numéro de ligne pour chaque événement commence par 1.

Vous pouvez cliquer sur une erreur de script contenue dans la liste pour afficher le script pertinent, mettre en surbrillance la ligne qui contient l’erreur et rechercher le point d’insertion au début de la ligne mise en surbrillance. Les erreurs de syntaxe de scripts sont également répertoriées dans l’onglet Avertissements lorsque vous enregistrez une conception de formulaire ou que vous la prévisualisez à l’aide de l’onglet Aperçu PDF.

31

Page 38: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création de calculs et de scripts 4

REMARQUE : vous pouvez également utiliser la boîte de dialogue Atteindre la ligne pour sélectionner l’événement que vous souhaitez visualiser. La liste déroulante d’événements de scripts comprend l’expression SOM (System Object Model), comme indiqué dans les lignes d’en-tête pour chaque événement actuellement visible dans l’Editeur de script.1) Dans l’Editeur de script, choisissez Outils > Vérifier la syntaxe des scripts.

LIENS CONNEXES :

Utilisation de FormCalcUtilisation de JavaScriptObjets prenant en charge les calculs et les scripts

4.14. Utilisation des mesures de protection

Le script qui modifie le modèle sourceSet ou ses enfants rend la certification du formulaire incorrecte et le formulaire ne peut plus être approuvé. Puisqu’un formulaire peut être certifié à tout moment au cours de son cycle de vie, il est important d’utiliser des techniques de script qui empêchent l’échec du formulaire après sa certification.Vous devez travailler avec des clones de ce modèle plutôt qu’avec ce modèle si vous envisagez d’utiliser des scripts qui modifient le modèle sourceSet ou l’un de ses enfants. Le clonage empêche l’échec du formulaire lorsque les scripts modifient un modèle de données. Par exemple, les formu-laires qui exécutent des tâches communes, telles que l’affichage des enregistrements ou la sélection d’enregistrements spécifiques dans une base de données, nécessitent la modification des nœuds de connexion des données contenus dans le modèle sourceSet.Pour cloner le modèle sourceSet, vous devez créer une méthode sur le script qui définit la connexion des données que vous souhaitez modifier dans le modèle sourceSet et vous assurer que le script continue d’utiliser le clone au lieu de la définition.Prenez en considération le script suivant dans une liste déroulante de données. Le script remplit la liste à partir d’une source de données.... var oDB = xfa.sourceSet.nodes.item(nIndex); ... // Recherche le nœud avec le nom de classe "command" var nDBIndex = 0; while(oDB.nodes.item(nDBIndex).className != "command") nDBIndex++;

oDB.nodes.item(nDBIndex).query.recordSet.setAttribute("stayBOF", "bofAction"); oDB.nodes.item(nDBIndex).query.recordSet.setAttribute("stayEOF", "eofAction");

Pour cloner le modèle sourceSet, vous devez modifier la ligne qui a accès à ce dernier en modifiant la méthode de clonage (1) à la fin de l’instruction :

var oDB = xfa.sourceSet.nodes.item(nIndex).clone(1);

REMARQUE : Vous pouvez stocker le nœud de connexion de données clonées dans une variable ou une variable définie dans un objet de script.

32

Page 39: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5. Evénements

Chaque calcul ou script que vous associez à un objet de formulaire correspond à un événement spéci-fique. Un événement est défini comme une occurrence ou une action donnée permettant de modifier l’état d’un formulaire et, lorsque le changement d’état se produit, d’appeler automatiquement le script ou le calcul associé à l’événement. Les événements se produisent à différents stades, du début de la génération du formulaire lorsque les données sont fusionnées avec la conception de formulaire et tout au long de la procédure menant au remplissage du formulaire par l’utilisateur utilisant les objets contenus par le formulaire dans une application client. Grâce à l’application de calculs et de scripts à des événements spécifiques, vous pouvez contrôler chaque aspect de la présentation des objets du formulaire, ainsi que les données et la manière dont les objets et les données répondent à l’interaction de l’utilisateur.

Un simple changement d’état ou une action de l’utilisateur peut déclencher plusieurs événements. Il suffit, par exemple, de déplacer le curseur du champ actif au champ suivant pour déclencher à la fois l’événement exit pour le champ actif et l’événement enter pour le champ suivant. Si les champs actif et suivant se trouvent dans des sous-formulaires différents, quatre événements au total sont déclenchés : les événements exit pour le champ actif et le sous-formulaire et les événements enter pour le champ et le sous-formulaire suivants. En général, chacune des différentes catégories d’événements de formulaire suit un ordre précis.

5.1. Types d’événements

Les événements liés au formulaire appartiennent aux catégories suivantes :

Evénements de traitementCe type d’événement démarre automatiquement suite à un processus interne ou à une action liée aux objets d’un formulaire. Si, par exemple, l’utilisateur d’un formulaire clique sur un bouton qui permet d’insérer une page dans le formulaire, les événements de traitement initialize, calculate, validateet layout:ready lancent automatiquement la création de la page.

Evénements interactifsCe type d’événement est déclenché comme le résultat direct d’actions de l’utilisateur. Si, par exemple, un utilisateur place le pointeur au-dessus d’un champ d’un formulaire, l’événement mouseEnter est initialisé suite à cette action.

Evénements d’applicationCe type d’événement est exécuté comme le résultat des actions qu’une application client ou une application serveur effectue. Vous pouvez par exemple créer un calcul ou un script destiné à exécuter une tâche juste après l’enregistrement du formulaire à l’aide de l’événement post-Print .

33

Page 40: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

LIENS CONNEXES :Evénements de traitementEvénements interactifsEvénements d’application

5.2. Evénements de traitement

Les événements de traitement démarrent automatiquement suite à un processus interne ou à une action liée à un formulaire ou aux objets d’un formulaire. Ces événements sont déclenchés suite à des modifications importantes du formulaire, par exemple après la fusion de la conception d’un formulaire avec les données ou après le processus de pagination du formulaire. Les événements de traitement sont déclenchés immédiatement après le démarrage des événements interactifs. Ainsi, tout de suite après le déclenchement d’un événement interactif, l’événement calculate se produit suivi par l’événement validate .

La liste suivante inclut les événements de traitement disponibles dans la liste Afficher de l’éditeur de script :

• calculate

• form:ready

• indexChange

• initialize

• layout:ready

• validate

Les événements de traitement peuvent être déclenchés de nombreuses fois en fonction de leurs dépendances, c’est-à-dire des actions associées à un événement unique lançant par la suite un ou plusieurs événements. Considérons l’exemple d’un utilisateur d’un formulaire cliquant sur un bouton afin d’afficher une partie jusque-là masquée du formulaire. Dès que l’utilisateur a cliqué sur le bouton, cela déclenche une série d’événements interactifs et de traitement liés à la seule activation du bouton mais également un certain nombre d’événements de traitement liés au nouveau sous-formulaire.

34

Page 41: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

L’illustration suivante représente l’enchaînement général des événements aboutissant à l’ouverture d’un formulaire PDF dans Acrobat ou dans Adobe Reader.

Lorsque le formulaire est ouvert dans Acrobat ou Adobe Reader, ces événements de traitement peuvent encore être déclenchés à la suite des modifications apportées au formulaire. Par exemple, les événements calculate, validateet layout:ready associés à un objet se produisent immédiatement après le déclenchement de certains événements interactifs. Par conséquent, les calculs et les scripts liés à ces événements de traitement seront exécutés à plusieurs reprises.

LIENS CONNEXES :Evénements interactifsEvénements d’applicationcalculate, événementdocReady, événementEvénement form:readyindexChange, événementinitialize, événementEvénement layout:readyvalidate, événementDétermination du moment de l’exécution de votre calcul ou script

35

Page 42: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.3. Evénements interactifs

Les événements interactifs sont le résultat direct des actions de l’utilisateur du formulaire ce qui rend ces événements particulièrement utiles pour un grand nombre de calculs et d’opérations liés aux scripts. Vous pouvez par exemple ajouter un script à l’événement mouseEnter pour un champ de texte qui modifie la couleur de bordure du champ en bleu et un script à l’événement mouseExit qui rétablit la couleur d’origine de la bordure. Cette action crée un effet de mise en surbrillance lorsque l’utilisateur place le pointeur au-dessus du champ lui procurant ainsi une aide visuelle pour le remplissage du formulaire. Les événements interactifs sont également utiles pour la modification des données du formulaire suite à une sélection de l’utilisateur. Vous pouvez par exemple ajouter un script à l’événement change pour une liste déroulante mettant à jour les valeurs des données dans plusieurs champs en fonction de la valeur que l’utilisateur a choisie dans la liste déroulante.

La liste suivante inclut les événements interactifs disponibles dans la liste Afficher de l’éditeur de script :

• change

• click

• enter

• exit

• mouseDown

• mouseEnter

• mouseExit

• mouseUp

• postOpen

• postSign

• preOpen

• preSign

L’illustration suivante représente l’enchaînement général des événements lorsqu’un utilisateur sélectionne un objet et modifie sa valeur à l’aide de la souris.

REMARQUE : alors que cette image produit un enchaînement général des événements, certaines actions utilisateur et objets de formulaire peuvent provoquer un ordre d’événement différent. Par exemple, si un utilisateur sélectionne une valeur dans une liste déroulante, l’événement mouseExit se produit après l’événement click mais avant les événements change ou full . De la même manière, si un utilisateur sélectionne un champ, appuie sur le bouton de la souris et quitte le champ tout en maintenant le bouton de la souris enfoncé, l’événement mouseUp se produira dans un ordre différent de celui décrit dans cette image.

36

Page 43: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

L’illustration suivante représente l’enchaînement général des événements lorsqu’un utilisateur sélectionne un objet et modifie sa valeur à l’aide du clavier.

37

Page 44: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

LIENS CONNEXES :change, événementclick, événemententer, événementexit, événementfull, événementmouseDown, événementmouseEnter, événementmouseExit, événementmouseUp, événementpostOpen, événementpostSign, événementpreOpen, événementpreSign, événement

5.4. Evénements d’application

Les événements d’application sont le résultat des actions qu’une application cliente ou une application serveur effectue, soit en réponse à une action de l’utilisateur, soit suite à un processus automatisé. Les événements d’application ne font pas partie de l’enchaînement général des événements. Il s’agit d’événements uniques correspondant aux actions que l’application cliente ou serveur réalise.

La liste suivante inclut les événements d’application disponibles dans la liste Afficher de l’éditeur de script :

• docClose

• docReady

• postPrint

• postSave

• postSubmit

• prePrint

• preSave

• preSubmit

38

Page 45: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

L’illustration suivante représente l’enchaînement général des événements pour l’événement preSave .

Si un utilisateur enregistre le formulaire dans Acrobat ou Adobe Reader, l’événement preSave se produit immédiatement avant l’opération d’enregistrement, suivi des événements calculate, validateet layout:ready , dans cet ordre pour tous les objets du formulaire. La même séquence d’événements démarre si le formulaire contient un script enregistrant le formulaire par programme.

Une série similaire d’événements se produit pour chacun des autres événements d’application répertoriés ci-dessus.

LIENS CONNEXES :docClose, événementpostPrint, événementpostSave, événementpostSubmit, événementprePrint, événementpreSave, événementpreSubmit, événement

39

Page 46: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.5. calculate, événement

5.5.1. Description

Déclenché dans les conditions suivantes :

• Au moment de la fusion de votre conception de formulaire et des données en un formulaire finalisé.

• Lorsqu’une modification est apportée à une valeur dont dépend le calcul, telle la valeur d’un champ spécifique, à moins que l’utilisateur ait corrigé manuellement la valeur calculée. L’objet affiche alors la valeur de retour de l’événement. Les propriétés des champs remplacés manuel-lement se trouvent dans le panneau Valeur de la palette Objet.

• Lorsque le champ n’est plus actif. Par exemple, dès qu’un utilisateur clique ou utilise la touche de tabulation pour quitter un champ.

Lors de l’utilisation de l’événement calculate pour effectuer des calculs ou exécuter des scripts, prenez en compte les problèmes potentiels suivants :

• Les calculs et les scripts associés à l’événement calculate ne doivent pas modifier la structure du formulaire, excepté en ce qui concerne les valeurs des données et de champs du formulaire.

• Le contenu inséré par l’événement calculate doit se conformer aux validations associées à l’objet ; sinon, des erreurs de validation se produiront.

• Les calculs et les scripts ne doivent pas inclure une boucle infinie, car cela entraînerait la mise à jour permanente de la valeur par le formulaire. Par exemple, un script qui incrémente la valeur d’un champ dans le cadre d’une expression en boucle, comme une boucle while ou for , peut générer une boucle infinie.

• La dernière expression évaluée dans l’événement calculate est utilisée pour remplir la valeur de l’objet de formulaire actif. Par exemple, si le script de l’événement calculate définit tout d’abord la valeur du champ actif sur 500, puis celle d’un champ suivant sur 1 000, les deux champs afficheront la valeur 1 000 au moment de l’exécution. Par conséquent, limitez l’ajout de scripts à l’événement calculate uniquement aux événements qui portent spécifi-quement sur la définition de la valeur du champ actif.

5.5.2. Type

Evénement de traitement

40

Page 47: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.5.3. Prise en charge

5.5.4. Version

XFA 2.1

5.5.5. Exemple

Utilisez l’événement calculate pour mettre à jour les valeurs numériques des champs, car cet événement démarre immédiatement après la plupart des autres événements. Ainsi, sur un formu-laire de bon de commande, vous pouvez utiliser l’événement calculate pour un champ afin de déterminer le pourcentage de la taxe sur les ventes d’après le total de la commande. Le calcul s’effectue chaque fois qu’une modification est apportée aux valeurs des champs du formulaire. Ceci garantit que le montant de la taxe affichée est toujours correct.

Toutefois, étant donné que l’événement calculate peut être exécuté à plusieurs reprises, vous devez vous assurer que le calcul ou le script que vous associez à l’événement ne provoquera pas une incrémentation inutile des valeurs de données. Si, par exemple, le calcul de la taxe sur les ventes addi-tionne la valeur de la taxe au montant total à chaque exécution de l’événement calculate , le total obtenu sur le formulaire risque d’être trop élevé.

Pour un exemple détaillé de l’utilisation de l’événement calculate , voir Calcul des sommes d’un champ.

LIENS CONNEXES :EvénementsEvénements de traitement

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

41

Page 48: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.6. change, événement

5.6.1. Description

Déclenché lorsqu’un utilisateur modifie le contenu d’un champ par l’exécution de l’une des actions suivantes :

• il effectue une saisie au clavier lorsque le champ est contrôlé par la cible d’action du clavier ;

• il colle des données dans le champ ;

• il effectue une sélection à partir d’une zone de liste ou d’une liste déroulante ;

• il active ou désactive une case à cocher ;

• il change le paramètre d’un groupe de boutons radio.

Cet événement ne se déclenche pas lorsque les valeurs des objets sont modifiées suite à l’appli-cation de calculs ou de scripts ou encore à l’issue de la fusion de la conception du formulaire avec les données.

5.6.2. Type

Evénement interactif

5.6.3. Prise en charge

5.6.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes(seulement pour les listes déroulantes)

42

Page 49: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.6.5. Exemple

Servez-vous de cet événement pour tout calcul ou tout script qui doit se déclencher en réponse à la modification de la valeur d’un champ par un utilisateur du formulaire. Par exemple, vous pouvez utiliser l’événement change pour une liste déroulante afin de mettre en surbrillance certaines rangées du tableau. Cette technique permet, chaque fois que l’utilisateur sélectionne une valeur dans la liste déroulante, d’afficher en surbrillance la rangée correspondante du tableau.

REMARQUE : L’exécution de scripts par rapport à un objet ’this.rawValue’ ne fonctionne pas. Utilisez plutôt la propriété du modèle d’événement $event.fullTextafin d’obtenir la valeur actuelle de l’objet.

Pour un exemple détaillé de l’utilisation de l’événement change , voir Obtention de la valeur actuelle ou de la valeur précédente d’une liste déroulante.

LIENS CONNEXES :EvénementsEvénements interactifs

5.7. click, événement

5.7.1. Description

Cet événement se déclenche par un clic de souris dans la région. Lorsqu’un événement click se produit pour un champ de texte ou un champ numérique, les calculs ou les scripts sont immédiatement exécutés. Cependant, la valeur du champ ne change pas suite aux calculs et aux scripts tant que le champ n’est pas désélectionné.

REMARQUE : Vous ne pouvez pas placer un calcul ou un script sur l’événement click d’un bouton Envoyer, car le calcul ou le script prévaudrait sur l’action de soumission. Au lieu de cela, placez les calculs et les scripts sur l’événement preSubmit pour un bouton Envoyer. Pour plus d’informations sur les actions d’envoi de formulaire, voir l’Aide de Designer.

5.7.2. Type

Evénement interactif

43

Page 50: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.7.3. Prise en charge

5.7.4. Version

XFA 2.1

5.7.5. Exemple

Utilisez cet événement pour déclencher une action en réponse immédiate à l’action d’un utilisateur consistant à cliquer sur un bouton, à sélectionner un bouton radio ou encore à activer une case à cocher du formulaire. Par exemple, vous pouvez utiliser l’événement click pour une case à cocher afin d’afficher ou de masquer un champ du formulaire.

Pour un exemple détaillé de l’utilisation de l’événement click , voir Modification des propriétés visuelles d’un objet sur le client.

LIENS CONNEXES :EvénementsEvénements interactifspreSubmit, événement

5.8. docClose, événement

5.8.1. Description

Cet événement est exécuté à chaque fin de formulaire, seulement si toutes les validations de formu-laire se sont terminées sans erreur.

5.8.2. Type

Evénement d’application

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

44

Page 51: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.8.3. Prise en charge

5.8.4. Version

XFA 2.1

5.8.5. Exemple

Lorsque cet événement se déclenche, vous ne pouvez plus modifier un formulaire enregistré. En effet, il vise à donner la possibilité de générer un état quitter ou un message indiquant que le remplissage du formulaire est achevé. Par exemple, vous pouvez utiliser l’événement docClose pour afficher un message à l’utilisateur lui indiquant que le formulaire est dûment rempli.

LIENS CONNEXES :EvénementsEvénements d’applicationEvénements de traitement

5.9. docReady, événement

5.9.1. Description

Cet événement s’exécute immédiatement après l’ouverture du formulaire dans Acrobat ou Adobe Reader.

5.9.2. Type

Evénement d’application

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

45

Page 52: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.9.3. Prise en charge

5.9.4. Version

XFA 2.1

5.9.5. Exemple

Cet événement est le premier qui s’exécute à l’ouverture du formulaire dans Acrobat ou Adobe Reader. Toute tâche de calcul ou de script impliquant le remplissage du formulaire ou ne devant être exécutée qu’une fois à la première ouverture du formulaire doit faire appel à cet événement. Par exemple, vous pouvez utiliser l’événement docReady pour vérifier la version d’Acrobat ou d’Adobe Reader et renvoyer un message à l’utilisateur dans le cas où il est tenu de mettre à niveau son application avant de compléter le formulaire.

LIENS CONNEXES :EvénementsEvénements d’application

5.10. enter, événement

5.10.1. Description

Cet événement se déclenche lorsqu’un champ ou un sous-formulaire atteint la cible d’action du clavier, que ce soit provoqué par une action utilisateur (déplacement du curseur dans le champ ou clic dans le champ) ou par un script qui définit la cible d’action par programme.

5.10.2. Type

Evénement interactif

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

46

Page 53: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.10.3. Prise en charge

5.10.4. Version

XFA 2.1

5.10.5. Exemple

Vous pouvez recourir à cet événement pour fournir un texte d’info-bulle ou tout autre message à l’utilisateur du formulaire lorsque ce dernier place le pointeur dans le champ actif ou le sous-formulaire. Si, par exemple, un champ requiert une valeur dans un format donné ou si le remplissage d’un champ est régi par des instructions spéciales, cet événement permet d’afficher un message spécifiant les consignes particulières que doit respecter l’utilisateur.

Pour un exemple détaillé de l’utilisation de l’événement enter , voir Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final.

LIENS CONNEXES :EvénementsEvénements interactifs

5.11. exit, événement

5.11.1. Description

Cet événement se déclenche lorsqu’un champ ou un sous-formulaire n’est plus contrôlé par la cible d’action du clavier, en raison d’une action utilisateur (déplacement du curseur dans un autre champ ou clic hors du champ) ou de l’exécution d’un script qui supprime la cible.

REMARQUE : Si votre script vise à manipuler la valeur du champ actif, il est préconisé de l’associer à l’événement calculate .

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

47

Page 54: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.11.2. Type

Evénement interactif

5.11.3. Prise en charge

5.11.4. Version

XFA 2.1

5.11.5. Exemple

Appliquez cet événement pour exécuter la vérification de données de champ lorsqu’un utilisateur quitte un champ. Si, par exemple, un champ exige une valeur, utilisez cet événement pour afficher un message à l’utilisateur afin de lui signaler que le remplissage de ce champ conditionne la soumission du formulaire.

Pour un exemple détaillé de l’utilisation de l’événement exit , voir Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final.

LIENS CONNEXES :EvénementsEvénements interactifs

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

48

Page 55: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.12. Evénement form:ready

5.12.1. Description

Se déclenche lorsque la fusion de votre conception de formulaire et des données est terminée, que le formulaire terminé existe dans la mémoire et que les événements initialize, calculateet validate sont terminés.

REMARQUE : L’événement form:ready s’applique uniquement aux objets Vue de conception, mais pas aux objets Gabarit (voir Evénements de traitement).

5.12.2. Type

Evénement de traitement

5.12.3. Prise en charge

5.12.4. Version

XFA 2.1

5.12.5. Exemple

Pensez à faire appel à cet événement pour effectuer des tâches après la fusion de la conception de formulaire et des données et avant l’application de la disposition. Cet événement est utile, par exemple, pour personnaliser l’ordre ou l’emplacement des sous-formulaires sur votre formulaire avant que le formulaire soit paginé et rendu.

LIENS CONNEXES :Evénements

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

49

Page 56: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.13. full, événement

5.13.1. Description

Cet événement se déclenche lorsque l’utilisateur tente de saisir le contenu maximum autorisé dans un champ. Par exemple, si la propriété Limiter la taille d’un champ est définie sur 5et qu’un utilisateur tente d’entrer la chaîne abcdef, l’événement full se produit lorsque l’utilisateur saisit la lettre f.

REMARQUE : la propriété Limiter la taille d’un champ se trouve dans le panneau Champ de la palette Objet.

5.13.2. Type

Evénement interactif

5.13.3. Prise en charge

5.13.4. Version

XFA 2.1

5.13.5. Exemple

Grâce à cet événement, il est possible d’indiquer à l’utilisateur qu’un champ a atteint sa capacité maximale. Par exemple, vous pouvez générer un message indiquant à l’utilisateur que la longueur maximale du champ est atteinte et lui indiquer les étapes supplémentaires en vue de remédier à ce problème.

LIENS CONNEXES :EvénementsEvénements interactifs

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

50

Page 57: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.14. indexChange, événement

5.14.1. Description

L’événement est exécuté suite à l’insertion, au déplacement ou à la sa suppression d’un sous-formulaire, que ce soit par la fusion de nouvelles données avec le formulaire ou par l’utilisation d’un script.

N’oubliez pas que l’événement indexChange ne se déclenche pas lors de la suppression de la dernière ligne d’un tableau.

REMARQUE : cet événement n’est reçu que par les instances de sous-formulaire contrôlées par le gestionnaire d’instances ; il n’est pas pris en compte dans le cadre de jeux de sous-formulaires.

5.14.2. Type

Evénement de traitement

5.14.3. Prise en charge

5.14.4. Version

XFA 2.5

5.14.5. Exemple

Cet événement s’avère particulièrement utile pour définir des propriétés basées sur la valeur de l’occurrence d’un objet donné. Ainsi, vous pouvez utiliser cet événement pour coordonner l’ombrage de rangées alternées dans un tableau.

LIENS CONNEXES :EvénementsEvénements de traitement

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

51

Page 58: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.15. initialize, événement

5.15.1. Description

L’événement s’applique à tous les objets dès la fusion de la conception du formulaire avec les données.

5.15.2. Type

Evénement de traitement

5.15.3. Prise en charge

5.15.4. Version

XFA 2.1

5.15.5. Exemple

Vous pouvez utiliser cet événement pour réaliser des actions lorsqu’un objet est crée en raison d’une action de l’utilisateur ou au cours du processus de création du formulaire. Utilisez cet événement, par exemple, pour contrôler les paramètres des nouvelles instances d’un objet de sous-formulaire qu’un utilisateur ajoute au formulaire en cliquant sur un bouton.

LIENS CONNEXES :EvénementsEvénements de traitement

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

52

Page 59: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.16. Evénement layout:ready

5.16.1. Description

Cet événement s’exécute après la fusion de la conception du formulaire et des données, le formulaire existe et la disposition est appliquée. A ce stade, le rendu du formulaire finalisé n’a pas été effectué. Un calcul ou un script exécuté sur cet événement peut donc modifier la disposition du formulaire avant sa génération. Cet événement peut également se produire après la restitution du formulaire si un calcul ou un script rectifie les données ou entraîne une modification du formulaire dans Acrobat ou Adobe Reader.

REMARQUE : les scripts qui déclenchent l’événement layout:ready ne devraient en principe pas modifier la disposition de la forme. Cela comprend par exemple tout élément impliquant des sous-formulaires ou des tableaux pouvant être élargis ou rétrécis, ajoutant dynamiquement des fragments au moment de l’exécution, ajoutant ou supprimant des instances de sous-formulaires et faisant basculer le para-mètre de visibilité de masqué à visible.

Les champs des formulaires interactifs qui contiennent l’événement layout:ready sont pris en charge dans Acrobat 7.0.5 et versions ultérieures.

5.16.2. Type

Evénement de traitement

5.16.3. Prise en charge

5.16.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

53

Page 60: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.16.5. Exemple

Vous pouvez utiliser cet événement pour réaliser des tâches immédiatement après l’application de la disposition. Par exemple, cet événement vous permet de déterminer le nombre de pages que le formulaire contient.

LIENS CONNEXES :EvénementsEvénements de traitement

5.17. mouseDown, événement

5.17.1. Description

L’événement survient lorsque l’utilisateur appuie sur le bouton de la souris alors que le pointeur se trouve dans le champ.

REMARQUE : Lorsqu’un événement mouseDown se produit pour un champ de texte ou un champ numérique, les calculs ou les scripts sont immédiatement exécutés. Cependant, la valeur du champ ne change pas suite aux calculs et aux scripts tant que le champ n’est pas désélectionné. Lorsqu’un événement mouseDown intervient dans un champ de signature, l’événement se déclenche avant le début du processus de signature.

5.17.2. Type

Evénement interactif

5.17.3. Prise en charge

5.17.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

54

Page 61: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.17.5. Exemple

Vous pouvez faire appel à cet événement pour déclencher une action en réponse immédiate à l’action d’un utilisateur consistant à cliquer sur un bouton, à sélectionner un bouton radio ou encore à activer une case à cocher du formulaire. Par exemple, vous pouvez utiliser l’événement mouseDown pour une case à cocher afin d’afficher ou de masquer un champ du formulaire. Cet événement est similaire, du point de vue de la conception, à l’événement click et est utilisé dans le même but.

LIENS CONNEXES :EvénementsEvénements interactifsclick, événement

5.18. mouseEnter, événement

5.18.1. Description

Cet événement se déclenche lorsque l’utilisateur déplace le pointeur de la souris à l’intérieur du champ, sans nécessairement appuyer sur le bouton de la souris. Il n’est pas déclenché si le pointeur de la souris est placé dans le champ pour une toute autre raison, par exemple parce qu’une fenêtre superposée se ferme.

5.18.2. Type

Evénement interactif

5.18.3. Prise en charge

5.18.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

55

Page 62: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.18.5. Exemple

Vous pouvez utiliser cet événement pour procurer un retour d’informations visuel à un utilisateur pour l’événement mouseExit . Cet événement permet de modifier la couleur de la bordure ou la couleur d’arrière-plan d’un objet afin de signaler de manière visuelle à l’utilisateur qu’il utilise un champ donné.

Pour un exemple détaillé de l’utilisation de l’événement mouseEnter , voir Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final.

LIENS CONNEXES :EvénementsEvénements interactifs

5.19. mouseExit, événement

5.19.1. Description

Cet événement se déclenche lorsque l’utilisateur déplace le pointeur de la souris hors du champ, même si l’utilisateur appuie sur le bouton de la souris. Il n’est pas déclenché si le pointeur de la souris est placé dans le champ pour une toute autre raison, par exemple parce qu’une fenêtre superposée s’ouvre.

5.19.2. Type

Evénement interactif

5.19.3. Prise en charge

5.19.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

56

Page 63: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.19.5. Exemple

Vous pouvez utiliser cet événement pour procurer un retour d’informations visuel à un utilisateur pour l’événement mouseEnter . Cet événement permet de rétablir la couleur d’origine de la bordure ou d’arrière-plan d’un objet afin de signaler de manière visuelle à l’utilisateur qu’il ne travaille plus dans un champ donné.

Pour un exemple détaillé de l’utilisation de l’événement mouseExit , voir Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final.

LIENS CONNEXES :EvénementsEvénements interactifs

5.20. mouseUp, événement

5.20.1. Description

L’événement se produit lorsque l’utilisateur relâche le bouton de la souris alors que le pointeur se trouve dans le champ.

REMARQUE : Lorsqu’un événement mouseUp se produit pour un champ de texte ou un champ numérique, les calculs ou les scripts sont immédiatement exécutés. Cependant, la valeur du champ ne change pas suite aux calculs et aux scripts tant que le champ n’est pas désélectionné.

5.20.2. Type

Evénement interactif

5.20.3. Prise en charge

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

57

Page 64: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.20.4. Version

XFA 2.1

5.20.5. Exemple

Vous pouvez faire appel à cet événement pour déclencher des actions afin de répondre immédiatement à l’action d’un utilisateur consistant à cliquer sur un bouton, à sélectionner un bouton radio ou encore à activer une case à cocher du formulaire. Par exemple, vous pouvez utiliser l’événement mouseUp pour une case à cocher afin d’afficher ou de masquer un champ du formulaire. Cet événement est similaire, du point de vue de la conception, à l’événement click et est utilisé dans le même but.

LIENS CONNEXES :EvénementsEvénements interactifs

5.21. postOpen, événement

5.21.1. Description

Cet événement est exécuté dès qu’un utilisateur effectue une action ayant pour effet d’afficher les données d’une liste déroulante, notamment cliquer sur la flèche de la liste déroulante ou activer la liste déroulante avec la touche Tabulation et utiliser la flèche Bas. Cet événement se produit après l’affichage du contenu de la liste déroulante.

REMARQUE : cet événement s’applique uniquement à l’objet de liste déroulante.

5.21.2. Type

Evénement interactif

5.21.3. Prise en charge

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

58

Page 65: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.21.4. Version

XFA 2.8

5.21.5. Exemple

Vous pouvez utiliser cet événement pour traiter les erreurs ou les résultats inattendus liés au traitement de l’ouverture de la liste déroulante. Par exemple, si l’événement preOpen est diffusé, par exemple, grâce à un script et non à l’interaction de l’utilisateur ou si l’ouverture des données de la liste déroulante n’est pas possible en raison d’une erreur, l’événement postOpen est diffusé malgré tout pour permettre l’exécution des scripts de gestion des erreurs.

LIENS CONNEXES :EvénementsEvénements interactifs

5.22. postPrint, événement

5.22.1. Description

Cet événement est automatiquement exécuté une fois que le formulaire rendu est envoyé à l’imprimante, au programme d’impression différée ou à la destination de sortie.

5.22.2. Type

Evénement d’application

5.22.3. Prise en charge

5.22.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

59

Page 66: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.22.5. Exemple

Utilisez cet événement pour afficher des messages d’information à l’intention de l’utilisateur lorsque le formulaire est imprimé. Par exemple, vous pouvez créer un script sur l’événement postPrint pour rappeler à l’utilisateur les étapes qu’il doit encore entreprendre pour envoyer manuellement le formulaire.

LIENS CONNEXES :EvénementsEvénements d’application

5.23. postSave, événement

5.23.1. Description

Cet événement s’exécute automatiquement lorsqu’un utilisateur enregistre un formulaire au format PDF ou XDP. Il ne se produit pas si vous exportez un sous-ensemble du formulaire (par exemple, uniquement les données de formulaire) au format XDP.

5.23.2. Type

Evénement d’application

5.23.3. Prise en charge

5.23.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

60

Page 67: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.23.5. Exemple

Utilisez cet événement pour afficher des messages d’information à l’intention de l’utilisateur lorsque les données du formulaire sont enregistrées. Par exemple, vous pouvez créer un script sur l’événement postSave pour rappeler aux utilisateurs le temps qu’il leur reste pour remplir et envoyer le formulaire.

LIENS CONNEXES :EvénementsEvénements d’application

5.24. postSign, événement

5.24.1. Description

Cet événement est exécuté dès qu’un utilisateur effectue une action ayant pour effet d’appliquer une signature numérique au formulaire.

REMARQUE : cet événement s’applique uniquement à l’objet Champ de signature.

5.24.2. Type

Evénement interactif

5.24.3. Prise en charge

5.24.4. Version

XFA 2.8

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

61

Page 68: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.24.5. Exemple

Vous pouvez utiliser cet événement pour faire connaître à l’utilisateur les restrictions imposées depuis que le formulaire a été signé numériquement.

LIENS CONNEXES :EvénementsEvénements interactifs

5.25. postSubmit, événement

5.25.1. Description

Se déclenche dès qu’un formulaire transmet des données à l’hôte via le protocole HTTP.

REMARQUE : cet événement ne fait pas la distinction entre les soumissions initiées par l’activation de différents boutons ou par différents URL. Tout script devant faire cette distinction doit inclure un script lui permettant de déterminer le bouton ayant été activé. En règle générale, l’événement postSubmit est similaire, du point de vue de la conception, à l’événement postSave et est utilisé dans le même but.

5.25.2. Type

Evénement d’application

5.25.3. Prise en charge

5.25.4. Version

XFA 2.8

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes(Pour les boutons d’envoi uniquement)

62

Page 69: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.25.5. Exemple

Vous pouvez utiliser cet événement pour réaliser des actions immédiatement après l’envoi des données du formulaire. Par exemple, vous pouvez créer un script sur l’événement postSubmit afin de confirmer que l’envoi a réussi.

LIENS CONNEXES :EvénementsEvénements d’application

5.26. preOpen, événement

5.26.1. Description

Cet événement est exécuté lorsqu’un utilisateur effectue une action ayant pour effet d’afficher la liste déroulante, notamment cliquer sur la flèche de la liste déroulante ou activer la liste déroulante avec la touche Tabulation et utiliser la flèche Bas. Cet événement se produit avant l’affichage du contenu de la liste déroulante.

REMARQUE : cet événement s’applique uniquement à l’objet de liste déroulante.

5.26.2. Type

Evénement interactif

5.26.3. Prise en charge

5.26.4. Version

XFA 2.4

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

63

Page 70: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.26.5. Exemple

Cet événement permet de contrôler le chargement d’un grand nombre d’articles de liste. Par exemple, vous pouvez utiliser cet événement pour charger un nombre fixe d’enregistrements provenant d’une source de données dans une liste déroulante. Cette opération contribue à améliorer les performances du formulaire au moment de son exécution par l’utilisateur.

LIENS CONNEXES :EvénementsEvénements interactifs

5.27. prePrint, événement

5.27.1. Description

Cet événement est automatiquement exécuté avant qu’un formulaire ne soit rendu à des fins d’impression. Vous ne pouvez pas annuler l’impression au cours de cet événement.

IMPORTANT : évitez d’utiliser cet événement pour masquer ou afficher des objets de formulaire. Par exemple, si un utilisateur a déjà signé numériquement le formulaire, l’utilisation de cet événement pour masquer tous les objets de bouton avant l’impression aura une influence sur l’état de la signature.

5.27.2. Type

Evénement d’application

5.27.3. Prise en charge

5.27.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

64

Page 71: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.27.5. Exemple

Cet événement permet de masquer un objet que vous ne souhaitez pas imprimer. Ainsi, il est possible de masquer un texte ou des instructions destinés à l’utilisateur lorsqu’il remplit le formulaire en ligne.

LIENS CONNEXES :EvénementsEvénements d’application

5.28. preSave, événement

5.28.1. Description

Se produit automatiquement avant l’enregistrement des données du formulaire au format PDF ou XDP. Cet événement n’est pas exécuté si les données ou tout autre sous-ensemble du formulaire sont exportés au format XDP.

5.28.2. Type

Evénement d’application

5.28.3. Prise en charge

5.28.4. Version

XFA 2.1

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

65

Page 72: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.28.5. Exemple

Grâce à cet événement, vous pouvez modifier les données du formulaire juste avant l’enregistrement des données. Par exemple, vous pouvez créer un script sur l’événement preSave afin d’analyser les données et d’afficher un message de rappel à l’utilisateur si certains champs obligatoires sont vides.

LIENS CONNEXES :EvénementsEvénements d’application

5.29. preSign, événement

5.29.1. Description

Cet événement est exécuté avant qu’un utilisateur effectue une action ayant pour effet d’appliquer une signature numérique au formulaire.

REMARQUE : cet événement s’applique uniquement à l’objet Champ de signature.

5.29.2. Type

Evénement interactif

5.29.3. Prise en charge

5.29.4. Version

XFA 2.8

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML non

66

Page 73: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.29.5. Exemple

Vous pouvez utiliser cet événement pour valider les données concernées par la signature numérique ou pour fournir des informations à un utilisateur avant qu’il applique la signature numérique.

LIENS CONNEXES :EvénementsEvénements interactifs

5.30. preSubmit, événement

5.30.1. Description

Se déclenche dès qu’un formulaire transmet des données à l’hôte via le protocole HTTP. A ce stade, les données sont organisées dans un ensemble de données, mais n’ont pas encore été envoyées à l’hôte. Les calculs et les scripts associés à l’événement peuvent examiner et corriger les données avant la soumission du formulaire. Si le calcul ou le script est défini de manière à être exécuté sur le serveur, le formulaire envoie les données au serveur en lui indiquant d’exécuter le calcul ou le script avant tout traitement supplémentaire.

REMARQUE : l’événement preSubmit ne fait pas la distinction entre les soumissions initiées par l’activation de différents boutons ou par différents URL. Tout script devant faire cette distinction doit inclure un code lui permettant de déterminer le bouton ayant été activé. En règle générale, l’événement preSubmit est similaire, du point de vue de la conception, à l’événement preSave et est utilisé dans le même but.

5.30.2. Type

Evénement d’application

5.30.3. Prise en charge

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes(Pour les boutons d’envoi uniquement)

67

Page 74: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements 5

5.30.4. Version

XFA 2.1

5.30.5. Exemple

Grâce à cet événement, vous pouvez modifier les données du formulaire juste avant la soumission des données. Par exemple, vous pouvez créer un script sur l’événement preSubmit consistant à analyser la quantité de données et à afficher par la suite un message à l’utilisateur l’informant du temps nécessaire à l’envoi des données.

LIENS CONNEXES :EvénementsEvénements d’applicationpreSave, événement

5.31. validate, événement

5.31.1. Description

S’exécute lorsque la conception de formulaire et les données sont fusionnées pour créer le formulaire et lorsqu’un champ est désélectionné ; par exemple, lorsqu’un utilisateur clique ou utilise la touche Tabulation pour quitter un champ. Cet événement se produit à nouveau chaque fois que la valeur d’un champ change. Les calculs et les scripts placés sur l’événement validate offrent des méthodes de validation plus spécifiques que celles disponibles dans l’onglet Valeur de la palette Objet.

Les calculs et les scripts associés à l’événement validate sont requis pour renvoyer les valeurs true ou false (exprimées selon le format approprié du script) correspondant à une validation correcte ou à un échec de la validation et ne doivent pas avoir d’impact sur la structure globale des valeurs du formulaire. De plus, ils ne doivent pas tenter de retourner des informations à un utilisa-teur de formulaire, puisque cet utilisateur n’utilise pas forcément le formulaire sur une application client telle qu’Acrobat.

REMARQUE : étant donné que les validations portent sur le contenu d’un formulaire, elles ne peuvent pas être utilisées pour vérifier la mise en forme déterminée par les formats des champs.

5.31.2. Type

Evénement de traitement

68

Page 75: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Evénements

5.31.3. Prise en charge

5.31.4. Version

XFA 2.1

5.31.5. Exemple

Vous pouvez utiliser cet événement pour vérifier les valeurs des objets, tout particulièrement lorsque les données doivent respecter des règles spécifiques. Par exemple, vous pouvez créer un script sur l’événement validate afin de vous assurer que le champ indiquant le montant total sur un formu-laire de bon de commande ne contient pas une valeur négative.

Pour un exemple détaillé de l’utilisation de l’événement validate , voir Définition d’une valeur de champ obligatoire au moment de l’exécution.

LIENS CONNEXES :EvénementsEvénements de traitement

Application client Disponibilité

Acrobat et Acrobat Reader yes

Navigateur HTML yes

69

Page 76: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

6. Ecriture d’un script avec FormCalc et JavaScript

Bien que FormCalc et JavaScript s’adressent à deux types d’utilisateur différents, il existe certaines similitudes entre les types de fonctions intégrées respectivement proposés. Le tableau suivant fournit une liste des fonctions FormCalc disponibles et indique s’il existe une fonction JavaScript comparable.

Pour plus d’informations sur les fonctions FormCalc et leur paramètres, voir Syntaxe de fonction intégrée.

Fonction FormCalc Description Méthode JavaScript équivalente

Abs(n1) Retourne la valeur absolue d’une valeur ou d’une expression numérique.

Math.abs(n1)

Apr(n1, n2, n3) Renvoie le taux annuel d’un prêt.

Aucun

At(s1, s2) Repère la position du premier caractère d’une chaîne dans une autre chaîne.

String.search(s1)

Avg(n1 [, n2... ] ) Evalue un ensemble de valeurs et/ou d’expressions numériques et renvoie la moyenne des éléments non nuls de cet ensemble.

Aucun

Ceil(n1) Renvoie le nombre entier supérieur ou égal au nombre fourni.

Math.ceil(n1)

Choose(n1, s1 [, s2... ] ) Sélectionne une valeur dans un ensemble de paramètres donné.

Aucun

Concat(s1 [, s2... ] ) Renvoie la concaténation des chaînes indiquées.

String.concat(s1, s2 [, s3 ... ])

Count(n1 [, n2...]) Evalue un ensemble de valeurs et/ou d’expressions et renvoie le nombre d’éléments non nuls contenus dans cet ensemble.

Aucun

70

Page 77: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

CTerm(n1, n2, n3) Renvoie le nombre de périodes nécessaires pour qu’un investissement, dont le taux d’intérêt est fixe mais composé, atteigne une valeur capitalisée.

Aucun

Date() Retourne la date active du système représentée sous forme du nombre de jours écoulés depuis la date considérée.

Date.getDate()L’objet Date JavaScript ne se sert pas de l’époque comme point de référence.

Date2Num(d1 [, f1 [, k1 ] ] )

Retourne le nombre de jours écoulés depuis la date considérée, à partir d’une chaîne de date.

L’objet Date JavaScript ne se sert pas de l’époque comme point de référence.

DateFmt([ n1 [, k1 ] ] ) Renvoie une chaîne de format de date, à partir d’un style de format de date.

Aucun

Decode(s1 [, s2 ] ) Renvoie la version décodée d’une chaîne donnée.

Prise en charge limitéeJavaScript reconnaît uniquement les valeurs codées URL qui ne contiennent pas de caractère d’échappement.

Encode(s1 [, s2 ] ) Renvoie la version codée d’une chaîne donnée.

Prise en charge limitéeJavaScript reconnaît uniquement les valeurs codées URL qui ne contiennent pas de caractère d’échappement.

Eval() Renvoie la valeur d’un calcul de formulaire donné.

eval(s1)

Exists(v1) Détermine si le paramètre donné est une syntaxe de référence valide à un objet existant.

Aucun

Floor(n1) Renvoie le plus grand nombre entier inférieur ou égal à la valeur donnée.

Math.floor(n1)

Format(s1, s2) Formate les données fournies selon la chaîne de format d’image indiquée.

Aucun

Fonction FormCalc Description Méthode JavaScript équivalente

71

Page 78: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

FV(n1, n2, n3) Renvoie la valeur capitalisée de paiements fixes effectués à intervalles réguliers, compte tenu d’un taux d’intérêt fixe.

Aucun

Get(s1) Télécharge le contenu de l’adresse URL indiquée.

Aucun

HasValue(v1) Détermine si le paramètre indiqué est une syntaxe de référence valide dont la valeur n’est ni nulle, ni vide, ni un blanc.

Aucun

IPmt(n1, n2, n3, n4, n5) Renvoie le montant de l’intérêt payé pour un prêt au cours d’une période donnée.

Aucun

IsoDate2Num(d1) Renvoie le nombre de jours écoulés depuis la date considérée, à partir d’une chaîne de date valide.

Aucun

IsoTime2Num(d1) Retourne le nombre de millisecondes écoulées depuis l’époque considérée, à partir d’une chaîne d’heure valide.

Aucun

Left(s1, n1) Extrait un nombre spécifique de caractères d’une chaîne, en commençant par le premier caractère à gauche.

String.substring(n1, n2)

Len(s1) Renvoie le nombre de caractères d’une chaîne donnée.

String.length

LocalDateFmt( [ n1 [, k1 ] ] ) Renvoie une chaîne de format de date localisée, à partir d’un style de format de date.

Aucun

LocalTimeFmt( [ n1 [, k1 ] ] ) Renvoie une chaîne de format d’heure localisée, à partir d’un style de format d’heure.

Aucun

Lower(s1 [, k1 ] ) Convertit en minuscules toutes les majuscules d’une chaîne donnée.

String.toLowerCase(s1)

Fonction FormCalc Description Méthode JavaScript équivalente

72

Page 79: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

Ltrim(s1) Renvoie une chaîne sans aucun caractère d’espace blanc à gauche.

Aucunvous pouvez faire appel aux expressions régulières JavaScript pour effectuer cette opération.

Max(n1 [, n2... ] ) Renvoie la valeur maximale des éléments non nuls d’un ensemble donné de nombres.

Math.max(n1, n2)

Min(n1 [, n2... ] ) Renvoie la valeur minimale des éléments non nuls d’un ensemble donné de nombres.

Math.min(n1, n2)

Mod(n1, n2) Renvoie le reste d’un nombre divisé par un autre.

Utilisez l’événement modulo (%).

NPV(n1, n2 [, ... ] ) Renvoie la valeur nette actualisée d’un investissement, compte tenu d’une série de mouvements futurs de l’encaisse et d’un taux d’actualisation.

Aucun

Num2Date(n1[, f1 [, k1 ] ] ) Renvoie une chaîne de date à partir du nombre de jours écoulés depuis l’époque considérée.

Aucun

Num2GMTime(n1 [,f1 [, k1 ] ] ) Renvoie une chaîne d’heure UT à partir du nombre de millisecondes écoulées depuis l’époque considérée.

Aucun

Num2Time(n1 [,f1 [, k1 ] ] ) Renvoie une chaîne d’heure à partir du nombre de millisecondes écoulées depuis l’époque considérée.

Aucun

Oneof(s1, s2 [, s3... ] ) Renvoie vrai (1) si une valeur se trouve dans un ensemble donné et faux (0) dans le cas contraire.

AucunCette fonction est similaire à la méthode String.search(s1) et à la méthode String.match(expression).

Parse(s1, s2) Analyse les données fournies selon le format d’image donné.

Aucun

Fonction FormCalc Description Méthode JavaScript équivalente

73

Page 80: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

Pmt(n1, n2, n3) Renvoie le remboursement d’un prêt basé sur des versements fixes et sur un taux d’intérêt fixe.

Aucun

Post(s1, s2 [, s3 [, s4 [, s5 ] ] ] )

Place à l’adresse URL indiquée les données fournies.

Aucun

PPmt(n1, n2, n3, n4, n5) Renvoie le montant du principal payé pour un prêt au cours d’une période.

Aucun

Put(s1, s2 [, s3 ] ) Télécharge les données fournies vers l’adresse URL indiquée.

Aucun

PV(n1, n2, n3) Renvoie la valeur actualisée d’un investissement réalisé par versements fixes périodiques avec un taux d’intérêt fixe.

Aucun

Rate(n1, n2, n3) Renvoie le taux d’intérêt composé par période nécessaire pour qu’un investissement d’une valeur actualisée atteigne une valeur capitalisée au cours d’une période donnée.

Aucun

Ref() Renvoie une référence à un objet existant.

Aucun

Replace(s1, s2 [, s3 ] ) Remplace toutes les occurrences d’une chaîne par une autre, dans la chaîne indiquée.

String.replace(s1, s2)

Right(s1, n1) Extrait plusieurs caractères d’une chaîne donnée, en commençant par le dernier caractère à droite.

String.substring(n1, n2)

Fonction FormCalc Description Méthode JavaScript équivalente

74

Page 81: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

Round(n1 [, n2 ] ) Evalue une valeur ou expression numérique donnée et renvoie un nombre arrondi comportant le nombre de décimales défini. Pour des résultats plus précis, placez un indicateur hérité dans xfa.xci. Pour passer au comportement par défaut, supprimez l’indicateur hérité.

Math.round(n1)

Rtrim(s1) Renvoie une chaîne sans aucun caractère d’espace blanc à droite.

Aucunvous pouvez faire appel aux expressions régulières JavaScript pour effectuer cette opération.

Space(n1) Renvoie une chaîne composée d’un nombre donné d’espaces blancs.

Aucun

Str(n1 [, n2 [, n3 ] ] ) Convertit un nombre en une chaîne de caractères. FormCalc formate le résultat selon la largeur indiquée et l’arrondit au nombre de décimales défini.

Chaîne(n1)ouNumber.toString(radix)

Stuff(s1, n1, n2 [, s2 ] ) Insère une chaîne dans une autre chaîne.

Aucun

Substr(s1, n1, n2) Extrait une partie d’une chaîne donnée.

String.substring(n1, n2)

Sum(n1 [, n2... ] ) Renvoie la somme des éléments non nuls d’un ensemble donné de nombres.

Aucun

Term(n1, n2, n3) Renvoie le nombre de périodes nécessaires pour atteindre la valeur capitalisée donnée, compte tenu de paiements fixes périodiques versés sur un compte portant intérêt.

Aucun

Time() Retourne l’heure courante du système représentée sous forme du nombre de millisecondes écoulées depuis l’époque considérée.

Date.getTime()L’objet Date JavaScript ne se sert pas de l’époque comme point de référence.

Fonction FormCalc Description Méthode JavaScript équivalente

75

Page 82: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

LIENS CONNEXES :Utilisation de FormCalc

Time2Num(d1 [, f1 [, k1 ] ] )

Retourne le nombre de millisecondes écoulées depuis l’époque considérée, à partir d’une chaîne d’heure.

Aucun

TimeFmt([n1 [, k1 ] ] ) Renvoie un format d’heure, à partir d’un style de format d’heure.

Aucun

UnitType(s1) Renvoie les unités d’une étendue d’unité. Une étendue d’unité est une chaîne composée d’un nombre suivi d’un nom d’unité.

Aucun

UnitValue(s1 [, s2 ] ) Renvoie la valeur numérique d’une mesure avec l’étendue d’unité qui lui est associée, après une conversion d’unité facultative.

Aucun

Upper(s1 [, k1 ] ) Convertit en majuscules toutes les minuscules d’une chaîne.

String.toUpperCase()

Uuid(n1) Renvoie une chaîne UUID qui sert de méthode d’identification.

Aucun

Within(s1, s2, s3) Retourne vrai (1) si une valeur de contrôle se trouve dans une plage donnée, et faux (0) dans le cas contraire.

String.search(s1)

WordNum(n1 [, n2 [, k1 ] ] )

Renvoie le texte équivalent à un nombre donné.

Aucun

Fonction FormCalc Description Méthode JavaScript équivalente

76

Page 83: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

6.1. Utilisation de FormCalc

FormCalc est un langage de calcul simple mais puissant, basé sur les tableurs traditionnels. Il permet de créer des formulaires, rapidement et efficacement, sans exiger la maîtrise des techniques ou des langages de script traditionnels. Grâce à plusieurs des fonctions intégrées, les utilisateurs inexpéri-mentés de FormCalc peuvent créer rapidement des formulaires sans avoir à effectuer de calculs, de validations et d’autres vérifications qui prennent souvent beaucoup de temps. Vous pouvez ainsi créer un ensemble de règles de base pour le modèle de formulaire qui permet au formulaire résultant de réagir en fonction des données qu’il rencontre.

Dans Designer, FormCalc est le langage de script par défaut dans tous les emplacements de script. Le langage JavaScript constitue l’autre choix possible. Pour plus d’informations sur la définition du langage de scripts par défaut, voir Configuration de Designer pour les scripts.

IMPORTANT : Si vous développez des formulaires destinés à un processus serveur (par exemple, à l’aide de Forms) et prévoyez de les générer au format HTML, il est préférable de développer vos calculs et vos scripts avec JavaScript. Les calculs FormCalc ne sont pas reconnus par les navigateurs HTML, et sont enlevés avant que les formulaires ne soient rendus en HTML.

FormCalc traite chaque nouvelle ligne dans l’éditeur de script comme une nouvelle expression à évaluer.

LIENS CONNEXES :Utilisation de JavaScript

6.2. Utilisation de fonctions intégrées

FormCalc proposent de nombreuses fonctions portant sur des domaines variés, tels que les mathé-matiques, les dates et heures, les chaînes, la finance, la logique et le Web. Ces zones correspondent aux types de fonction habituellement rencontrés dans les formulaires. Ces fonctions permettent de manipuler les données de formulaire de manière rapide, facile et utile.

Au niveau le plus élémentaire, un calcul peut consister en une fonction FormCalc simple seulement. Cependant, une fonction FormCalc simple peut utiliser d’autres fonctions FormCalc comme paramètres.

6.2.1. Pour attacher une fonction FormCalc à un objet

Vous pouvez ajouter une fonction FormCalc à n’importe quel objet de conception de formulaire afin de permettre l’exécution de calculs et de scripts, à l’exception des objets de script.

1) Assurez-vous de disposer d’une version multiligne de l’éditeur de script dans l’espace de travail Designer.

2) Choisissez un champ du formulaire.

77

Page 84: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

3) Dans la zone Afficher, sélectionnez l’événement calculate.

4) Cliquez sur l’icône Fonctions ou appuyez sur la touche F10 pour afficher la liste des fonctions FormCalc.

5) Choisissez la fonction souhaitée et appuyez sur Entrée.

6) Remplacez la notation de syntaxe de la fonction par défaut par votre propre série de valeurs.

7) Cliquez sur l’onglet Aperçu PDF pour tester le formulaire.

6.2.2. Syntaxe de fonction intégrée

Chaque fonction FormCalc utilise une notation de syntaxe spécifique que vous devez respecter pour que les fonctions soient correctement exécutées. Le tableau décrit, d’une manière générale, les éléments de notation de syntaxe.

LIENS CONNEXES :Création de calculs de baseUtilisation de FormCalc

Notation de syntaxe Valeurs de remplacement

d Chaîne de date valide (par exemple, 03/15/1996)

f Chaîne de format de date valide (par exemple, MM/JJ/AAAA)

k Identifiant local valide (par exemple, fr_FR)

n Valeur numérique valide. Notez que la plage de valeurs correctes varie selon les fonctions.

s Unité de mesure valide (par exemple, « cm » pour centimètres).

v Syntaxe de référence valide.

n1, n2, n3 Toutes les valeurs sont requises.

[ [ n [, k ] ] ] Aucune valeur n’est requise, mais vous pouvez choisir de ne préciser que n, ou à la fois n et k.

n1 [, n2 ... ] n1 est requis, mais vous pouvez choisir de préciser un nombre illimité de valeurs supplémentaires.

d [, f [, k ] ] d est requis, mais vous pouvez également choisir de préciser f, ou à la fois f et k.

78

Page 85: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

6.3. Création de calculs de base

6.3.1. A propos des calculs de base

Les expressions simples sont les instances les plus basiques des scripts. Ces expressions n’impliquent pas l’utilisation de fonctions intégrées FormCalc et ne dépassent jamais une ligne. Ajoutez des expressions simples à l’événement calculate d’un champ ou d’un objet spécifique de manière à ce que la valeur de l’expression puisse être générée dans votre formulaire.

6.3.2. Exemples de calculs de base

Voici quelques exemples d’expressions simples :

2 "abc" 2 - 3 * 10 / 2 + 7

Chaque expression simple donne une seule valeur, après exécution des opérations dans l’ordre traditionnel, même si cet ordre n’est pas toujours évident à déterminer à partir de la syntaxe de l’expression. Par exemple, la série d’expressions suivante produit des résultats équivalents.

Expression Equivalent à Résultat

"abc" "abc" abc

2 - 3 * 10 / 2 + 7 2 - (3 * 10 / 2) + 7 -6

(10 + 2) * (5 + 4) (10 + 2) * (5 + 4) 108

0 and 1 or 2 > 1 (0 and 1) or (2 >1) 1 (true)

2 < 3 not 1 == 1 (2 < 3) not (1 == 1) 0 (false)

79

Page 86: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

Comme le suggère le tableau précédent, tous les opérateurs FormCalc possèdent un certain niveau de priorité lorsqu’ils figurent dans des expressions. Le tableau suivant illustre la hiérarchie des opérateurs.

Tous les exemples précédents sont des expressions simples valides que vous pouvez ajouter à un champ ou un objet de formulaire acceptant des calculs et des scripts. Si, par exemple, vous créez un formulaire dans Designer avec un seul champ numérique, ajoutez le calcul suivant à l’événement calculate dans l’éditeur de script.

Lorsque vous cliquez ensuite sur le panneau Aperçu PDF pour afficher le formulaire complet, la valeur de l’expression simple apparaît dans le champ de texte.

Priorité Opérateur

La plus élevée =

(Unaire) - , + , not

* , /

+ , -

< , <= , > , >= , lt , le , gt , ge

== , <> , eq , ne

& , and

La plus basse | , or

80

Page 87: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

Si la valeur n’apparaît pas dans l’aperçu, assurez-vous que votre expression simple apparaît dans l’événement calculate de l’objet de conception de formulaire. Assurez-vous également que vous avez correctement installé Designer et Acrobat.

LIENS CONNEXES :Utilisation de FormCalcUtilisation de JavaScript

6.4. Utilisation de JavaScript

Designer prend en charge l’utilisation de JavaScript 1.6 ou version antérieure dans toutes les situations compatibles avec les fonctions de script pour offrir des possibilités accrues et plus de flexibilité en matière de conception de formulaires.Les développeurs de formulaire connaissant JavaScript peuvent immédiatement mettre à profit leur expertise dans Designer. Designer propose plusieurs propriétés et méthodes améliorant JavaScript, pour ainsi accéder aux valeurs de champ et d’objet. Ces propriétés et méthodes combinées à la syntaxe de référence de Designer permettent une manipulation plus aisée des valeurs et des données de formulaire.REMARQUE : l’éditeur de script ne permet pas la vérification des erreurs de syntaxe des scripts créés à l’aide de JavaScript. En outre, les options de fin d’instructions n’apparaissent pas pour les objets ou méthodes JavaScript standard.

LIENS CONNEXES :Création de scripts à l’aide de JavaScript

6.5. Création de scripts à l’aide de JavaScript

La création de scripts dans Designer à l’aide de JavaScript est similaire à la création de JavaScript dans d’autres applications. Vous pouvez vous baser sur vos connaissances des concepts JavaScript, réutiliser les fonctions JavaScript à l’aide de l’objet de script de Designer et tirer parti des fonction-nalités du langage JavaScript.Cependant, il est important de noter que même si les connaissances de JavaScript sont transférables, vous devez comprendre comment créer une syntaxe de référence Designer ES2 pour utiliser effica-cement JavaScript dans votre conception de formulaire. Plus particulièrement, vous devez savoir utiliser correctement la syntaxe de référence Modèle d’objet de formulaire XML pour accéder aux objets de votre conception de formulaire.

81

Page 88: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

Ce tableau décrit les concepts de base du développement de scripts en JavaScript pour Designer. Il indique également où trouver davantage d’informations sur chaque concept dans l’ Aide de Designer.

Outre les ressources disponibles dans l’ Aide de Designer , l’événement Centre de développement contient un grand nombre de ressources et de documents relatifs aux scripts.

LIENS CONNEXES :Règles d’application de plage stricte dans JavaScriptPour attacher un script JavaScript à un objetUtilisation de JavaScript

6.6. Règles d’application de plage stricte dans JavaScript

Pour travailler avec JavaScript dans des formulaires, il est important de déclarer les objets et les variables dans la plage à laquelle ils sont destinés. En général, le fait de déclarer inutilement des objets et des variables peut entraîner des problèmes de performances.

L’application de plage stricte a été introduite dans Designer 8.1 afin d’améliorer le temps d’exécution et l’utilisation de la mémoire d’un formulaire. Dans Designer, l’application de plage stricte est activée par défaut pour les nouveaux formulaires. Une option permet de l’activer pour les anciens formulaires.

Concept de base Pour plus d’informations, voir...

Création de références à des propriétés et valeurs d’objets, y compris l’utilisation de la méthode resolveNode .

Référence aux propriétés et aux valeurs d’objetresolveNodePour utiliser des options de fin d’instructions pour créer des calculs et des scripts

Test et débogage de votre formulaire à l’aide des modèles d’événement et d’hôte.

Test et débogage des calculs et des scriptsRéférence aux propriétés et aux valeurs d’objet

Utilisation de l’objet de script pour réutiliser les fonctions JavaScript existantes.

Création et réutilisation des fonctions JavaScript

82

Page 89: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

6.6.1. Qu’est-ce qu’une plage dans JavaScript ?

Une plage fonctionne vers l’extérieur de manière à ce que tout ce qui se trouve entre accolades ({}) peut accéder à ce qui se trouve à l’extérieur. En revanche, tout ce qui se trouve à l’extérieur des accolades ne peut pas accéder à ce qui se trouve à l’intérieur.

Dans l’exemple qui suit, la première accolade ouvre la plage de fonction et la deuxième la ferme. Tout ce qui se trouve entre les accolades se situe dans la plage de « foo » ().

Dans l’exemple suivant, la plage est valide car var nFooVar = nOutsideVar entre accolades peut accéder à var nOutsideVar = 2 à l’extérieur des accolades.

83

Page 90: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

En revanche, l’exemple suivant illustre une plage non valide car var nOutsideVar = nFooVar ne peut pas accéder à var nFooVar =4 entre les accolades.

Une plage de création de script décrit des éléments de script pouvant accéder à d’autres éléments. Les éléments de script peuvent être des variables ou des fonctions.

6.6.2. Qu’est-ce qu’une plage XML ?

Dans la conception de formulaire, une plage concerne la hiérarchie. Par exemple, pour accéder au sous-formulaire inside dans la source XML suivante, vous devez entrer outside.inside.

<subform name=“outside”> <subform name=“inside”> … </subform> </subform>

Vous ne devez pas entrer inside.outside car vous devez d’abord accéder au sous-formulaire le plus à l’extérieur et progresser ensuite vers l’intérieur.

6.6.3. Expressions SOM et plage

Dans les formulaires destinés à Acrobat ou Adobe Reader 8.1, les expressions SOM comportent des plages correctes comme indiqué dans cet exemple :

<subform name="a">

<subform name="b"/>

Dans les formulaires destinés à Acrobat ou Adobe Reader 8.0, l’expression SOM a.b.a renvoie le sous-formulaire a. Dans les formulaires destinés à Acrobat ou Adobe Reader 8.1, l’expression SOM a.b.a renvoie null car le sous-formulaire b n’a pas d’enfant nommé a. Dans Acrobat ou Adobe Reader 9.0 (ou une version ultérieure), l’expression renvoie une erreur car a n’est pas un enfant valide de b.

84

Page 91: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

Dans Acrobat ou Adobe Reader 8.1, les fonctions et variables contenues dans un script de nœud ne sont pas globalisées (contrairement aux objets de script) comme indiqué dans cet exemple :

<field name="field1">

event activity="initialize">

<script contentType="application/x-javascript">

// La fonction bar() est incluse dans field1.initialize ; rien en dehors de <event activity="initialize"> ne peut voir à l’intérieur de cet emplacement (dans 8.1)

function bar()

{

return "bar";

}

</script>

</event>

/field>

field name="field2">

<event activity="click">

<script contentType="application/x-javascript">

field1.bar();

</script>

</event>

</field>

Lorsque vous cliquez sur le field 2 dans un formulaire destiné à Acrobat ou Adobe Reader 8.0, la fonction bar() s’exécute.

Lorsque vous cliquez sur le champ field 2 dans un formulaire destiné à Acrobat ou Adobe Reader 8.1, la fonction bar() ne s’exécute pas. Ceci s’explique par le fait que la fonction bar() est disponible uniquement depuis l’intérieur du script initialisé de field1.

6.6.4. Application de plage et objets de script

Les objets de script disposent d’une plage globale. Par conséquent, n’importe qui peut y accéder de n’importe où. Si vous disposez d’une méthode et que vous souhaitez qu’à la fois field1.initia-lize et field2.click puissent y accéder, placez-la dans un objet de script. L’application d’une plage stricte signifie que vous ne pouvez pas appeler bar() de n’importe quel emplacement dans un formulaire. Vous obtenez également une erreur d’exécution indiquant que la fonction bar() ne peut pas être résolue. Le moteur de script a recherché bar() à l’intérieur de la plage à laquelle vous avez accès et ne l’a pas trouvé.

85

Page 92: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript 6

6.6.5. Application de plage et version cible

Si vous utilisez l’application de plage stricte, n’oubliez pas que de meilleures performances sont possibles dans les formulaires destinés à Acrobat ou Adobe Reader 8.1 et aux versions ultérieures. Evitez d’utiliser l’application de plage stricte dans des formulaires destinés à des versions antérieures d’Acrobat ou d’Adobe Reader. Sinon, les scripts des formulaires risquent de fonctionner différem-ment. Pour les formulaires existants, effectuez une copie de sauvegarde du formulaire avant d’activer l’application de plage stricte et vérifiez toujours le script à la fin de l’opération. Lorsque vous activez l’application de plage stricte, puis modifiez la version cible pour une version antérieure à Acrobat ou Adobe Reader 8.1, des messages d’avertissement s’affichent.

6.6.6. Utiliser l’application de plage

Lorsqu’un formulaire est destiné à Acrobat ou Adobe Reader 8.1 et que l’application de plage stricte est activée, les variables JavaScript déclarées sont libérées après l’exécution de chaque script. Lorsqu’un formulaire est destiné à Acrobat ou Adobe Reader 9.0 et aux versions ultérieures, l’application de plage stricte ne libère pas toutes les variables JavaScript. Une seule exception s’applique, lorsque vous refusionnez ou importez de nouvelles données.

Les améliorations de performances obtenues avec les règles d’application de plage stricte concernent les formulaires destinés à Acrobat ou Adobe Reader 8.1 et aux versions ultérieures. N’appliquez pas de règles de plage stricte aux formulaires destinés aux versions d’Acrobat ou Adobe Reader anté-rieures à la 8. Sinon, les scripts peuvent se comporter différemment ou ne pas fonctionner.

6.6.7. Pour activer l’application de plage stricte

1) Choisissez Fichier > Propriétés du formulaire, puis cliquez sur l’onglet Exécution.

2) Sélectionnez Règles d’application de plage stricte dans JavaScript, si l’option est disponible, puis cliquez sur OK.

REMARQUE : Si l’option d’application des règles d’application de plage stricte n’est pas disponible dans l’onglet Exécution, l’application de plage stricte est déjà activée.

LIENS CONNEXES :Utilisation de JavaScriptPour attacher un script JavaScript à un objet

86

Page 93: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Ecriture d’un script avec FormCalc et JavaScript

6.7. Pour attacher un script JavaScript à un objet

Vous pouvez ajouter un script JavaScript à n’importe quel objet de conception de formulaire afin de permettre l’exécution de calculs ou de scripts, y compris des objets de script.

1) Assurez-vous de disposer d’une version multiligne de l’éditeur de script dans l’espace de travail Designer.

2) Choisissez un champ du formulaire. Par exemple, vous pouvez ajouter un nouveau champ de texte à votre conception de formulaire.

3) Dans la zone Afficher, sélectionnez un événement valide. Par exemple, à l’aide du nouveau champ de texte, sélectionnez l’événement docReady .

4) Dans la liste Exécuter sur, choisissez l’emplacement où le script doit être exécuté. Par exemple, à l’aide du nouveau champ de texte, sélectionnez Client.

5) Cliquez sur l’icône Fonctions ou appuyez sur la touche F10 pour afficher une liste des fonctions JavaScript.

6) Choisissez la fonction souhaitée et appuyez sur Entrée.

7) Remplacez la notation de syntaxe de la fonction par défaut par votre propre série de valeurs. Vous pouvez également créer votre propre script manuellement dans le champ Source du script de l’éditeur de script. Par exemple, dans le nouveau champ de texte, ajoutez le script JavaScript au champ Source du script :

this.border.fill.color.value = "255,0,0";

8) Cliquez sur l’onglet Aperçu PDF pour tester le formulaire. Le texte associé au nouvel objet de bouton apparaît en rouge lorsque le formulaire est affiché dans l’onglet Aperçu PDF.

LIENS CONNEXES :Utilisation de JavaScript

87

Page 94: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Variables 7

7. Variables

Vous pouvez définir des variables de formulaire dans Designer pour stocker des informations spécifiques dans un emplacement central et accessible. Une variable agit généralement comme une balise d’emplacement pour un texte susceptible d’être modifié par la suite. Les variables de formulaire dans Designer sont toujours de type « chaîne ». Elle sert, par exemple, à stocker le titre d’une zone de message. Lorsque le texte doit changer, il vous suffit d’ouvrir le formulaire ou le modèle concerné et de mettre à jour le texte une seule fois par le biais de la définition de la variable. Designer propage automatiquement le nouveau texte dans toutes les instances de la variable insérée.

Notez que les variables de formulaire sont définies hors de l’éditeur de script et qu’elles sont acces-sibles par script sur tous les objets du formulaire, par opposition aux variables de script que vous créez dans un FormCalc ou un script JavaScript spécifique.

Vous pouvez créer, visualiser et supprimer des variables sans avoir recours aux scripts. Cependant, vous devez utiliser des scripts pour accéder aux valeurs enregistrées par des variables et les mani-puler, ou pour appliquer les valeurs aux objets du formulaire.

REMARQUE : les valeurs des variables de formulaire sont restaurées chaque fois que vous ouvrez un formulaire.

Avant de créer une variable, choisissez le nom de la variable et du texte qu’elle doit contenir. Les définitions de variables sont enregistrées en même temps que le formulaire ou le modèle.

7.1. Attribution de noms aux variables

Lors de l’exécution, des conflits de noms se produisent si les noms des variables sont identiques à ceux utilisés pour les méthodes et les propriétés du modèle d’objet XML ou à ceux des champs de la conception de formulaire. Ces conflits peuvent être à l’origine du renvoi de valeurs inattendues par les scripts. Il est donc important d’attribuer des noms uniques aux variables. Voici quelques exemples pratiques :

• Utilisez le nom de variable fieldWidth et fieldHeight au lieu de x et y.

• Utilisez le nom d’objet de conception de formulaire clientName au lieu de name.

REMARQUE : les noms de variable distinguent les majuscules des minuscules et ne doivent contenir aucun espace.

88

Page 95: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Variables

7.2. Pour définir une variable de texte

1) Sélectionnez Fichier > Propriétés du formulaire.

2) Dans le panneau Variables, cliquez sur Nouveau (Insérer) .

3) Dans la liste Variables, tapez un seul nom pour la variable et appuyez sur Entrée. les noms de variable distinguent les majuscules des minuscules et ne doivent contenir aucun espace.

4) Cliquez une fois sur la zone à droite et tapez le texte que vous voulez associer à cette variable.

La variable apparaît dans la palette Hiérarchie au niveau formulaire.

A.Nouvelle variable de formulaire

89

Page 96: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Variables 7

7.3. Pour définir une variable de texte

1) Choisissez Edition > Propriétés du formulaire.

2) Dans le panneau Variables, cliquez sur Nouveau (Insérer) .

3) Dans la liste Variables, tapez un seul nom pour la variable et appuyez sur Entrée. les noms de variable distinguent les majuscules des minuscules et ne doivent contenir aucun espace.

4) Cliquez une fois sur la zone à droite et tapez le texte que vous voulez associer à cette variable.

La variable apparaît dans la palette Hiérarchie au niveau formulaire.

A.Nouvelle variable de formulaire

7.4. Pour visualiser une définition de variable de texte

1) Sélectionnez Fichier > Propriétés du formulaire.

2) Cliquez sur l’onglet Variables et sélectionnez la variable dans la liste Variables. Le texte associé est affiché dans la zone à droite.

7.5. Pour visualiser une définition de variable de texte

1) Choisissez Edition > Propriétés du formulaire.

2) Cliquez sur l’onglet Variables et sélectionnez la variable dans la liste Variables. Le texte associé est affiché dans la zone à droite.

90

Page 97: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Variables

7.6. Pour supprimer une variable de texte

1) Sélectionnez Fichier > Propriétés du formulaire.

2) Dans l’onglet Variables, sélectionnez la variable et cliquez sur Supprimer .

7.7. Pour supprimer une variable de texte

1) Choisissez Edition > Propriétés du formulaire.

2) Dans l’onglet Variables, sélectionnez la variable et cliquez sur Supprimer .

7.8. Utilisation des variables dans les calculs et les scripts

Une fois que vous avez créé des variables de formulaire, il vous suffit de vous référer au nom de variable dans vos calculs et scripts pour obtenir la valeur de la variable.

IMPORTANT : lorsque vous nommez des variables, évitez d’utiliser des noms identiques aux noms des propriétés de modèle d’objet de formulaire XML, de méthodes ou de noms d’objet.

Pour plus d’informations sur les propriétés, les méthodes et les objets de modèle d’objet de formulaire XML, voir le Guide de référence pour les scripts.

Créons, par exemple, les définitions de variable de formulaire suivantes.

Dans FormCalc, vous pouvez accéder aux valeurs de variable de la même manière que vous accédez aux valeurs de champ et d’objet. Dans cet exemple, les valeurs sont attribuées à trois champs différents.

TextField1 = firstName TextField2 = lastName NumericField1 = age

Nom de variable Valeur

firstName Tony

lastName Bleu

age 32

91

Page 98: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Variables 7

De même, vous pouvez aussi utiliser des variables dans des fonctions FormCalc, comme le montre cet exemple :

Concat( "Dear ", firstName, lastName )

Dans JavaScript, vous référencez des valeurs de variable à l’aide de la propriété .value au lieu de la propriété .rawValue utilisée pour les valeurs de champ et d’objet, comme l’illustre cet exemple :

TextField1.rawValue = firstName.value;

REMARQUE : Si vous utilisez et modifiez des variables de formulaires à l’aide de scripts dans des formulaires XFA, la barre de message de document d’Acrobat et d’Adobe Reader risque d’afficher un avertissement de validation de signature indiquant que la validité de la signature est inconnue car des modifications ont été apportées au document par la suite.

92

Page 99: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

8. Référence aux objets dans les calculs et scripts

Bien que les calculs FormCalc et les scripts JavaScript possèdent leurs propres règles en vue de créer la structure du code, ces deux fonctionnalités font appel à la même syntaxe de référence lors de l’accès aux propriétés et valeurs des objets de formulaires. Le modèle d’objet de formulaire XML permet d’accéder de manière structurée aux propriétés et aux valeurs des objets grâce à la convention d’affectation de noms composée, chaque propriété, méthode et objet étant séparé par des points (.).

En général, chaque syntaxe de référence possède une structure analogue divisée en diverses sections :

• Les noms des objets parent dans la hiérarchie de formulaire servant à accéder à un champ ou à un objet spécifique. Vous pouvez utiliser la palette Hiérarchie et la palette Vue des données pour déterminer l’emplacement d’un objet par rapport à d’autres objets dans le formulaire et dans les données associées.

• Nom des objets que vous souhaitez référencer.

• Le nom de la propriété ou de la méthode à laquelle vous voulez accéder. Cette section peut inclure des objets du modèle d’objet de formulaire XML précédant la propriété ou la méthode dans la structure, mais qui ne s’affichent pas en tant qu’objets dans la palette Hiérarchie.

L’exemple suivant illustre une syntaxe de référence permettant d’accéder à la valeur d’un champ de texte qui utilise les conventions de dénomination d’objet par défaut :

A.Hiérarchie des objets de formulaire

B.Nom d’objet

C.Nom de la propriété ou de la méthode

REMARQUE : par défaut, l’objet de sous-formulaire représentant la première page d’un nouveau formu-laire n’a pas de nom. Dans la syntaxe de référence précédente, le sous-formulaire sans nom est représenté par #sous-formulaire.

93

Page 100: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

La structure de notation de la syntaxe de référence varie légèrement selon le cas. Par exemple, une syntaxe de référence complète est toujours applicable, mais, dans certains cas, vous pouvez être amené à faire appel à une syntaxe de référence abrégée ou à un raccourci de la syntaxe de référence afin de limiter la taille de la syntaxe.

8.1. Référence aux propriétés et aux valeurs d’objet

La syntaxe de référence servant à examiner ou à modifier les propriétés et les valeurs d’objet peut prendre l’une des formes suivantes :

ComplèteLa syntaxe de référence contient la hiérarchie d’objet complète commençant par le nœud racine xfa . La syntaxe de référence complète permet d’accéder précisément à la propriété ou la valeur d’un objet, quel que soit l’emplacement du calcul ou du script contenant la syntaxe.

AbrégéeLa syntaxe de référence est abrégée en raison du positionnement relatif du calcul ou du script qui contient la syntaxe de référence et les références aux objets de syntaxe ou en raison de l’utilisation de raccourcis. Bien qu’il soit généralement plus rapide de créer une syntaxe de référence abrégée, cette méthode présente l’inconvénient de ne plus être exploitable dès que les objets changent de position les uns par rapport aux autres.

La figure suivante illustre la hiérarchie d’un formulaire de bon de commande.

94

Page 101: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

Cette illustration présente la syntaxe de référence complète, pour FormCalc et JavaScript, indiquant l’accès à la valeur du champ txtCondition . Cette syntaxe de référence peut être utilisée au sein d’un calcul ou d’un script ou encore avec tout objet du formulaire.

A.Nœud racine

B.Modèle

C.Nœud racine de la conception de formulaire

D.Objet Page

E.Nom de sous-formulaire

F.Nom d’objet

G.Nom de la propriété ou de la méthode

REMARQUE : même si la syntaxe de référence est commune à FormCalc et à JavaScript, vous devez respecter les conventions de chaque langage de script. Ainsi, dans l’exemple précédent, la syntaxe de référence est compréhensible par FormCalc, mais vous devez inclure un point-virgule à la fin (;) pour Javascript.

Si deux objets existent dans le même conteneur, tel qu’un sous-formulaire, leur référence indique qu’ils partagent le même contexte. Lorsque des objets existent dans le même contexte, vous pouvez utiliser une syntaxe de référence abrégée comprenant uniquement le nom de l’objet suivi de la propriété ou de la méthode à accéder. Par exemple, dans le cadre de l’exemple précédent, la syntaxe de référence abrégée suivante accède à la valeur du champ txtCondi-tion de tous les champs du sous-formulaire total :

txtCondition.rawValue

Si deux objets existent dans des conteneurs différents, ils ne partagent pas le même contexte. Dans ce cas, vous pouvez utiliser une syntaxe de référence abrégée. Cependant, elle doit commencer par le nom de l’objet conteneur situé au niveau supérieur non commun aux deux objets. Ainsi, dans le cadre de la hiérarchie ci-dessus, la syntaxe de référence abrégée suivante indique la valeur du champ address à partir du champ txtCondition :

header.address.rawValue

95

Page 102: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

En raison de la manière dont le modèle d’objet de formulaire XML est structuré, certaines propriétés et méthodes d’objet existent pour les objets enfant sur le formulaire. Ces objets enfant existent seulement en tant que parties du modèle d’objet de formulaire XML et n’appa-raissent pas dans les palettes Hiérarchie et Vue des données. Pour accéder à ces propriétés et méthodes, vous devez inclure les objets enfant dans la syntaxe de référence. La syntaxe de référence suivante définit le texte d’info-bulle pour le champ txtCondition :

txtCondition.assist.toolTip.value = "Conditions of purchase." // FormCalc txtCondition.assist.toolTip.value = "Conditions of purchase."; // JavaScript

Pour plus d’informations sur les objets de modèle d’objet de formulaire XML et leur structure, voir le Guide de référence pour les scripts.

LIENS CONNEXES :Référence aux objets dans les calculs et scriptsRéférence aux objets sans nom et répétésRéférence à l’objet actifRaccourcis de la syntaxe de référence FormCalc

8.2. Référence aux objets sans nom et répétés

Designer prend en charge la fonctionnalité permettant de créer à la fois des objets sans nom et plusieurs objets portant le même nom. Vous pouvez établir des calculs et des scripts en vue d’accéder ou de remplacer les propriétés et les valeurs des objets sans nom à l’aide de la notation comportant une dièse (#), ainsi que les valeurs d’occurrence d’objet à l’aide de la notation comportant des crochets ([ ]). FormCalc interprète correctement la dièse (#) #) et les crochets ([ ], mais pas Javascript. Pour accéder à la valeur d’un champ de texte en cas de présence d’une dièse (#) ou de crochets ([ ]), à l’aide de JavaScript, vous devez utiliser la méthode resolveNode , ainsi qu’une syntaxe de référence complète ou abrégée.

96

Page 103: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

Lorsque vous générez un formulaire vide, le nom du sous-formulaire représentant la page du formulaire correspond, par défaut, à un sous-formulaire sans nom doté de la valeur d’occurrence 0. L’illustration suivante présente la hiérarchie de formulaire sur un nouveau formulaire utilisant les conventions de dénomination d’objet par défaut.

Le sous-formulaire sans titre représentant la première page du formulaire porte le numéro d’occur-rence 0. En pareil cas, les deux syntaxes de référence suivantes ont accès à la valeur du champ de texte dans la hiérarchie de formulaire ci-dessus sur un nouveau formulaire utilisant les conditions de dénomination par défaut :

xfa.form.form1.#subform.TextField1.rawValue xfa.form.form1.#subform[0].TextField1.rawValue

REMARQUE : par défaut, si vous ne précisez pas la valeur d’occurrence pour un objet, la syntaxe de référence accède à la première occurrence de l’objet.

FormCalc reconnaît la syntaxe de référence complète ci-dessus et l’interprète directement. Pour accéder à la même valeur à l’aide de JavaScript, vous devez utiliser un des formulaires de la méthode de script resolveNode :

xfa.resolveNode("xfa.form.form1.#subform.TextField1").rawValue; xfa.resolveNode("xfa.form.form1.#subform[0].TextField1").rawValue;

Si vous ajoutez une nouvelle page au formulaire, le nom du sous-formulaire correspondant à la nouvelle page est, par défaut, sans nom. Toutefois, la valeur d’occurrence du nouveau sous-formulaire est définie sur 1. Vous pouvez désigner le nouveau sous-formulaire sans nom par une syntaxe de référence similaire :

xfa.form.form1.#subform[1].TextField1.rawValue // FormCalc xfa.resolveNode("xfa.form.form1.#subform[1].TextField1").rawValue; // JavaScript

REMARQUE : les options d’exécution d’instructions de l’éditeur de script incluent des objets sans nom au début de la liste. Les objets possédant plusieurs valeurs d’occurrence n’apparaissent qu’une fois dans la liste, la première occurrence seule étant indiquée. Si vous voulez accéder à une valeur d’occurrence différente de la première, vous devez ajouter manuellement cette valeur à la syntaxe de référence.

97

Page 104: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

Vous pouvez utiliser la méthode resolveNode pour référencer des objets au sein des autres instructions de la syntaxe de référence. Ceci contribue à réduire le nombre total de scripts nécessaires pour faire référence à un objet, une propriété ou une méthode spécifique. Ainsi, vous pouvez simpli-fier la syntaxe menant à un champ de texte de la deuxième page de votre formulaire de la manière suivante :

xfa.form.form1.resolveNode("#subform[1].TextField1").rawValue; // JavaScript

Pour plus d’informations sur la méthode resolveNode , voir resolveNode.

LIENS CONNEXES :Référence aux objets dans les calculs et scriptsRéférence aux propriétés et aux valeurs d’objetRéférence à l’objet actifRaccourcis de la syntaxe de référence FormCalc

8.3. Référence à l’objet actif

Si vous souhaitez modifier les propriétés ou les valeurs de l’objet actif à l’aide des calculs ou des scripts associés à l’objet lui-même, FormCalc et JavaScript recourent à des raccourcis uniques pour limiter la taille de la syntaxe de référence. FormCalc utilise le symbole dollar ($) pour remplacer l’objet actif, alors que JavaScript utilise le mot-clé this.

L’exemple de syntaxe de référence suivante renvoie la valeur de l’objet actif :

$ // FormCalc this.rawValue // JavaScript

Vous pouvez utiliser le symbole du dollar ($) et le mot-clé this à la place du nom de l’objet actif lors de l’accès aux propriétés d’objets dans les calculs et scripts. L’exemple de syntaxe de référence suivant change le texte d’info-bulle associé à l’objet actif :

$.assist.toolTip.value = "This is some tool tip text." // FormCalc this.assist.toolTip.value = "This is some tool tip text."; // JavaScript

LIENS CONNEXES :Référence aux objets dans les calculs et scriptsRéférence aux propriétés et aux valeurs d’objetRéférence aux objets sans nom et répétésRaccourcis de la syntaxe de référence FormCalc

98

Page 105: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

8.4. Raccourcis de la syntaxe de référence FormCalc

Pour faciliter l’accès aux propriétés et aux valeurs et limiter votre travail, FormCalc offre des raccourcis pratiques pour créer des références. Cette section décrit les raccourcis de syntaxe de référence pour FormCalc.

8.4.1. Champ ou objet actif

Fait référence au champ ou à l’objet actif

Notation

$

Exemple

$ = "Tony Blue"

L’exemple ci-dessus définit la valeur du champ ou de l’objet actuel sur Tony Blue.

8.4.2. Racine du modèle de données de xfa.datasets.data

Représente la racine du modèle de données xfa.datasets.data.

Notation

$data

Exemple

$data.purchaseOrder.total

est équivalent à

xfa.datasets.data.purchaseOrder.total

99

Page 106: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

8.4.3. Evénement d’objet de formulaire

Représente l’événement d’objet de formulaire actif.

Notation

$event

Exemple

$event.name

est équivalent à

xfa.event.name

Pour plus d’informations, voir Utilisation du modèle d’événement.

8.4.4. Racine de modèle de formulaire

Représente la racine du modèle de formulaire xfa.form.

Notation

$form

Exemple

$form.purchaseOrder.tax

revient à dire

xfa.form.purchaseOrder.tax

8.4.5. Objet hôte

Représente l’objet hôte.

Notation

$host

100

Page 107: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

Exemple

$host.messageBox("Hello world")

est équivalent à

xfa.host.messageBox("Hello world")

Pour plus d’informations, voir Utilisation d’une application hôte.

8.4.6. Racine du modèle de disposition

Représente la racine du modèle de mise en pagexfa.layout.

Notation

$layout

Exemple

$layout.ready

revient à dire

xfa.layout.ready

8.4.7. Collecte d’enregistrements de données

Représente l’enregistrement actuel d’une collection de données, provenant d’un fichier XML par exemple.

Notation

$record

Exemple

$record.header.txtOrderedByCity

référence le nœud txtOrderedByCity dans le nœud d’en-tête des données XML actuelles.

101

Page 108: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

8.4.8. Racine du modèle de modèle

Représente la racine du modèle de modèle xfa.template.

Notation

$template

Exemple

$template.purchaseOrder.item

est équivalent à

xfa.template.purchaseOrder.item

8.4.9. Racine de modèle de données de xfa.datasets

Représente la racine du modèle de donnéesxfa.datasets.

Notation

!

Exemple

!data

est équivalent à

xfa.datasets.data

8.4.10. Sélectionne tous les objets de formulaire

Sélectionne tous les objets de formulaire dans un conteneur donné (tel qu’un sous-formulaire), quel que soit le nom, ou sélectionne tous les objets ayant un nom similaire.

L’utilisation d’un astérisque (*) est admise dans le langage JavaScript avec la méthode resolveNode.

Notation

*

102

Page 109: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

Exemple

Par exemple, l’expression suivante sélectionne tous les objets nommés item sur un formulaire :

xfa.form.form1.item[*]

8.4.11. Recherche les objets faisant partie d’un sous-conteneur

Vous pouvez utiliser deux points à un endroit quelconque de votre syntaxe de référence pour rechercher des objets faisant partie de n’importe quel sous-conteneur du conteneur actuel (tel qu’un sous-formu-laire).

Vous pouvez utiliser la syntaxe ‘..’ (double point) avec JavaScript en faisant appel à la méthode resolveNode.

Notation

..

Exemple

L’expressionSubform_Page..Subform2signifie localiser le nœudSubform_Page(normal) et rechercher un descendant deSubform_PageappeléSubform2.

En se fondant sur l’arborescence ci-dessus,

Subform_Page..TextField2

est équivalent à

Subform_Page.Subform1[0].Subform3.TextField2[0]

becauseTextField2[0]est le premier nœudSubform1que FormCalc rencontre lors de sa recherche. Deuxième exemple :

Subform_Page..Subform3[*]

renvoie les quatre objetsTextField2.

103

Page 110: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

8.4.12. Désigne un objet sans nom ou indique une propriété

La notation dièse (#) est utilisée pour représenter l’un des éléments suivants dans une syntaxe de référence :

• Un objet sans nom

• Une propriété dans une syntaxe de référence si une propriété et un objet possèdent le même nom

L’utilisation du signe dièse (#) est admise dans le langage JavaScript avec la méthode resolveNode.

Notation

#

Exemple

La syntaxe de référence suivante accède à un sous-formulaire sans nom :

xfa.form.form1.#subform

La syntaxe de référence suivante accède à la propriété name d’un sous-formulaire si le sous-formu-laire contient également un champ appelé name:

xfa.form.form1.#subform.#name

8.4.13. Valeur d’occurrence d’un objet

Les crochets ([ ]) représentent la valeur d’occurrence d’un objet.

dans les formulaires en arabe, hébreu, thaï et vietnamien, la syntaxe de référence se trouve toujours à droite (même pour les langues s’écrivant de droite à gauche).

Notation

[ ]

104

Page 111: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts

Exemple

Pour créer une référence à une valeur d’occurrence, placez des crochets ([ ]) après un nom d’objet et insérez entre les crochets l’une des valeurs suivantes :

• [ n ], oùnest un numéro d’index d’occurrence absolu commençant à 0. Un numéro d’occurrence hors limite ne renvoie aucune valeur Par exemple :

xfa.form.form1.#subform.Quantity[3]

renvoie à la quatrième occurrence de l’objet Quantity.

• [ +/- n ], où n indique une occurrence relative à l’occurrence de l’objet porteur de la référence. Les valeurs positives retournent des nombres d’occurrences plus élevés alors que les valeurs négatives retournent des nombres d’occurrences plus bas. Par exemple :

xfa.form.form1.#subform.Quantity[+2]

Cette référence retourne l’occurrence de Quantity dont le nombre d’occurrences est deux de plus que le nombre d’occurrences du conteneur qui constitue la référence. Si, par exemple, cette référence était jointe à l’objet Quantity[2], la référence serait la même que :

xfa.template.Quantity[4]

Si le numéro d’index calculé est hors limite, la référence renvoie une erreur.

Cette syntaxe sert surtout à localiser l’occurrence précédente ou suivante d’un objet en particulier. Par exemple, chaque occurrence de l’objet Quantity (sauf la première) peut utiliser Quantity[-1] pour obtenir la valeur de l’objet Quantity précédent.

• [*]indique plusieurs occurrences d’un objet. Le premier objet nommé est trouvé, et les objets portant le même nom et ayant le même parent immédiat sont retournés. Le résultat de cette notation est une collection d’objets. Par exemple :

xfa.form.form1.#subform.Quantity[*]

• Cette expression fait référence à tous les objets portant le nom deQuantitéqui ont le même parent immédiat que la première occurrence deQuantitétrouvée par la référence.

105

Page 112: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Référence aux objets dans les calculs et scripts 8

L’arborescence servant de référence, les expressions suivantes retournent les résultats indiqués :

• Subform_Page.Subform1[*]renvoie les deux objetsSubform1.

• Subform_Page.Subform1.Subform3.TextField2[*]renvoie les deux objets-TextField2.Subform_Page.Subform1est résolu en tant que premier objet-Subform1à gauche, etTextField2[*]est évalué par rapport à l’objetSubform3.

• Subform_Page.Subform1[*].TextField1renvoie les deux instancesText-Field1.Subform_Page.Subform1[*]est résolu sous forme des deux objets-Subform1etTextField1est évalué par rapport aux objetsSubform1.

• Subform_Page.Subform1[*].Subform3.TextField2[1]renvoie les deuxième et quatrième objetsTextField2à partir de la gauche.Subform_Page.Subform1[*]est résolu sous forme des deux objetsSubform1, etTextField2[1]est évalué par rapport aux objetsSubform3.

• Subform_Page.Subform1[*].Subform3[*]renvoie les deux instance de l’objet-Subform3.

• Subform_Page.*renvoie les deux objetsSubform1et l’objetSubform2.

• Subform_Page.Subform2.*renvoie les deux instances de l’objetNumericField2.

• Vous pouvez utiliser la syntaxe ‘ [ ]’ (crochets) avec Javascript si elle est utilisée avec la méthode resolveNode.

LIENS CONNEXES :Référence aux objets dans les calculs et scripts

106

Page 113: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création et réutilisation des fonctions JavaScript

9. Création et réutilisation des fonctions JavaScript

La méthode objet de script est un objet que vous pouvez utiliser pour stocker des fonctions JavaScript et des valeurs séparément de l’objet de formulaire proprement dit. En général, on utilise un objet de script pour créer des fonctions et des méthodes personnalisées que l’on veut utiliser sous forme de script JavaScript en différents endroits du formulaire. Cette technique réduit le nombre total de scripts requis pour réaliser des actions répétitives.L’objet de script reconnaît uniquement les scripts écrits en langage JavaScript, mais il n’y a aucune restriction quant au lieu d’exécution des scripts (à condition d’avoir configuré le langage de script JavaScript pour l’événement faisant appel à l’objet de script).Acrobat et Forms traitent les scripts à partir d’un objet de script de la même manière, mais des différences demeurent.Seuls les scripts destinés à être exécutés sur le client peuvent utiliser des objets de script destinés à être exécutés sur le client, et réciproquement.

9.1. Pour créer un objet de script

La création d’un objet de script se fait en deux temps. La première étape consiste à ajouter l’objet proprement dit à la conception de formulaire, et la seconde étape consiste à écrire le script que vous souhaitez enregistrer dans l’objet de script.1) Créez un nouveau formulaire ou ouvrez un formulaire existant.2) Dans la palette Hiérarchie, cliquez à l’aide du bouton droit sur un objet de niveau formulaire

ou un objet de niveau sous-formulaire et choisissez Insérer un objet de script.A. Objet de niveau formulaire B. Objet de niveau sous-formulaire C. Objet de script de niveau sous-formulaire D.Objet de script de niveau formulaire

3) (Facultatif) Cliquez à l’aide du bouton droit sur l’objet de script, et choisissez Renommer l’objet.

107

Page 114: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création et réutilisation des fonctions JavaScript 9

9.2. Pour ajouter un script à un objet de script

Une fois que vous avez un objet de script dans votre formulaire, vous pouvez ajouter des scripts à l’aide de l’éditeur de script.

1) Sélectionnez l’objet de script dans la palette Hiérarchie.

L’éditeur de script affiche à la fois une valeur de l’objet de script dans la liste Afficher, et la valeur JavaScript dans la liste Langage. Vous ne pouvez modifier aucune de ces valeurs.

2) Entrez votre script dans le champ Source du script.

3) Cliquez sur l’onglet Aperçu PDF pour tester le formulaire.

9.2.1. Exemple

Par exemple, créez un objet de script nommé feedback contenant la fonction suivante :

function emptyCheck(oField) {

if ((oField.rawValue == null) || (oField.rawValue == "")) {xfa.host.messageBox("You must input a value for this field.", "Error Message", 3); } }

108

Page 115: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Création et réutilisation des fonctions JavaScript

9.3. Pour référencer les fonctions JavaScript stockées dans un objet de script

Après avoir ajouté des scripts à un objet de script, vous pouvez référencer l’objet de script à partir de tout événement compatible avec les scripts JavaScript.

1) Sélectionnez un objet de votre formulaire et choisissez un événement dans la liste Afficher.

2) Créez une référence à l’objet de script et aux fonctions voulues dans l’objet de script. La syntaxe générique suivante suppose que l’objet dans lequel vous référencez l’objet de script est au même niveau que l’objet de script dans la hiérarchie du formulaire ou que l’objet de script figure au niveau supérieur de la hiérarchie.

script_object.function_name(parameter1, ...);

3) Appliquez le nouveau script à l’objet de formulaire et testez-le en prévisualisant le formulaire à partir du panneau Aperçu PDF.

Comme lors du référencement d’autres objets dans un formulaire, vous devez spécifier une syntaxe valide lorsque vous référencez l’objet de script en indiquant son emplacement au sein de la hiérarchie. Pour plus d’informations sur la référence à des objets dans des scripts, voir Référence aux propriétés et aux valeurs d’objet.

9.3.1. Exemple

Par exemple, en vous basant sur l’exemple d’objet de script de la section Pour ajouter un script à un objet de script, placez le script JavaScript suivant sur l’événement exit pour un champ de texte. Testez le formulaire à partir du panneau Aperçu PDF.

109

Page 116: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation de fragments de script 10

10. Utilisation de fragments de script

Un fragment de script contient un objet de script. Un objet de script contient des valeurs ou des fonctions JavaScript réutilisables stockées séparément de tout objet de formulaire, tels qu’un analyseur de dates ou un appel de services Web. En général, un objet de script sert à créer des fonctions et des méthodes personnalisées destinées à être utilisées en différents endroits d’un formulaire. L’emploi d’objets de script permet de réduire le nombre total de scripts requis pour réaliser des actions répétitives.

Les fragments de script comprennent exclusivement des objets de script figurant comme enfants de variables dans la palette Hiérarchie. Les fragments ne peuvent pas contenir de scripts associés à d’autres objets de formulaire, tels que les scripts d’événements (validate, calculate, ou initialize, par exemple).

Pour créer un fragment de script, servez-vous de la palette Hiérarchie.

Vous modifiez les fragments script de la même manière que les autres types de fragments.

10.1. Propriétés des fragments de script

Lorsque vous sélectionnez un fragment de script, le panneau Objet de script de la palette Objet affiche les propriétés du fragment.

10.1.1. Fichier source

Définit le fichier source de la référence au fragment. Cette propriété est uniquement visible dans le cas d’une référence à un fragment.

10.1.2. Nom du fragment

Définit le nom du fragment. Vous pouvez cliquer sur le bouton Informations sur le fragment pour afficher les informations correspondantes.

Cette propriété est visible lorsque vous sélectionnez une référence à un fragment ou un fragment défini dans un fichier source. Dans le cas d’une référence à un fragment, cette propriété est uniquement disponible si le fichier source est spécifié. La liste Nom du fragment présente tous les fragments contenus dans le fichier source spécifié. L’option Personnaliser prend en charge directement une expression SOM ou une valeur d’ID que référence le fragment. Elle prend en charge l’implémentation dans la spécification XFA (XML Forms Architecture).

110

Page 117: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation de fragments de script

10.2. Pour créer un fragment de script

Vous pouvez créer un fragment de script constitué de fonctions courantes destinées à être réutilisées dans plusieurs formulaires. Pour créer un fragment de script, vous définissez un objet de script contenant les fonctions souhaitées. Le fragment de script ne peut comprendre qu’un seul objet de script.

1) Créez un objet de script.

2) Dans la palette Hiérarchie, cliquez sur l’objet de script avec le bouton droit de la souris et choisissez Fragments > Créer un fragment.

REMARQUE : vous pouvez également créer un fragment de script en faisant glisser l’objet de script de la palette Hiérarchie vers la palette Bibliothèque de fragments.

3) Pour utiliser un nom de fragment différent, saisissez le nom de votre choix dans la zone Nom.

4) (Facultatif) Dans la zone Description, donnez une description du fragment.

5) Choisissez une méthode de création de fragment :

• Pour définir le fragment dans un fichier XDP distinct stocké dans la Bibliothèque de frag-ments, sélectionnez Créer un fragment dans la Bibliothèque de fragments. Dans la liste Bibliothèque de fragments, sélectionnez la bibliothèque dans laquelle vous souhaitez enregistrer le fichier du fragment. Pour utiliser un nom de fichier différent, saisissez le nom de fichier voulu pour le fragment dans la zone Nom du fichier. Si vous ne voulez pas remplacer la sélection par le nouveau fragment, désactivez la case à cocher Remplacer la sélection par la référence au nouveau fragment de formulaire.

• Pour définir le fragment dans le fichier actif, sélectionnez Créer un fragment dans le document actif.

6) Cliquez sur OK.

10.3. Pour insérer un fragment de script

Les fragments de script vous permettent de réutiliser des fonctions JavaScript dans plusieurs formulaires. Lors de la création d’une conception de formulaire, vous insérez une référence à un fragment de script existant et celui-ci s’affiche dans la conception de formulaire.

Il est impossible d’insérer un fragment dans un document XFAF.

REMARQUE : pour afficher un aperçu des fragments dans la palette Bibliothèque de fragments, choisissez l’option Afficher le volet de visualisation dans le menu de la palette.

111

Page 118: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation de fragments de script 10

10.3.1. Pour insérer un fragment de script à partir de la palette Bibliothèque de fragments :

1) Dans la bibliothèque de fragments, sélectionnez le fragment de script.

2) Faites-glisser le fragment vers un objet de sous-formulaire ou un objet de variable dans la palette Hiérarchie.

10.3.2. Pour insérer un fragment de script à partir du menu Insertion :

1) Choisissez Insertion > Fragment.

2) Localisez le fichier contenant le fragment.

3) Sélectionnez le fichier et cliquez sur OK. Le fragment s’affiche en tant qu’enfant de l’objet de variables dans le sous-formulaire racine.

LIENS CONNEXES :Création et réutilisation des fonctions JavaScriptPour créer un objet de scriptPour ajouter un script à un objet de script

112

Page 119: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts

11. Débogage des calculs et des scripts

Designer propose différentes fonctions et stratégies pour le débogage des calculs et des scripts, en fonction du langage de script choisi.

Pour le débogage des scripts utilisant le langage JavaScript, vous pouvez utiliser les méthodes alert ou messageBox pour fournir des commentaires de débogage. L’inconvénient de cette méthode tient au fait que vous devez fermer de nombreuses zones de message. L’autre inconvénient est que l’affichage d’une zone de message peut entraîner des différences de comportement du formulaire, notamment si vous tentez de déboguer un script qui définit la cible d’action sur un objet de votre formulaire. Il est préférable d’utiliser console.println pour générer le texte dans la console JavaScript à partir d’Acrobat afin de déboguer un formulaire.

11.1. Messages d’avertissement et de validation de la palette Rapport dans Designer

La palette Rapport envoie des messages d’avertissement et de validation qui vous aident à déboguer un formulaire à mesure que vous le concevez. L’onglet Avertissement répertorie les erreurs ou les messages généré(e)s par Designer à mesure que vous créez un formulaire. L’onglet Journal affiche les erreurs et les messages suivants :

• Messages de validation

• Erreurs d’exécution de script JavaScript ou FormCalc

• Erreurs de rendu du formulaire au moment de sa conception générées lorsque vous importez ou enregistrez un formulaire ou lorsque vous le prévisualisez dans l’onglet Aperçu PDF.

Pour plus d’informations sur l’utilisation de la palette Rapport, voir Utilisation de l’espace de travail pour le débogage des calculs et des scripts.

113

Page 120: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts 11

11.2. Affichage d’informations de débogage à l’aide de la méthode messageBox

La méthode messageBox du modèle d’objet de formulaire XML permet d’extraire des informations d’un formulaire interactif dans une boîte de dialogue au moment de l’exécution. Vous pouvez utiliser la méthode messageBox du modèle d’objet de formulaire XML pour afficher les messages ou les valeurs de champs au moment de l’exécution. Une fois lancée, la méthode messageBox affiche une valeur de chaîne dans une nouvelle boîte de dialogue de l’application client. Il peut s’agit, en l’occurrence, d’un message de texte que vous rédigez à des fins de débogage ou de la valeur de chaîne de champs ou d’expressions.

Prenons un scénario dans lequel une simple conception de formulaire contient un seul champ numérique (NumericField1) et un bouton (Button1). Dans ce cas, le calcul FormCalc et le script JavaScript génèrent chacun un message présentant du texte et la valeur actuellement affichée dans le champ numérique. En ajoutant le calcul ou le script à l’événement click de l’objet de bouton, il est possible de présenter de façon interactive la valeur du champ numérique dans une nouvelle boîte de dialogue en cliquant sur le bouton.

11.3. FormCalc

xfa.host.messageBox(Concat("The value of NumericField1 is: ", NumericField1), "Debugging", 3)

11.4. JavaScript

xfa.host.messageBox("The value of NumericField1 is: " + NumericField1.rawValue, "Debugging", 3);

IMPORTANT : La méthode messageBox renvoie un nombre entier représentant le bouton que la personne remplissant le formulaire sélectionne dans la boîte de dialogue du message. Si vous associez la méthode messageBox à l’événement calculate d’un objet de champ et si la méthode messagebox est la dernière ligne du script, le champ affiche la valeur renvoyée par la méthode messageBoxà l’exécution.

Pour plus d’informations sur l’utilisation de la méthode messageBox, voir messageBox

114

Page 121: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts

11.5. Extraire des informations dans un champ de texte

Vous pouvez extraire des informations (ex.: valeurs de champs ou messages) dans un champ de texte sur votre conception de formulaire. Par exemple, vous pouvez ajouter de nouveaux messages ou de nouvelles valeurs à la valeur d’un champ de texte afin de créer un journal que vous pourrez consulter régulièrement.

11.6. Débogage JavaScript

Si vous utilisez le langage JavaScript pour un script, vous pouvez utiliser la fonction console.println("string") pour extraire des informations dans la console JavaScript disponible dans Acrobat Professional. Vous pouvez également utiliser la méthode alert du modèle d’objet JavaScript d’Acrobat pour déboguer Javascript.

11.6.1. JavaScript Debugger dans Acrobat Professional

Le JavaScript Debugger dans Acrobat Professional permet de tester les scripts JavaScript. Cet outil inclut la console JavaScript qui permet de tester des parties du code JavaScript dans l’onglet Aperçu PDF. Cette console fournit une interface interactive et pratique pour contrôler des parties de code JavaScript et travailler sur les propriétés et méthodes d’objets. La console JavaScript Console est interactive : elle se comporte donc comme un éditeur permettant l’exécution de lignes uniques ou de blocs de code.

Pour activer JavaScript Debugger pour Designer et exécuter du code depuis la console JavaScript, vous devez activer JavaScript et JavaScript Debugger dans Acrobat Professional.

REMARQUE : Vous pouvez activer JavaScript Debugger dans Adobe Reader si Acrobat Reader DC Extensions est installé. Pour activer JavaScript Debugger dans Adobe Reader, vous devez ouvrir le fichier debugger.js et modifier le registre Microsoft Windows. Pour plus d’informations sur JavaScript Debugger dans Adobe Reader, voir Developing Acrobat Applications Using JavaScript (en anglais uniquement).

11.6.2. Pour activer JavaScript Debugger pour Designer

1) Démarrez Designer.

2) Démarrer Acrobat Professional.

3) Dans Acrobat Professional, sélectionnez Edition > Préférences.

4) Sélectionnez JavaScript dans la liste située à gauche.

5) Sélectionnez l’option d’activation d’Acrobat JavaScript si besoin est.

115

Page 122: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts 11

6) Dans JavaScript Debugger, sélectionnez l’option indiquant qu’il faut activer JavaScript Debugger après le redémarrage d’Acrobat.

7) Sélectionnez l’option d’activation de la console interactive. Cette option vous permet d’évaluer le code que vous écrivez dans la console JavaScript Console.

8) Sélectionnez l’option d’affichage de la console lors d’erreurs et de messages. Cette option vous assure que la console affichera des informations utiles dès que vous ferez des erreurs.

9) Cliquez sur OK pour fermer la boîte de dialogue Préférences.

10) Quitter Acrobat Professional.

11) Dans Designer, cliquez sur l’onglet Aperçu PDF.

12) Appuyez sur Ctrl+J pour ouvrir JavaScript Debugger.

11.6.3. Pour maintenir ouvert JavaScript Debugger dans Designer

Si l’outil JavaScript Debugger est actif dans Acrobat et qu’il disparaît dès que vous cliquez sur des composants dans l’interface de Designer, vous devez arrêter le processus Acrobat.exe dans le Gestionnaire des tâches de Microsoft Windows. Le processus Acrobat.exe continue de s’exécuter après la fermeture d’Acrobat de manière à ce qu’Acrobat puisse s’ouvrir plus vite en cas de redémarrage. L’interruption du processus met fin à l’association entre JavaScript Debugger et la session d’Acrobat Professional, ce qui permet d’utiliser JavaScript Debugger dans Designer.

1) Dans le Gestionnaire des tâches de Windows, cliquez sur l’onglet Processus.

2) Dans la colonne Nom de l’image, cliquez avec le bouton droit de la souris sur Acrobat.exe et choisissez Terminer le processus.

11.6.4. Evaluation du code à l’aide de la console JavaScript

Il existe trois manières d’évaluer une seule ou plusieurs lignes de code à l’aide de la console JavaScript à partir d’Acrobat.

116

Page 123: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts

11.6.5. Pour évaluer une partie d’une ligne de code

1) Mettez en surbrillance la partie dans la fenêtre de la console et appuyez sur la touche Entrée du pavé numérique ou sur les touches Ctrl+Entrée du clavier normal.

11.6.6. Pour évaluer une seule ligne de code

1) Placez le curseur sur la ligne souhaitée dans la fenêtre de la console et appuyez sur la touche Entrée du pavé numérique ou sur les touches Ctrl+Entrée du clavier normal.

11.6.7. Pour évaluer plusieurs lignes de code

1) Mettez en surbrillance ces lignes dans la fenêtre de la console, puis appuyez sur la touche Entrée du pavé numérique ou sur les touches Ctrl+Entrée du clavier normal.

11.6.8. Pour supprimer le contenu affiché dans la console JavaScript

1) Cliquez sur Effacer dans la fenêtre de la console.

Le résultat de la dernière instruction JavaScript évaluée s’affiche dans la fenêtre de la console.

Après l’évaluation de chaque script JavaScript, la fenêtre de console imprime undefined, c’est-à-dire la valeur renvoyée de l’instruction. Notez que le résultat d’une instruction est différent de la valeur d’une expression dans l’instruction. La valeur renvoyée undefined ne signifie pas que la valeur du script est indéterminée : elle indique que la valeur retournée de l’instruction JavaScript est indéterminée.

11.6.9. Affichage d’informations de débogage dans la console JavaScript

Si vous créez des scripts à l’aide de JavaScript, vous pouvez envoyer les messages de sortie vers la console JavaScript à partir d’Acrobat au moment de l’exécution. Pour ce faire, utilisez la méthode console.println répertoriée dans le modèle d’objet JavaScript d’Acrobat. Une fois lancée, la méthode console.println affiche une valeur de chaîne dans la console JavaScript. Il peut s’agit, en l’occurrence, d’un message de texte que vous rédigez à des fins de débogage ou de la valeur de chaîne de champs ou d’expressions.

Prenons par exemple une simple conception de formulaire contenant un seul champ numérique (NumericField1) et un bouton (Button1). Dans ce cas, le script JavaScript suivant génère un message présentant du texte et la valeur actuellement affichée dans le champ numérique. En ajoutant le calcul ou le script à l’événement click de l’objet de bouton, il est possible de présenter de façon interactive la valeur du champ numérique dans une nouvelle boîte de dialogue en cliquant sur le bouton.

console.println("The value is: " + NumericField1.rawValue);

117

Page 124: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts 11

Pour obtenir plus d’informations sur la méthode console.println et le modèle d’objet JavaScript d’Acrobat, voir Developing Acrobat Applications Using JavaScript (en anglais uniquement).

Pour plus d’informations sur la console JavaScript et JavaScript Debugger, voir Developing Acrobat Applications Using JavaScript (en anglais uniquement).

11.6.10. Affichage d’informations de débogage à l’aide de la méthode alert

Si vous souhaitez renvoyer une zone de message lors d’un événement calculate , vous pouvez utiliser la méthode alert du modèle d’objet JavaScript d’Acrobat. Le script suivant renvoie, par exemple, la valeur d’un champ de texte :

var oField = xfa.resolveNode("TextField1").rawValue; app.alert(oField);

Pour obtenir plus d’informations sur la méthode alert et le modèle d’objet JavaScript d’Acrobat, voir Developing Acrobat Applications Using JavaScript (en anglais uniquement).

LIENS CONNEXES :Utilisation de l’espace de travail pour le débogage des calculs et des scripts

11.7. Conseils pour le débogage

Suivez les conseils ci-dessous pour déboguer des calculs ou des scripts.

11.7.1. Données d’exemple

Pensez à spécifier un fichier de données d’aperçu dans la boîte de dialogue Propriétés du formulaire. Le fait de spécifier un fichier de données d’aperçu n’enregistre pas les données dans le PDF final.

11.7.2. Gabarit

Pour déboguer un gabarit, placez un objet différent sur chaque gabarit pour savoir lequel est spécifié.

11.7.3. Première page d’un formulaire

Designer regarde au niveau du sous-formulaire racine pour déterminer à quelle page démarrer le formulaire. Si le sous-formulaire racine ne permet pas de déterminer la première page, c’est le premier gabarit qui est utilisé par défaut.

118

Page 125: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts

11.7.4. Débogage incrémentiel

Pour déboguer une conception de formulaire, commencez par retirer des parties du formulaire jusqu’à ce que le problème ne se produise plus. Essayez d’isoler la source du problème après avoir passé en revue chaque script et chaque propriété d’objet. Pour déboguer les sous-formulaires, vous pouvez spécifier une bordure de couleur épaisse autour du sous-formulaire ou utiliser un remplis-sage Les couleurs et les remplissages permettent d’indiquer quel sous-formulaire est utilisé ainsi que son étendue. Généralement, cette technique fonctionne bien lorsqu’il s’agit de déterminer les limites d’un objet et la raison pour laquelle il est placé à un certain endroit.

11.7.5. Vue Hiérarchie

Visualisez votre conception de formulaire avec la vue Hiérarchie afin d’en avoir une meilleure perception. L’ordre des objets figurant dans cette arborescence correspond à l’ordre dans lequel ils apparaissent sur la page. Certains objets, s’ils apparaissent en dessous d’autres objets, ne peuvent pas être suivis.

11.7.6. Messages d’erreur relatifs aux scripts

Dans Designer, les messages d’erreur relatifs aux scripts sont affichés dans l’onglet Journal de la palette Rapport en mode de prévisualisation du formulaire. Si la conception de formulaire contient des scripts FormCalc et que l’erreur se produit sur le serveur, les avertissements s’affichent dans l’onglet Journal. Si l’erreur de scripts FormCalc se produit sur le client, le message apparaît dans Acrobat Reader ou Acrobat.

Une erreur dans un script FormCalc empêche l’ensemble du script d’être exécuté.

En cas d’erreur dans un script JavaScript, celui-ci est exécuté jusqu’à ce qu’il atteigne l’erreur.

11.7.7. Erreurs de syntaxe dans FormCalc

Les erreurs de syntaxe dans FormCalc sont parfois difficiles à résoudre. Lorsque le message « Erreur de syntaxe près du jeton %1, sur la ligne %2 de la colonne %3 » s’affiche, %1 contient généralement le jeton (mot) le plus proche de l’erreur. Il se peut donc que le jeton soit correct et qu’il n’ait rien à voir avec l’erreur, si ce n’est la proximité au problème. Par exemple, le script suivant génère l’erreur 7008 : « Erreur de syntaxe près du jeton ’then’ sur la ligne x, colonne y ».

var b = abc(1) if (b ne 1) then //comment

Le problème vient du fait qu’il manque un jeton endif dans le script. Le dernier jeton correct est then (Les commentaires ne font pas partie des jetons). L’ajout d’une instruction endif à la fin du script résout le problème.

119

Page 126: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts 11

11.7.8. Fonctions définies dans un objet de script

Vous pouvez uniquement appeler une fonction définie dans un objet de script s’il s’agit d’un script JavaScript. Veillez à modifier le langage de script en JavaScript dans l’éditeur de script. Si vous ne le faites pas, un message s’affichera indiquant que Designer n’est pas en mesure de résoudre l’objet de script. La même erreur peut se produire lorsqu’une erreur de syntaxe se produit dans l’objet de script.

11.7.9. Opérations de services Web

Pour créer des opérations de services Web, utilisez l’événement postExecute pour voir ce qui a été renvoyé et si le service Web a généré des messages d’erreur.

11.7.10. Expressions SOM longues

Pour taper une expression SOM longue à plusieurs calques, appuyez sur la touche Ctrl et cliquez sur l’objet dans la zone de travail. Cette commande permet d’insérer l’expression SOM de l’objet dans le script. L’expression SOM dépend de l’objet hébergeant le script. Pour insérer l’expression SOM absolue, appuyez sur Ctrl+Shift et cliquez sur l’objet. Ces commandes fonctionnent si vous cliquez sur les objets dans la vue Conception et non dans la vue Hiérarchie.

11.7.11. Tester les expressions SOM

Si une expression SOM longue échoue, revenez à la racine de l’expression et testez chaque point avec className jusqu’à ce que vous atteigniez le problème. Par exemple, testez a.b.c.d en démarrant à la racine :

• console.println(a.className)

• console.println(a.b.className)

• console.println(a.b.c.className)

• console.println(a.b.c.d.className)

11.7.12. Utiliser des objets de script pour déboguer des conceptions de formulaires

Utilisez un objet de script (un fragment par exemple) pour déboguer des conceptions de formulaire :

• Extrayez une hiérarchie de nœuds sous un nœud.

• Extrayez la valeur d’une propriété ou d’un attribut d’un nœud.

• Extrayez et regardez si le nœud a une propriété ou un attribut spécifié(e).

120

Page 127: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Débogage des calculs et des scripts

• Extrayez l’expression SOM d’un nœud.

• Extrayez le xml srcd’un nœud donné.

Voici l’exemple d’un objet de script contenant plusieurs fonctions de débogage :

<script contentType="application/x-javascript" name="XFADEBUG"> //Cet objet de script fournit plusieurs fonctions de suivi pour aider à déboguer une conception de formulaire //Extraire une hiérarchie de nœuds dans la fonction console.println() printNode(node) {... } //Extraire l’expression SOM dans la fonction console.println() printSOM(node) {... } //Extraire la fonction de valeur de propriété ou d’attribut printValue(node, attrOrPropertyName) {...} function printXMLSource(node) { ....} function printHasPropertySpecified(node, prop) {...}\\ </script>

11.7.13. Avertissements

• L’appel de la fonction xfa.layout.relayout(). lors de l’événement docReadyentraîne des problèmes, car l’événement docReady se déclenche à chaque fois que la mise en page est prête.

• Placer un conteneur enchaîné à l’intérieur d’un conteneur positionné entraîne des problèmes de sauts de page, de chevauchement d’objets et de répétition de sous-formulaires. Le sous-formu-laire racine est un conteneur enchaîné. Utilisez-le et placez-y vos conteneurs enchaînables en excluant les sous-formulaires une fois votre disposition terminée. Vous pouvez également définir l’enchaînement des sous-formulaires sur Enchaîné.

• Problème de page vierge (Acrobat 7.1 ou versions antérieures) Au moment de la conception, une page vierge s’affiche lorsque le sous-formulaire ne rentre pas dans les limites de la zone de contenu. Pour supprimer cette page vierge, redimensionnez le sous-formulaire ou divisez-le en plusieurs pages. Si l’ordinateur de l’utilisateur est équipé d’Acrobat 7.1 ou d’une version antérieure, le sous-formulaire de deuxième niveau apparaît sur une autre page.

121

Page 128: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation d’une application hôte 12

12. Utilisation d’une application hôte

L’application hôte est l’application qui héberge le formulaire à un moment donné.

Par exemple, si vous utilisez Forms pour générer un formulaire au format HTML, le prérendu s’effectue dans l’application hôte Forms.

Après avoir généré le formulaire, si vous le visualisez dans une application client telle que Acrobat, Adobe Reader ou un navigateur HTML, c’est l’application cliente qui fait office d’application hôte.

Designer inclut un modèle de script offrant des propriétés et des méthodes de création de script prévues pour interagir directement avec une application hôte. Vous pouvez, par exemple, vous servir des propriétés et des méthodes du modèle de script hôte pour assurer des actions de navigation dans les pages PDF dans Acrobat ou Adobe Reader, ou utiliser la méthode importData pour charger des données dans votre formulaire.

Il est possible de faire référence à la syntaxe du modèle de script hôte dans tout événement de script valide pour les objets de conception de formulaire utilisant la syntaxe suivante en langage FormCalc et JavaScript :

xfa.host.property_or_method

12.1. Propriétés et méthodes du modèle de script hôte

A l’aide des propriétés et des méthodes du modèle de script hôte, vous pouvez rechercher des informations et exécuter des actions qui ne sont pas accessibles autrement par le biais de calculs et de scripts. Par exemple, vous pouvez rechercher le nom de l’application hôte (telle que Acrobat), ou avancer la page actuelle sur un formulaire interactif. Le tableau suivant présente les propriétés et les méthodes disponibles pour le modèle de script hôte.

Propriétés Méthodes

appType beep

calculationsEnabled exportData

currentPage gotoURL

language importData

name messageBox

numPages pageDown

122

Page 129: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation d’une application hôte

Pour plus d’informations sur les méthodes et propriétés des modèles de scripts hôte, consultez le Centre de développement.

12.2. Comparaison des fonctionnalités du modèle de script hôte

Le tableau suivant récapitule les propriétés et les méthodes du modèle de script hôte de Designer et les compare aux expressions équivalentes dans le modèle d’objet JavaScript d’Acrobat.

Pour plus d’informations sur les méthodes et propriétés des modèles de scripts hôte, consultez l’ Aide de Designer ou le Guide de référence pour les scripts.

platform pageUp

title print

validationsEnabled resetData

variation response

version setFocus

Propriétés Méthodes

Propriétés et méthodes du modèle de script hôteModèle d’objet JavaScript à partir d’objet équivalent

à Acrobat

xfa.host.appType app.viewerType

xfa.host.beep( [ INTEGER param ] ) app.beep([ nType ])

xfa.host.currentPage doc.pageNum

xfa.host.exportData([ STRING param1 [, BOOLEAN param2 ] ])

doc.exportXFAData(cPath [, bXDP ])

xfa.host.gotoURL( STRING param1 ) doc.getURL(cURL, [ bAppend ])ouapp.launchURL(URL);

xfa.host.importData( [ STRING param ] ) doc.importXFAData(cPath)

xfa.host.language app.language

xfa.host.messageBox(STRING param1 [, STRING param2 [, INTEGER param3 [, INTEGER param4 ] ] ])

app.alert(cMsg [, nIcon [, nType [, cTitle ] ] ])

123

Page 130: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation d’une application hôte 12

LIENS CONNEXES :Référence aux objets dans les calculs et scripts

xfa.host.name none

xfa.host.numPages doc.numPages

xfa.host.pageDown() doc.pageNum++

xfa.host.pageUp() doc.pageNum--

xfa.host.platform app.platform

xfa.host.print(BOOLEAN param1, INTEGER param2, INTEGER param3, BOOLEAN param4, BOOLEAN param5, BOOLEAN param6, BOOLEAN param7, BOOLEAN param8)

doc.print([ bUI [, nStart [, nEnd [, bSilent [, bShrinkToFit [, bPrintAsImage [, bReverse [, bAnnotations ] ] ] ] ] ] ] ])

xfa.host.resetData( [ STRING param ] )

doc.resetForm([ aFields ])

xfa.host.response( STRING param1 [, STRING param2 [, STRING param3 [, BOOLEAN param4] ] ])

app.response(cQuestion [, cTitle [, cDefault [, bPassword ] ] ])

xfa.host.setFocus( STRING param ) field.setFocus()(Obsolète)

xfa.host.title doc.title

xfa.host.variation app.viewerVariation

xfa.host.version app.viewerVersion

Propriétés et méthodes du modèle de script hôteModèle d’objet JavaScript à partir d’objet équivalent

à Acrobat

124

Page 131: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation du modèle d’événement

13. Utilisation du modèle d’événement

Le modèle d’événement sert à stocker les propriétés d’événement objet. Ces propriétés s’avèrent utiles pour accéder aux valeurs qui sortiraient du cadre des événements présentés dans la liste Afficher de l’éditeur de script.

Le modèle d’événement contrôle les modifications dans un formulaire qui se produisent avant, pendant et après les actions, qu’il s’agisse d’événements de formulaire dynamique (stade auquel les données et la conception de formulaire sont fusionnées et avant la pagination) ou d’événements de formulaire interactif (moment auquel un utilisateur met à jour la valeur d’un champ).

13.1. Propriétés et méthodes du modèle d’événement

A l’aide des propriétés et des méthodes d’événement objet, vous pouvez rechercher des informations et exécuter des actions qui ne sont pas accessibles autrement par le biais de calculs et de scripts. Par exemple, vous pouvez rechercher la valeur complète d’un champ qui ferait partie des données retirées parce qu’elles sont trop longues ou invalides. L’extraction d’une valeur complète d’un champ est pratique lorsque vous devez procéder à des vérifications extensives d’erreurs.

Propriétés Méthodes

change emit

className reset

commitKey

fullText

keyDown

modifier

name

newContentType

newText

prevContentType

prevText

reenter

125

Page 132: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Utilisation du modèle d’événement 13

Pour plus d’informations sur les méthodes et propriétés des modèles de scripts d’événements, visitez le Centre de développement.

selEnd

selStart

shift

soapFaultCode

soapFaultString

target

Propriétés Méthodes

126

Page 133: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

14. Conversion de scripts Acrobat en scripts Designer

Designer offre des fonctions de script étendues et prend même en charge les objets JavaScript les plus courants provenant d’Acrobat. Lorsque vous convertissez un formulaire Acrobat en formulaire Designer, la plupart des scripts JavaScript continuent de fonctionner normalement sans aucune modification. Vous devez cependant convertir manuellement certains scripts JavaScript provenant d’Acrobat pour maintenir le comportement de votre formulaire Acrobat.

Lors de la conversion de scripts sur votre formulaire Acrobat, notez les différences en matière de création de scripts dans Acrobat :

Espace de travail de DesignerDans l’espace de travail, il est possible de changer les propriétés et les comportements des objets sur votre formulaire sans qu’il soit nécessaire de créer des scripts.

Langages de scriptDesigner gère aussi bien le langage JavaScript que le langage FormCalc (langage de calcul simple). FormCalc offre des fonctions intégrées permettant d’effectuer diverses opérations correspondant à des scripts complexes.

Référence aux objets, aux propriétés et aux méthodesCompte tenu de la nature très structurée des formulaires Designer, il est nécessaire d’inclure la syntaxe de référence appropriée dans votre script pour référencer des objets, des propriétés ou des méthodes spécifiques. Pour vous faciliter la tâche, vous pouvez tirer parti des options d’exécution d’instructions dans l’éditeur de script.

Vous pouvez continuer à utiliser des objets, des propriétés et des méthodes JavaScript provenant d’Acrobat dans Designer. Cependant, vous devez considérer JavaScript à partir d’Acrobat uniquement pour des tâches que vous ne pouvez pas effectuer à l’aide d’un modèle d’objet de formulaire XML dans Designer. Par exemple, vous pouvez utiliser JavaScript à partir d’Acrobat pour ajouter des pièces jointes, des signets et des annotations, rechercher et vérifier l’orthographe du formulaire, créer des rapports ou accéder et manipuler des métadonnées. JavaScript d’Acrobat ne permet pas d’effectuer certaines actions, telles que définir des valeurs de champs, ajouter de nouveaux champs dans un formulaire ou supprimer des pages d’un formulaire.

REMARQUE : vous ne pouvez pas utiliser Acrobat pour ajouter des scripts JavaScript à un formulaire Designer, notamment les formulaires Acrobat que vous avez convertis à l’aide de Designer. Lorsque vous affichez un formulaire Designer dans Acrobat, vous n’avez accès à aucun des outils JavaScript.

Pour plus d’informations sur la conversion de scripts Acrobat en scripts Designer, voir l’article Conversion d’Acrobat JavaScript pour utilisation dans des formulaires Designer dans le Centre de développement.

127

Page 134: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

14.1. Conversion de formulaires Acrobat contenant des scripts

L’une des premières choses à faire lorsque vous décidez de convertir un formulaire Acrobat en formulaire Designer est de déterminer la proportion de scripts Acrobat prise en charge par Designer et d’évaluer le nombre de scripts à convertir.

En général, vous devez convertir tous les scripts Acrobat en scripts Designer équivalents. Les scripts Designer exploitent pleinement la nature hautement structurée des formulaires Designer, ainsi que les fonctionnalités spécifiques aux formulaires pour faciliter la conception et la mise en œuvre de vos formulaires.

Les scripts Acrobat à préserver sont ceux qui ont trait à l’environnement du formulaire et aux opérations périphériques, telles que l’ajout de pièces jointes ou de contenu multimédia, l’exécution de recherches ou la création de rapports et le traitement des métadonnées.

Pour plus d’informations sur la conversion de scripts Acrobat en scripts Designer, voir l’article Conversion d’Acrobat JavaScript pour utilisation dans des formulaires Designer dans le Centre de développement.

LIENS CONNEXES :Conversion de scripts Acrobat en scripts DesignerUtilisation d’objets JavaScript provenant d’Acrobat dans DesignerObjets JavaScript provenant d’Acrobat pris en charge dans Designer

14.2. Utilisation d’objets JavaScript provenant d’Acrobat dans Designer

Dans Designer, vous pouvez appliquer des scripts à certains objets JavaScript dans Acrobat en faisant appel à la syntaxe de script d’Acrobat. Il est donc possible d’utiliser les propriétés et les méthodes de ces objets sur votre formulaire. Par exemple, si vous souhaitez afficher un message dans la console JavaScript à partir d’Acrobat, vous pouvez ajouter le script suivant à l’événement d’un objet de conception de formulaire dans Designer :

console.println("Ce message s’affiche dans la console JavaScript.");

Vous pouvez également activer l’envoi automatique du formulaire par courrier électronique en ajoutant le script suivant à l’événement click d’un bouton :

var myDoc = event.target; myDoc.mailDoc(true);

REMARQUE : Dans Designer, vous devez vous assurer de choisir le langage JavaScript correspondant à l’événement afin que le script soit exécuté correctement au moment de l’exécution.

128

Page 135: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

Vous pouvez utiliser également des références dans les objets JavaScript d’Acrobat dans votre syntaxe de référence. Par exemple, le script suivant extrait l’état signé d’un champ de signature, puis exécute une action en fonction de l’état récupéré :

// Continuer si le champ actif n’est pas signé. var oState = event.target.getField("form1[0].#subform[0].SignatureField1[0]") .signatureValidate(); //Obtenir l’état signé du champ.

if (oState == 0) { ... }

REMARQUE : Cet exemple utilise une syntaxe de référence complète pour référencer le texte. Pour plus d’informations sur la référence aux objets de conception de formulaire, voir Référence aux propriétés et aux valeurs d’objet.

Lorsque vous travaillez avec JavaScript à partir d’Acrobat dans Designer, pensez aux points suivants :

• Dans Designer, utilisez xfa.event.target pour accéder à l’objet Doc JavaScript à partir d’Acrobat. Dans Acrobat, l’objet this est utilisé pour référencer l’objet Doc ; cependant, dans Designer, l’objet this fait référence à l’objet de conception de formulaire auquel le script est associé.

• L’éditeur de script ne comporte pas de fin d’exécution des instructions pour les objets JavaScript à partir d’Acrobat. Voir la JavaScript pour la référence API d’Acrobat.

• La méthode Doc event.target.importTextData("file.txt") n’est pas prise en charge pour les formulaires dynamiques XFA qui ont été certifiés.

Pour plus d’informations sur la conversion de scripts Acrobat en scripts Designer, voir l’article Conversion d’Acrobat JavaScript pour utilisation dans des formulaires Designer dans le Centre de développement.

LIENS CONNEXES :Conversion de scripts Acrobat en scripts DesignerConversion de formulaires Acrobat contenant des scriptsObjets JavaScript provenant d’Acrobat pris en charge dans Designer

129

Page 136: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

14.3. Objets JavaScript provenant d’Acrobat pris en charge dans Designer

Le tableau suivant répertorie la disponibilité des objets, des propriétés et des méthodes Acrobat les plus fréquemment utilisés dans Designer, et décrit les fonctions équivalentes dans Designer. Bien que le tableau présente la plupart des objets, propriétés et méthodes Acrobat, ceux qui sont rarement utilisés dans les formulaires (comme les objets multimédias) ont été volontairement omis.

Lorsqu’aucune fonctionnalité équivalente n’est pas répertoriée, cela signifie qu’il n’existe pas de propriété ou méthode directe pour reproduire le comportement d’Acrobat. Il est toutefois toujours possible de créer des fonctions ou des scripts personnalisés pour répliquer la fonction d’Acrobat.

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

Propriétés et méthodes d’objetAnnot

Toutes les propriétés et les méthodes Oui Aucun Seuls les formulaires avec une disposition fixe prennent en charge le calque des annotations.

propriétés d’objetapp

calculate Non Aucun Designer inclut la méthode execCalculatequi lance l’événementcalculate.execCalculate

language Oui xfa.host.language Voir la propriété language.language

monitors Oui Aucun

platform Oui xfa.host.platform Voir la propriété platform.platform

plugins Oui Aucun

toolbar Oui Aucun

viewerType Oui xfa.host.appType Voir la propriété appType.appType

viewerVariation Oui xfa.host.variation

Voir la propriété variation.variation

viewerVersion Oui xfa.host.version Voir la propriété version.version

130

Page 137: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

méthodes d’objetapp

addMenuItem Oui Aucun

addSubMenu Oui Aucun

addToolButton Oui Aucun

alert Oui xfa.host.messageBox()

Voir la propriété messageBox.messageBox

beep Oui xfa.host.beep() Voir la propriété beep.beep

browseForDoc Oui Aucun

clearInterval Oui Aucun

clearTimeOut Oui Aucun

execDialog Oui Aucun

execMenuItem Oui Aucun Exécute la commande de menu spécifiée. Utilisez cette méthode dans Designer pour les commandes du menu Fichier.

getNthPluginName Oui Aucun

getPath Oui Aucun

goBack Oui Aucun

goForward Oui Aucun

hideMenuItem Oui Aucun

hideToolbarButton Oui Aucun

launchURL Oui Aucun Designer inclut la méthode gotoURL, qui charge une URL spécifiée dans l’application cliente, comme Acrobat ou Adobe Reader.gotoURL

listMenuItems Oui Aucun

listToolbarButtons Oui Aucun

mailGetAddrs Oui Aucun

mailMsg Oui Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

131

Page 138: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

newDoc Oui Aucun Cette méthode ne peut être exécutée que lors des événements de traitement par lot, de console ou de menu.

newFDF Non Aucun

openDoc Oui Aucun

openFDF Non Aucun

popUpMenuEx Oui Aucun

popUpMenu Oui Aucun

removeToolButton Oui Aucun

response Oui xfa.host.response()

Voir la propriété response.response

setInterval Oui Aucun

setTimeOut Oui Aucun

trustedFunction Oui Aucun

trustPropagatorFunction Oui Aucun Cette méthode est disponible uniquement lors de l’initialisation du traitement par lot, de la console et de l’application.

Propriétés et méthodes d’objet de signet

Toutes les propriétés et les méthodes Oui Aucun

propriétés d’objetdoc

d’auteur Oui Aucun

baseURL Oui Aucun

bookmarkRoot Oui Aucun

calculate Non Aucun

dataObjects Oui Aucun

delay Non Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

132

Page 139: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

dirty Oui Aucun Ce script JavaScript pour Designer enregistre une copie d’un formulaire et vérifie si le formulaire a été modifié :var sOrigXML = xfa.data.saveXML; si (sOrigXML != xfa.data.saveXML) {...}

disclosed Oui Aucun

documentFileName Oui Aucun

dynamicXFAForm Oui Aucun

external Oui Aucun

filesize Oui Aucun

hidden Oui Aucun

icons Oui Aucun

keywords Oui Aucun

layout Oui Aucun

media Oui Aucun

metadata Oui xfa.form.desc Voir l’objet desc.desc

modDate Oui Aucun

mouseX mouseY Oui Aucun

noautocomplete Oui Aucun

nocache Oui Aucun

numFields Oui xfa.layout.pageContent()

La méthode pageContentrenvoie une liste de tous les objets d’un type particulier. Cependant, vous devez exécuter la méthode pour les vues de conception et les gabarits afin de numériser la totalité du formulaire.pageContent

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

133

Page 140: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

numPages Oui xfa.host.numPagesouxfa.layout.absPageCount() xfa.layout.pageCount()

La méthode numPagesrenvoie le nombre de pages du formulaire généré dans l’application cliente. Voir aussi les méthodes absPageCountet pageCount.numPagesabsPageCountpageCount

pageNum Oui xfa.host.currentPage

Voir l’objet currentPage.currentPage

pageNum-- Oui xfa.host.currentPage--ouxfa.host.pageUp()

Voir la propriété currentPageou la méthode pageUp.currentPagepageUp

pageNum++ Oui xfa.host.currentPage++ouxfa.host.pageDown()

Voir la propriété currentPageou la méthode pageDown.currentPagepageDown

path Oui Aucun

securityHandler Oui Aucun

templates Non Aucun Utilisez les objets de sous-formulaire dans Designer, et faites appels aux propriétés et aux méthodes pour ajouter, supprimer, déplacer et configurer les instances de sous-formulaire.Ajout et suppression des instances de sous-formulaire à l’aide de scripts

title Oui xfa.host.title Voir title.

propriétés d’objetapp

addAnnot Oui Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

134

Page 141: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

addField Non Aucun Vous devez utiliser impérativement des formulaires avec une mise en page fixe dans Designer, puis utiliser l’objetinstanceManager pour ajouter, supprimer et configurer le nombre d’instances d’un objet spécifique.instanceManagerPour plus d’informations, voir Ajout et suppression des instances de sous-formulaire à l’aide de scripts.

addIcon Oui Aucun

addLink Non Aucun

addRecipientListCryptFilter Oui Aucun

addScript Oui Aucun

addThumbnails Non Aucun

addWatermarkFromFile Oui Aucun

addWatermarkFromText Oui Aucun

addWeblinks Oui Aucun

appRightsSign Oui Aucun

appRightsValidate Oui Aucun

bringToFront Oui Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

135

Page 142: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

calculateNow Non xfa.form.recalculate(1);ouexecCalculate()

recalculateLa méthode recalculateforce l’exécution d’un jeu spécifique de scripts sur des événementscalculateà lancer. La valeur booléenne indique siTrue(valeur par défaut) (tous les scripts de calcul sont exécutés) ou False (seuls les scripts de calcul en attente doivent être exécutés).L’objetcalculatede Designer détermine si la personne remplissant le formulaire peut écraser ou non la valeur calculée d’un champ.execCalculateVous pouvez également utiliser la méthode execCalculatepour chaque objet pour lequel vous souhaitez forcer un recalcul.

closeDoc Oui Aucun

createDataObject Oui Aucun

createTemplate Non Aucun Les formulaires Designer n’ont pas d’équivalent au concept de modèle d’Acrobat. Vous devez utiliser des objets de sous-formulaire dans Designer.

deletePages Non Aucun instanceManagerDans Designer, vous pouvez utiliser l’objet instanceManagerpour supprimer l’objet de sous-formulaire qui représente une page de votre formulaire.Pour plus d’informations, voir Ajout et suppression des instances de sous-formulaire à l’aide de scripts.

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

136

Page 143: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

embedDocAsDataObject Oui Aucun

encryptForRecipients Oui Aucun

encryptUsingPolicy Oui Aucun

exportAsText Oui Aucun Cette méthode est uniquement disponible dans la console JavaScript de l’outil JavaScript Debugger dans Acrobat ou au cours d’un traitement par lot.

exportAsFDF Non xfa.host.exportData()

exportDataLa méthode exportDataexporte un fichier XML ou XDP et non un fichier FDF.

exportAsXFDF Non xfa.host.exportData()

exportDataLa méthode exportDataexporte un fichier XML ou XDP et non un fichier FDF.

exportDataObject Oui Aucun

exportXFAData Non xfa.host.exportData()

exportDataLa méthode exportDataexporte un fichier XML ou XDP et non un fichier FDF.

extractPages Non Aucun

flattenPages Non Aucun

getAnnot Oui Aucun

getAnnots Oui Aucun

getDataObjectContents Oui Aucun

getField("FieldName") Oui xfa.resolveNode ("FieldName")

resolveNodeLa méthode resolveNodeaccède à l’objet spécifié dans le fichier XML source du formulaire.

getLegalWarnings Oui Aucun

getLinks Non Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

137

Page 144: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

getNthFieldName Oui Vous devez effectuer une boucle à travers tous les objets ayant un nom de classe similaire jusqu’à ce que vous atteigniez l’occurrencenth.

classNameVoir la propriété className.

getNthTemplate Non Aucun

getOCGs Oui Aucun

getOCGOrder Oui Aucun

getPageBox Oui Aucun

getPageLabel Oui Aucun

getPageNthWord Oui Aucun

getPageNthWordQuads Oui Aucun

getPageNumWords Oui Aucun

getPageRotation Oui Aucun

getPrintParams Oui Aucun

getTemplate Non Aucun

getURL Oui xfa.host.gotoURL("http://www.adobe.com");

Voir la propriété gotoURL.gotoURL

gotoNamedDest Non Aucun

importAnFDF Non Aucun

importAnXFDF Oui Aucun

importDataObject Oui Aucun

importIcon Oui Aucun

importTextData Oui Aucun

importXFAData Non xfa.host.importData ("filename.xdp");

Voir la propriété importData.importData

insertPages Non Aucun

mailDoc Oui Aucun

mailForm Non Aucun

movePage Non Aucun

newPage Non Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

138

Page 145: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

openDataObject Oui Aucun

print Oui xfa.host.print(); Voir la propriété print.print

removeDataObject Oui Aucun

removeField Non Aucun

removeIcon Oui Aucun

removeLinks Non Aucun

removeScript Oui Aucun

removeTemplate Non Aucun

removeThumbnails Non Aucun

removeWeblinks Oui Aucun

replacePages Non Aucun

resetForm Non xfa.host.resetData()ouxfa.event.reset()

La méthode resetDataréinitialise toutes les valeurs des champs d’un formulaire à leurs valeurs par défaut. La méthode resetréinitialise toutes les propriétés au sein d’un modèle d’événement.resetDatareset

saveAs Oui Aucun Dans Designer, le fichier doit être enregistré au niveau de l’application. Ces scripts sont des exemples d’enregistrement au niveau de application :app.executeMenuItem ("SaveAs");ouvar myDoc = event.target; myDoc.saveAs();

spawnPageFromTemplate Non Aucun

setAction Non Aucun

setPageLabel Oui Aucun

setPageRotation Non Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

139

Page 146: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

setPageTabOrder Non Aucun Dans Designer, sélectionnez Edition > Ordre de tabulation pour définir l’ordre de tabulation.

setScript Non Aucun

submitForm Oui Utilisez l’un des objets de bouton d’envoi dans Designer.

événementdoc

change Oui xfa.event.change changeVoir la propriété change .

targetName Oui xfa.event.target targetVoir la propriété target .

propriétés d’objetfield

comb Non Aucun

charLimit Non this.value.#text.maxChars

Dans les formulaires ayant une mise en page fixe, le nombre maximum de caractères peut être défini dans l’espace de travail de Designer. Vous pouvez configurer des champs sur les formulaires prévus pour évoluer en fonction du volume de données.maxChars

display = display.noView Non Voir Modification de la visibilité d’un objet de conception de formulaire.

presenceVous pouvez également définir la propriété presencedans l’espace de travail de Designer.Vous ne pouvez pas utiliser l’événementprePrintpour modifier la présence d’un objet avant l’impression.

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

140

Page 147: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

display = display.noPrint

Non Voir Modification de la visibilité d’un objet de conception de formulaire.

presenceVous pouvez également définir la propriété presencedans l’espace de travail de Designer.Vous ne pouvez pas utiliser l’événementprePrint pour modifier la présence d’un objet avant l’impression.

defaultValue Non Aucun Définissez la valeur de champ par défaut dans l’espace de travail de Designer.

exportValues Non Aucun Définissez la valeur d’exportation dans l’espace de travail de Designer.

fillColor Non xfa.form.Form1. NumericField1.fillColor

fillColorVoir la propriété fillColor.

hidden Non this.presence = "invisible" this. presence = "visible"

presenceVous pouvez également définir la propriété presencedans l’espace de travail de Designer.

multiLine Non this.ui.textEdit.multiLine = "1";

multiLineVoir la propriété multiLine.

password Non Aucun Designer contient un champ Mot de passe utilisable sur un formulaire.

page Non Aucun Ne s’applique pas aux formulaires Designer.

print Non this.relevant = "-print";

relevantVoir la propriété relevant.

radiosInUnison Non Aucun Les boutons radio groupés dans Designer s’excluent mutuellement par défaut.

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

141

Page 148: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer 14

rect Oui Vous pouvez obtenir la hauteur et la largeur d’un champ de formulaire Designer à l’aide de la syntaxe de référence suivante :this.h; this.w;Vous pouvez également obtenir les coordonnées x et y d’un objet à l’aide de la syntaxe de référence suivante :this.x; this.y;

h, x, yVoir les propriétés h,w,xety.

required Non this.mandatory = "error";outhis.validate.nullTest = "error";

mandatory, nullTestVoir les propriétés mandatoryet nullTest.

textColor Non this.fontColor fontColorVoir les propriétésfontColor.

textSize Non this.font.size sizeVoir les propriétés size.

textFont Non this.font.typeface

typefaceVoir les propriétés typeface.

value Non this.rawValue rawValueVoir la propriété rawValue.valueLes champs Designer ont une propriété value; il s’agit de l’équivalent de la propriété value d’Adobe.

propriétés d’objetapp

clearItems Non DropDownList1.clearItems();

clearItemsLa méthode clearItemss’applique uniquement aux objets de liste déroulante et aux objets de zones de liste dans Designer.

deleteItemAt Non Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

142

Page 149: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Conversion de scripts Acrobat en scripts Designer

LIENS CONNEXES :Utilisation du modèle d’événement

getItemAt Non Aucun

insertItemAt Non DropDownList1.addItem .....)

addItemVoir la méthode addItem.

isBoxChecked Non if(CheckBox1.rawValue == 1)....

rawValueVoir la propriété rawValued’Adobe.

isDefaultChecked Non Aucun

setAction Non Aucun Ne s’applique pas aux formulaires Designer.

setFocus Oui xfa.host.setFocus ("TextField1.somExpression")

setFocusLa méthode setFocusexige que le nom de l’objet spécifié soit unique par rapport aux autres objets de votre formulaire.

setItems Non Aucun

setLock Oui Aucun

signatureGetModifications Oui Aucun

signatureGetSeedValue Oui Aucun

signatureInfo Oui Aucun

signatureSetSeedValue Oui Aucun

signatureSign Oui Aucun

signatureValidate Oui Aucun

méthode d’objetsearch

search.query("<votre texte>");

Oui Aucun Le champ “..” syntaxe FormCalc abrégée (..) vous permet de rechercher des objets au sein du modèle d’objet de formulaire XML.Pour plus d’informations, voir Raccourcis de la syntaxe de référence FormCalc.

méthode d’objetSOAP

Toutes les propriétés et les méthodes Oui Aucun

JavaScript dans AcrobatPrise en charge de

DesignerEquivalent JavaScript

dans Designer Commentaires

143

Page 150: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15. Exemples de tâches de script courantes

Les exemples de script vous proposent des techniques rapides et simples que vous pouvez appliquer à vos travaux personnels.

Pour obtenir des exemples et des idées, visitez le Centre de développement.

15.1. Modification des couleurs d’arrière-plan des champs, des zones remplissables et des sous-formulaires

Cet exemple vous montre comment modifier la couleur d’arrière-plan des sous-formulaires, des champs et des zones remplissables en réponse aux interactions de l’utilisateur final au moment de l’exécution.

Dans cet exemple, un simple clic sur un bouton permet de modifier la couleur d’arrière-plan de l’objet associé.

REMARQUE : pour pouvoir modifier la couleur d’arrière-plan des objets au moment de l’exécution, vous devez enregistrer votre formulaire comme formulaire XML dynamique Acrobat.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

144

Page 151: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.1.1. Script pour les couleurs d’arrière-plan des sous-formulaires et des champs de texte

Pour définir les couleurs d’arrière-plan des sous-formulaires et des champs de texte, utilisez la méthode fillColor . Par exemple, la ligne suivante constitue le script du sous-formulaire :

Subform1.fillColor = "17,136,255";

Les lignes suivantes constituent le script pour la couleur d’arrière-plan des champs de texte :

Subform1.Name.fillColor = "102,179,255"; Subform1.Address.fillColor = "102,179,255"; Subform1.City.fillColor = "102,179,255"; Subform1.State.fillColor = "102,179,255"; Subform1.ZipCode.fillColor = "102,179,255"; Subform1.Country.fillColor = "102,179,255";

15.1.2. Script pour la couleur d’arrière-plan des zones remplissables

Lorsque vous définissez la couleur d’arrière-plan ou la zone remplissable de chaque champ de texte, vos scripts doivent accéder à des propriétés nécessitant une expression de syntaxe de référence et incluant le symbole (#). Étant donné que Javascript n’interprète pas le signe dièse correctement (#) dans les expressions de syntaxe de référence, le script utilise la méthode resolveNode pour résoudre l’expression.

xfa.resolveNode("Subform1.Name.ui.#textEdit.border.fill.color").value = "153,204,255"; xfa.resolve-Node("Subform1.Address.ui.#textEdit.border.fill.color").value = "153,204,255"; xfa.resolveNode("Subform1.City.ui.#textEdit.border.fill.color").value = "153,204,255"; xfa.resolve-Node("Subform1.State.ui.#textEdit.border.fill.color").value = "153,204,255"; xfa.resolveNode("Subform1.ZipCode.ui.#textEdit.border.fill.color").value = "153,204,255"; xfa.resolve-Node("Subform1.Country.ui.#textEdit.border.fill.color").value = "153,204,255";

15.1.3. Script pour le bouton Effacer tout

Le script du bouton Effacer tout utilise la méthode remerge pour fusionner de nouveau la conception de formulaire et les données de formulaire. Dans le cas présent, la méthode rétablie efficacement les champs, les zones remplissables et les sous-formulaires à leur état d’origine.

xfa.form.remerge();

145

Page 152: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.2. Masquage et affichage d’objets

Cet exemple vous explique comment masquer les boutons lors de l’impression d’un formulaire ; il vous explique également comment masquer et afficher des objets en modifiant les valeurs de visibilité au moment de l’exécution.

REMARQUE : vous pouvez également utiliser la boîte de dialogue Créateur d’actions dans le menu Outils pour masquer et afficher des objets dans des formulaires dotés d’une disposition souple, sans avoir à écrire de scripts. Pour plus d’informations, voir Création d’actions dans les formulaires

Dans cet exemple, tous les objets de formulaire sont affichés dans le formulaire.

146

Page 153: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

Grâce aux listes déroulantes de la zone Valeurs de visibilité, l’utilisateur peut afficher ou masquer les objets. Dans le diagramme suivant, le champ d’adresse est masqué et la disposition du formulaire est ajustée en conséquence. Le bouton Formulaire pour impression est également visible.

REMARQUE : pour afficher et masquer les objets au moment de l’exécution, vous devez enregistrer votre formulaire comme formulaire PDF dynamique Acrobat.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.2.1. Script pour les valeurs de visibilité des sous-formulaires

Le script pour les valeurs de visibilité des sous-formulaires utilise une instruction de commutation pour gérer les trois options de visibilité qu’un utilisateur peut appliquer à l’objet de sous-formulaire :switch(xfa.event.newText) { case 'Invisible': Subform1.presence = "invisible"; break; case 'Hidden (Exclude from Layout)': Subform1.presence = "hidden"; break; default: Subform1.presence = "visible"; break; }

147

Page 154: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.2.2. Script pour les valeurs de visibilité des champs de texte

Le script pour les valeurs de visibilité des champs de texte nécessite deux variables. La première variable enregistre le nombre d’objets contenus dans Subform1 :

var nSubLength = Subform1.nodes.length;

La deuxième variable enregistre le nom du champ de texte que l’utilisateur sélectionne dans la liste déroulante Champs de texte :

var sSelectField = fieldList.rawValue;

Le script suivant utilise la méthode replace pour supprimer tous les espaces de nom du champ stocké dans la variable sSelectField afin que la valeur de la liste déroulante corresponde au nom de l’objet dans la palette Hiérarchie :

sSelectField = sSelectField.replace(' ', '');

Ce script utilise une boucle For pour passer en revue tous les objets contenus dans Subform1 :

for (var nCount = 0; nCount < nSubLength; nCount++) {

Si l’objet actif dans Subform1 est de type field et si l’objet actif a le même nom que celui sélec-tionné par l’utilisateur, les cas de commutation suivants sont exécutés :

if ((Subform1.nodes.item(nCount).className == "field") & (Subform1.nodes.item(nCount).name == sSelectField)) {

Le script suivant utilise une instruction de commutation pour gérer les trois valeurs de visibilité qu’un utilisateur peut appliquer aux objets de champs de texte :

switch(xfa.event.newText) { case 'Invisible': Subform1.nodes.item(nCount).presence = "invisible"; break; case 'Hidden (Exclude from Layout)': Subform1.nodes.item(nCount).presence = "hidden"; break; default: Subform1.nodes.item(nCount).presence = "visible"; break; } } }

148

Page 155: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.2.3. Script pour les valeurs de visibilité des boutons

Le script pour les valeurs de visibilité des boutons nécessite deux variables. Cette variable enregistre le nombre d’objets contenus dans Subform1 :

var nSubLength = Subform1.nodes.length;

Cette variable enregistre le nom du bouton sélectionné par l’utilisateur dans la liste déroulante Boutons :

var sSelectButton = buttonList.rawValue;

Le script suivant utilise la méthode replace pour supprimer tous les espaces du nom du bouton stocké dans la variable sSelectField afin que la valeur de la liste déroulante corresponde au nom de l’objet dans la palette Hiérarchie :

sSelectButton = sSelecButton.replace(/\s/g, '');

Ce script utilise une boucle For pour passer en revue tous les objets contenus dans Subform1 :

for (var nCount = 0; nCount < nSubLength; nCount++) {

Si l’objet actif dans Subform1 est de type field et si l’objet actif a le même nom que celui sélec-tionné par l’utilisateur, exécutez les cas de commutation suivants :

if ((Subform1.nodes.item(nCount).className == "field") & Subform1.nodes.item(nCount).name == sSelectButton)) {

Ce script utilise une instruction switch pour gérer les cinq valeurs de visibilité qu’un utilisateur peut appliquer aux objets de bouton.

REMARQUE : la propriété relevant indique si un objet doit s’afficher lors de l’impression du formulaire.

switch(xfa.event.newText) { case 'Invisible': Subform1.nodes.item(nCount).presence = "invisible"; break; case 'Hidden (Exclude from Layout)': Subform1.nodes.item(nCount).presence = "hidden"; break; case 'Visible (but Don\'t Print)': Subform1.nodes.item(nCount).presence = "visible"; Subform1.nodes.item(nCount).relevant = "-print"; break; case 'Invisible (but Print Anyway)': Subform1.nodes.item(nCount).presence = "invisible"; Subform1.nodes.item(nCount).relevant = "+print"; break; default: Subform1.nodes.item(nCount).presence = "visible"; break; } } }

149

Page 156: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.2.4. Script pour la réinitialisation des listes déroulantes

Utilisez la méthode resetData pour rétablir toutes les valeurs par défaut des listes déroulantes :

xfa.host.resetData();

Utilisez la méthode remerge pour fusionner de nouveau la conception de formulaire et les données de formulaire. Dans le cas présent, la méthode rétablie de manière efficace les objets de la zone Objets de formulaire à leur état d’origine :

xfa.form.remerge();

15.3. Exclusion d’un objet de l’ordre de tabulation

Cet exemple montre comment exclure un objet de la séquence de tabulation par défaut. Dans cet exemple, un utilisateur commence dans TextField1 et utilise le bouton de tabulation pour passer à TextField2 puis à TextField3. Cependant, l’objet Liste déroulante, DropDownList1, est configuré pour s’afficher lorsque le curseur de l’utilisateur entre dans TextField2.

Dans ce cas, par défaut, l’utilisateur choisit de se déplacer dans l’ordre suivant :

150

Page 157: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

Pour exclure DropDownList1 de la séquence de tabulation, vous pouvez ajouter les scripts suivants à l’objet TextField2 :

15.4. Modification des propriétés visuelles d’un objet sur le client

Cet exemple vous montre comment modifier les propriétés visuelles d’un objet ; il s’agit ici d’un champ de texte. Par exemple, si vous activez l’option d’agrandissement du champ, la zone remplissable du champ de texte augmente de quatre pouces.

Evénement Script

enter // Cette instruction conditionnelle affiche à l’utilisateur DropDownList3 // et définit le focus de l’application cliente à TextField2. if (DropDownList3.presence != "visible") { DropDownList3.presence = "visible"; xfa.host.setFocus(this); }

exit // Cette instruction conditionnelle teste l’utilisation par l’utilisateur de la touche // Maj lors de l’utilisation de la touche Tab. Si Maj est // maintenue enfoncée, le focus de l’application cliente retourne à // TextField1, sinon, le focus est défini à TextField3. L’ // expérience pour l’utilisateur est que DropDownList3 ne fait pas // partie de la commande de tabulation. var isShiftDown = xfa.event.shift; if (isShiftDown) { xfa.host.setFocus(TextField1); } else { xfa.host.setFocus(textField3); }

151

Page 158: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

REMARQUE : pour modifier les propriétés visuelles des objets sur le client, vous devez enregistrer votre formulaire comme formulaire PDF dynamique Acrobat.

Dans cet exemple, les cases à cocher comportent plusieurs noms d’objet ; par conséquent, Designer assigne une valeur d’instance pour référencer l’objet. Le script de case à cocher utilise une instruction if-else pour donner l’effet d’une sélection ou d’une désélection.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.4.1. Script pour l’option de déplacement du champ

Si cette case est activée, le champ se déplace selon les paramètres x et y. Si elle n’est pas activée, le champ revient à sa position d’origine.

if (CheckBox1.rawValue == true) { TextField.x = "3.0in"; TextField.y = "3.5in"; } else { TextField.x = "1in"; TextField.y = "3in"; }

15.4.2. Script pour l’option d’agrandissement du champ

Si cette case est activée, la largeur du champ passe à 4 pouces. Si elle est désactivée, la largeur du champ passe à 2,5 pouces.

if (CheckBox2.rawValue == true) TextField.w = "4in"; else TextField.w = "2.5in";

15.4.3. Script pour l’option de réduction du champ

Si cette case est activée, la hauteur du champ passe à 1,5 pouces. Si elle est désactivée, la hauteur du champ passe à 0,5 pouce.

if (CheckBox3.rawValue == true) TextField.h = "1.5in"; else TextField.h = "0.5in";

152

Page 159: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.4.4. Script pour l’option de modification de la couleur de l’objet

Si cette case est activée, la bordure du champ devient rouge. Si elle est désactivée, la bordure du champ devient blanche.

if (CheckBox4.rawValue == true) TextField.border.edge.color.value = "255,0,0"; else TextField.border.edge.color.value = "255,255,255";

15.4.5. Script pour l’option de modification de la couleur de remplissage de la zone remplissable

Si cette case est activée, la zone remplissable du champ de texte devient verte. Si elle est désactivée, la zone remplissable du champ de texte devient blanche.

if (CheckBox5.rawValue == true) { xfa.resolveNode("TextField.ui.#textEdit.border.fill.color").value = "0,255,0"; } else { xfa.resolveNode("TextField.ui.#textEdit.border.fill.color").value = "255,255,255"; }

15.4.6. Script pour l’option d’ajustement de la largeur de la valeur

Si cette case est activée, la zone remplissable du champ de texte s’adapte pour héberger la valeur. Si elle est désactivée, la zone remplissable du champ de texte ne s’adapte pas.

if (CheckBox6.rawValue == true) TextField.minW = "0.25in"; else TextField.maxW = "2.5in";

15.4.7. Script pour l’option de masquage du champ

Si cette case est activée, le champ est masqué. Si elle est désactivée, le champ est visible.

if (CheckBox7.rawValue == true) TextField.presence = "hidden"; else TextField.presence = "visible";

153

Page 160: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.4.8. Script pour l’option de changement de police de la valeur

Si cette case est activée, la police de la valeur est Courier New. Si elle est désactivée, la police de la valeur est Myriad Pro.

if (CheckBox8.rawValue == true) TextField.font.typeface = "Courier New"; elseTextField.font.typeface = "Myriad Pro";

15.4.9. Script pour l’option de modification de la taille de la police

Si cette case est activée, la taille de la police est de 14 points. Si elle est désactivée, la taille de la police est de 10 points.

if (CheckBox9.rawValue == true) TextField.font.size = "14pt"; else TextField.font.size = "10pt";

15.4.10. Script pour l’option d’alignement vertical de la valeur du champ de texte

Si cette case est activée, la valeur du champ de texte est alignée en haut. Si elle est désactivée, la valeur du champ de texte est alignée au centre.

if (CheckBox10.rawValue == true) TextField.para.vAlign = "top"; else TextField.para.vAlign = "middle";

15.4.11. Script pour l’option d’alignement horizontal de la valeur du champ de texte

Si cette case est activée, la valeur du champ de texte est alignée au centre. Si elle est désactivée, la valeur du champ de texte est alignée à gauche.

if (CheckBox11.rawValue == true) TextField.para.hAlign = "center"; else TextField.para.hAlign = "left";

154

Page 161: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.4.12. Script pour l’option d’affichage d’une valeur définie

Si cette case est activée, la valeur définie à l’aide d’un script s’affiche dans le champ de texte. Si elle est désactivée, la valeur par défaut (également définie à l’aide d’un script) s’affiche dans le champ de texte.

if (CheckBox12.rawValue == true) TextField.rawValue = "This is a value set using a script."; else TextField.rawValue = "This is a default value.";

15.4.13. Script pour l’option de modification du texte de la légende

Si cette case est activée, le texte de la légende défini à l’aide d’un script s’affiche comme légende. Si elle est désactivée, la légende par défaut (également définie à l’aide d’un script) s’affiche dans le champ de texte.

if (CheckBox13.rawValue == true) xfa.resolveNode("TextField.caption.value.#text").value = "Alternate Caption:";else xfa.resolveNode("TextField.caption.value.#text").value = "Caption:";

15.4.14. Script pour l’option de modification de la bordure du champ de 3D à case pleine

Si cette case est activée, la bordure du champ devient une case pleine. Si elle est désactivée, la bordure du champ devient une bordure 3D.

if (CheckBox14.rawValue == true) xfa.resolveNode("TextField.ui.#textEdit.border.edge").stroke = "solid"; else xfa.resolveNode("TextField.ui.#textEdit.border.edge").stroke = "lowered";

15.4.15. Script pour le bouton de désactivation de toutes les cases à cocher

Utilisez la méthode resetData pour rétablir la valeur par défaut de toutes les cases à cocher (désactivées).

xfa.host.resetData();

Utilisez la méthode remerge pour fusionner de nouveau la conception de formulaire et les données de formulaire. Dans le cas présent, la méthode rétablie de manière efficace le champ de texte à son état d’origine.

xfa.form.remerge();

155

Page 162: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.5. Obtention de la valeur actuelle ou de la valeur précédente d’une liste déroulante

Cet exemple vous montre comment obtenir la valeur actuelle d’une liste déroulante et vous explique les différentes méthodes d’accès à la valeur précédente d’une liste déroulante sur un formulaire. Outre les scripts actuels qui définissent les valeurs actuelle et précédente, il est important de noter que les scripts sont situés sur l’événement change de la liste déroulante.

Dans l’exemple suivant, lorsqu’un utilisateur sélectionne une valeur dans la liste déroulante, celle-ci s’affiche dans le champ Valeur actuelle. Ainsi, lorsque l’utilisateur sélectionne une autre valeur dans la liste déroulante, la nouvelle valeur s’affiche dans la liste Valeur actuelle et la valeur précédente s’affiche dans le champ Valeur précédente 1.

REMARQUE : chacune de ces méthodes d’obtention de la valeur précédente d’une liste déroulante utilise un script différent. Le champ de texte Valeur précédente 1 est rempli par une référence directe à la propriété rawValue de la liste déroulante, tandis que le champ de texte Valeur précédente 2 est rempli à l’aide de la propriété prevText . Pour obtenir des résultats homogènes, il est recommandé d’accéder à la valeur précédente en utilisant la propriété prevText .

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.5.1. Script pour le remplissage du champ de texte Valeur actuelle

Remplissez la valeur du champ de texte Valeur actuelle à l’aide de la propriété newText :

CurrentValue.rawValue = xfa.event.newText;

156

Page 163: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.5.2. Script pour le remplissage du champ de texte Valeur précédente 1

Remplissez la valeur du champ de texte Valeur précédente 1 en référençant la valeur rawValue de la liste déroulante :

PreviousValue1.rawValue = DropDownList.rawValue;

15.5.3. Script pour le remplissage du champ de texte Valeur précédente 2

Remplissez la valeur du champ de texte Valeur précédente 2 à l’aide de la propriété prevText :

PreviousValue2.rawValue = xfa.event.prevText;

15.6. Préservation du format en texte enrichi lors de la copie de valeurs de champs

Cet exemple montre comment garder le format en texte enrichi de données de champs lorsque vous copiez des valeurs d’un champ à un autre.

TextField1 et TextField2 sont configurés pour Permettre des lignes multiples et afficher le format en texte enrichi.

Le bouton Copier texte enrichi permet de copier la valeur de TextField1, dont son format en texte enrichi, et de la coller dans TextField2.

157

Page 164: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.6.1. Script pour le bouton Copier texte enrichi

Les valeurs de champ de texte enrichi sont stockées au format XML dans un objet enfant du champ contenant cette valeur. Le script suivant, situé sur l’événement click du bouton Copier texte enrichi, utilise la méthode saveXML pour stocker la définition XML de la valeur de texte enrichi. Par conséquent, les données XML sont chargées dans l’objet enfant correspondant de TextField2.

var richText = TextField1.value.exData.saveXML(); TextField2.value.exData.loadXML(richText,1,1);

Dans cet exemple, la valeur de texte enrichi est configurée pour écraser la valeur existante de TextField2. Pour ajouter les données de texte enrichi à la valeur actuelle de TextField2, ajustez le script comme suit :

var richText = TextField1.value.exData.saveXML(); TextField2.value.exData.loadXML(richText,1,0);

15.7. Ajustement de la hauteur d’un champ au moment de l’exécution

Cet exemple vous montre comment adapter un champ à la hauteur du contenu d’un autre champ.

Dans cet exemple, lorsque l’utilisateur saisit plusieurs lignes dans TextField1, puis clique sur le bouton Développer, la hauteur de TextField2 augmente de manière à correspondre à celle de TextField1.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.7.1. Script pour le bouton d’ajustement

Le script suivant correspond au bouton d’ajustement :

var newHeight = xfa.layout.h(TextField1, "in"); TextField2.h = newHeight + "in";

158

Page 165: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.8. Définition d’une valeur de champ obligatoire au moment de l’exécution

Cet exemple vous montre comment rendre un champ obligatoire au moment de l’exécution.

Dans cet exemple, lorsque vous cliquez sur le bouton de valeur obligatoire, si l’utilisateur tente d’envoyer un formulaire sans saisir de texte dans TextField1, un message d’erreur s’affiche.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.8.1. Script pour le bouton de valeur obligatoire

Le script suivant correspond au bouton de valeur obligatoire :

TextField1.validate.nullTest = "error";

Vous pouvez également utiliser l’un des scripts suivants :

TextField1.mandatory = "error" TextField1.mandatoryMessage = "this field is mandatory!"

15.9. Calcul des sommes d’un champ

Cet exemple vous montre comment calculer les sommes des champs situés à différents niveaux de la hiérarchie lorsque l’utilisateur ouvre un formulaire dans une application cliente, telle que Acrobat Professional, Adobe Reader ou une application cliente HTML.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

159

Page 166: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.9.1. Script pour le calcul de la somme des champs répétés dans un formulaire

Pour calculer la somme des champs répétés dans un formulaire, vous devez ajouter l’événement calculate au champ Somme :

var fields = xfa.resolveNodes("NumericField1[*]");

var total = 0; for (var i=0; i <= fields.length-1; i++) { total = total + fields.item(i).rawValue; }

this.rawValue = total;

15.9.2. Script pour le calcul de la somme des champs répétés

De la même manière, pour calculer la somme des champs répétés, vous devez ajouter un événement calculate au champ Somme :

var fields = xfa.resolveNodes("detail[*].NumericField1");

var total = 0; for (var i=0; i <= fields.length-1; i++) { total = total + fields.item(i).rawValue; }

this.rawValue = total;

15.9.3. Script pour le calcul de la somme des champs dans une page

Pour calculer la somme des champs sur une page, vous devez ajouter un événement calculate au champ Somme :

var fields = xfa.layout.pageContent(0 , "field", 0);

var total = 0; for (var i=0; i <= fields.length-1; i++) { if (fields.item(i).name == "NumericField1") {total = total + fields.item(i).rawValue;}

}

this.rawValue = total;

160

Page 167: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.10. Mise en surbrillance des champs en réponse aux interactions de l’utilisateur final

Cet exemple vous montre comment mettre en surbrillance le champ actif avec lequel travaille un utilisateur, comment mettre en surbrillance les champs que doit remplir un utilisateur, et comment utiliser les zones de message pour envoyer des commentaires à l’utilisateur.

Dans cet exemple, un astérisque (*) apparaît à droite des champs obligatoires. Lorsqu’un champ est sélectionné, la bordure du champ devient bleue. Si l’utilisateur clique sur le bouton de vérification des données sans avoir rempli les champs obligatoires, un message s’affiche et le champ devient rouge. Si tous les champs obligatoires sont remplis, un message de confirmation s’affiche lorsque l’utilisateur clique sur le bouton de vérification des données.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

15.10.1. Script pour l’ajout d’une bordure bleue autour d’un champ sélectionné

Pour ajouter une bordure bleue au champ sélectionné, ajoutez les scripts suivants à chaque champ de texte :

Par exemple, ajoutez un événement enter au champ Nom :

Name.border.edge.color.value = "0,0,255";

Par exemple, ajoutez un événement exit au champ Nom :

Name.border.edge.color.value = "255,255,255";

Par exemple, ajoutez un événement mouseEnter au champ Nom :

Name.border.edge.color.value = "0,0,255";

Par exemple, ajoutez un événement mouseExit au champ Nom :

Name.border.edge.color.value = "255,255,255";

161

Page 168: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.10.2. Script pour le bouton de vérification des données :

Le script suivant, créé pour le bouton de vérification des données, exécute une série de vérifications afin de confirmer que les champs obligatoires contiennent des données. Dans le cas présent, chaque champ est vérifié un à un afin de confirmer que la valeur du champ est non-nulle ou est une chaîne vide. Si la valeur du champ est nulle ou une chaîne vide, un message d’alerte s’affiche indiquant que des données doivent être entrées dans le champ et que la couleur d’arrière-plan de la zone remplis-sable est passée au rouge.

Utilisez cette variable pour indiquer si le champ ne contient aucune donnée :

var iVar = 0;

if ((Name.rawValue == null) || (Name.rawValue == "")) { xfa.host.messageBox("Please enter a value in the Name field.");

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("Name.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("Name.ui.#textEdit.border.fill.color").value = "255,100,50";

// Définit la variable pour indiquer que ce champ ne contient aucune donnée. iVar = 1; } else { // Réinitialise la zone remplissable du champ de texte. xfa.resolveNode("Name.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("Name.ui.#textEdit.border.fill.color").value = "255,255,255"; }

if ((Address.rawValue == null) || (Address.rawValue == "")) { xfa.host.messageBox("Please enter a value in the Address field.");

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("Address.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("Address.ui.#textEdit.border.fill.color").value = "255,100,50";

Ce script définit la variable pour indiquer que ce champ ne contient aucune donnée :

iVar = 1; } else {

Ce script réinitialise la zone remplissable du champ de texte :

xfa.resolveNode("Address.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("Address.ui.#textEdit.border.fill.color").value = "255,255,255"; }

if ((City.rawValue == null) || (City.rawValue == "")) { xfa.host.messageBox("Please enter a value in the City field.");

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("City.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("City.ui.#textEdit.border.fill.color").value = "255,100,50";

162

Page 169: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

Ce script définit la variable pour indiquer que ce champ ne contient aucune donnée :

iVar = 1; } else {

Ce script réinitialise la zone remplissable du champ de texte :

xfa.resolveNode("City.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("City.ui.#textEdit.border.fill.color").value = "255,255,255"; }

if ((State.rawValue == null) || (State.rawValue == "")) { xfa.host.messageBox("Please enter a value in the State field.");

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("State.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("State.ui.#textEdit.border.fill.color").value = "255,100,50";

Ce script définit la variable pour indiquer que ce champ ne contient aucune donnée :

iVar = 1; } else {

Ce script réinitialise la zone remplissable du champ de texte :

xfa.resolveNode("State.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("State.ui.#textEdit.border.fill.color").value = "255,255,255"; }

if ((ZipCode.rawValue == null) || (ZipCode.rawValue == "")) { xfa.host.messageBox("Please enter a value in the Zip Code field.");

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("ZipCode.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("ZipCode.ui.#textEdit.border.fill.color").value = "255,100,50";

Ce script définit la variable pour indiquer que ce champ ne contient aucune donnée :

iVar = 1; } else {

Ce script réinitialise la zone remplissable du champ de texte :

xfa.resolveNode("ZipCode.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("ZipCode.ui.#textEdit.border.fill.color").value = "255,255,255"; }

if ((Country.rawValue == null) || (Country.rawValue == "")) { xfa.host.messageBox("Please enter a value in the Country field.");

163

Page 170: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

Ce script modifie la couleur de la zone remplissable du champ de texte :

xfa.resolveNode("Country.ui.#textEdit.border.edge").stroke = "solid"; xfa.resolveNode("Country.ui.#textEdit.border.fill.color").value = "255,100,50";

Ce script définie la variable pour indiquer que ce champ ne contient aucune donnée.

iVar = 1; } else {

Ce script réinitialise la zone remplissable du champ de texte.

xfa.resolveNode("Country.ui.#textEdit.border.edge").stroke = "lowered"; xfa.resolveNode("Country.ui.#textEdit.border.fill.color").value = "255,255,255"; }

Si tous les champs obligatoires contiennent des données, la variable Ivar est définie sur zéro et un message de confirmation s’affiche :

if (iVar == 0) { xfa.host.messageBox("Thank you for inputting your information."); }

15.11. Réinitialisation des valeurs du sous-formulaire actif

Cet exemple vous montre comment réinitialiser les valeurs d’un jeu de champs spécifique (et non de l’intégralité du formulaire). Pour ce faire, réinitialisez uniquement les champs dans l’objet de sous-formulaire requis.

Dans cet exemple, l’utilisateur peut cliquer sur le bouton d’effacement pour réinitialiser les valeurs du champ.

Pour consulter cet exemple de script et d’autres exemples, visitez le Centre de développement.

164

Page 171: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.11.1. Script pour les valeurs qui s’affichent dans la colonne de gauche

Ecrivez le script suivant pour les valeurs qui s’affichent dans la colonne de gauche :

this.rawValue = this.parent.index + 1;

Pour réinitialiser les valeurs par défaut, ajoutez un événement click au bouton Effacer. Vous avez besoin d’une expression de syntaxe de référence, car le détail est un sous-formulaire répété qui doit se refléter dans l’expression de syntaxe de référence. Dans ce cas, il est plus facile de développer les paramètres resetData séparément.

var f1 = this.parent.somExpression + ".TextField2" + ","; var f2 = f1 + this.parent.somExpression + ".DropDownList1" + ","; var f3 = f2 + this.parent.somExpression + ".NumericField1";

// ...and pass the variable as a parameter. xfa.host.resetData(f3);

15.12. Modification de la visibilité d’un objet de conception de formulaire

Designer offre les paramètres de visibilité suivants pour les différents objets d’un formulaire via les onglets de la palette Objet. Les paramètres Invisible et Masqué (pas affiché) ne s’appliquent pas aux groupes, aux zones de contenu, aux gabarits, aux jeux de pages et aux objets des jeux de sous-formu-laires.

REMARQUE : Pour modifier le paramètre de visibilité d’un objet à l’aide de scripts, vous devez modifier la valeur de deux propriétés sous-jacentes du modèle d’objet de formulaire XML : presence et relevant.

Le tableau ci-dessous présente les paramètres de visibilité et la syntaxe de référence correspondante.

Paramètre de visibilité Syntaxe de référence

Visible FormCalcObjectName.presence = "visible"JavaScriptObjectName.presence = "visible";

Visible (Ecran seulement) FormCalcObjectName.presence = "visible" ObjectName.relevant = "-print"JavaScriptObjectName.presence = "visible"; ObjectName.relevant = "-print";

165

Page 172: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

Visible (Impression seulement) FormCalcObjectName.presence = "visible" ObjectName.relevant = "+print"JavaScriptObjectName.presence = "visible"; ObjectName.relevant = "+print";

Invisible FormCalcObjectName.presence = "invisible"JavaScriptObjectName.presence = "invisible";

Masqué (pas affiché) FormCalcObjectName.presence = "hidden"JavaScriptObjectName.presence = "hidden";

Impression recto seulement FormCalcObjectName.presence = "simplex"JavaScriptObjectName.presence = "simplex";

Impression recto verso seulement FormCalcObjectName.presence = "duplex"JavaScriptObjectName.presence = "duplex";

Paramètre de visibilité Syntaxe de référence

166

Page 173: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.13. Utilisation des propriétés du gestionnaire d’instances pour contrôler les sous-formulaires

Cet exemple vous montre comment utiliser les propriétés du gestionnaire d’instances (qui fait partie du modèle d’objet de formulaire XML) pour récupérer les informations sur les sous-formulaires au moment de l’exécution.Dans le formulaire suivant, les quatre boutons donnent des informations sur le sous-formulaire Subform1 grâce aux propriétés de script du gestionnaire d’instances. Par exemple, lorsque l’utilisateur clique sur le bouton Max., un message décrivant le nombre maximal d’instances de Subform1 prises en charge s’affiche.

15.13.1. Script pour la zone de message pour la génération de la valeur de la propriété Count

Le script suivant utilise la méthode messageBox pour générer la valeur de la propriété count :xfa.host.messageBox("The current number of Subform1 instances on the form is:" + properties.Subform1.instanceManager.count, "Instance Manager Properties",3);

Vous pouvez également écrire ce script en utilisant le trait de soulignement (_) pour référencer la propriété count du gestionnaire d’instances comme indiqué ci-après :xfa.host.messageBox("The current number of Subform1 instances on the form is: " + properties._Subform1.count, "Instance Manager Properties", 3);

Le trait de soulignement (_) est particulièrement important s’il n’existe aucune instance de sous-formulaire sur le formulaire.

167

Page 174: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.13.2. Script pour la zone de message pour la génération de la valeur de la propriété Max

Le script suivant utilise la méthode messageBox pour générer la valeur de la propriété max :

xfa.host.messageBox("The maximum number of instances allowed for Subform1 is: " + properties.Subform1.instanceManager.max, "Instance Manager Properties", 3);

Vous pouvez également écrire ce script en utilisant le trait de soulignement (_) pour référencer la propriété max du gestionnaire d’instances comme indiqué ci-après :

xfa.host.messageBox("The maximum number of instances allowed for Subform1 is: " + properties._Subform1.max, "Instance Manager Properties", 3);

15.13.3. Script pour la zone de message pour la génération de la valeur de la propriété Min

Le script suivant utilise la méthode messageBox pour générer la valeur de la propriété min :

xfa.host.messageBox("The minimum number of instances allowed for Subform1 is: " + properties.Subform1.instanceManager.min, "Instance Manager Properties", 3);

Vous pouvez également écrire ce script en utilisant le trait de soulignement (_) pour référencer la propriété min du gestionnaire d’instances comme indiqué ci-après :

xfa.host.messageBox("The minimum number of instances allowed for Subform1 is: " + properties._Subform1.min, "Instance Manager Properties", 3);

15.13.4. Script pour la zone de message pour la génération de la valeur de la propriété subform

Le script suivant utilise la méthode messageBox pour générer le nom de la propriété subform :

xfa.host.messageBox("The name of the subform using the instance manager name property is: " + properties.Subform1.instanceManager.name + ".\n\nNote: This value is different than the value returned by the name property for the Subform1 object." , "Instance Manager Properties", 3);

Vous pouvez également écrire ce script en utilisant du trait de soulignement (_) pour référencer le nom de la propriété du gestionnaire d’instances, comme indiqué ci-après :

xfa.host.messageBox("The name of the subform using the instance manager name property is: " + properties._Subform1.name + ".\n\nNote: This value is different than the value returned by the name property for the Subform1 object." , "Instance Manager Properties", 3);

168

Page 175: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

15.14. Utilisation des méthodes du gestionnaire d’instances pour contrôler les sous-formulaires

Cet exemple vous montre comment utiliser les méthodes du gestionnaire d’instances (qui fait partie du modèle d’objet de formulaire XML) pour effectuer des opérations sur les objets de sous-formulaire au moment de l’exécution. Par exemple, vous pouvez ajouter les instances supprimées d’un sous-formulaire particulier ou une rangée de tableau.

Dans le formulaire suivant, l’utilisateur se sert des quatre boutons pour utiliser les différentes méthodes de script du gestionnaire d’instances. Par exemple, lorsque l’utilisateur clique sur le bouton Ajouter, une nouvelle instance Subform2 est ajoutée au formulaire.

REMARQUE : le bouton de déplacement réorganise les deux premières instances Subform2, et le bouton de définition affiche le nombre maximal d’instances Subform2. Dans les deux cas, vous devez ajouter ou supprimer des sous-formulaires ou effectuer des modifications au niveau des données dans les champs de texte pour que les modifications soient appliquées aux instances Subform2.

169

Page 176: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.14.1. Script pour déterminer si vous avez ajouté le nombre maximal d’instances de sous-formulaire à un formulaire

Le script suivant détermine si le nombre maximal d’instances de Subform2 pris en charge se trouve sur le formulaire. Si c’est le cas, le script affiche un message. Dans le cas contraire, la nouvelle instance de Subform2 est ajoutée au formulaire.

if (methods.Subform2.instanceManager.count == methods.Subform2.instanceManager.max) { xfa.host.messageBox("You have reached the maximum number of items allowed.", "Instance Manager Methods", 1); } else { methods.Subform2.instanceManager.addInstance(1); xfa.form.recalculate(1); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

if (methods._Subform2.count == methods._Subform1.max) { xfa.host.messageBox("You have reached the maximum number of items allowed.", "Instance Manager Methods", 1); } else { methods._Subform2.addInstance(1); xfa.form.recalculate(1); }

15.14.2. Script pour déterminer s’il existe encore des sous-formulaires à supprimer dans le formulaire

Le script suivant détermine s’il existe une instance Subform2 sur le formulaire. S’il n’en existe pas, le script affiche un message indiquant qu’aucune instance n’existe. S’il existe des instances, le script supprime la première instance du formulaire.

if (methods.Subform2.instanceManager.count == 0) { xfa.host.messageBox("There are no subform instances to remove.", "Instance Manager Methods", 1); } else { methods.Subform2.instanceManager.removeInstance(0); xfa.form.recalculate(1); }

170

Page 177: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

if (methods._Subform2.count == 0) { xfa.host.messageBox("There are no subform instances to remove.", "Instance Manager Methods", 1); } else { methods._Subform2.removeInstance(0); xfa.form.recalculate(1); }

15.14.3. Script pour obliger à quatre instances de sous-formulaire de s’afficher sur le formulaire

Le script suivant oblige quatre instances de Subform2 de s’afficher sur le formulaire, indépendamment du nombre d’instances existantes :

methods.Subform2.instanceManager.setInstances(4);

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

méthodes._Subform2.setInstances(4);

15.14.4. Script pour obliger la première et la deuxième instance de sous-formu-laire à changer d’emplacement sur le formulaire

Le script suivant oblige la première et la deuxième instance de Subform2 de changer d’emplacement sur le formulaire.

methods.Subform2.instanceManager.moveInstance(0,1);

Vous pouvez également écrire ce script en utilisant du trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après.

méthodes._Subform2.moveInstance(0,1);

171

Page 178: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.15. Utilisation du gestionnaire d’instances pour contrôler les sous-formulaires au moment de l’exécution

Cet exemple vous montre comment utiliser les propriétés et les méthodes du gestionnaire d’instances pour récupérer les informations concernant les sous-formulaires et effectuer des opéra-tions sur les objets de sous-formulaire au moment de l’exécution.

Dans cet exemple, l’utilisateur utilise les boutons pour exécuter diverses actions à l’aide des instances de Subform3. Par exemple, lorsque l’utilisateur clique sur le bouton d’ajout d’une rangée au-dessous, une nouvelle instance Subform3 est ajoutée sous l’instance actuelle.

REMARQUE : vous devez ajouter ou supprimer des sous-formulaires ou effectuer des modifications au niveau des données dans les champs de texte pour que les modifications soient appliquées aux instances Subform3.

REMARQUE : s’il n’existe aucune instance d’un sous-formulaire donné sur votre formulaire, utilisez le trait de soulignement (_) comme indiqué dans les exemples suivants. Pour plus d’informations sur l’utilisation du trait de soulignement (_), voir l’aide de Designer.

15.15.1. Script pour le bouton d’ajout d’un nouveau sous-formulaire

Le script suivant détermine si le nombre maximal d’instances de Subform3 pris en charge se trouve sur le formulaire. Si c’est le cas, le script affiche un message. Dans le cas contraire, la nouvelle instance de Subform3 est ajoutée au formulaire.

if (advanced.Subform3.instanceManager.count == advanced.Subform3.instanceManager.max) { xfa.host.messageBox("You have reached the maximum number of items allowed.","Combining Instance Manager Concepts", 1); } else { advanced.Subform3.instanceManager.addInstance(1); xfa.form.recalculate(1); }

172

Page 179: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

if (advanced._Subform3.count == advanced._Subform3.max) { xfa.host.messageBox("You have reached the maximum number of items allowed.", "Combining Instance Manager Concepts", 1); } else { advanced._Subform3.addInstance(1); xfa.form.recalculate(1); }

15.15.2. Script pour le bouton de suppression d’un sous-formulaire

Le script suivant détermine s’il existe une instance Subform3 sur le formulaire. S’il n’en existe pas, le script affiche un message indiquant qu’aucune instance n’existe. If instances exist, the script removes the first instance from the form.

if (advanced.Subform3.instanceManager.count == 0) { xfa.host.messageBox("There are no subform instances to remove.", "Combining Instance Manager Concepts", 1); } else { advanced.Subform3.instanceManager.removeInstance(0); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

if (advanced._Subform3.count == 0) { xfa.host.messageBox("There are no subform instances to remove.", "Combining Instance Manager Concepts", 1); } else {advanced._Subform3.removeInstance(0); }

173

Page 180: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.15.3. Script pour le bouton d’ajout d’une instance au-dessous

L’instruction if-else suivante évite que le script soit traité si le formulaire contient actuellement le nombre maximal d’instances Subform3 :

if (Subform3.instanceManager.count < Subform3.instanceManager.occur.max) { //oNewInstance stores an instance of Subform3 created by the addInstance() method. var oNewInstance = Subform3.instanceManager.addInstance(1); //nIndexFrom and nIndexTo store the before and after index values to use with the moveInstance() method. var nIndexFrom = oNewInstance.index; var nIndexTo = Subform3.index + 1;

Dans ce cas, lorsque le script référence la valeur de nIndexFrom, la nouvelle instance de Subform3 est ajoutée au formulaire à l’emplacement spécifié dans la méthode moveInstance :

Subform3.instanceManager.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("You have reached the maximum number of items allowed.", "Combining Instance Manager Concepts", 1); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

if (_Subform3.count < _Subform3.occur.max) { var oNewInstance = _Subform3.addInstance(1); var nIndexFrom = oNewInstance.index; var nIndexTo = Subform3.index + 1; _Subform3.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("You have reached the maximum number of items allowed.", "Combining Instance Manager Concepts", 1); }

15.15.4. Script pour le bouton de suppression de l’instance active

L’instruction if-else suivante évite que le script soit traité si le formulaire contient actuellement le nombre minimal d’instances Subform3 :

if (Subform3.instanceManager.count > Subform3.instanceMa-nager.occur.min) {

Ce script utilise la méthode removeInstance pour supprimer une instance de Subform3.

174

Page 181: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes

REMARQUE : Ce script utilise la valeur parent.parent.index pour indiquer l’instance de Subform3 à supprimer. La référence parent indique le conteneur de l’objet qui utilise la référence. Dans ce cas, la référence parent.index indique le sous-formulaire sans titre qui contient les boutons d’ajout d’une instance au-dessous, de suppression de l’instance active, de déplacement de rangées vers le haut et de déplacement de rangées vers le bas.Subform3.instanceManager.removeInstance(parent.parent.index); } else { xfa.host.messageBox("You have reached the minimum number of items allowed.", "Combining Instance Manager Concepts", 1); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :if (_Subform3.count > _Subform3.occur.min) { Subform3.removeInstance(Subform3.index); } else { xfa.host.messageBox("You have reached the minimum number of items allowed.", "Combining Instance Manager Concepts", 1); }

15.15.5. Script pour le bouton de déplacement des rangées vers le haut

L’instruction if-else suivante évite que le script soit traité si l’instance de Subform3 s’affiche comme la première instance dans la liste :if (Subform3.index != 0) { //nIndexFrom et nIndexTo stockent les valeurs d’index précédente et suivante à utiliser avec la méthode moveInstance. var nIndexFrom = Subform3.index; var nIndexTo = Subform3.index - 1; Subform3.instanceManager.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("The current item cannot be moved because it is the first instance in the list.", "Combining Instance Manager Concepts", 1); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :if (Subform3.index != 0) { var nIndexFrom = Subform3.index; var nIndexTo = Subform3.index - 1; Subform3.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("The current item can't be moved since it already is the first instance in the list.", "Combining Instance Manager Concepts", 1); }

175

Page 182: Guide de base sur les scripts de Designer · 2018-02-25 · Les exemples de script sont des formulaires ou des lots contenant des instructions sur la méthode de création d’un

Exemples de tâches de script courantes 15

15.15.6. Script pour le bouton de déplacement des rangées vers le bas

Cette variable stocke la valeur de l’index de l’instance de Subform3 :

var nIndex = Subform3.index;

L’instruction if-else suivante évite que le script soit traité si l’instance de Subform3 s’affiche comme la dernière instance dans la liste :

if ((nIndex + 1) < Subform3.instanceManager.count) { // nIndexFrom et nIndexTo stockent les valeurs d’index précédente et suivante à utiliser avec la méthode moveInstance(). var nIndexFrom = nIndex; var nIndexTo = nIndex + 1;

Subform3.instanceManager.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("The current item cannot be moved because it is the last instance in the list.", "Combining Instance Manager Concepts", 1); }

Vous pouvez également écrire ce script en utilisant un trait de soulignement (_) pour référencer les propriétés et les méthodes du gestionnaire d’instances, comme indiqué ci-après :

var nIndex = Subform3.index; if ((nIndex + 1) < Subform3.instanceManager.count) { var nIndexFrom = nIndex; var nIndexTo = nIndex + 1; _Subform3.moveInstance(nIndexFrom, nIndexTo); } else { xfa.host.messageBox("The current item can't be moved since it already is the last instance in the list.", "Combining Instance Manager Concepts", 1); }

176