我已将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)?
答案 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()