2010-02-24 3 views
1

J'ai des rapports basés sur le serveur (* .rdl) qui renvoient des données d'une vue SQL Server 2008. L'utilisateur souhaite pouvoir ajouter dynamiquement un filtrage, par ex.Reporting Services: ajouter dynamiquement des filtres au rapport de serveur

  • me montrer que les données avec Language = Anglais,
    ou
  • me montrer que les données pour une unité d'organisation donnée

ou des trucs comme ça. Le nombre de critères de filtrage est raisonnablement faible (quatre ou cinq).

Mais comment je fais ça? J'ai mon RDL sur le serveur, avec la requête de base (SELECT (fields) FROM MyView WHERE ......) à l'intérieur de l'ensemble de données de rapport - comment puis-je ajouter dynamiquement le filtrage à cela? J'espérais pouvoir définir des filtres de jeu de données, mais ceux-ci semblent devoir être en place lorsque le RDL est rendu (par exemple, ils font partie du rapport RDL lui-même).

Les valeurs possibles pour chaque critère sont trop nombreux que je ne pouvais tout simplement les ajouter comme une liste et définir un IN (list of values) type de filtre .....

Toutes les idées ?? Pensées? Est-ce que je manque quelque chose?


Solution: Je l'ai résolu en utilisant l'option de filtrage sur l'ensemble des données du rapport, que je mets à un filtre « factice » au début, qui rend compte de tout, puis mettre à jour pour filtrer le réel colonne et la valeur que l'utilisateur spécifie dans l'interface utilisateur. Fonctionne très bien jusqu'à présent!

Répondre

1

Ce n'est pas dynamique (dans le sens où l'utilisateur doit relancer chaque fois que le rapport), mais si vous avez seulement quatre ou cinq paramètres avec de nombreuses valeurs de la solution facile serait d'ajouter un paramètre multi-sélection au rapport pour chacun d'entre eux qui par défaut à "Tous".

Y a-t-il une raison pour laquelle l'utilisateur ne peut pas réexécuter le rapport avec des paramètres différents? Ou ai-je mal compris ce que vous entendez par dynamique?

+0

@Ed: pour un ou deux d'entre eux, cela fonctionnerait - ils n'ont qu'une poignée de valeurs possibles. Certains ont cependant potentiellement des centaines ou des milliers de valeurs possibles, ce qui n'est pas vraiment faisable. –

+0

@marc_s: êtes-vous préoccupé par la taille des listes de valeurs en raison de leur convivialité, de leur performance ou de quelque chose d'autre? Si la facilité d'utilisation est le problème, pourrait-il être possible de sous-catégoriser les listes en hiérarchies? –

+0

@Ed: les deux, vraiment - une liste avec quatre ou cinq entrées est acceptable, mais si c'est des centaines ou plus, ce n'est ni vraiment gérable (pour l'utilisateur) ni vraiment bon pour la performance .... –

0

si je comprends bien votre question:

vous pouvez utiliser les paramètres de filtrage. Si vous avez une application qui utilise le contrôle ReportViewer pour afficher le rapport, transmettez ces conditions en tant que paramètre à votre rapport. vous pouvez gérer la visibilité ou le filtrage des données avec ces paramètres.

Questions connexes