根据 SSRS 2012 中的行和列 header 值为单元格着色
Coloring a cell based on row and column header values in SSRS 2012
我想根据 header 和行值而不是单元格值为单元格着色。在下面的示例中,当 [ship_prom] = [produced_month]
时,[sum(wgt_scaled)]
单元格应变为绿色(在示例中用 X 标记)。
[produced_month]
[ship_prom] [Sum(wgt_scaled)]
201812 201901 201902
201901 2.1 X 3
201902 1.5 X
抱歉,如果格式化不起作用 - 尝试粘贴图像但也失败了..
我尝试使用 =iif(Fields!ship_prom.Value=Fields!produced_month.Value,"Green","No Color")
对 [Sum(wgt_scaled)]
进行条件格式化
但并非所有单元格都有值,每个空值单元格都变成绿色。
来自 DonD 的补充:
实际的报告有几个额外的字段/组,所以你在那个区域对它的评论是合适的。我试图将报告简化为仅包含基本数据,但仍然没有得到与您相同的输出。
reduced report info
@steve-o169 由于您可以使用 Switch 生成报告,我将继续并将您的答案标记为最佳答案。感谢您的帮助!
design layout example
Actual data query and subset of data
看来您只需要添加另一个条件语句来说明 NULL
值。但就个人而言,我建议实施一个开关以更好地控制。试试下面的表达式。
=Switch(Fields!ship_prom.Value=Fields!produced_month.Value AND TRIM(Fields!ship_prom.Value) <> "","Green",
true, "No Color")
编辑:在我真正找出手头的问题之前,可能需要查看查询。我无法重现您的问题。我使用以下查询创建了一个简单的数据集。
CREATE TABLE #temp(ship_prom INT, produced_month INT, wgt_scaled DECIMAL(2,1))
INSERT INTO #temp (ship_prom, produced_month, wgt_scaled)
VALUES (201901, 201812, 2.1), (201902, 201812, 1.5), (201901, 201901, NULL),
(201902, 201901, NULL), (201901, 201902, 3.0), (201902, 201902, NULL)
SELECT * FROM #temp
我已经在 table 上布置了 produced_month
的列组和 ship_prom
的行组,并按 ship_prom
分组,布局如下。
使用我的答案中的确切 switch 表达式,我能够获得以下结果。
我想根据 header 和行值而不是单元格值为单元格着色。在下面的示例中,当 [ship_prom] = [produced_month]
时,[sum(wgt_scaled)]
单元格应变为绿色(在示例中用 X 标记)。
[produced_month]
[ship_prom] [Sum(wgt_scaled)]
201812 201901 201902
201901 2.1 X 3
201902 1.5 X
抱歉,如果格式化不起作用 - 尝试粘贴图像但也失败了..
我尝试使用 =iif(Fields!ship_prom.Value=Fields!produced_month.Value,"Green","No Color")
对 [Sum(wgt_scaled)]
进行条件格式化
但并非所有单元格都有值,每个空值单元格都变成绿色。
来自 DonD 的补充: 实际的报告有几个额外的字段/组,所以你在那个区域对它的评论是合适的。我试图将报告简化为仅包含基本数据,但仍然没有得到与您相同的输出。 reduced report info
@steve-o169 由于您可以使用 Switch 生成报告,我将继续并将您的答案标记为最佳答案。感谢您的帮助!
design layout example
Actual data query and subset of data
看来您只需要添加另一个条件语句来说明 NULL
值。但就个人而言,我建议实施一个开关以更好地控制。试试下面的表达式。
=Switch(Fields!ship_prom.Value=Fields!produced_month.Value AND TRIM(Fields!ship_prom.Value) <> "","Green",
true, "No Color")
编辑:在我真正找出手头的问题之前,可能需要查看查询。我无法重现您的问题。我使用以下查询创建了一个简单的数据集。
CREATE TABLE #temp(ship_prom INT, produced_month INT, wgt_scaled DECIMAL(2,1))
INSERT INTO #temp (ship_prom, produced_month, wgt_scaled)
VALUES (201901, 201812, 2.1), (201902, 201812, 1.5), (201901, 201901, NULL),
(201902, 201901, NULL), (201901, 201902, 3.0), (201902, 201902, NULL)
SELECT * FROM #temp
我已经在 table 上布置了 produced_month
的列组和 ship_prom
的行组,并按 ship_prom
分组,布局如下。
使用我的答案中的确切 switch 表达式,我能够获得以下结果。