Posted on 2011-10-31 15:20
FineReport——報表技術領跑者 閱讀(304)
評論(0) 編輯 收藏 所屬分類:
Java報表技術知識
函數定義規則
FineReport報表已經提供了大量的自帶函數,在正常情況下足夠滿足用戶的報表制作需求,但是在一些特殊領域,可能需要一些特殊的函數,在這種情況下,Java報表軟件提供了自定義函數機制,可以由用戶根據業務需要自己來定義一些函數,但這些函數必須滿足FineReport函數定義規則。
FineReport函數定義規則:Functionname(Para,Para,...),其中Functionname為函數名,Para為參數。
函數原理
在FineReport報表中,每一個函數都被定義成一個類,這個類必須要實現Function這個接口,在運算的時候首先通過函數名反射取得這個類,然后調用它的run(Object[] agrs)方法。下面以SUM這個函數為例。


http://www.finereport.com/forumimages/e433.png
http://www.finereport.com/forumimages/e434.png
由程序可以看到,SUM類用來運算SUM函數,他繼承了NormalFunction類,而NormalFunction實現了Function這個接口。
當函數運算的時候,先根據函數名取得運算該函數的類,如SUM(2,4,true)這個函數先根據函數名取得SUM這個類,然后調用SUM類的run(Object[] args)方法,args中存放的是SUM函數的參數,運算的時候可以從args中取得參數進行運算。如執行結果為SUM(2,4,true)=2+4+1=7。
自定義函數使用步驟
Java報表軟件中自定義函數使用分為四個步驟,如下:
自定義函數
編譯自定義函數
注冊自定義函數
使用自定義函數
文章來自:http://blog.vsharing.com/fanfanzheng/A1438726.html