Les graphiques
Le projet contient deux types de graphiques. Le premier graphique montre la répartition annuelle de toutes les ventes du bureau sélectionné dans la liste de choix (voir la capture d'écran du simulateur ci-dessous).
Nœud contextuel XPath
Les définitions principales du graphique concernent ce qui se passe sur les axes X et Y. Puisque celles-ci sont déterminées par des expressions XPath, il est important de sélectionner correctement le nœud contextuel XPath pour le graphique. En ce qui concerne le nœud contextuel, il est préférable de sélectionner le parent immédiat de l'ensemble de nœud qui sera utilisé pour les axes X et Y. Puisque nous allons utiliser des données provenant de la table des données Sales, nous allons utiliser l'arborescence $DB2 pour la création du graphique (capture d'écran ci-dessous). Et puisque notre ensemble de nœuds pour les deux axes consistera en l'élément Row, nous allons sélectionner RowSet en tant que nœud contextuel XPath. Nous allons procéder en glissant le nœud RowSet dans le graphique. Le nœud est affiché en gras, indiquant qu'il s'agit d'un nœud de source.
Définition des axes de graphique
À présent, nous sommes prêts à définir les axes des graphiques. Ouvrir le dialogue de Configuration graphique (capture d'écran ci-dessous) soit en double-cliquant sur le graphique soit en cliquant sur le bouton Dialogue supplémentaire de la propriété de Paramètres du graphique (dans le Volet Styles & Propriétés). Veuillez noter que ce type de graphique est un camembert.
En ce qui concerne les camemberts, il nous faut deux séries (pour les axes X et Y). L'option Souple est idéale pour la définition des axes pour deux séries. Le paramètre For-each sélectionne le nœud actuel (RowSet). Nous définissons les expressions XPath pour les deux axes :
•Axe X : Crée une séquence des années uniques pendant lesquelles le bureau sélectionné a enregistré les ventes.
for $i in distinct-values(Row[@Office=$XML1/root/@DesiredOffice]/@Year) return $i
•Axe Y : Résume les ventes pour le bureau sélectionné et pour chacune de ses années uniques, (stocké dans son attribut @Licenses)
for $i in distinct-values(Row[@Office=$XML1/root/@DesiredOffice]/@Year) return sum(Row[@Office= $XML1/root/@DesiredOffice][@Year=$i]/@Licenses)
Définitions supplémentaires
En outre, les paramètres supplémentaires ont été définis :
•Dans le dialogue de Configuration de graphique, cliquer Paramètres XPath dynamiques et définir le titre en utilisant une expression XPath. Cela permet au bureau sélectionné de s'afficher dans le titre.
•Dans le dialogue de Configuration de graphique, cliquer Tous les paramètres. Dans le dialogue Changer Apparence qui apparaît, sélectionner Camembert et sélectionner Ajouter valeur aux libellés et Ajouter pour cent aux libellés.
Le deuxième graphique
Le deuxième graphique est semblable au premier mais il s'agit d'un camembert en 3D (capture d'écran ci-dessous). Il montre les ventes de chaque bureau pour toutes les années en tant que part des ventes totales pour toutes les années.
Les expressions XPath sont les suivantes :
•Axe X : Crée une séquence des noms de ville des bureaux (pas des ID), les noms des villes sont prélevés dans $DB1.
for $i in distinct-values(Row/@Office) return $DB1/DB/RowSet/Row[@id=$i]/@City
•Axe Y : Pour le bureau sélectionné, résume les ventes (stocké dans son attribut @Licenses)
for $i in distinct-values(Row/@Office) return sum(Row[@Office=$i]/@Licenses)