首页 > 解决方案 > 根据 SSRS 2012 中的行和列标题值为单元格着色

问题描述

我想根据标题和行值而不是单元格值为单元格着色。[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 的补充:实际报告有几个额外的字段/组,因此您在该区域的评论是适当的。我试图将报告简化为基本数据,但仍然没有得到与您相同的输出。 减少报告信息

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

设计布局示例

采样期望的输出

实际数据查询和数据子集

标签: reporting-servicesformatconditional

解决方案


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

设计视图

使用我的答案中的确切开关表达式,我能够实现以下结果。

在此处输入图像描述


推荐阅读