2009-01-14 11 views
5

Je suis nouveau à SSRS, donc je me excuse si cette question est trop simple:Validation des paramètres sur les rapports

J'ai un rapport qui accepte un paramètre appelé « montant ». Je souhaite limiter les entrées valides aux valeurs de devise> = 0 et ouvrir un message d'erreur si l'utilisateur entre des valeurs incorrectes. Je ne veux pas valider les entrées dans ma procédure stockée et lancer des exceptions, car SSRS affiche un message très générique "Requête échouant l'exécution pour 'someTable" aux utilisateurs qui accèdent au rapport depuis une autre machine, et mon activité ne veut pas activer le drapeau "Activer les erreurs distantes". Comment puis-je ajouter la validation d'entrée pour signaler les paramètres et notifier les utilisateurs d'une mauvaise entrée? Oui, j'ai fait des recherches sur google, mais je n'ai pas eu beaucoup de chance. Merci d'avance :)

Répondre

6

Ok, qu'en pensez-vous?

Tout ce que vous avez dans SSRS, vraiment, est la requête SQL et les expressions dans les champs de rapport. Peut-être pourriez-vous ajouter une grande zone de texte rouge en haut du rapport pour votre message d'erreur et lui donner une expression comme '= IIf (Parameters! Amount.Value < 0, "Error: Invalid Amount", "") '.

Ensuite, allez à la propriété « Caché » de votre table et lui donner l'expression « = Parameters! Amount.Value < 0 »

Vous pouvez également ajouter dans où la clause et ajouter « et @amount de votre requête> = 0 "Donc vous ne récupérez pas de la base de données quand il y a une erreur.

+0

Fonctionne parfaitement, merci :) – Juliet

+0

Dans le cas où quelqu'un a besoin de captures d'écran: [step1 - clic droit TextBox - Expression] (http://i.imgur.com/jwyxrt9.png) [step2 - Tablette clic droit] (http://i.imgur.com/1gmSpSt.png) [step3 - ajouter Expression à "Visibility"] (http: // i. imgur.com/QQnjygh.png) – itsho

0

Il est possible de créer des paramètres de rapport dans SSRS basés sur une liste particulière ou une requête de recherche, mais je ne pense pas que vous puissiez appliquer une regex ou quelque chose comme ça. Au lieu de cela, vous pouvez envisager de séparer votre rapport en deux panneaux, l'un affichant votre rapport et l'autre affichant une erreur, puis vous créez un assembly avec une fonction qui valide les paramètres du rapport avant son exécution. Si la fonction de validation des paramètres réussit, vous masquez le panneau d'erreur et affichez le panneau de rapport, sinon vous faites le contraire.

+0

Je ne cherche pas vraiment une solution regex. De plus, l'option "deux panneaux + DLL personnalisée pour valider l'erreur" sonne un peu exagérée (sans compter que l'assemblage supplémentaire complique le déploiement) - est-ce la façon standard de valider les paramètres du rapport? – Juliet

+0

Au lieu d'une DLL distincte, il est possible d'incorporer du code dans le rapport. Je ne suis pas sûr si le code personnalisé est la manière standard de valider les paramètres, mais il semble certainement être le moyen le plus sensé pour moi. –

0

Je ne pense pas que vous puissiez faire beaucoup dans l'outil de reporting lui-même. C'est plutôt rudimentaire.

Toutefois, vous pouvez fournir une interface Web ASP.net ou un formulaire que vous pouvez utiliser pour demander aux utilisateurs les valeurs de paramètre dans n'importe quel format .NET autorisé et utiliser le contrôle ReportViewer pour afficher le rapport. Cela semble décourageant, mais c'est assez simple, surtout si vous avez déjà un projet sur lequel vous pouvez construire.

Microsoft donne tutorials for using the ReportViewer controls.

+0

Il n'y a pas de projet sur lequel s'appuyer, ces rapports sont strictement internes et notre département de comptabilité visite la page http: // someserver/Reports par défaut que MS fournit.C'est un peu plus de travail que sa valeur pour écrire une interface web autour de ce site juste pour la validation des paramètres :) – Juliet

Questions connexes