2012-07-23 37 views
0

我有一個報告,我正在從Crystal Reports轉換到JasperReports的過程中。我正在使用iReport 4.5和JasperReport Server 4.5來設計報告。返回REF_CURSORS的Oracle存儲過程用於填充數據。下面是一個示例SQL:賈斯珀報告組VS Oracle的訂單由

Select First_Name, Last_Name, DOB, City From PPL Order By DOB; 

當我使用的報表設計這個SQL和設計報告,並創建分組如下

母集團FIRST_NAME是 第二組爲市

基本上我想在所有適用的城市中將所有名字相似的人分組。

預期結果:

First_Name  Last_Name  DOB    City 
Alan    Kum   10/01/2010  Mumb 
Alan    Boss   01/10/2001  Mumb 
Alan    Cross   10/10/2000  Irvn 

但由於SQL BY子句的順序,上面顯示的不是預期的方式顯示我的數據。我如何解決這個問題?

問題是我無法更改過程,因爲它在應用程序中正在使用,而且Excel版本的報告使用相同的查詢,他們希望按DOB的順序查看數據。

+0

您是否確實需要在報告中對數據進行分組?我認爲你可以跳過這部分流程。 – 2012-07-23 19:44:46

+0

正如我在我原來的消息中提到它的轉換報告,所以我不能跳過任何東西....包括集團.... – 2012-07-24 15:31:28

+0

哦,我的壞,對不起 – 2012-07-24 16:17:47

回答

0

那麼......「正確的」解決方案是通過您希望按以下順序排列的字段來更改查詢順序:First_Name,City(然後可能由DOB或Last_Name以完全確定性排序)。

但是由於您沒有可用的選項,您可以在JasperReports中進行排序。編輯您的查詢,然後點擊「排序選項...」按鈕。這應該允許您按照自己的喜好重新排序數據。在報表引擎中排序會比較慢,但是速度較慢並且正確性遠遠優於不能滿足您需求的快速結果。

+0

對不起,我在哪裏可以找到按鈕「排序選項...」我正在使用iReport設計器4.5 ...此外上述示例查詢是在一個存儲過程中,返回一個REF_CURSOR ... – 2012-07-25 00:20:40

+0

沒關係,我發現按鈕的位置...其在您的區域底部添加查詢/過程引用... – 2012-07-26 00:51:05