我们有ssrs 2008 r2 rdls。我打开了SSRS报告,并在浏览器中将其打开了30分钟以上。如果我现在单击通过操作或转到报告的任何向下钻取。我不希望报告向我提供该信息。它应说明报告已过期。
是否已有可用的解决方案。将来的SQL Server版本是否有解决方案?
答案 0 :(得分:0)
在SSRS中没有内置的方法可以原生完成此操作。
我之前从未听说过有人问过这样的要求,所以我怀疑是否已经有一些东西要添加它。
我对JavaScript的了解还不足以知道是否可以向JavaScript URL添加逻辑,以在该URL中创建空白链接或链接到“页面过期”页面。
="javascript:void(window.open('https://na5.salesforce.com/','_blank'))"
答案 1 :(得分:0)
您可以在主报表上创建一个隐藏的datetime参数,并将其默认值设置为当前时间:=Now()
。我们将此参数称为@MainReportRuntime
。
在子报表上使用相同的隐藏参数,并将@MainReportRuntime
传递到子报表。
修改子报表的SQL,以便仅在日期距主报表运行时半小时之内返回数据,并在大于半小时的报表中添加报表到期消息:
SELECT SomeField
FROM SomeTable
WHERE @MainReportRuntime >= DateAdd(mi, -30, Current_Timestamp)
UNION ALL
SELECT 'Report has expired - please rerun report to get current data'
WHERE @MainReportRuntime < DateAdd(mi, -30, Current_Timestamp)