Grails + BIRT报告 - 将月份和年份作为日期转换为BIRT报告

时间:2014-05-15 12:43:00

标签: mysql date grails birt

我已将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参数。我尝试将report参数的startPeriod的数据类型更改为Date以及String。但是,日期没有被投标。

如何投射日期&#34; Tue Apr 01 00:00:00 EAT 2014&#34;到&#34; 2014-04-01&#34; (YYYY-MM-DD)?

1 个答案:

答案 0 :(得分:0)

您尚未选择最简单的格式!您可以直接从grails app发送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()