1

我有一张这样的桌子:

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

我创建了一个图表,其中 [Name] 作为行,[Position] 作为列,位置计数作为值。
像这样:

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

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

有没有办法我可以做到这一点?

4

2 回答 2

3

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

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

在本例中,Textbox600 是 [Position],因此此单元格背景颜色的表达式如下所示:

Iif(ReportItems("Textbox600").Value = 2, "Blue", "White")    
于 2012-09-19T17:47:13.287 回答
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

等等

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

于 2012-08-13T05:32:31.853 回答