【问题标题】:SSRS - Group set of rows based on calculated value from the row's dataSSRS - 根据行数据的计算值对行集进行分组
【发布时间】:2016-02-01 16:41:55
【问题描述】:

我想根据对某一行的列数据的计算对一组行进行分组(显示)。

假设我的 tablix 中有 3 列。 一、说明 2.金额 3.借/贷

基于 D/C 值,我想总结金额(借方为 -ve,贷方为 +ve),直到总数为零,然后将这些行分组为不同的颜色或之间的行间距其他行集。

示例输出:


说明         金额              D/C
xyz                      10                    D
sss                      10                      C

abc                      15                     D
vvv                       5                      C
ccc                      5                      C
abc                       5                      C

谢谢
卡提克

【问题讨论】:

  • 你想只在总和为零时进行分组吗?
  • 您是否在 tablix 中设置了任何行组?我在某处看到过类似的解决方案,但只有在未设置行组时才有效。
  • 不,我什么都没做。我目前的 tablix 很简单。我只需要代表特定集合中的行。

标签: reporting-services ssrs-2008 ssrs-tablix ssrs-grouping rdl


【解决方案1】:

我已经使用您在问题中提供的数据集重新创建了您的场景。 我正在使用金额单元格background-color 属性对总和进行分组。

这是我创建的 tablix。选定的单元格背景属性设置为表达式(见下文):

Report菜单中,Report Properties.../Code选项卡将这个功能放在文本区。

Dim prevColor As String = "Red"
Dim accumulator As Double = 0
Public Function GetSumColor(ByVal value as Double) as String
    Dim color As String             
    accumulator = accumulator + value
    color = prevColor
    If accumulator = 0 Then
        If prevColor = "Red" Then
            prevColor = "Yellow"
        Else
            prevColor = "Red"
        End If
    End If
    Return color
End Function

此函数将根据总和为零在RedYellow 之间更改单元格背景颜色(您可以使用任何您想要的颜色)。

在金额单元格背景颜色属性中使用以下表达式:

=Code.GetSumColor(
IIF(Fields!D_C.Value="C",-Fields!Amount.Value,Fields!Amount.Value)
)

它将产生以下结果:

如果这对你有帮助,请告诉我。

【讨论】:

  • 感谢您的宝贵时间。我尝试了我的报告,我看到一切都是红色的。不知道我需要做什么改变。现在检查一下。否则你的解决方案对我来说看起来不错。来自表达式的函数调用给出错误。 =Code.GetSumColor ...告诉“无法识别的标识符”。但是我在报表属性的代码选项卡上粘贴了功能代码。
  • @Karthik 添加您的数据的确切示例,该函数似乎没有正确地对值求和
  • 知道了。我必须在函数中使用 Decimal 数据类型。非常感谢亚历杭德罗
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 2021-03-30
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多