从数据库记录中设置`REPORT_TIME_ZONE`参数

时间:2015-02-09 22:15:25

标签: oracle11g jasper-reports jasperserver

我们的数据库有一个报表收件人表,并附有首选时区。

如何将此列用作报告中REPORT_TIME_ZONE参数的值?

我尝试/想过的解决方法:

  • ALTER SESSION SET TIME_ZONE='Europe/Zurich';guilio says no
  • def recipientTzCode = (SELECT TIMEZONE_CODE FROM REPORT_RECIPIENTS WHERE RECIPIENT_ID=$P{recipientId});位于顶部,但这似乎与之前相同
  • SELECT...FROM_TZ( CAST(created_at AS TIMESTAMP), 'UTC' ) AT TIME ZONE (SELECT TIMEZONE_CODE FROM REPORT_RECIPIENTS WHERE RECIPIENT_ID=$P{recipientId})...但这不适用于GROUP BY语句

[澄清编辑] 我需要在Report(* .jrxml)和独立的Jaspersoft Server实例的范围内执行此操作。外面的软件是作弊; - )

1 个答案:

答案 0 :(得分:0)

当您调用报告时(通过休息或使用url嵌入),您可以传递userTimezone参数,例如。

https://server/jasperserver-pro/flow.html?_flowId=dashboardRuntimeFlow&dashboardResource=%2Forganizations%2Forganization_1%2Freports%2FREPORT&userTimezone=Europe/Zurich

给出的链接是Jasperserver中报告的链接。默认情况下,服务器将采用您登录时指定的时区。您可以通过最后使用& userTimezone = Europe / Zurich重定向到网址来覆盖此。

或者我相信如果你在报告中添加一个名为userTimezone的报告(在iReport中),你可以在服务器上添加一个带有所需时区的输入控件,并在从服务器调用报告时输入。