【问题标题】:SSRS. Hide a Column based on Row Group ValueSSRS。根据行组值隐藏列
【发布时间】: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


    【解决方案1】:

    为什么总是在发布论坛问题后,你就想通了(或一些解决方法)?

    如果有人看到这个,我仍然希望得到一些(更好的)答案,但我已将 tablix 中的一个单元格设置为决定是否显示该列的位字段的值。然后我更改了列可见性表达式以检查单元格值(使用 ReportItems!textboxname.Value)并且它正在工作。当我滚动工资单时,列的可见性会相应变化。

    【讨论】:

    • 虽然这在浏览器中查看时有效,但在打印工资单时,我的打印输出与屏幕上显示的不同。 (即列可见性不同)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多