嵌套行组上的SSRS边框

时间:2014-03-05 15:03:47

标签: sql reporting-services border ssrs-grouping

我正在制作 SSRS2012 报告。

我有一个带有静态列和嵌套行组的矩阵。我想基于父组在我的行上添加顶部和底部边框。矩阵如下所示:

[ProcessCell] | [Name]  | [Field]|

我的群组是:ProcessCell1 (parent) - Name (child)

我目前正在使用标准格式来获取[ProcessCell]的边框并且它有效。我在[Name]的边框上使用了一个表达式(在另一篇文章中找到)并且它有效,但该表达式对[Field]框不起作用。表达式如下:

=IIf(Fields!ProcessCell.Value = Previous(Fields!ProcessCell.Value, "Name") OR Not(Fields!ProcessCell.Value = First(Fields!ProcessCell.Value, "Name")), "Light Gray", "Black")

我尝试更改之前和之前的范围,但它没有用。

我得到的错误是“文本框'Field'的BorderColor表达式有一个对聚合函数无效的范围参数”

1 个答案:

答案 0 :(得分:1)

我今天遇到了完全相同的问题(使用Tablix,而不是矩阵,以及SSRS 2008 R2)。我无法使Previous()函数正常工作而不会为文本框抛出相同的#34; BorderStyle表达式..."你看到的错误。

我所做的是在我的数据集中添加一个新字段,该字段使用ROW_NUMBER()分析SQL函数对结果进行分类。我的报告中的相关字段是UserName,ReportName和DatetimeRun(是的,这是关于报告使用情况的报告)。我希望在UserName和ReportName的每个唯一组合之间出现边框,因此我将此字段添加到我的数据集中:

ROW_NUMBER() over (partition by UserName,ReportName order by UserName,ReportName)
as RowNum

对于UserName和ReportName的每个唯一组合(Partition by部分中的字段),从1开始,并按顺序对返回的行进行编号。

回到我的BorderStyle / Top表达式,而不是使用Previous()我使用了这个:

=iif(Fields!RowNum.Value = 1,"Solid","None")

仅在新UserName / ReportName组合的开头显示边框。

希望这有帮助!

相关问题