Jasper reports 按交叉表报表中的月份名称排序

Jasper reports 按交叉表报表中的月份名称排序,jasper-reports,Jasper Reports,我有一个交叉表报告,它将月份显示为行。当我运行报告时,行从aug开始,然后按升序继续。如何根据日历(如1月、2月、3月)对报告进行排序 我试图在textField表达式下添加以下代码 <textfieldexpression class="java.lang.String"> ( $V{Month}.equals("JAN-15") ? "Jan" : $V{Month}.equals("FEB-15") ? "Feb" :

我有一个交叉表报告,它将月份显示为行。当我运行报告时,行从aug开始,然后按升序继续。如何根据日历(如1月、2月、3月)对报告进行排序

我试图在textField表达式下添加以下代码

<textfieldexpression class="java.lang.String">
    (
        $V{Month}.equals("JAN-15") ? "Jan" : 
        $V{Month}.equals("FEB-15") ? "Feb" :
        $V{Month}.equals("MAR-15") ? "Mar" :
        $V{Month}.equals("APR-15") ? "Apr" :
        $V{Month}.equals("MAY-15") ? "May" :
        $V{Month}.equals("JUN-15") ? "Jun" :
        $V{Month}.equals("JUL-15") ? "Jul" :
        $V{Month}.equals("AUG-15") ? "Aug" :
        $V{Month}.equals("SEP-15") ? "Sep" :
        $V{Month}.equals("OCT-15") ? "Oct" : 
        $V{Month}.equals("NOV-15") ? "Nov" : "Dec"
    )
</textfieldexpression>

但是它返回的是未排序的相同内容。

您也可以通过查询进行排序。您可以使用预定义的函数

下面是我根据您的要求进行排序的查询。我正在使用亚马逊红移

在ORDERBY子句中,我将date的字符串格式转换为date数据类型,然后使用月份部分进行订购


希望这能给你一个想法。

我要做的是编辑查询,使之成为\u CHARREQUEST\u TIMESTAMP,'MM'REQUESTDATE返回日期,就像01,02,03,。。。。 然后我输入requestdate头的表达式


现在报告已排序。

您必须获取一个新列,该列返回当月的序号,如01、02、03。。等基于此,您可以定义排序。
select * from(
 select to_char(sysdate,'Mon-YY') month_value
 union all 
 select to_char(add_months(sysdate,-1),'Mon-YY') 
 union all
 select to_char(add_months(sysdate,-3),'Mon-YY') 
 union all
 select to_char(add_months(sysdate,1),'Mon-YY') )
order by date_part(month,to_date(date1,'Mon-YY'))
$V{REQUESTDATE}.intern() == "01" ? "Jan" :
$V{REQUESTDATE}.intern() == "02" ? "Feb" :
$V{REQUESTDATE}.intern() == "03" ? "Mar" :
$V{REQUESTDATE}.intern() == "04" ? "Apr" :
$V{REQUESTDATE}.intern() == "05" ? "May" :
$V{REQUESTDATE}.intern() == "06" ? "Jun" :
$V{REQUESTDATE}.intern() == "07" ? "Jul" :
$V{REQUESTDATE}.intern() == "08" ? "Aug" :
$V{REQUESTDATE}.intern() == "09" ? "Sep" :
$V{REQUESTDATE}.intern() == "10" ? "Oct" :
$V{REQUESTDATE}.intern() == "11" ? "Nov" : "Dec" )