【发布时间】:2012-09-13 23:26:54
【问题描述】:
我的应用程序使用 SSRS 为员工生成工资单。工资单报告由一个包含 5 列的 tablix 组成。在这 5 个中,有一列称为“Units”,另一列称为“Invoice value”。
报告有几个行分组级别,但对于这个问题唯一重要的是工资单编号行分组“RG_SlipNum”。每个“RG_SlipNum”RowGroup 之后都有一个分页符。
当用户想要打印工资单时,他们可以选择提供最多 5 个参数来过滤要打印的结果集。
可以根据交付的单位数量 * 费率(基于单位)或交付的发票价值的百分比(基于发票)向员工支付报酬(过于简单,但希望你明白我的意思)。
如果员工是基于单位的,我希望显示单位列,并隐藏“发票价值”列。如果它们是基于发票的,我希望两列都显示。
我的数据集有一个位字段,指示根据上述逻辑是显示还是隐藏列。对于当前 rowGroup 中的每个基础行,它将是 1 或 0。我尝试在“发票值”列的列可见性表达式中使用 First(,) 函数。但是,每当我尝试使用 RowGroup 名称将 First Function 的范围限制为当前 Payslip Rowgroup 时,都会出现以下错误。
"tablix 'X' 的隐藏表达式具有对聚合函数无效的范围参数。范围参数必须设置为字符串常量,该字符串常量等于包含组的名称、包含数据区域的名称或数据集的名称。"
所以,我的问题
您能否将 RowGroup 名称定义为 First() 函数中的 Scope 参数?
如果不是,在不完全重新处理我的数据集/RDL 的情况下实现这一目标的最佳方法是什么。(使用 SSRS2008)
【问题讨论】:
标签: reporting-services expression visibility