我有一张这样的表:
[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处没有值。
我有办法做到这一点吗?
答案 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
等
这应该允许您使用表达式在列组上设置背景颜色。您可以在单元格上添加表达式以抑制“零”值。