2015-02-09 50 views
0

我们的数据库有一个报表收件人的表格,并附有他们的首选时区。从数据库记录中设置“REPORT_TIME_ZONE”参数

如何使用此列作为报告中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实例的范围内执行此操作。外部软件是作弊的;-)

+0

为什么第三个选项不适用于分组?你不能加入获取参数而不是子查询吗? – 2015-02-09 22:46:43

+0

当您调用报告(通过休息或通过url嵌入)时,您可以传递userTimezone参数,例如 – kayakpim 2015-02-10 11:56:16

+0

@AlexPoole我想是这样,但是会变成很多'JOIN's ... plan B? – PixnBits 2015-02-10 16:59:36

回答

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中),你可以把它作为输入控件添加到你想要的时区并从服务器调用报表时输入这个信息。

+0

增加了对该问题的说明。我将如何设置来自Jasper Server的查询参数? – PixnBits 2015-02-10 16:51:58