Altova MobileTogether Designer

L’affichage de la Page principale est filtré par genre utilisant les mécanismes ci-dessous.

 

Sélectionnez une valeur de genre

La valeur sélectionnée dans la liste déroulante Genre est stockée dans le nœud de source de page \$Persistent/Root/Genre.

Cliquez pour expansion/compression

Ceci est réalisé en associant le nœud de source de page Genre à la zone de liste déroulante (glissez et déposez le nœud dans la liste déroulante ; voir la capture d’écran ci-dessous).

Cliquez pour expansion/compression

Les valeurs disponibles dans la liste déroulante de la zone de liste modifiable sont définies dans les propriétés de la zone de liste - par le biais d’une expression XPath qui (i) trouve les valeurs de séquences distinctes parmi la liste de toutes les valeurs Genre dans la source de page et (ii) y ajoute une valeur All à cette séquence : 'All', distinct-values(\$BookCatalog/DB/RowSet/Row/Books/Row/@Genre).

 

Note :Rappelez-vous que nous avons défini le nœud \$Persistent/Root/Genre pour avoir, par défaut, une valeur de All. Voir la Page principale : Aperçu.

 

Définir la visibilité des auteurs et livres par genre

Dans la deuxième étape du mécanisme, nous rendons visible uniquement les tables d’auteurs dans ce design qui ont un livre avec un genre correspondant au genre sélectionné. Ensuite, puisque certains auteurs ont plus d’un livre et pas tous les livres ne correspondent à un genre sélectionné, nous devons aussi appliquer le critère du genre à la visibilité de chaque livre.

 

Nous sélectionnons pour cette raison les composants de design correspondants et définissons leur propriété Visibilité en conséquence :

 

Pour les auteurs, nous sélectionnons la table répétitive pour les auteurs et définissions la propriété de la table Visibilité avec l’expression XPath suivante (le nœud contextuel sur ce composant est Authors) : if (\$PERSISTENT/Root/Genre='All') then true() else Books/Row/@Genre=\$PERSISTENT/Root/Genre. Ceci signifie que lorsque la sélection est All, alors la visibilité sera true pour toutes les tables Author. Autrement, la visibilité d’une table Author sera true uniquement si un élément enfant Book de Author a un genre qui est égal au genre actuellement sélectionné.

 

Pour les livres, nous sélectionnons la ligne dynamique pour Books et définissons cette propriété Visibility du groupe de la ligne avec l’expression XPath suivante (le nœud contextuel sur ce composant est Books): if (\$PERSISTENT/Root/Genre='All') then true() else @Genre=\$PERSISTENT/Root/Genre. Ceci signifie que lorsque la sélection est All, alors la visibilité sera true pour toutes les tables Author. Autrement, la visibilité de la ligne Book sera true uniquement si l’attribut @Genre de ce livre est égal au genre actuellement sélectionné.

 

Réinitialiser comme « All »

À droite de la zone de liste modifiable de la sélection du genre, nous avons ajouté un bouton All (voir la capture d’écran ci-dessus), avec lequel nous pouvons réinitialiser l’affichage de manière à ce que tous les enregistrements de la BD sont affichés. Lorsque le bouton a été cliqué, les actions suivantes sont exécutées :

 

1.L’action Mettre à jour le nœud mettre à jour le nœud \$Persistent/Root/Genre avec une valeur de All.

2.L’action Mettre à jour l'affichage met à jour l’affichage, faisant que la visibilité des différents composants de design peut être recalculée (avec la nouvelle valeur de Genre de All).

 

Pour définir ces actions, cliquez avec la touche de droite sur la bouton et sélectionnez la commande pour accéder sur ses actions OnClicked. Vous pouvez exécuter une simulation pour voir les effets des actions du bouton.

 

© 2017-2023 Altova GmbH