【问题标题】:How do I get a list of default values for all parameters of a report?如何获取报告所有参数的默认值列表?
【发布时间】:2018-05-14 15:03:35
【问题描述】:

我有一份报告,我想在用户点击“查看报告”之前获取每个参数的默认值。棘手的部分是可以从查询中生成一些参数。

例如,如果用户打开此报告,他们会将这些值视为默认值:

(上图是用户在更改任何参数之前以及点击“查看报告”之前看到的屏幕截图)

每个多值参数都是从查询或存储过程生成的。我需要获取为这些生成的值。所有这一切背后的总体目标是,然后我将使用这些来确定用户在运行报告时更改了哪些参数。

所以看看Commodity 参数。它有很多默认值。假设用户只选择了“包”。我需要使用 VB 代码或 SQL 来确定用户将该参数的默认值从该查询返回的所有结果中更改为仅“Bags”。我该怎么做?

【问题讨论】:

  • 谁投了反对票——我能解释一下你为什么这么做吗?如果有什么问题困扰您,我可以修改问题。
  • 您提供了一张图片,但没有提供任何数据。请以表格形式提供所有相关数据、查询和预期结果。
  • 您还应该包括所有相关代码以及为解决问题所做的任何尝试
  • @DanielMarcus 我认为您应该更仔细地阅读这个问题。我已经提供了所有相关信息。没有理由提供生成参数值的 select 语句,我当然也不需要以表格形式显示结果,因为这是使用查询为报告参数生成可能值的标准方法。此外,这个问题的重点是创造做某事的方法,而不是解决问题。
  • 如果你这样做了,那么问题的质量会更高,稍微努力一下就表明你已经尝试过了。

标签: sql vb.net reporting-services sql-server-2008-r2


【解决方案1】:

您可以复制参数并使用相同的数据集(如果您使用级联参数,您可能必须复制数据集)

在我的示例中,最初两个参数都从数据集中获取第一年,即 2003 年。 用户做出选择后,原始参数值(将设置为内部 - 我在示例中保持可见)保留数据集的初始值,而用户参数返回所选年份。

【讨论】:

  • 这将是我的方法,操作简单,除了标准 SSRS/SQL 之外没有任何东西可以比较和存储结果。
【解决方案2】:

SSRS 确实支持级联参数。这一切都发生在您查看报告之前。所以运行获取后续参数可用值的数据集,可以参考之前参数的值。然而,这只是一种方式。您无法检查下一个参数的值,因为它不存在于该范围内。

作为一般规则,此行为不打算用于其他目的。但我想没有什么能阻止您在最后一个参数查询中调用存储过程并在它们运行报告之前执行一些操作。

我不了解您要完成的工作的全貌,但我希望这至少可以为您指明正确的方向。

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多