SSRS exécuter SQL/DataSet conditionnellement
J'ai un rapport SSRS qui contient plusieurs sous-rapports. L'utilisateur a la possibilité de sélectionner/désélectionner les sous-rapports qu'ils veulent produire à l'aide de plusieurs paramètres Booléens. Si un sous-rapport est désactivée, alors il n'est pas rendu par la définition de la Visibilité de la propriété. Cependant, l'ensemble de données associé avec le de-sous-le rapport s'exécute encore causant le temps d'exécution à prendre plus de temps que prévu.
Est-il possible de dire à un ensemble de données sur un sous-rapport ou tableau Matriciel, de ne pas exécuter en fonction d'un Paramètre de sélection?
OriginalL'auteur MikeTWebb | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Comprennent un
AND :ParameterName = 'Y'
condition de la clause where - si votre paramètre est pas'Y'
, la requête sera encore le feu, mais il sera immédiatement return 0 enregistrements.Cool...je vais donner un coup de cette et de vous laisser savoir comment ça se passe. Thx
Salut Marc...j'ai essayé cette approche, et elle fonctionne aussi loin que zéro lignes retournées lorsque le paramètre <> 'Y'. Cependant, le temps d'exécution est d'environ la même. Croyez-vous que la requête est toujours envoyé vers le serveur?
Il sera envoyé sur le serveur, mais l'optimiseur sur le serveur devrait immédiatement reconnaître que 0 des registres sont requis et retourne un dataset vide. Ce temps d'exécution en êtes-vous?
Intéressant....quand je désélectionner al 12 rapports...la executino temps d'environ 30 secondes. Lorsque je sélectionne toutes les 12 rapports, il est le même (donner ou prendre 1 seconde)
OriginalL'auteur
Oui. Il suffit de cocher les paramètres dans chaque ensemble de données et d'utiliser un if/ELSE construire pour retourner des données réelles ou factices des données de la même forme pour éviter les erreurs. En supposant que votre paramètre est nommé @ShowThisData ensuite, vous pouvez faire ceci:
quelle est l'erreur? ce qui est dans votre jeu de données de texte de la requête maintenant?
l'id d'erreur "ORA-00900: invalid SQL instruction" if @Parameter = 'true' select * from <TABLE> où running_total_pct <= 100 commande par running_total_pct
Oh Oracle. Désolé, je n'aurais pas supposé MSSQL. Je ne pense pas que vous avez fait autant de puissance dans le jeu de données lors de l'utilisation d'Oracle. Essayez de Mark Bannister l'approche la plus simple.
Venez pour penser à elle, vous pourriez utiliser une approche similaire. Le jeu de données de texte de la requête peut être une expression et une expression IIF() pourrait fournir d'autres le texte de la requête en fonction du paramètre. Mais pour les requêtes de base, la Marque, la solution est beaucoup plus simple je pense
OriginalL'auteur JC Ford
Cela fonctionne quand je l'ai essayer dans Oracle
vous permettant d'utiliser plusieurs instructions en 1 requête
OriginalL'auteur phil gilbert