2010-05-28 30 views
1

我想生成pdf報告,其中列(或單元格/字段)保留爲空(故意)。這個列實際上有一個值,但我選擇不顯示它。列標題仍然需要顯示。DynamicJasper(在Grails上)有意將列或字段留空(空)

,其中這可能是有用的實施例:

  • 空白(空)柱:一個評論或票據列中向下的報告的一個側面。
  • 空白(空)單元格:數獨拼圖打印輸出。

非常感謝。 DynamicJasper真棒!感謝dj團隊。

問候, 皮特

+0

我認爲使用閉合應該做的伎倆,而不是宣佈新一類的。如果可以的話,我會嘗試一下併發布我的代碼。 – 2011-04-12 16:46:18

回答

1

很高興地宣佈,發現添加一個「空」列的解決方案 - 在總之,這是創建一個customExpression。

def cb = ColumnBuilder.getInstance() 
cb = cb.setTitle("Notes") 
cb = cb.setCustomExpression(new BlankExpression()) 
AbstractColumn columnNotes = cb.build() 

然後將其添加到報告的其餘部分。

類BlankExpression是

public class BlankExpression implements CustomExpression { 

    public BlankExpression() { } 

    public Object evaluate(Map fields, Map variables, Map parameters) { 
     return " "; 
    } 

    public String getClassName() { 
     return String.class.getName(); 
    } 
} 

但也有關於使用customExpressions和Grails的幾個問題。

第1期:「GETNEW()」 - 提供的DJ網站上的例子都使用「GETNEW()」 http://dynamicjasper.sourceforge.net/docs/HOWTO%20Create%20Custom%20Expressions.html DynamicJasper的是v3.1.3的例子,其中作爲Grails的插件是基於v.3.0.6它只有一個getInstance()方法(在3.1.3中不推薦使用)

第二個問題:據我所知,groovy不允許java風格的內聯類實現,因此迫使我們創建一個單獨的類文件。但這不是一個大問題。我可能錯了,請糾正我。

希望這對你也有幫助。

問候, 皮特

相關問題