【问题标题】:how to get max of column values in a row in ssrs matrix report如何在ssrs矩阵报告中获取一行中的最大列值
【发布时间】:2015-04-13 13:39:43
【问题描述】:

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

我的报告中的表格如下:

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

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

我希望单元格中有绿色背景,销售额最高,单元格背景为红色,销售额最低。所需的输出如下:

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

2015 年 4 月 10 日|5(红色)| 10 |15(绿色)| 15 | 5 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。

提前致谢。

【问题讨论】:

  • 我可以回答以下问题。但由于我的声望低于 50,我无权回答。这令人沮丧。我能做些什么来回答问题? stackoverflow.com/questions/29606814/…
  • 您可以通过这种方式更改文本字段的颜色:右键单击文本字段。在上下文菜单中单击Textfield Properties。然后转到“填充”或“背景”。单击外汇按钮。在那里你可以为你的背景颜色添加一个公式。要访问您的自定义函数,请使用 =code.GetCellColor() 访问您的数据集,请使用 Fields!currentValue.Value。顺便说一句,你也可以通过使用 IIF 函数而不是 vb 脚本来解决这个问题。
  • 您应该能够回答一个问题,但不能评论。您点击的是问题下方还是您的答案部分?
  • 当一个单元格要被着色时,我想从一行的列值计算最大、最小销售额并传递给函数 GetCellColor @Koryu
  • 我没有尝试使用您的答案部分。刚才我已经回答了这个问题。谢谢@汉诺威拳头

标签: reporting-services ssrs-2008-r2


【解决方案1】:

您应该能够按照自己的方式完成此操作,但您需要使用与填充 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"))

【讨论】:

  • 我可以使用数据集中的查询计算 max_sales 和 min_sales 并遵循上述方法。但我想从矩阵的列值计算 max_sales 和 min_sales 值。并将计算出的最大值、最小值传递给函数 GetCelColor(max,min,current) @Hannover Fist
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
相关资源
最近更新 更多