空柱

2012-08-10 35 views
1

的SSRS顏色背景顏色我有這樣一個表:空柱

[Name] [Position] 
a   0 
b   1 
c   2 
d   3 
e   4 
f   5 

創建與[NAME]的圖表爲行和[位置]爲列和作爲值的位置計數。
像這樣:

 0 1 2 3 4 5 
a 1 
b  1 
c   1 
d    1 
e     1 
f     1 

我想使所有的列,其中[位置] = 2是藍色的,和所有其他爲白色。我無法弄清楚我該如何做到這一點,因爲行在該位置沒有值,例如位置(e)= 4,並且在2處沒有數值。

有沒有辦法可以做到這一點?

+0

還沒有把這裏SSRS嘗試一下,但也許它會工作,如果你可以在設計器中選擇列組,併爲其設置一個背景顏色表達式,比如'IIF(Fields!Position.Value = 2,「#0000FF」,「#FFFFFF」)'? – Jeroen 2012-08-10 18:43:10

+0

這就是我最初嘗試過的,但問題在於此語句僅適用於Position.Value = 2的行。在此示例中,對於'b'Position.Value = 1說,但位置仍有一個單元格2不變色。當我使用這個表達式時,只有單元格c2被填充 – richsoni 2012-08-10 18:49:52

+0

啊,哦,哇。想不到任何解決方案(禁止在所有行上爲位置2生成值)... – Jeroen 2012-08-10 21:37:53

回答

3

對於任何人有同樣的問題,其實你可以得到一個特定框的值是這樣的:ReportItems("Textbox600").Value

剛剛與細胞名稱替換600。選擇單元格時,名稱顯示在工具欄上方屬性框的正上方。

在這種情況下,Textbox600是[位置],所以這種細胞背景顏色表達的是這樣的:

Iif(ReportItems("Textbox600").Value = 2, "Blue", "White")  
1

C2是唯一填充的,因爲這是數據在列「2」中存在的唯一單元格。可能你可以交叉加入你的名字和位置來爲所有單元格生成值,例如

SELECT 
    a.name, 
    b.position, 
    CASE WHEN c.name IS NOT NULL THEN 1 ELSE 0 END AS position_count 
FROM 
(
(SELECT [name] FROM #temp) a 
CROSS JOIN 
(SELECT [position] FROM #temp)b 
) 
LEFT JOIN #temp c ON a.name = c.name and b.position = c.position 

回報

name position position_count 
---- -------- -------------- 
a 0  1 
a 1  0 
a 2  0 
a 3  0 
a 4  0 
a 5  0 
b 0  0 
b 1  1 
b 2  0 
b 3  0 
b 4  0 

這應該讓你用表達式來設置的欄目組的背景色。您可以在單元格上添加一個表達式來抑制「零」值。