【问题标题】:How to Pass Report Parameter as if it were a Query Parameter?如何像查询参数一样传递报告参数?
【发布时间】:2019-04-29 20:40:41
【问题描述】:

我正在尝试制作一个允许用户输入 ID 的报告,然后根据多个收款人表检查此 ID,以查看该值是否已存在。代码需要输入,如果代码已经存在,则显示值 1,如果代码可供使用,则显示 0。这在将 ID 设置为查询参数时在 SQL 代码中有效,但在创建 SSRS 报告并传递报告参数时似乎不起作用;报告不显示任何数据。

我尝试添加一个 tablix 列来显示验证参数。该字段在尝试传递报表参数时保持空白,但在硬编码查询参数时会正确显示。

DECLARE @id varchar(8)

SELECT @id,
    CASE
        WHEN @id IN (
                    SELECT id
                    FROM payee_1
                    )
        THEN 1
        WHEN @id IN (
                    SELECT id
                    FROM payee_2
                    )
        THEN 1
        WHEN @id IN (
                    SELECT id
                    FROM payee_3
                    )
        THEN 1
    ELSE 0
    END as validation

SQL 查询产生我希望在 SSRS 报告中看到的结果。它只显示输入 ID,如果不可用,则显示 1(如果可用,则显示 0)。当输入到 SSRS 时,报表参数永远不会像查询参数一样通过,并且我的报表最终是空白的。

【问题讨论】:

    标签: sql visual-studio-2017 ssrs-2017


    【解决方案1】:

    当您的报表打开以供编辑 (Visual Studio) 时,在“报表数据”面板(默认停靠在左侧)中,展开“数据集”。右键单击您的数据集并选择“数据集属性”。

    在“数据集属性”窗口的左侧,单击“参数”。显示的参数是从您的查询中填充的。如果您有参数化查询,那么您可以选择将查询参数(“参数值”)绑定到报表参数,或设置其他默认值或公式等。

    【讨论】:

    • 参数值已在SSRS中设置并关联。在您发表评论之前,我实际上已经尝试过设置此关联,但它仍然没有正确通过。 imgur.com/ZbbwPXRimgur.com/sA1mBmf
    • 现在工作了吗?如果没有,您能否提供更多解释或屏幕截图或其他内容?也许显示你的 SQL 查询。
    • 它不工作。我附上了一些屏幕截图。我期望在报告中发生的是:用户输入查找代码,如果代码存在于任何收款人表中,验证应该显示 1,并且 id 应该显示用户传递的代码。我计划在功能到位后清理表单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    相关资源
    最近更新 更多