> Tech > Création d’un rapport intégrant les mesures au niveau des lignes (2)

Création d’un rapport intégrant les mesures au niveau des lignes (2)

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

A l’évidence, l’approche consistant à changer la valeur dans la requête et à modifier le rapport dans l’onglet Layout chaque fois que vous souhaitez examiner une autre catégorie n’est pas des plus habiles. Voyons comment obtenir un nom de champ qui ne change pas, même si l’auteur du rapport souhaite

Création d’un rapport intégrant les mesures au niveau des lignes (2)

modifier la catégorie ou choisir une marque, un produit ou n’importe quel autre niveau dans la dimension Product. Nous verrons plus loin comment paramétrer cette valeur. Pour établir un nom fixe concernant le champ dans le rapport, il faut créer un membre calculé MDX. Dans MDX, vous effectuez cette opération en utilisant la clause WITH MEMBER d’une requête.

Le listing 4 montre comment modifier la requête du listing 3 en vue d’employer un membre calculé. Lors de la création du membre calculé [Product].[ Prod], le rapport verra désormais systématiquement un membre avec ce nom, indépendamment de la valeur tapée dans la clause AS de l’expression. Cela signifie que l’auteur peut changer la valeur du rapport à tout moment sans avoir à modifier ce dernier dans l’onglet Layout. L’ajout du membre calculé prépare également la voie à l’ajout d’un paramètre à la requête, ce que nous illustrerons un peu plus loin. Outre le fait qu’elle se préoccupe de la dimension Product, la requête spécifie deux mesures : Store Sales et Store Cost. Il est possible d’énumérer n’importe quel nombre de mesures et, quel que soit le nombre ajouté, la liste Fields de l’onglet Layout affichera une seule valeur : Measures_MeasuresLevel.

Indépendamment du nombre de mesures retourné, la fenêtre Fields présente seulement ce champ unique et la matrice croît automatiquement pour afficher toutes les mesures renvoyées par la requête MDX, avec une mesure par ligne. Pour concevoir cet exemple de rapport, vous utilisez un contrôle de matrice dans Reporting Services, comme l’illustre la figure 1. Vous placez les valeurs Time dans la zone de texte Columns et vous pouvez ajouter plusieurs niveaux de temps et définir le groupe afin que les utilisateurs puissent développer et réduire les données. Ensuite, vous ajoutez le champ Measures_MeasuresLevel à la zone de texte Rows.

Enfin, vous ajoutez le champ Product_Prod à la zone de texte Data. Notez qu’il vous faut modifier la formule par défaut située dans la zone de texte Data, afin qu’elle ne commence pas par la fonction First, mais par la fonction Sum. La fonction First dans la zone de texte Rows est acceptable car elle retourne simplement le nom de chaque mesure, pas sa valeur.

Cela peut vous sembler étrange de placer le membre calculé [Product].[Prod] dans la zone de texte Data, mais n’oubliez pas que Reporting Services aplatit le cellset en rowset et que les valeurs numériques sont alors placées dans ce que l’instruction MDX affiche sur l’axe Columns. Par conséquent, le fait de placer le champ Product_ Prod dans la zone de texte Data de la matrice fait apparaître les nombres corrects et les noms des mesures remplissent la zone de texte Rows.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010