[英]Alternating row color expression in SSRS matrix not working correctly
在唯一的行組中,我嘗試使用以下表達式獲取備用行顏色:
背景顏色的表達式: =IIf( RunningValue (Fields!SP.Value, CountDistinct, Nothing) MOD 2, "White", "blue")
SQL code:
select
ROW_NUMBER() OVER (ORDER BY DataDate) AS SSRSRowNumber
,datepart(dw,datadate) SSRSDateFilter
,DataDate
,SP
,sum(TMI) as TotalCI
from table
where DataDate>GETDATE()-20
group by DataDate,SP
order by 1, 2
結果是下面的圖片,上面列出的表達式有什么問題?
編輯- : 解決方案
數據中缺少日期會導致背景行顏色無法正常工作。
您可能會浪費大量時間嘗試使查詢正常工作。
或者,您可以只使用交替行顏色功能。
Private bOddRow As Boolean
'*************************************************************************
' -- Display green-bar type color banding in detail rows
' -- Call from BackGroundColor property of all detail row textboxes
' -- Set Toggle True for first item, False for others.
'*************************************************************************
Function AlternateColor(ByVal OddColor As String, _
ByVal EvenColor As String, ByVal Toggle As Boolean) As String
If Toggle Then bOddRow = Not bOddRow
If bOddRow Then
Return OddColor
Else
Return EvenColor
End If
End Function
對於控制顏色的第一列:
=Code.AlternateColor("AliceBlue", "White", True)
對於其余的列,請勿使用第三個參數切換:
=Code.AlternateColor("AliceBlue", "White", False)
您可能需要切換矩陣第一欄中的顏色。
對於我來說,在行組和列組之間沒有交集的情況下,發生了這種情況。
示例:-我有存儲過程1和2
在1/1上,1和2都跑了,所以我記錄了它們
在1/2上,只需要運行1,所以我只記錄1
在1/3上,他們都再次跑了,所以我都記錄了
我將在sp 2的1/2上有一個看起來混亂的單元格(顏色不會改變),因為SSRS無法為運行的總數計算新值(仍然為1)。 在3上,它會識別一個值並得出運行值現在是3,因此着色將按預期恢復。
要解決此問題,您可以執行cross apply
以獲取所有日期和SP的笛卡爾積,以便每個不同的日期都有一個針對每個不同的日期的行,並將其存儲在臨時表中。 將當前查詢存儲在臨時表或CSV中,然后加入基於cross apply
的查詢。 這將確保不會丟失任何單元。 請注意,這會對性能產生影響,因此請進行相應的測試(很可能忽略不計)。
讓我知道您是否需要幫助編寫查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.