ssrs空列的颜色背景颜色

时间:2012-08-10 16:07:13

标签: sql-server-2008 reporting-services

我有一张这样的表:

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

我创建一个图表,其中[Name]为行,[Position]为列,位置为count 像这样:

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

我想将[Position] = 2的所有列都设为蓝色,将所有其他列设为白色。我无法弄清楚我是如何做到的,因为行在该位置没有值,例如位置(e)= 4,在2处没有值。

我有办法做到这一点吗?

2 个答案:

答案 0 :(得分:3)

对于遇到同样问题的任何人,您实际上可以获得如下特定框的值:ReportItems("Textbox600").Value

只需用单元名称替换600即可。选择单元格时,名称将显示在工具栏正上方的属性框中。

在这种情况下,Textbox600是[Position],因此此单元格背景颜色的表达式如下所示:

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

答案 1 :(得分: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

这应该允许您使用表达式在列组上设置背景颜色。您可以在单元格上添加表达式以抑制“零”值。