Après avoir validé drillthrough et configuré la sécurité, vous allez mettre en oeuvre drillthrough pour les applications. Pour démontrer les étapes d'implémentation de drillthrough, j'ai ajouté la fonction drillthrough à une page ASP (Active Server Pages) d'après la page ASPADOComplex.asp livrée avec Analysis Services. Cette page exécute une requête qui
Drillthrough pour développeurs
montre les emplacements
de Quilogy, le nombre de
jours étudiants inscrits à chaque endroit
et le montant du revenu (fictif,
bien entendu) que les cours de chaque
lieu ont généré.
Dans une application de type Web,
le moyen le plus naturel d’assurer le
drillthrough dans l’UI (User Interface)
consiste à placer un hyperlien sur la
cellule et à laisser l’utilisateur cliquer
sur le lien pour afficher des données
détaillées. A noter que chaque cellule
de la figure 3 contient un hyperlien.
Pour générer l’hyperlien, vous pouvez
modifier l’instruction suivante pour inclure
ou remplacer le code
ASPADOComplex.asp qui imprime la valeur de la cellule :
Response.Write "<a
href=Drillthrough.asp?colName=" & _
colName(k) & "&rowName=" & rowName(j)
& _
"&cube=Enrollment&Where=" &
Server.URLEncode(strWhere) & ">" _
& cst(k, j),FormattedValue & "</a>"
A noter que l'hyperlien appelle la page Drillthrough.asp et transmet à cette page, par l'intermédiaire de la chaîne de requête, les noms des membres de la colonne et de la ligne courante, le cube, et toute clause WHERE éventuelle que l'instruction MDX a utilisée pour générer l'ensemble de cellules. Le code dans la page ASPADOComplex.asp stocke les noms de lignes et de colonnes sous forme d'arrays peuplés quand il construit les en-têtes de lignes et de colonnes de la table dans la page ASP. Le code ci-dessous extrait la clause WHERE de l'instruction MDX, puis envoie les valeurs à la page Drillthrough.asp, que montre le listing 1.page ASPADOComplex.asp stocke les noms de lignes et de colonnes sous forme d'arrays peuplés quand il construit les en-têtes de lignes et de colonnes de la table dans la page ASP. Le code ci-dessous extrait la clause WHERE de l'instruction MDX, puis envoie les valeurs à la page Drillthrough.asp, que montre le listing 1.
intPos = Instr(Session("MDXQuery"), "WHERE")
If IntPos > 0 Then strWhere = Mid(Session("MDXQuery"),intPos)
Drillthrough bâtit une instruction MDX qui inclut le mot-clé DRILLTHROUGH pour ordonner au serveur OLAP de construire et d'exécuter une requête pour renvoyer les données détaillées demandées. Vous pouvez accoler le mot-clé DRILLTHROUGH comme préfixe d'une instruction MDX, laquelle peut contenir des arguments MAXROWS et FIRSTROWSET pour limiter le nombre de lignes renvoyées au client et pour déterminer la partition dont les données doivent être renvoyées en premier si le cube contient de multiples partitions. Le serveur OLAP applique MAXROWS après avoir appliqué le filtre pour le cube ou la partition. En A du listing 1, on voit que la page limite le nombre de lignes à renvoyer à 5 000. Pour bâtir l'instruction MDX, la page ajoute à la variable strSource les arguments transmis dans la chaîne de requête (nom de colonne, nom de ligne, cube et clause WHERE) et atteints par l'intermédiaire de l'objet ASP Request. Ainsi, si vous cliquez sur la colonne Days pour Cincinnati, la page construit l'instruction MDX suivante :
DRILLTHROUGH MAXROWS 5000
SELECT {[Measures].[Days]} ON COLUMNS,
{[Location].[All
Location].[N].[Cincinnati]}
ON ROWS
FROM Enrollment
Pour exécuter l'instruction MDX,
vous invoquez la méthode Execute
d'un objet Connection. Cet exemple
définit la propriété ActiveConnection
de l'objet ADOMD.Catalog d'après le
nom du serveur et du catalogue que la
session de l'utilisateur contenait avant
qu'il n'appelle Execute. Dans des applications
Web, la valeur renvoyée à
partir de la méthode Execute est un
ADO Recordset, pas un cellset comme
dans ADO MD. Comme un drillthrough
dans des applications Web
peut renvoyer des recordsets multiples,
il vaut mieux écrire le code en
double pour extraire les résultats et les
formater dans une table HTML,
comme le montre le renvoi B du listing
1.
La méthode NextRecordset de l'objet
Recordset renvoie les recordsets
créés pour des partitions supplémentaires,
ou elle renvoie Nothing quand il
n'existe plus de recordsets. Si vous
êtes certains que les recordsets pour
les différentes partitions contiennent
les mêmes colonnes, vous pouvez fusionner
les résultats en utilisant le code
ASP. Toutefois, dans ce cas, la procédure
PrintTable place simplement une
table HTML supplémentaire sur la page
renvoyée à l'utilisateur. La figure 4
montre les données détaillées résultantes.
Téléchargez cette ressource
Construire une infrastructure cloud optimisée pour l’IA avec Microsoft Azure
Les managers IT ont besoin d’une stratégie claire et de solutions concrètes pour préparer leur infrastructure cloud à l'adoption de l'IA, tout en optimisant les coûts, renforçant la sécurité et développant les compétences internes. Découvrez tous les conseils dans ce guide Insight.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les entreprises n’ont plus le luxe d’expérimenter l’IA
- Le changement, moteur d’engagement au travail
- Cloud 2026 : 5 tendances à anticiper pour les PME françaises
- Les DSI français face au défi de l’IA : ambitions élevées, marges de manœuvre limitées
Articles les + lus
Alliée ou menace ? Comment l’IA redessine le paysage cyber
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
À la une de la chaîne Tech
- Alliée ou menace ? Comment l’IA redessine le paysage cyber
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
