Sie können den EndDate-Wert in Parameterausdruck überprüfen, und wenn es falsch ist, legen Sie es auf StartDate + 1 Monat fest.
Etwas wie:
= IIF(DateDiff(DateInterval.Month, Parameters!StartDate.Value, Parameters!EndDate.Value) = 0, Parameters!EndDate.Value, AddDate(DateInterval.Month, 1, Parameters!StartDate.Value))
Wenn Sie Benutzer nur benachrichtigen möchten, können Sie einige versteckte Textfeld mit den entsprechenden Formatierungen (rote große Schrift) und Meldung über Datum Parameter falsche Bereich platzieren. In versteckten Ausdruck gesetzt
= (DateDiff(DateInterval.Month, Parameters!StartDate.Value, Parameters!EndDate.Value) <> 0)
Auch Sie beide Aktionen mit benutzerdefinierten Code kombinieren können:
Public DateMessage As String
Public Function ValidateDate(StartDate As DateTime, EndDate As DateTime) As DateTime
Dim ResultDate As DateTime
If (DateDiff(DateInterval.Month, StartDate, EndDate) <> 0) Then
ResultDate = AddDate(DateInterval.Month, 1, StartDate)
DateMessage = String.Format("End Date parameter value {0}
was out of range and was changed to {1}", EndDate, ResultDate)
Else
ResultDate = EndDate
End If
End Function
Dann in Parameterwert Ausdruck:
= Code.ValidateDate(Parameters!StartDate.Value, Parameters!EndDate.Value)
in Value-Eigenschaft tbDateParameterMessage Textbox:
= Code.DateMessage
Und in Hidden-Eigenschaft Ausdruck:
= String.IsNullOrEmpty(Code.DateMessage)
EDIT Aber wenn Sie stoppen Bericht ausführen möchten, verwenden Sie diesen benutzerdefinierten Code:
Public Function CheckDate(SDate as Date, EDate as Date) as Integer
Dim msg as String
msg = ""
If (SDate > EDate) Then
msg="Start Date should not be later than End Date"
End If
If msg <> "" Then
MsgBox(msg, 16, "Parameter Validation Error")
Err.Raise(6,Report) 'Raise an overflow
End If
End Function
Aus SQLServerCentral forum genommen wird.
Ich dachte darüber nach, aber das Problem ist, dass der Benutzer nicht bemerkt, dass das Datum angepasst wurde. Was ich tun möchte, ist etwas wie einen Dialog anzuzeigen, der ihnen sagt, dass die Daten im selben Monat sein müssen. – jhale