我正在创建一个 SSRS2012 报告。
我有一个带有静态列和嵌套行组的矩阵。我想根据父组在我的行上添加顶部和底部边框。矩阵如下所示:
[ProcessCell] | [Name] | [Field]|
我的组是:ProcessCell1(父级)- 名称(子级)
我目前正在使用标准格式来获取[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")
我尝试更改 previous 和first 的范围,但没有成功。
我收到的错误是“文本框“Field
”的 BorderColor 表达式具有对聚合函数无效的范围参数”
最佳答案
我今天遇到了完全相同的问题(使用 Tablix
,而不是矩阵,并且在 SSRS 2008 R2 中)。我无法让 Previous()
函数正常工作,也无法抛出与您所看到的相同的“文本框的 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")
仅在新的用户名/报告名称组合的开头显示边框。
希望这有帮助!
关于sql - 嵌套行组上的 SSRS 边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201458/