【问题标题】:Report Builder 3.0 (SSRS) - Highlight Row in Matrix Based on Max Value in Column GroupReport Builder 3.0 (SSRS) - 根据列组中的最大值突出显示矩阵中的行
【发布时间】:2021-07-30 18:34:03
【问题描述】:

我的任务是编写一份带有矩阵的报告,该矩阵按行和列对数据进行分类和分组,我被告知每行必须是特定颜色,具体取决于最大计数出现在哪个列组中。

所以我创建了我的矩阵。在行上,它首先按州分组,然后按城市分组,底部有一个总行。列组基于我创建的两个计算字段。以下是它们的标签和表达方式:

DaysSinceLastUpdate

=DateDiff(DateInterval.Day,Fields!RECORD_UPDATED_DATE.Value,Today())

DaysSinceUpdateGrouping

=Switch(Fields!DaysSinceLastUpdate.Value<91,"Less Than 90 Days", Fields!DaysSinceLastUpdate.Value<181,"91-180 Days", Fields!DaysSinceLastUpdate.Value<365,"181-365 Days", Fields!DaysSinceLastUpdate.Value>=365,"More Than 1 Year")

所以我的表是这样的:

State City DaysSinceUpdateGrouping Total Records
City CountDistinct(RecordID) CountDistinct(RecordID)
State Total CountDistinct(RecordID) CountDistinct(RecordID)
Total CountDistinct(RecordID) CountDistinct(RecordID)

当报表运行时,用户使用参数选择一个或多个状态。如果用户只选择了俄勒冈州,结果可能如下所示:

State City Less Than 90 Days 91-180 Days 181-365 Days More Than 1 Year Total Records
Portland 50 80 100 10 240
Eugene 40 20 60 100 220
Bend 100 10 0 20 130
Oregon Total 190 110 160 130 590
Total 190 110 160 130 590

我想要做的是让每一行根据最大值出现的位置改变颜色。对于波特兰,最高值在“181-365”天列中,所以我想要那行橙色。对于 Eugene,最高值在“超过 1 年”列中,因此我希望该行为红色。对于 Bend,最高值在“少于 90 天”列中,因此我希望该行为绿色。 Oregon 和 Total 行也应该是绿色的。 (如果“91-180 天”列具有最大值,则其关联行应为黄色。)

我选择了我想应用背景颜色规则的单元格,并为 Fill 属性应用了这个表达式:

=switch(max(Fields!DaysSinceUpdateGrouping.Value, "City")="Less Than 90 Days","LimeGreen", max(Fields!DaysSinceUpdateGrouping.Value, "City")="91-180 Days","Yellow",   max(Fields!DaysSinceUpdateGrouping.Value, "City")="181-365 Days","Orange", max(Fields!DaysSinceUpdateGrouping.Value, "City")="More Than 1 Year","Tomato")

但行总是变红。

知道我做错了什么吗?如何让 Fill 表达式找到列组中每一行的最大值?

【问题讨论】:

    标签: matrix expression grouping conditional-formatting reportbuilder3.0


    【解决方案1】:

    我明白了!除了列组之外,我还必须为 DaysSinceUpdateGrouping 添加一个行组。然后我删除了出现的列,但将组保留在原位。这样,在单元格颜色的 Switch 表达式中,我可以将“City”替换为“DaysSinceUpdateGrouping1”,以便参考计算细节,而不是城市总数。

    【讨论】:

    • 没关系。我以为我有。添加一个行组确实让我的条件格式设置正确,但它为每个城市创建了四行,在每一行中,一列显示实际值,另外三列显示 0。所以,如果有人我仍然需要帮助有什么想法...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多