mysql - Grails + BIRT 报告 - 将月份和年份作为日期传递到 BIRT 报告

标签 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 参数。我尝试将报告参数的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/

相关文章:

php - MySQL 将员工每天的工作时间与日期联系起来

javascript - 如何确定 "X minutes from now"事件的日期

grails - 域对象属性列表,不包括关联

java - 上传图片时加水印

php - SQL 建议 - 从表中选择多行作为内部联接

php - Mysql更新使用限制

sql - 跨多个数据库查找表的总行数

java - 从日期开始的日期 EXTRACT(DAY,s.date) 不起作用 jpa 和 eclipseLink

grails - 如何获取 Grails 域对象的属性的类型(类)?

php - laravel 5.2 - 搜索功能