在Jasper Report中从Java传递order by子句

时间:2017-04-15 12:43:51

标签: jasper-reports

我正在使用最新版本的Jasper软件工作室来设计Jasper报告。我想根据Java的某些标准将order by子句传递给jasper报告。您能否指导如何在报表查询中附加参数(包含来自Java的order by子句)?

查询

with tmp as (      
select d.gl_code, nvl(sum(d.debit),0)- nvl(sum(d.credit),0) as simple   
          from gl_forms g,gl_voucher_detail d,financial_year f
          where g.voucher_no = d.voucher_no
      and f.fid = $P{P_FID}
        and g.voucher_date >= to_date('01-07-'+f.start_year,'dd-MM-yyyy')      and g.voucher_date < $P{P_FROM}
      and g.post=1
      group by d.gl_code)
select g.voucher_no,
       g.voucher_date,
       g.voucher_type,
       g.remarks remarks,
       d.sr_no,
       c.account_name,
       d.debit,
       d.credit,
       d.narration narration,
       c.account_code, 
       c.account_name || ' - ' || c.account_code Account,
       (select name from company) name,
       nvl((o.debit-o.credit),0) + nvl(tmp.simple,0) opening
from gl_voucher_detail d
   join gl_forms g 
      on g.voucher_no = d.voucher_no 
      and g.post=1 
      and g.voucher_date between $P{P_FROM} and $P{P_TO}
   left outer join opening_balances o
      on d.gl_code = o.account_code
      and o.fid = $P{P_FID}
   right outer join chart_of_account c 
      on c.account_code = d.gl_code 
   left outer join tmp
      on c.account_code = tmp.gl_code
where c.account_level=4
and c.active=1
and c.account_code = CASEWHEN($P{P_ACCOUNT}='%',c.account_code,$P{P_ACCOUNT})

根据前场选择,Order by子句应为以下两者之一:

  1. 按c.account_name排序,g.voucher_date,g.voucher_no,d.sr_no
  2. 按c.debit + c.credit desc命令

0 个答案:

没有答案