【问题标题】:change colour of highest total column value in rdl report更改 rdl 报告中最高总列值的颜色
【发布时间】:2020-08-05 05:48:38
【问题描述】:

在 rdl 报告中,我将总列显示为总和聚合,我想突出显示该总数的最高值。

【问题讨论】:

  • 你能显示报表设计的截图吗,我假设这是一个矩阵但不能确定。
  • 上图只是excel中的复制品。这就是我最后想看到的。目前正在努力将字体颜色设置为红色以获得总列中的最大值。总列是 sum(aa,bb... ll)
  • 您仍然需要显示更多信息,您的数据在数据库中是什么样的?这将对您构建报告的方式以及问题的解决方式产生影响。我稍后会发布一个通用示例,但您提供的任何信息都会有所帮助。

标签: reporting-services ssrs-2008 rdlc


【解决方案1】:

这是一个做出很多假设的通用答案。由于您的问题没有包含足够的信息来获得明确的答案,但希望这会给您足够的信息来解决您的问题。

要重新创建它,请执行以下操作(然后根据您的具体情况进行调整)

创建一个新报告。

添加数据集并使用以下查询作为数据集查询

-- create some sample data
DECLARE @t TABLE(Customer varchar(10), Product varchar(10), Quantity int)
INSERT INTO @t VALUES 
('Dave', 'Hammer', 6), ('Dave', 'Saw', 6),('Dave', 'Hammer', 1),
('George', 'Drill', 3),('George', 'Hammer', 6),('George', 'Saw', 6),('George', 'Hammer', 1),
('Mary', 'Drill', 3),('Mary', 'Hammer', 6),
('Jane', 'Saw', 6),('Jane', 'Hammer', 1),('Jane', 'Drill', 3)

-- return the sample data plus a total per customer
SELECT *
        , CustomerTotal = SUM(Quantity) OVER(PARTITION BY Customer)
    FROM @t

这给出使用以下结果

接下来将矩阵控件添加到报表中。 将字段拖到矩阵中,如下所示

客户到“行”;产品到“列”; “数据”的数量

您现在应该有一个矩阵,下面显示了一些行组和列组。 接下来我们需要添加一个总计列,因此右键单击“产品”列组选择“添加总计 => 之后”

最后,我们需要测试总列中的值是否与数据集中最大的CustomerTotal 匹配。如果匹配,则将文本框color 属性更改为“红色”。

我们可以在文本框color 中使用这个表达式来做到这一点..

=IIF(
    Sum(Fields!Quantity.Value) = MAX(Fields!CustomerTotal.Value, "DataSet1"), 
    "Red",
    "Black")

它的作用是获取当前范围(整行)中的总量,并将其与范围“Dataset1”(即整个数据集)的最高 CustomerTotal 进行比较。如果两者匹配,则将 vlue 设置为“Red”,否则将其设置为“Black”

稍微整理一下,最终输出如下所示。

【讨论】:

  • 如果我没有得到 CustomerTotal 列怎么办?我的场景我没有任何这样的总计数列
  • 如果您查看数据集查询,您可以了解如何在此时添加它。如果这没有帮助,请添加更多信息,向我们展示您的数据是什么样的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2015-10-14
  • 1970-01-01
  • 2022-07-23
  • 2017-08-25
  • 2014-01-05
相关资源
最近更新 更多