Question

J'aimerais pouvoir parcourir tous les paramètres définis dans mes rapports et créer une chaîne d'affichage du nom et de la valeur du paramètre. J'afficherais ensuite les résultats dans le rapport pour que l'utilisateur sache quels paramètres ont été utilisés pour cette exécution spécifique. Le seul problème est que je ne peux pas parcourir la collection Parameters. Il ne semble pas exister d'indexeur sur la collection Parameters ni d'implémenter IEnumerable. Quelqu'un a-t-il pu accomplir cela? J'utilise SSRS 2005 et il doit être implémenté dans le code de rapport (c'est-à-dire, aucun assemblage externe). Merci!

Était-ce utile?

La solution

Malheureusement, il semble qu'il n'existe pas de moyen simple de procéder. Voir http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx pour plus d'informations. Info. Si vous consultez les de ce commentaire post , il existe quelques moyens de contourner cela, mais ils ne sont pas très élégants. La solution la plus simple nécessite de disposer d'une liste des paramètres de rapport quelque part dans votre code de rapport, ce qui enfreint évidemment les DRY , mais si vous voulez la solution la plus simple, vous devrez peut-être vivre avec cela.

Vous voudrez peut-être repenser votre contrainte d'absence d'assemblage externe, car il me semble qu'il serait beaucoup plus facile de le faire avec un assemblage externe. Ou, si votre rapport ne va pas beaucoup changer, vous pouvez créer la liste des noms de paramètres et des valeurs manuellement.

Autres conseils

Si je comprends votre question, faites ce que je fais: Déposez une zone de texte sur le rapport, puis insérez les éléments suivants pendant la configuration du rapport: = " Paramètre1: " + Paramètres! Parameter.Label + " ;, Parameter2: " + Paramètres! Parameter2.Label ...

Certes, ce n'est pas la plus jolie chose, mais cela fonctionne plutôt bien dans notre application.

Et j'utilise des étiquettes au lieu de valeurs car nous avons des valeurs datetime et que l'utilisateur ne se préoccupe que de la date courte, du mois et de l'année (selon les circonstances), et j'ai déjà effectué ce travail de mise en forme dans les paramètres les paramètres.

Je peux penser à au moins deux façons de le faire. Le premier peut fonctionner, le second fonctionnera certainement.

  1. Utilisez le service Web. Je suis à peu près sûr d'avoir vu l'API pour obtenir une collection de paramètres. Même en l'absence d'accès direct, vous pouvez toujours créer une collection standard et copier les objets ReportParameter de l'un à l'autre dans une boucle foreach, puis accéder à Count, avec les propriétés de paramètre individuelles disponibles en annulant les instances de ReportParameter.

  2. Les rapports sont au format RDL. RDL est XML. Créez un XmlDocument et chargez le fichier RDL, puis utilisez le DOM pour faire ce que vous voulez jusqu'à la définition des valeurs par défaut ou même la réécriture des chaînes de connexion.

Si votre application n'a pas accès aux fichiers RDL via le système de fichiers, vous pouvez les obtenir via le service Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top