您可以使用Split函數生成一個值數組。當然,你仍然需要選擇其中一個來測試。以下可能會讓你再次去。
=Iif(
CDate(
Split(
"21/08/2016, 22/08/2016",
","
).GetValue(0)
) < Today,
"True",
"False"
)
但是,如果你正在處理一個日期字符串,可以包含任意數量的日期,你來測試他們都那麼簡單SSRS表達式將無法處理的。幸運的是,我們可以使用一些自定義代碼。
右鍵單擊報告背景並選擇報告屬性。點擊「編碼」項,以下內容粘貼到代碼框中
Public Function TestDate(DateString As String) As String
Dim DatesArray() As String = Split(DateString)
Dim ReturnValue As String = "Transparent"
For Each d As String In DatesArray
If Date.Parse(d) = DateAdd(DateInterval.Day, -1, Date.Today) Then
ReturnValue = "Red"
End If
If Date.Parse(d) < DateAdd(DateInterval.Day, -1, Date.Today) Then
ReturnValue = "DarkRed"
End If
Next
Return ReturnValue
End Function
現在改變表達如下
=Code.TestDate("21/08/2016 22/08/2016")
我用Date.Today在VB限制日期的比較到今天。如果你想更精確,即:準確的時間,使用Date.Now代替
使用日期數據類型,而不是varchar,來存儲日期。 – jarlh
不幸的是,我不能這樣做,因爲單個包含多個日期條目。 – PnP
這是一個更糟糕的設計問題......永遠不要將數據存儲爲逗號分隔的項目。這隻會導致你很多麻煩。 – jarlh