将datenum字段转换为jasper域中的日期字段

时间:2016-06-02 11:01:34

标签: jasperserver

我试图在jasper域中创建一个计算字段,该字段的值是Datenum。我需要在创建计算字段时将该datenum转换为日期格式(1/1/16或类似)。 我试过只将数据类型从数字更改为日期。但它只给出这样的东西(1/1/70)。我在下面附上了截图。 有没有办法将此字段用作日期字段。 This image looks when I have changed only the datatype

This is the calculated field which I have created in the Domain

1 个答案:

答案 0 :(得分:1)

<强>转换

首先,您没有使用任何功能告诉Jasper您需要约会。您只将数据类型设置为date。自Java日期开始计算于1970年1月1日起,这是你得到的日期。

计算字段不知道如何以20160101格式解释您的数据。可以在表达式中使用名为date的{​​{3}}来解释ANSI格式的日期:

date('2016-01-01')

尽管如此,字段SUBMITDATENUM的格式却不同。日期函数将无法解释此。不幸的是,我不知道是否有可能提供一种解释数据的格式。

数据库选项

如果您可以更改表结构的格式,只需添加另一个字段或更改字段的数据格式(如果可行)。否则,您可以添加一个数据库视图,将该字段转换为&#34; real&#34;日期字段。

这是我想要的解决方案。

更多选项

DomEL function以来版本6中可能存在Groovy

<field id="e.groovyEval" dataSetExpression="groovy('(5.0/6).toString()')" type="java.lang.String" />

因此,使用正确的Groovy函数(我还没有使用它 - 我不知道是否可以插入变量)这可能会有所帮助:

<field id="e.groovyDate" dataSetExpression="groovy('Date.parse(\'yyyyMMdd\', ASASMARTLAYER_PHWORDERSPAN.SUBMITDATENUM)')" type="java.lang.Date" />