根据SSRS 2012中的行和列标题值为单元格着色

时间:2019-04-25 15:15:27

标签: reporting-services format conditional

我想根据标题和行值(而不是单元格值)为单元格着色。在下面的示例中,当[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

很抱歉,如果格式化不起作用-尝试粘贴到图像中,但是也失败了。

我尝试使用[Sum(wgt_scaled)]=iif(Fields!ship_prom.Value=Fields!produced_month.Value,"Green","No Color")进行条件格式化 但并非所有单元格都具有值,并且每个空值单元格都变为绿色。

来自DonD的其他内容:   实际报告还有其他几个字段/组,因此您对该区域的评论是适当的。我试图将报告简化为仅基本数据,但仍无法获得与您相同的输出。 reduced report info

@ steve-o169由于您可以使用Switch生成报告,因此我将继续标记您的答案为最佳。感谢您的帮助!

design layout example

sample desired output

Actual data query and subset of data

1 个答案:

答案 0 :(得分:0)

看起来您只需要添加另一个条件语句来说明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

我已经在produced_month上放置了一个列组,并在ship_prom上放置了一个行组,并按以下布局按ship_prom进行了分组。

design view

使用我的答案中的确切开关表达式,我可以获得以下结果。

enter image description here