【问题标题】:SSRS 2008 Multi value parameter data driven subscriptionSSRS 2008 多值参数数据驱动订阅
【发布时间】:2014-10-29 12:13:33
【问题描述】:

我有一个使用多值参数的 SSRS 报告。可用值是单列数据集。例如

帐号
帐户名
地址
销售

这只是一个列标题名称的列表。(报告中的每一列都有一个可见性切换是否列名被选为多值参数的一部分)

该报告可以作为按需运行的常规报告和常规订阅(只需选择我想要用于各种订阅的列)。

我需要为同一份报告进行数据驱动订阅。作为 DDS 的一部分,我传递了我想要用于此特定订阅的列:
SELECT 'AccountNumber,AccountName,Sales' 作为列

我从数据库中获取 1 参数的值。订阅错误。 (此时我无权获取特定错误)。如果我将多个列指定为静态参数,它也不起作用。如果我指定 1 列,则报告有效。

提前感谢您的帮助!

更新
我能够通过 2 种方式获得半解决方法。
1. 我没有从数据库查询中获取报表的参数可用值,而是指定了值,这在本示例中不是问题。然后典型的下拉多值选择框在数据驱动中工作。您会认为查询可以做同样的事情,因为它在 DDS 查询和常规订阅中与数据库对话,为什么不在数据驱动订阅中呢?

2. 在执行上述操作之前,我在参数数据集查询中添加了另一行,称为“默认”。然后我做了一个隐藏的虚拟参数,如果输入是默认的,则使用硬编码的列列表,否则使用输入的任何内容。然后我可以在“默认”的 DDS 中输入 1 个值。然后我不得不调整列可见性公式以适用于我的虚拟参数。

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-2008-r2


    【解决方案1】:

    从数据库中获取值作为联合而不是逗号分隔

    SELECT 'AccountNumber' AS [Columns]
    UNION
    SELECT 'AccountName' AS [Columns]
    UNION
    SELECT 'Sales' AS [Columns]
    

    而不是从查询中获取 -

    SELECT 'AccountNumber,AccountName,Sales' as columns
    

    【讨论】:

    • 我也尝试过,将每一行作为 1 个参数传递并每次单独运行报告。所以我会得到一个只有 AccountNumber 字段的报告。然后是仅包含 AccountName 字段的第二份报告,依此类推。
    • 尝试将默认值设置为报告中的所有值,并在订阅中设置默认值 SELECT 'AccountNumber' AS [Columns] UNION SELECT 'AccountName' AS [Columns] UNION SELECT 'Sales' AS [Columns]
    • 这是一个好主意,我认为可以做到。但是,当我为参数提供除了多值选择(可用值框)之外的默认列表时,一旦我进入设置数据驱动订阅,它并没有给我“使用默认值”复选框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多