【问题标题】:SSRS - Can I run datasets from different datasources sequentiallySSRS - 我可以按顺序运行来自不同数据源的数据集吗
【发布时间】:2020-10-23 22:11:02
【问题描述】:

我有一个报告(SSRS / SQL Server 2008 R2),我需要访问 2 个数据源,每个数据源都有一个数据集。我需要在 DataSource2-DataSet2 的查询开始之前运行并完成 DataSource1-Dataset1 中的查询。

最终我想使用 Dataset1 的结果作为 Dataset2 的输入参数。我知道是否只有一个数据源可以检查数据源属性中的“使用单个事务”,但是有 2 个不同的数据源没有帮助。我还尝试创建一个隐藏参数,该参数具有基于 dataset1 的默认值。直到 dataset1 本身需要一个参数。

任何有关如何设置的建议都会非常有帮助。提前致谢。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    在 SSRS 报告数据浏览器中,数据集按将被评估和启动的顺序列出。通常它们是并行运行的,但是如果您在它们之间建立依赖关系,它们将按顺序运行。创建一个源自数据集 1 的参数,并在数据集 2 中使用该参数。这将强制 SSRS 按顺序完成结果。

    但请记住,这会降低报告的整体呈现速度。

    【讨论】:

    • 为了链接数据集,我尝试使用 dataset1 中字段的默认值创建参数。然后我让 dataset2 使用该参数。前提是 dataset1 没有输入参数。问题是第一个数据集需要输入参数。我接下来尝试了以下操作:创建 2 个参数 Parameter1、Paameter2。 Dataset1 选择一个值 (result1) 并将 Parameter1 作为输入。 Parameter2 隐藏,默认值为 Dataset1 中的 Result1。 Dataset2 使用参数 2。当我尝试运行/预览时出现错误“前向依赖项无效”
    • 我也尝试使用 dataset1 中的字段作为 dataset2 中的参数值,但随后出现错误“字段不能在查询参数表达式中使用”
    • 听起来像级联参数。您必须按顺序填充它们。如果 dataset1 依赖于 parameter1,则 parameter1 在参数列表中必须位于 parameter2 之前。您列出了依赖项。没有任何外部依赖的项(数据集或参数)在前。
    • 修复订单有效。谢谢你。我还发现将第二个数据集添加为子报告也可以,但重新排序参数要容易得多。谢谢。
    猜你喜欢
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多