2016-11-18 40 views
0

在外觀內執行查詢以生成報告數據。查詢按如下方式正確分組數據:A = 351(B = 757的行),A = 352(B = 523/535/etc)的行,以此類推。當前兩個/多個元素的標題相等時,Jasper報告顯示組標題

如果頁面中出現的第一行具有A = 350,則第二行的值與350不同(例如351),則「351」標題將顯示在下一頁中(僅當有足夠的351行當然要到達另一個頁面)。

enter image description here

第2和第3行應該在裏面351組,而另一組中稱爲352,但這種行爲並不總是發生的其他頁面。在這種情況下,兩種描述都是相同的,但仍然在352頁上顯示。

這是JasperReports中的錯誤嗎?

我以前做的一個綱領性的排序,而不是SQL GROUP BY,如下所示,並沒有改變什麼:

Collections.sort(Reports.LIST, 

    (Comparator<MyObject>) new Comparator<MyObject>() { 

     public int compare(MyObject o1, MyObject o2) { 

      if (o1.getA().compareTo(o2.getA()) == 0) { 
       return o1.getB().compareTo(o2.getB()); 
      } else { 
       return o1.getA().compareTo(o2.getA()); 
      } 

     } 

    } 

); 

編輯:發現它發生在這種特殊情況下只要該行位於( 352一個是該頁面中的最後一個):

enter image description here

回答

0

集團表達選項只有描述,數量不限;所以,當相同數字的描述相同時,它不會將行分開。

步驟:

  1. 打開iReport和文件;
  2. 轉到Report Inspector(左窗格)
  3. 單擊所需的組頭,打開Properties窗格(右側)
  4. 在最後一節Group properties,鍵入正確的Group Expression