如果布尔参数值为 false/No,我如何阻止用户 运行 报告?

How do I stop user from running a report if boolean parameter value is false/No?

如果布尔参数值为 false/No,如何防止用户 运行 生成报告?

或者,

如果布尔参数值为 false/No,如何禁用“查看报告”按钮?

场景:

我正在创建一个新报告 "Report 2",它处理之前由另一个报告 "Report 1" 运行 创建的数据。作为提醒用户注意 运行 报告 1 的检查,我在报告 2 上添加了一个布尔参数 - "Have you executed Report 1?" 是 Yes 和 No 选项的下拉列表,默认设置为 No.

我想强制用户在执行报告之前 select 是,否则显示一条消息或不加载报告或禁用“查看报告”按钮(这不重要,任何选项都可以)。

谁能给我一些指导。

提前致谢。

有几种方法可以做到这一点....

选项 1: 您可以有一个简单的文本参数,如您所描述的,有两个可用选项,默认值为 "No"。然后,您可以在数据集中使用该参数,例如

IF @ConfirmParameter = "Yes"
    BEGIN
       SELECT * FROM MyTable -- Original query here
    END

这将 return 没有数据添加到您的数据集中,除非下拉列表设置为是。然后,您可以根据需要将报告 tablix/table 中的 NoRowsMessage 属性 设置为 "You need to run Report 1 first"。

选项 2: 您可以有一个没有默认值的简单布尔参数。这将阻止报告 运行 宁,直到至少采取一个选项,然后如果用户仍然 运行 报告,您可以类似地实施选项 1。

选项 3: 有一个下拉列表,只有一个是选项,但没有默认值。

选项 4: 根据您的情况,最后一个选项可能不适合,但如果报告 1 始终必须 运行 紧接在报告 2 之前,那么您可以添加报告 1 到 运行 报告 2 中的 link(具有 "Go to Report" 操作的文本框)。只有在报告 1 运行 之后,这才会可见。然后将报告 2 更改为对 SSRS Web Portal/Report 管理器隐藏,这样报告 2 就不能轻易地 运行 单独使用。