2011-07-08 10 views
1

dans Sql Server Reporting Services RapportSSRS: réutilisation partielle d'une requête MDX? OU MDX comme paramètre?

est-il possible de définir une requête MDX dans un rapport, puis de le réutiliser plusieurs fois, mais à chaque fois avec une section WHERE différente.

-à-dire les membres et la section SELECT seraient les mêmes pour chaque ligne (MTD.Count YTD.Count)

mais, je voudrais à filtrer 10 façons différentes ..

La seule façon Je peux penser à le faire en ce moment, est l'ajout de 10 ensembles de données, chacun avec un autre cas où l'article, mais je voudrais réutiliser un seul DS

ALTERNATIVE

une autre option tout à fait acceptable serait de fournir requêtes MDX entières au rapport en tant que paramètre d'une certaine sorte. Mon défi est que mes requêtes MDX sont générées dynamiquement (, y compris le # de requêtes réelles), tout cela est piloté par l'utilisateur. Donc, y a-t-il un moyen de fournir des requêtes MDX à un rapport, et de le brancher dans une matrice? Une façon que je pensais de faire aujourd'hui, est d'émettre le XML tout RDL dynamiquement ..

Répondre

0

Ceci est probablement ma solution:

Subreports

Oui, subreports m'a sauvé ici .. Mon objectif réel était de répéter la même requête MDX avec une autre section WHERE pour chaque ligne. Les sous-rapports sont conçus pour cela. Vous pouvez définir une matrice et la lier à un ensemble de données. Cet ensemble de données déterminera combien de lignes de données votre matrice sera peuplée.

Vous pouvez incorporer un sous-état dans une cellule de votre matrice, et transmettre un paramètre (dans mon cas je passe tout le filtre WHERE, mais vous pouvez le rendre plus granulaire et seulement passer un champ.

ensuite, dans votre sous-état, vous pouvez afficher un seul ensemble d'informations basé sur un paramètre qui est passé dans le rapport de parent.

voici quelques liens

SubReports

Designing Reports with Custom MDX Queries

0

Vous pouvez avoir l'ensemble de données en utilisant quelques paramètres comme ceci:

SELECT 
{ 
    StrToSet(@rowAxisMdx) 
} ON 0, 
{ 
    StrToSet(@columnAxisMdx) 
} ON 1 
FROM [Cube] 
WHERE { 
    @StrToSet(@slicerAxisMdx) 
} 

Il sera lent puisque vous utilisez beaucoup de fonctions StrToSet, mais cela devrait fonctionner.

+0

Comment rendre @slicerAxisMdx différent sur chaque ligne? c'est ma question. –

+0

ce qui signifie, je veux plus qu'une simple variation de la requête .. J'ai besoin de n variations de celui-ci. comme .. un tableau de @slicerAxisMdx –

+1

Vous pouvez le faire dans les sous-rapports, en passant MDX différent je suppose ... vous ne pouvez pas modifier la clause WHERE dynamiquement dans la même requête –