2017-07-27 1 views
0

J'ai deux ensembles de données différents dans le rapport SSRS qui donne un nombre différent de champs de sortie. J'ai utilisé cet ensemble de deux données dans deux tables différentes dans le rapport.SSRS exécution conditionnelle de l'ensemble de données

1) Une table affichera la sortie à la fois dans l'exécution en fonction des conditions.

En fait, lors de l'exécution du rapport, deux ensembles de données exécutent le SP et il faut plus de temps pour afficher la sortie.

Condition: Je dois exécuter le jeu de données SP à la fois en fonction de la condition. L'autre jeu de données SP ne doit pas s'exécuter.

Exemple: Dataset1 exécute Sp1 Dataset2 exécute Sp2

Tableau 1 utilise Sp1 Tableau2 utilise Sp2

Normalement, lors de l'exécution rapport Tableau 1 affiche la sortie (Basé sur la sélection des paramètres par défaut)

Mais SP1 et SP2 s'exécutent en même temps. Le rapport prend plus de temps pour afficher la sortie.

J'ai besoin d'exécuter 1 SP à la fois en fonction de la condition.so que l'autre ensemble de données SP ne s'exécutera pas.

+0

Avez-vous essayé la 'Visibilité' pour votre tablix? mettre une condition de vérification avec une certaine date et heure dans l'expression – LONG

+0

yah basée sur la visibilité i montrant deux tables différentes. Deux ensembles de données SP s'exécutent en même temps. Il faut beaucoup de temps pour afficher la sortie d'une seule table. –

+0

Je ne suis pas sûr qu'il existe un moyen de laisser SSRS fonctionner plus efficacement, parfois même une erreur de délai d'attente – LONG

Répondre

1

Etape 1: Créez d'abord Dummy SP pour Dataset .que SP devrait avoir paramètres d'entrée et mêmemêmes champs de sortie que SP1 d'origine, mais donne une sortie zéro rows.Do le même pour le Service Pack 2 pour Dataset 2

Etape 2: dans les propriétés Dataset sélectionnez StoredProcedure Icône et dans la colonne Fx ajouter ci-dessous le code

= IIF (Paramètres! ManagerID.Valeur = -1, "SP1", "DummySP")

Note: DummySP créé devrait être le même que le Service Pack 1 Faites la même chose pour Dataset 2..and cela fonctionne.

0

Vous devez contrôler la visibilité des tablix dépend du paramètre reçu, en plus, vous pouvez créer des paramètres sur les requêtes pour contrôler où l'exécution pour éviter l'exécution, comme

Where @Condition = 1 AND (Your WHERE) 
0

Quant à ce sac de performance, vous ne voulez pas exécuter d'autre SP du tout, dans ce cas, selon mon expérience, la meilleure façon est de modifier votre stored procs pour ajouter un new parameter en fonction de ce que vous décidez quel ensemble de données appeler (signifie quelles données à tirer). Par conséquent, si le paramètre indique que le SP spécifique n'est pas requis, n'exécutez pas le code dans SP à l'aide du combo IF-ELSE et renvoyez une ligne vide.

Et puis, en plus de cela, vous pouvez hide ou show votre tableau.

Espérons que cela a du sens? Et si les column count et data types sont identiques, vous pouvez toujours utiliser une expression pour décider quel stored-proc appeler.