【问题标题】:Parameter selection for update更新参数选择
【发布时间】:2009-10-27 14:57:08
【问题描述】:

我正在尝试将我们最简单的报告之一转换为 Reporting Services。

原始的 excel 报告调用多个存储过程,使用其中一个的结果来构建下一个,因为它向下钻取数据。

我目前有 2 个数据集,它们都调用存储过程。

第一个叫做GetGlobalCustomers。这将填充一个结果集,该结果集返回每个数据库的连接信息(我们已为每个客户拆分数据库)并返回字段 IDNameCustomerServer

第二个叫做GetSchedules,需要GetGlobalCustomers提供的Server和Name来查询正确的数据库。

但是我只想按名称选择客户,而不是单个服务器/名称(记住哪个客户在哪个服务器上以及他们的数据库名称几乎是不可能的)。

所以我有一个名为CustomerName 的参数,它被推到参数列表的顶部,它向用户展示了客户首先选择的值是ID。我还有两个参数叫做DBServerDBName。如何将DBServerDBName 设置为依赖于所选客户?似乎没有一个显而易见的方法。

我猜它需要成为可用值和指定值的一部分,但我不知道如何说“对于这个客户ID 使用这个数据库/名称”。我想我可以通过创建两个额外的数据集来执行dbserver/dbname 的 id 查询选择,但是如果每次我想按参数选择时都需要这样做,我将有几十个数据集。

【问题讨论】:

    标签: reporting-services parameters


    【解决方案1】:

    您可以通过您的数据源做到这一点,但有一个警告:您不能使用共享数据源。

    在这种情况下,数据源连接字符串可以包含参数。例如:

    ="Data Source="+ 参数!P_Environment.Value + ";Initial Catalog=MyDB;"

    您说它需要成为可用值的一部分是正确的。一种可能性是让客户引用将传递给数据源的完整连接字符串。因此,在这种情况下,您将有一个参数,它将客户名称作为参数文本,将连接字符串作为值。

    【讨论】:

    • 我认为你误解了我的意思(或者我解释得不够清楚)。我有一个包含全局信息的数据库。这有一个所有数据库的列表及其在其中的位置。这可以通过 GetGlobalCustomers 访问以检索服务器/名称以在后续查询中使用。据我所知,我不需要更改数据源,因为实际的存储过程使用参数来定位正确的数据库。目前我正在传递数据库的 ID 并使用从主表中选择的名称/服务器对,这是非常低效的。
    猜你喜欢
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多