Liaison de données pour les vues
Pour associer un objet métier et une instance de vue, vous devez lier la vue à l'objet métier. Lorsque la définition de la vue déclare un type de liaison, vous devez lier la vue aux données. Sans les données fournies par la liaison, la vue risque de ne pas fonctionner correctement. Lorsque la définition ne déclare pas de type de liaison, la liaison de données est facultative.
Lorsqu'un objet métier est associé à une vue, vous pouvez déposer les paramètres de l'objet métier sur la présentation. Ces paramètres sont disponibles sous forme de variables dans la palette. S'il existe une vue associée à ce type de données, la présentation affiche cette vue. Par exemple, si vous déposez une chaîne sur la présentation, vous pouvez voir une vue Texte qui est liée à la chaîne. Si la variable est un objet métier qui a une vue associée, vous pouvez voir la vue. Si l'objet métier complexe ne dispose pas d'une vue, vous pouvez voir un message de réservation.
- Si la variable est un type de données primitif, tel qu'une chaîne ou un objet métier à un paramètre, le concepteur ajoute une vue Sélectionner.
- Si la variable est un objet métier avec plusieurs paramètres, le concepteur ajoute une vue Table avec une colonne pour chaque paramètre. Chaque colonne contient la vue qui est associée au type de données de la variable.
- Si vous déposez une variable
currentItemsur la présentation, le concepteur ajoute une section verticale qui contient la vue associée au type de données de la variable. Lors de l'exécution, le contenu de la section se répète pour chaque élément de la liste. - Si vous déposez une variable
listSelectedsur la présentation, le concepteur ajoute la vue associée au type de données de la variable. Lors de l'exécution, la vue contient les données pour l'élément sélectionné dans la liste. Par exemple, vous disposez d'une vue Sélection qui est lié àlistBO[]et une vue Texte en sortie qui est lié àlistBO.listSelected.myItem. Lors de l'exécution, l'utilisateur sélectionne le troisième élément dans la vue Sélection. La vue Texte de sortie affiche la troisième chaînemyItem.
Lorsque vous disposez d'une définition de vue qui contient un élément Zone de contenu et qu'une instance de cette vue est liée à une liste, le contenu de la zone se répète pour chaque élément de la liste. La zone de contenu peut comporter des vues qui sont également liées à des listes ou à des éléments de listes. Dans ce cas, la liste du conteneur (externe) de la vue contrôle la répétition. La liste des contenus (interne) de la vue fournit le contenu. Vous disposez par exemple, d'une section liée à une liste de noms. La zone de contenu de la section contient une vue Texte qui est liée à currentItem de la liste des noms. Lors de l'exécution, la section se répète pour chaque élément de la liste. Chaque section répétée contient une zone. Dans la première section, la zone contient le prénom. La zone dans la deuxième section contient le nom, etc.
Vous pouvez lier les vues externe et interne à différentes listes. Toutefois, si vous liez une vue interne à l'élément currentItem d'une autre liste, les deux listes doivent contenir le même nombre d'éléments. Si les deux listes n'ont pas le même nombre d'éléments, les utilisateurs voient un message. Le message varie selon que la liste interne contient plus ou moins d'éléments. Si la liste externe a plus d'éléments, les utilisateurs voient des vues en évidence dans le contenu répété. Elles sont mises en évidences, car elles ne contiennent pas de données. Par exemple, outerList[] possède trois éléments et innerList[] en possède deux. Les vues qui sont liées à innerList.currentItem se répètent trois fois, mais seules les deux premières ont des données. Si la liste outer contient moins d'éléments lors de l'exécution, l'utilisateur ne peut pas voir ces éléments excédentaires, car la liste interne n'a nulle part où les afficher. Par exemple, outerList[] a quatre éléments et innerList[] en a cinq. Les vues qui sont liées à innerList.currentitem se répètent quatre fois. L'utilisateur voit les vues du cinquième élément innerList[].