Charger les données de BD sur la base de la sélection par l'utilisateur

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Tutoriels > Base de données simple >

Charger les données de BD sur la base de la sélection par l'utilisateur

Les enregistrements de BD des modèles de voiture seront affichés dans une table. Seuls les modèles du fabricant choisi par l'utilisateur final seront chargés et affichés (dans la liste de choix). Voir la section précédente pour plus de détails concernant la configuration. Dans cette section, tout d'abord une table est créée pour afficher les enregistrements, puis la sélection des enregistrements à charger dans l'arborescence $DB1 et l'affichage sera définie.

 

Table pour afficher les enregistrements

Dans la BD, chaque enregistrement (ou ligne) correspond à un modèle de voiture différent. Donc, la meilleure approche pour afficher ces enregistrements serait d'ajouter au design une table avec des lignes répétitives, et chaque ligne de table correspond à une ligne de BD. La table devrait présenter trois colonnes, une pour chaque fabricant de voitures, une pour le modèle et une pour la puissance du moteur, ainsi qu'une ligne d'en-tête (voir capture d'écran ci-dessous). Lorsque l'utilisateur effectue une modification de la sélection dans la liste de choix, les modèles de voiture des nouveaux fabricants devraient être chargés et affichés.

MTDDBSimulation01

Pour insérer une table possédant les propriétés décrites ci-dessus, ajouter une commande de table contenant les mêmes spécifications que celles montrées dans la capture d'écran ci-dessous.

Click to expand/collapse

Dans la table, procéder comme suit :

 

Lier la ligne répétitive de la table à la ligne de la BD. Pour ce faire, glisser l'élément $DB1/DB/RowSet/Row dans une des icônes de ligne répétitive de la table. Cela spécifie que pour chaque ligne (d'enregistrement) dans l'arborescence $DB1, il y aura une ligne correspondante dans la table.
Glisser et déposer des commandes de libellé dans chacune des trois cellules d'en-tête et leur donner un texte approprié correspondant aux trois en-têtes de colonne (voir capture d'écran ci-dessous).
Pour les contenus des trois colonnes, glisser et déposer, respectivement les nœuds d'attribut suivant de l'élément Row depuis le panneau de Sources de page, et les créer en tant que commandes de libellé : Manufacturer, Model, Horsepower (voir capture d'écran ci-dessous).

 

Une fois terminé, la table de votre design devrait ressembler à ça :

MTDDBTableDesign01

 

Sélectionner les enregistrements de BD à charger et à afficher

La table que vous venez de créer affichera tous les enregistrements qui sont chargés depuis la BD. Et étant donnée la définition actuelle de l'arborescence $DB1, tous les enregistrements dans la BD seront chargés (donc, tous les modèles de voiture de tous les fabricants) et ils seront tous affichés. Néanmoins, l'objectif est de charger et afficher uniquement les modèles de voiture du fabricant que l'utilisateur a sélectionné dans la liste de choix.

 

Pour charger uniquement les modèles de voiture du fabricant sélectionné, créer une instruction SELECT dans l'arborescence $DB1. Procéder comme suit :

 

1.Cliquer sur l'icône BD située à droite de la légende de l'arborescence $DB1 (voir curseur dans la capture d'écran ci-dessous).

MTDDBPageSourcesDBIcon

2.Dans le dialogue Insérer des objets de base de données qui apparaît (capture d'écran ci-dessous), cliquer sur Ajouter/Modifier instruction SELECT.

MTDDBSelectCarsTable

3.Dans le dialogue Saisir une instruction SQL SELECT qui apparaît, saisir l'instruction SELECT suivante : SELECT [Manufacturer], [Model], [Horsepower] FROM Cars WHERE Manufacturer = :Manufacturer. Cette instruction permet de sélectionner et donc de charger uniquement les champs Manufacturer, Model, et Horsepower des enregistrements dont le champ Manufacturer concorde à la valeur fournie par le paramètre :Manufacturer. Puisque l'instruction SELECT contient un paramètre (:Manufacturer), une ligne pour la définition de paramètre sera ajoutée automatiquement au panneau inférieur du dialogue (voir capture d'écran).

mtddbselectstatement_zoom70

4.Saisir l'expression XPath suivante en tant que la définition de la valeur de paramètre :Manufacturer : $PERSISTENT/Root/@Manufacturer. Cela définit l'instruction SQL SELECT pour sélectionner les enregistrements de BD dont le champ Manufacturer correspond à la valeur se trouvant actuellement dans le nœud $PERSISTENT/Root/@Manufacturer, qui est la sélection de l'utilisateur.

 

Il est important de noter que l'instruction SELECT qui est définie dans la source de page $DB1 sélectionne quelles données de la BD charger dans l'arborescence $DB1. Voici comment ce mécanisme fonctionne :

 

Dès que l'utilisateur modifie la valeur dans la liste de choix, l'action Recharger de l'événement ÉditionÀLaFin de la commande recharge l'arborescence $DB1 (voir la définition de la liste de choix).
L'arborescence $DB1 est chargée sur la base d'une instruction SELECT.
Cette instruction SELECT utilise un paramètre qui, en tant que valeur, possède la valeur de l'attribut $PERSISTENT/Root/@Manufacturer, qui contient la nouvelle sélection de l'utilisateur. Le paramètre entraîne la sélection des seules lignes de BD possédant un champ de valeur Manufacturer qui est le même que le fabricant sélectionné par l'utilisateur.
Toutes les lignes de BD qui ont été chargés dans l'arborescence $DB1 seront affichées dans la table. Mais puisque seules les lignes correspondant à la sélection de l'utilisateur ont été chargées dans l'arborescence $DB1 au départ (capture d'écran ci-dessous), la table n'affichera que les modèles de voiture correspondant à la sélection de l'utilisateur.

MTDDBSimulation02

 


© 2019 Altova GmbH