提问人:sushi 提问时间:12/14/2019 更新时间:12/16/2019 访问量:210
SSRS 将今天的日期时间作为每页上的常量值获取
SSRS get todays datetime as a constant value on each page
问:
我创建了一个简单的占位符,表达式为:在我的页脚中。=Now()
但是每当我转到新页面时,此值都会更改。例如,第 1 页有 3:08:34,第 2 页有 3:11:35。请参见下面的屏幕截图。
然后我滚动到第 2 页:
从第 3 页滚动到第 1 页时,时间增加了约 2 分钟。
当我导出为 PDF 时也会发生同样的情况,尽管差异只有几秒钟而不是几分钟。
我正在使用 MSSMS 17 并在 Visual Studio 17 中执行报告
如何获取执行报表时的静态日期时间?
即我希望每一页都有相同的日期时间。
答:
0赞
AnkUser
12/16/2019
#1
如评论中所述,我尝试创建一个将 now() 作为默认值的参数,然后将其添加到页脚上,这些参数在每个页面上都保持静态。 此外,如果您能看到下面的图像,我还添加了另一个文本框,其中 =now() 作为直接表达式,并且每个页面上都发生了变化。
评论
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 分钟显示时间。执行报表时,全局变量将计算一次,因此它对所有页面都保持不变。
评论
=Now()
[@param]