2016-12-29 74 views
0

我嘗試了所有在組中交替顯示顏色的表達式,但它無法正常工作。SSRS組中的交替顏色

這裏是我的報告設計看起來是這樣的: enter image description here

我想每一組行交替顏色,我想每一組交替內部細節。不過,我總是得到這樣的組交替

enter image description here

我使用這個表達式:

=IIF(RunningValue(Fields!AssignedUnit.Value,COUNT,NOTHING) MOD 2 = 0 
,IIF(ROWNUMBER(NOTHING) MOD 2=0,"LIGHTBLUE","SILVER") 
,IIF(ROWNUMBER(NOTHING) MOD 2=1,"SILVER","LIGHTBLUE")) 

該組填充和這個表達式的細節填充:

= IIf(RowNumber(Nothing) Mod 2 = 0, "LIGHTBLUE", "SILVER") 

enter image description here

can some一個幫我弄清楚我需要改變什麼,以便外面的小組正確地交替?

謝謝。

回答

2

我使用一個函數來控制背景顏色 - 它比在SSRS中使用ROWNUMBER函數更可靠。

你想補充一點的VB代碼段(報告屬性 - >代碼標籤):

Private bOddRow(10) As Boolean 

Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal Type AS INTEGER) As String 

    If Toggle Then bOddRow(Type) = Not bOddRow(Type) 

    If bOddRow(Type) Then 
       Return OddColor 
    Else 
       Return EvenColor 
    End If 

End Function 

然後從BACKGROUNDCOLOR值調用該函數:

=code.AlternateColor("AliceBlue", "White", 1, 1) 

所有函數的作用是檢查bOddRow變量並根據bOddRow的值返回第一或第二顏色。

第三個參數是切換值。如果它是1,顏色將會改變,否則它會返回相同的顏色。組中的第一列將會切換,而其他列將會有0,所以顏色與第一列相同。

第四個參數是針對組號的。對於你的報告,我會讓最後一個數字爲內部組1,外部組爲2。

內組第一列背景色:

=code.AlternateColor("AliceBlue", "White", 1, 1) 

內組的其他列的背景顏色:

=code.AlternateColor("AliceBlue", "White", 0, 1) 

外組第一列背景色:

=code.AlternateColor("MintCream", "WhiteSmoke", 1, 2) 

外組中的其它列背景顏色:

=code.AlternateColor("MintCream", "WhiteSmoke", 0, 2) 

從我以前的帖子剽竊: How to create Alternative Row Background colors in SSRS for values in a group

+0

謝謝,我看到了這個技術很好,但找不到代碼窗口,感謝並稱這一職務。我現在就試試看。 – Leslie

+0

我是SSRS的新手,並且在使用此方法時遇到問題。所以我玩了很多不同的輸入組合。對於我的tablix來接受這段代碼,我不得不在第一列使用= code.AlternateColor(「White」,「AliceBlue」,1,1),然後= code.AlternateColor(「AliceBlue」,「White」,0, 1)第2欄及以後。基本上我只需要切換第1列的顏色。 –