簡體   English   中英

SSRS矩陣中的交替行顏色表達式無法正常工作

[英]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)

您可能需要切換矩陣第一欄中的顏色。

當某些行不可見時,SSRS交替顯示行顏色問題

對於我來說,在行組和列組之間沒有交集的情況下,發生了這種情況。

示例:-我有存儲過程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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM