आप पैरामीटर अभिव्यक्ति में एंडडेट मान की जांच कर सकते हैं, और यदि यह गलत है, तो इसे StartDate + 1 महीने पर सेट करें।
कुछ की तरह:
= IIF(DateDiff(DateInterval.Month, Parameters!StartDate.Value, Parameters!EndDate.Value) = 0, Parameters!EndDate.Value, AddDate(DateInterval.Month, 1, Parameters!StartDate.Value))
तुम सिर्फ उपयोगकर्ता को सूचित चाहते हैं, आप उचित स्वरूपण (लाल बड़े फ़ॉन्ट) और संदेश तिथि पैरामीटर के बारे में गलत श्रृंखला के साथ कुछ छिपा पाठ बॉक्स रख सकते हैं। छिपे हुए अभिव्यक्ति में
= (DateDiff(DateInterval.Month, Parameters!StartDate.Value, Parameters!EndDate.Value) <> 0)
इसके अलावा निर्धारित करते हैं, तो आप कस्टम कोड के साथ दोनों कार्यों को जोड़ सकते हैं: पैरामीटर मूल्य अभिव्यक्ति में,
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
तब:
= Code.ValidateDate(Parameters!StartDate.Value, Parameters!EndDate.Value)
tbDateParameterMessage पाठ बॉक्स के मूल्य संपत्ति में:
= Code.DateMessage
और छिपे हुए संपत्ति अभिव्यक्ति में:
= String.IsNullOrEmpty(Code.DateMessage)
संपादित लेकिन अगर आप रिपोर्ट को रोकना चाहते हैं, यह कस्टम कोड का उपयोग करें:
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
यह SQLServerCentral forum से लिया है।
मैंने इसके बारे में सोचा, लेकिन समस्या यह है कि उपयोगकर्ता यह नहीं देख सकता कि तारीख समायोजित की गई थी। मैं जो करना चाहता हूं वह एक संवाद प्रदर्शित करने जैसा कुछ है जो उन्हें बता रहा है कि तिथियां उसी महीने में होनी चाहिए। – jhale