Reporting services 如果布尔参数值为false/No,如何阻止用户运行报告?
如果布尔参数值为false/No,如何防止用户运行报告 或者 如果布尔参数值为false/No,如何禁用“查看报告”按钮 情景: 我正在创建一个新的报告(如报告2),该报告将处理由另一个报告(如报告1之前运行)创建的数据。为了提醒用户运行报表1,我在报表2上添加了一个布尔参数-您是否执行了报表1?这是“是”和“否”选项的下拉列表,默认设置为“否” 我想强制用户在执行报告之前选择“是”,否则显示一条消息或只是不加载报告或保持查看报告按钮处于禁用状态。这并不重要,任何选项都可以 谁能给我指点方向吗Reporting services 如果布尔参数值为false/No,如何阻止用户运行报告?,reporting-services,rdl,Reporting Services,Rdl,如果布尔参数值为false/No,如何防止用户运行报告 或者 如果布尔参数值为false/No,如何禁用“查看报告”按钮 情景: 我正在创建一个新的报告(如报告2),该报告将处理由另一个报告(如报告1之前运行)创建的数据。为了提醒用户运行报表1,我在报表2上添加了一个布尔参数-您是否执行了报表1?这是“是”和“否”选项的下拉列表,默认设置为“否” 我想强制用户在执行报告之前选择“是”,否则显示一条消息或只是不加载报告或保持查看报告按钮处于禁用状态。这并不重要,任何选项都可以 谁能给我指点方向吗
提前感谢。有几种方法可以做到这一点 选项1:您可以有一个简单的文本参数,如您所述,有两个可用的选项,默认值为No
IF @ConfirmParameter = "Yes"
BEGIN
SELECT * FROM MyTable -- Original query here
END
这将不会向数据集返回任何数据,除非下拉列表设置为“是”。然后,您可以将reports tablix/表中的NoRowsMessage属性设置为“您需要先运行Report 1以获得所需的结果”
选项2:可以有一个没有默认值的简单布尔参数。这将阻止报告运行,直到至少有一个选项被采用,如果用户仍然运行报告,那么您可以使用类似的方法实现选项1
选项3:在中有一个下拉列表,其中只有一个“是”选项,但没有默认值
选项4:根据您的场景,最后一个选项可能不适用,但如果报表1始终必须在报表2之前立即运行,则您可以在报表1中添加一个带有“转到报表操作”的链接文本框以运行报表2。只有在运行报表1后,此选项才可见。然后将报表2更改为对SSRS门户网站/报表管理器隐藏,这样报表2就无法轻松独立运行。谢谢@Alan我会试试。嘿@Alan,不幸的是,选项1不起作用。不喜欢该参数。它在哪里不起作用?您是否将参数类型设置为Text?如果我使用if@PriceBookReportYN=Yes BEGIN-END,它会提示我定义查询参数窗口。注:上述参数与报表参数不同。这是一个查询参数。报表参数必须与查询参数的名称完全相同,否则将不会传递给查询。因此,在数据集查询中,不要声明参数,只需按照上面所述使用它,如果找不到匹配的报告参数名称,SSRS将添加一个报告参数。