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

时间:2015-04-13 13:39:44

标签: reporting-services ssrs-2008-r2

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

我报告中的表格如下:

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

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

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

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

4/10/2015 | 5(红色)| 10 | 15(绿色)| 15 |五 4/11/2015 | 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。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该能够按照自己的方式完成此任务,但是您需要使用与 Min Max < / strong>代码调用中的列。如果使用表达式来计算它,则使用相同的公式。

=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"))