Ich habe einen Berichtsservice (SQL 2008) mit zwei Date / Time-Parametern - "begindate" und "enddate". Ich muss das Enddatum auf den gleichen Monat und das gleiche Jahr beschränken wie das Begin. Das scheint so zu sein, als ob es eine leichte Sache wäre, aber ich kann es nicht herausfinden.
Zurzeit überprüfe ich die Parameter, die an die gespeicherte Prozedur übergeben werden, und melde einen Fehler, wenn die beiden Datetime-Parameter nicht im selben Monat und Jahr liegen. Ich suche nach einer eleganteren Art, dies zu erreichen.
Sie können den EndDate-Wert im Parameter expression überprüfen, und wenn er falsch ist, legen Sie ihn auf StartDate + 1 Month fest.
Etwas wie:
Wenn Sie nur einen Benutzer benachrichtigen möchten, können Sie ein ausgeblendetes Textfeld mit der entsprechenden Formatierung (rote, große Schrift) und eine Nachricht über den falschen Bereich des Datumsparameters platzieren. In Versteckter Ausdruck legen Sie
fest %Vor%Sie können beide Aktionen auch mit benutzerdefiniertem Code kombinieren:
%Vor%Dann in Parameter Wert Ausdruck:
%Vor%In der Value-Eigenschaft des tbDateParameterMessage-Textfelds:
%Vor%Und im Ausdruck der ausgeblendeten Eigenschaft:
%Vor%BEARBEITEN Verwenden Sie diesen benutzerdefinierten Code jedoch, wenn Sie das Ausführen des Berichts stoppen möchten:
%Vor%Es stammt aus dem SQLServerCentral-Forum .
Sehr häufig gibt es Bereitstellungsprobleme mit der Msgbox-Funktion in einem SSRS-Bericht. Sie funktionieren gut auf unseren Entwicklungsmaschinen, aber es kann schwierig sein, wenn sie tatsächlich eingesetzt werden. Hier sind ein paar Links, die die Probleme erklären:
Meine Lösung war eine sehr einfache Implementierung, bei der der Bericht gestoppt wurde, aber es zeigt einfach einen Berichtfehler mit der Meldung an, die dem Benutzer aus der Berichtsanzeige angezeigt wird.
Schließlich geben Sie für den Berichtscode das folgende Code-Snippet ein:
%Vor%Nichts Schickes, aber erfüllt was Sie brauchen.
Viel Glück!
Ich habe die Idee mit dem versteckten Textfeld verwendet, weil es besser war, als den Bericht abstürzen zu lassen. Was ich damit erreichen wollte, war, den Benutzer zu zwingen, seine Parameter zu ändern, bevor der Bericht ausgeführt wurde.
Übrigens, die Syntax hat nicht funktioniert. Ich habe das stattdessen verwendet:
%Vor%Vielen Dank für die Idee.
Wenn sie keine Änderungen vorgenommen haben, funktioniert die Funktion MsgBox () nicht auf SSRS. Es funktioniert nicht auf SSRS 2010. Ich glaube, es ist eine Windows-Funktion, so kann nicht auf einer gerenderten Webseite verwendet werden.
Tags und Links reporting-services ssrs-2008