> 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 de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Le livre blanc "The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

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