2009-01-14 5 views
5

Ich bin neu in SSRS, so dass ich entschuldige mich, wenn diese Frage ist zu einfach:Parameter Validierung auf Berichte

Ich habe einen Bericht, der einen Parameter „Betrag“ genannt akzeptiert. Ich möchte gültige Eingaben für Währungswerte> = 0 einschränken und öffne eine Fehlermeldung, wenn der Benutzer falsche Werte eingibt.

Ich möchte keine Eingaben in meiner gespeicherten Prozedur validieren und Ausnahmen auslösen, weil SSRS eine sehr generische "Abfrageausführung fehlgeschlagen für 'someTable'" Nachricht an Benutzer anzeigt, die auf den Bericht von einem anderen Computer zugreifen, und mein Unternehmen tut Ich möchte das Flag "Enable Remote Errors" nicht aktivieren.

Wie füge ich Eingabeprüfungen hinzu, um Parameter zu melden und Benutzer über schlechte Eingaben zu benachrichtigen?

Ja, ich habe gegoogled, aber habe nicht viel Glück gehabt. Vielen Dank im Voraus :)

Antwort

6

Okay, wie wäre es damit?

Alles, was Sie in SSRS wirklich haben, ist die SQL-Abfrage und Ausdrücke in Berichtsfeldern.

Vielleicht könnten Sie ein großes, rotes Textfeld am oberen Rand des Berichts für Ihre Fehlermeldung hinzufügen, und geben Sie einen Ausdruck wie '= IIf (Parameters! Amount.Value < 0, "Fehler: Ungültige Menge", "").

Gehen Sie dann auf den Tisch des „Verborgen“ und geben ihm den Ausdruck „= Parameters! Amount.Value < 0“

Sie auch in Ihre Abfrage where-Klausel hinzufügen könnte und fügen Sie „AND @Amount> = 0 "Sie werden also nicht von der Datenbank abgerufen, wenn ein Fehler aufgetreten ist.

+0

Funktioniert perfekt, danke :) – Juliet

+0

Falls jemand Screenshots benötigt: [Schritt1 - Rechtsklick TextBox - Ausdruck] (http://i.imgur.com/jwyxrt9.png) [Schritt2 - Rechtsklick auf Tablix] (http://i.imgur.com/1gmSpSt.png) [Schritt3 - Ausdruck zu "Sichtbarkeit" hinzufügen] (http: // i. imgur.com/QQnjygh.png) – itsho

0

Es ist möglich, Berichtsparameter in SSRS zu erstellen, die auf einer bestimmten Liste oder einer Nachschlageabfrage basieren, aber ich glaube nicht, dass Sie eine Regex oder etwas Ähnliches anwenden können.

Stattdessen sollten Sie Ihren Bericht in zwei Bereiche aufteilen. Einer zeigt Ihren Bericht und der andere einen Fehler an. Anschließend erstellen Sie eine Assembly mit einer Funktion, die die Parameter für den Bericht validiert, bevor er ausgeführt wird. Wenn die Funktion zum Validieren der Parameter erfolgreich ist, blenden Sie die Fehleranzeige aus und zeigen Sie die Berichtspalette an, wenn Sie nicht das Gegenteil tun.

+0

Ich bin nicht wirklich auf der Suche nach einer Regex-Lösung. Außerdem klingt die Option "zwei Panels + benutzerdefinierte DLL zur Überprüfung des Fehlers" etwas übertrieben (ganz zu schweigen von der zusätzlichen Assembly, die die Bereitstellung erschwert) - ist dies die Standardmethode zur Validierung von Berichtsparametern? – Juliet

+0

Anstelle einer separaten DLL ist es möglich, Code in den Bericht einzubetten. Ich bin mir nicht sicher, ob benutzerdefinierter Code der Standard ist, um Parameter zu validieren, aber es scheint mir der vernünftigste Weg zu sein. –

0

Ich glaube nicht, dass Sie eine Menge im Reporting-Tool selbst tun können. Es ist ziemlich rudimentär.

Sie können jedoch eine ASP.net-Webschnittstelle oder ein Formular bereitstellen, mit dem Sie die Benutzer nach den Parameterwerten in einem beliebigen von .NET zugelassenen Format fragen und das ReportViewer-Steuerelement zum Anzeigen des Berichts verwenden können. Es klingt beängstigend, aber es ist eigentlich ziemlich einfach, besonders wenn Sie bereits ein Projekt haben, auf dem Sie aufbauen können.

Microsoft gibt tutorials for using the ReportViewer controls.

+0

Es gibt kein Projekt, auf das wir aufbauen können. Diese Berichte sind streng intern und unsere Buchhaltung besucht die Standardseite http: // someserver/Reports, die MS zur Verfügung stellt.Es ist ein wenig mehr Arbeit als es wert, ein Web-Interface um diese Website nur für Param Validierung schreiben :) – Juliet