我已将 BIRT 报告集成到 Grails 中并设计了一份报告。 我的 grails 应用程序中有一个名为 startPeriod (仅限月份和年份)的参数,我想将其传递给 BIRT。然后 BIRT 调用存储过程来生成报告。
这是我所拥有的:
我的 GSP 页面
<div class="fieldcontain">
<label for="startPeriod">
<g:message code="start.period" default="Start Period" />
</label>
<g:datePicker name="startPeriod" value="${startPeriod}" precision="month" noSelection="['':'-Choose-']" relativeYears="[-2..16]" />
</div>
我的存储过程(BIRT 调用的存储过程)
CREATE PROCEDURE `sp_Report`(
id LONG,
startPeriod DATE
)
BEGIN
-- my sql code
END
在我的 BIRT 报告中,我有一个名为 startPeriod 的报告参数,它链接到 SQL 参数。我尝试将报告参数的startPeriod的数据类型更改为Date和String。但是,日期尚未确定。
如何将日期“Tue Apr 01 00:00:00 EAT 2014”转换为“2014-04-01”(yyyy-mm-dd)?
最佳答案
您还没有选择最简单的格式!您可以直接从 grails 应用程序将 yyyy-mm-dd 发送到 birt 报告。否则,将这样的脚本放入与 startDate 相关的数据集参数的“默认值”表达式中(不要使用链接到报告参数选项):
var parser=new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", java.util.Locale.ENGLISH);
parser.parse(params["startPeriod"].value);
如果管理本地化,您可能必须将 java.util.Locale.ENGLISH 替换为 reportContext.getLocale()
关于mysql - Grails + BIRT 报告 - 将月份和年份作为日期传递到 BIRT 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678575/