在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")
,但这些都不起作用。
如何设置日期参数的默认值?
答案 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)
您可以使用 GroovyShell 在默认值表达式中使用此代码,如下所示:
new groovy.lang.GroovyShell().evaluate("Calendar cal = Calendar.getInstance(); cal.set(2009, 8, 8); return cal.getTime(); ")
<强>更新强>
答案 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类型进行调整:
STR_TO_DATE($P{From},"%Y-%m-%d")
,在这里您需要先用实际参数的名称替换'From'。这使您可以轻松地将默认值编辑为字符串,然后在SQL中将其用作日期类型。
SQL用法示例:
`WHERE `journal`.`Date` >= STR_TO_DATE($P{From},"%Y-%m-%d")`