Java軟件報(bào)表軟件技術(shù)博客

          java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

          函數(shù)定義規(guī)則

                 FineReport報(bào)表已經(jīng)提供了大量的自帶函數(shù),在正常情況下足夠滿(mǎn)足用戶(hù)的報(bào)表制作需求,但是在一些特殊領(lǐng)域,可能需要一些特殊的函數(shù),在這種情況下,Java報(bào)表軟件提供了自定義函數(shù)機(jī)制,可以由用戶(hù)根據(jù)業(yè)務(wù)需要自己來(lái)定義一些函數(shù),但這些函數(shù)必須滿(mǎn)足FineReport函數(shù)定義規(guī)則。

          FineReport函數(shù)定義規(guī)則:Functionname(Para,Para,...),其中Functionname為函數(shù)名,Para為參數(shù)。

          函數(shù)原理

          FineReport報(bào)表中,每一個(gè)函數(shù)都被定義成一個(gè)類(lèi),這個(gè)類(lèi)必須要實(shí)現(xiàn)Function這個(gè)接口,在運(yùn)算的時(shí)候首先通過(guò)函數(shù)名反射取得這個(gè)類(lèi),然后調(diào)用它的run(Object[] agrs)方法。下面以SUM這個(gè)函數(shù)為例。


          http://www.finereport.com/forumimages/e433.png

          http://www.finereport.com/forumimages/e434.png

          由程序可以看到,SUM類(lèi)用來(lái)運(yùn)算SUM函數(shù),他繼承了NormalFunction類(lèi),而NormalFunction實(shí)現(xiàn)了Function這個(gè)接口。

          當(dāng)函數(shù)運(yùn)算的時(shí)候,先根據(jù)函數(shù)名取得運(yùn)算該函數(shù)的類(lèi),如SUM(2,4,true)這個(gè)函數(shù)先根據(jù)函數(shù)名取得SUM這個(gè)類(lèi),然后調(diào)用SUM類(lèi)的run(Object[] args)方法,args中存放的是SUM函數(shù)的參數(shù),運(yùn)算的時(shí)候可以從args中取得參數(shù)進(jìn)行運(yùn)算。如執(zhí)行結(jié)果為SUM(2,4,true)=2+4+1=7

          自定義函數(shù)使用步驟

              Java報(bào)表軟件中自定義函數(shù)使用分為四個(gè)步驟,如下:

          自定義函數(shù)

          編譯自定義函數(shù)

          注冊(cè)自定義函數(shù)

          使用自定義函數(shù)
          文章來(lái)自:http://blog.vsharing.com/fanfanzheng/A1438726.html



          主站蜘蛛池模板: 荣成市| 盐山县| 双江| 铜鼓县| 禄劝| 南华县| 霍林郭勒市| 京山县| 涿鹿县| 晋中市| 彝良县| 洛浦县| 曲水县| 都江堰市| 九龙城区| 荃湾区| 喀什市| 棋牌| 黄大仙区| 维西| 扶余县| 西和县| 潼关县| 黄石市| 鄂伦春自治旗| 滨州市| 巴彦县| 腾冲县| 杭锦后旗| 中卫市| 德兴市| 康平县| 蒙山县| 通州市| 十堰市| 习水县| 梓潼县| 阳原县| 祁门县| 长乐市| 蓬莱市|