如何在ireport中默认java.util.Date类型参数的值?

时间:2015-05-21 06:53:48

标签: java date jasper-reports default

在iReport中,我想将java.util.Date类型参数的默认值设置为' 2009年9月8日'。

我尝试将此值设置为双引号,new java.util.Date(2009,9,8)new java.util.Date(1252348200)new java.util.Date("08-09-2009"),但这些都不起作用。

如何设置日期参数的默认值?

6 个答案:

答案 0 :(得分:1)

使用日历

    Calendar c = Calendar.getInstance();
c.set(2009, 8, 8);
Date d = c.getTime();

答案 1 :(得分:0)

具有三个参数的日期构造函数:年,月和日已弃用。您应该使用GregorianCalendar类。如果你真的需要Date对象,请使用 getTime();从GregorianCalendar实例返回Date对象的方法。

GregorianCalendar gc = new GregorianCalendar(2009, Calendar.SEPTEMBER, 8);
Date myDate = gc.getTime();

答案 2 :(得分:0)

您需要创建新参数集,其类型为java.util.Date,并在文本字段的表达式中添加

new SimpleDateFormat("dd MMMM, yyyy").format($P{dateParameter})

单击预览时,将显示输入的弹出窗口。

更多

添加新参数:

点击Window - >报告检查器(左侧平底锅上将打开新调色板)右键单击参数 - >添加参数 - >将参数类设置为' java.util.Date'来自其属性

设置为表达式:

打开字段的表达式编辑器(右键单击 - >编辑表达式)并粘贴

new SimpleDateFormat("dd MMMM, yyyy").format($P{dateParameter})

答案 3 :(得分:0)

根据Nitin Dandriyal's answer

您可以使用 GroovyShell 在默认值表达式中使用此代码,如下所示:

new groovy.lang.GroovyShell().evaluate("Calendar cal = Calendar.getInstance(); cal.set(2009, 8, 8); return cal.getTime(); ")

<强>更新 enter image description here

答案 4 :(得分:0)

将字段/参数DATE_OBJ(java.util.Date)和参数dateFormat(java.text.DateFormat)传递给报表。您可以使用日历在DATE_OBJ上设置所需的日期  然后下面的表达式应该打印你的日期。

答案 5 :(得分:0)

我找不到任何直接执行此操作的方法,但这是一种解决方法:

1)首先使参数的类型为String,而不是Date

2)然后输入Default value expression作为日期文字,例如:"2018-01-23"

3)最后,使用类似以下的内容,可能需要针对所使用的SQL类型进行调整:

  • 对于MariaDB(或MySQL)SQL,请使用:STR_TO_DATE($P{From},"%Y-%m-%d"),在这里您需要先用实际参数的名称替换'From'。

这使您可以轻松地将默认值编辑为字符串,然后在SQL中将其用作日期类型。


SQL用法示例:

`WHERE `journal`.`Date` >=  STR_TO_DATE($P{From},"%Y-%m-%d")`