如何在jasper中使用日期范围类型参数作为普通的java.util.date [英] How to use date range type parameter as normal java.util.date in jasper

查看:538
本文介绍了如何在jasper中使用日期范围类型参数作为普通的java.util.date的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了两个输入控制器BeginDate和EndDate作为日期范围类型。我需要将作为日期范围输入的日期转换为util.date。这些是我创建的数据类型。

I have created two input controllers BeginDate and EndDate as date range type. I need to convert that dates which are input as date range to util.date.These are data types I have created.

<parameter name="BeginDate" class="net.sf.jasperreports.types.date.DateRange"/>
<parameter name="EndDate" class="net.sf.jasperreports.types.date.DateRange"/>

  <![CDATA[SELECT * 
FROM table 
WHERE $X{BETWEEN,date,BeginDate,EndDate}
    AND total > 0;]]>

我需要在下面使用这些日期。

I need to use that dates in below.

   <![CDATA[SELECT * 
    FROM table 
    WHERE 
date >= $P{BeginDate} AND
date < $P{EndDate}
        AND total > 0;]]>


推荐答案

DateRange type提供了2种方法: getStart() getEnd()获取的开始和结束范围。这些方法返回 java.util.Date 可以进一步使用的对象。

The DateRange type provides 2 methods: getStart() and getEnd() to get the beginning and end of the range. These methods return java.util.Date objects which you could use further.

但是因为 DateRange 在查询表达式中不允许输入类型 java.util.Date 的新参数,以便根据需要使用:

But because the DateRange type is not allowed in the query expression you need to create new parameters of type java.util.Date to use as you want:

<parameter name="BeginDate_start" class="java.util.Date">
    <defaultValueExpression><![CDATA[$P{BeginDate}.getStart()]]></defaultValueExpression>
</parameter>
<parameter name="EndDate_end" class="java.util.Date">
    <defaultValueExpression><![CDATA[$P{EndDate}.getEnd()]]></defaultValueExpression>
</parameter>

然后您的查询可能如下所示:

Then your query may look like so:

<queryString>
    <![CDATA[SELECT * FROM table 
WHERE date >= $P{BeginDate_start} AND date < $P{EndDate_end} AND total > 0]]>
</queryString>

这篇关于如何在jasper中使用日期范围类型参数作为普通的java.util.date的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆