reporting-services - 如何在ssrs矩阵报告中的一行中获取列值的最大值

标签 reporting-services ssrs-2008-r2

我创建了一个 SSRS 报告,其中将小时显示为列名,将日期显示为行名。单元格值表示特定日期特定时间的销售额。

我的报告中的表格如下:

日期 |第 1 小时|第 2 小时|第 3 小时|最大销售额|最小销售额

2015 年 4 月 10 日| 5 | 10 | 15 | 15 | 5个 2015 年 4 月 11 日| 30 | 10 | 20 | 30 | 10

我希望在销售额最大的单元格中使用绿色背景,在销售额最小的单元格中使用红色背景。所需的输出如下:

日期 |第 1 小时 |第 2 小时 |第 3 小时 |最大销售额|最小销售额

4/10/2015|5(红色)| 10 |15(绿色)| 15 | 5个 2015/4/11|30(绿色)|10(红色)| 20 | 30 | 10

我为 GetColor 写了一个自定义代码如下:

Function GetCellColor(ByVal minValue As Integer,ByVal maxValue As Integer, ByVal currentValue As Integer) As String
    If currentValue = maxValue Then
        return "Green"
    Else If currentValue = minValue Then
        return "Red"
	Else
		return "WhiteSmoke"
    End If
End Function

根据单元格值返回颜色。我无法传递一行的 maxValue、minValue。

提前致谢。

最佳答案

您应该能够按照自己的方式完成此操作,但您需要使用与填充MinMax 相同的字段或表达式> 代码调用中的列。如果您使用表达式来计算它,您将使用相同的公式。

=Code.GetCellColor(Fields!Max_Sales.value, Fields!Min_Sales.value, Fields!YourField.value)

正如 Koryu 所提到的,您可以通过将逻辑放在背景颜色属性的 Expression 中来完成此操作而无需使用代码:

=IIf(Fields!YourField.value = Fields!Max_Sales.value, "Green",
 IIf(Fields!YourField.value = Fields!Min_Sales.value, "Red", 
  "WhiteSmoke"))

关于reporting-services - 如何在ssrs矩阵报告中的一行中获取列值的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29606786/

相关文章:

sql - 如何设置 ssrs 报告上日期和时间的格式?

sql-server-2005 - 在 SQL Reporting 2005 中更改货币符号

deployment - SSRS 错误 : "One or more parameters required to run the report have not been specified. (rsParametersNotSpecified)"

vb.net - 自定义代码 : [BC30201] Expression expected 的第 58 行出现错误

date - 在 SSRS 中将日期转换为 YYYYMMDD 格式的整数

internet-explorer - Reporting Services 报表仅在 Internet Explorer 中挂起

web-services - 使用 2-Way SSL 的 SSRS 服务器 Web 服务 - 错误 : HTTP Error 403. 7 – 禁止访问

reporting-services - 访问主报表中的子报表值 - SSRS

reporting-services - ADD Total 在 SSRS Tablix 中显示为灰色

reporting-services - 检查 SSRS 报告中文本框中的空值和拆分值