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


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