s-s-rS - 根据行数据的计算值对行集进行分组

Posted

技术标签:

【中文标题】s-s-rS - 根据行数据的计算值对行集进行分组【英文标题】:s-s-rS - Group set of rows based on calculated value from the row's data 【发布时间】: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 很简单。我只需要代表特定集合中的行。 【参考方案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 数据类型。非常感谢亚历杭德罗

以上是关于s-s-rS - 根据行数据的计算值对行集进行分组的主要内容,如果未能解决你的问题,请参考以下文章

按值对行进行分组,直到它更改(分组包括第一个更改的值)

根据列值对行进行排名/计数

使用 ag 网格,尝试按一个值对行分组并显示另一个

如何使用 Python 在一个时间段内对行进行分组

根据 SQL Server 2008 R2 中特定列中的模式更改对行进行分组

如何动态生成表并对行进行分组