SSRS 将今天的日期时间作为每页上的常量值获取

SSRS get todays datetime as a constant value on each page

提问人:sushi 提问时间:12/14/2019 更新时间:12/16/2019 访问量:210

问:

我创建了一个简单的占位符,表达式为:在我的页脚中。=Now()

但是每当我转到新页面时,此值都会更改。例如,第 1 页有 3:08:34,第 2 页有 3:11:35。请参见下面的屏幕截图。

enter image description here

然后我滚动到第 2 页:

enter image description here

从第 3 页滚动到第 1 页时,时间增加了约 2 分钟。

当我导出为 PDF 时也会发生同样的情况,尽管差异只有几秒钟而不是几分钟。

我正在使用 MSSMS 17 并在 Visual Studio 17 中执行报告


如何获取执行报表时的静态日期时间?

即我希望每一页都有相同的日期时间。

日期时间 报告服务

评论

0赞 Diego 12/14/2019
不是 100% 确定这会起作用,但您可以尝试创建一个参数并将默认值设置为,而不是将表达式放在占位符中,而是将参数放在占位符中=Now()[@param]

答:

0赞 AnkUser 12/16/2019 #1

如评论中所述,我尝试创建一个将 now() 作为默认值的参数,然后将其添加到页脚上,这些参数在每个页面上都保持静态。 此外,如果您能看到下面的图像,我还添加了另一个文本框,其中 =now() 作为直接表达式,并且每个页面上都发生了变化。

enter image description here enter image description here

enter image description here enter image description here enter image description here

评论

0赞 sushi 12/17/2019
感谢您的截图!这对全球来说是一个很棒的工作!艾伦·斯科菲尔德 (Alan Schofield) 提及的 ExecutionTime。
1赞 Alan Schofield 12/16/2019 #2

只需使用内置值而不是 Now()。这是一个常量值。Globals!ExecutionTime

类似的东西

= Format(Globals!ExecutionTime,"dd/MM/yyyy  h:mm:ss")

评论

0赞 sushi 12/17/2019
谢谢!效果很好。您是否知道是否有某种排序刷新变量导致 now() 重新计算,或者这只是该函数的性质?
0赞 Alan Schofield 12/17/2019
我认为now()只是在调用时被重新评估。因此,如果您有多个页面,则仅在您查看每个页面或将其写入 PDF 等时才会呈现它们。如果您在查看第 2 页之前等待 1 分钟,我希望它比第 1 页晚 1 分钟显示时间。执行报表时,全局变量将计算一次,因此它对所有页面都保持不变。