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.

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); 
}

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); 
    }

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); 
    }

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 :

    methods._Subform2.setInstances(4);

Script pour obliger la première et la deuxième instance de sous-formulaire à 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.

    methods._Subform2.moveInstance(0,1);