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
此函数将根据总和为零在Red
或Yellow
之间更改单元格背景颜色(您可以使用任何您想要的颜色)。
在金额单元格背景颜色属性中使用以下表达式:
=Code.GetSumColor(
IIF(Fields!D_C.Value="C",-Fields!Amount.Value,Fields!Amount.Value)
)
它将产生以下结果:
如果这对你有帮助,请告诉我。
【讨论】:
感谢您的宝贵时间。我尝试了我的报告,我看到一切都是红色的。不知道我需要做什么改变。现在检查一下。否则你的解决方案对我来说看起来不错。来自表达式的函数调用给出错误。 =Code.GetSumColor ...告诉“无法识别的标识符”。但是我在报表属性的代码选项卡上粘贴了功能代码。 @Karthik 添加您的数据的确切示例,该函数似乎没有正确地对值求和 知道了。我必须在函数中使用 Decimal 数据类型。非常感谢亚历杭德罗以上是关于s-s-rS - 根据行数据的计算值对行集进行分组的主要内容,如果未能解决你的问题,请参考以下文章