我的应用程序使用 SSRS 为员工生成工资单。工资单报告由一个包含 5 列的 tablix 组成。在这 5 个列中,有一列名为“单位”,另一列名为“发票值(value)”。
该报表有多个行分组级别,但对于此问题唯一重要的级别是工资单编号行分组“RG_SlipNum”。每个“RG_SlipNum”RowGroup 之后都有一个分页符。
当用户想要打印工资单时,他们可以选择提供最多 5 个参数来过滤要打印的结果集。
可以根据交付的单位数量 * 费率(基于单位)或按交付发票值(value)的百分比(基于发票)向员工支付报酬(过于简单化,但希望您明白我的意思)。
如果员工是基于单位的,我希望显示单位列,并隐藏“发票值(value)”列。如果它们是基于发票的,我希望两列都显示。
我的数据集有一个位字段指示是否显示或隐藏基于上述逻辑的列。对于当前行组中的每个基础行,它将是 1 或 0。我尝试在“发票值”列的列可见性表达式中使用 First(,) 函数。但是,每当我尝试使用 RowGroup 名称将 First Function 的范围限制为当前 Payslip Rowgroup 时,我都会收到以下错误。
“tablix 'X' 的隐藏表达式具有对聚合函数无效的范围参数。范围参数必须设置为字符串常量,该常量等于包含组的名称,包含数据区域的名称,或数据集的名称。”
那么,我的问题
您能否将 RowGroup 名称定义为 First() 函数中的 Scope 参数?
如果不是,在不完全重新处理我的数据集/RDL 的情况下实现此目标的最佳方法是什么。(使用 SSRS2008)
最佳答案
为什么总是在发布论坛问题后,您就想出了(或一些解决方法)?
如果有人看到这个,我仍然想要一些(更好的)答案,但我已经将 tablix 中的一个单元格设置为确定是否显示该列的位字段的值。然后我更改了列可见性表达式以检查单元格值(使用 ReportItems!textboxname.Value)并且它正在运行。当我滚动工资单时,列的可见性会相应地发生变化。
关于reporting-services - SSRS。根据行组值隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409355/