下面以java報(bào)表工具中一個(gè)簡(jiǎn)單的自定義函數(shù)例子來說明使用自定義函數(shù)的四個(gè)步驟。我們定義一個(gè)函數(shù)STRINGCAT,他的作用是把所有的參數(shù)以字符串的形式連接起來。
STRINGCAT函數(shù)使用規(guī)則為STRINGCAT(Para,Para,Para…….);
其中Para為該函數(shù)的參數(shù),個(gè)數(shù)不限。
1. 定義自定義函數(shù)
由概述可知NormalFunction實(shí)現(xiàn)了Function這個(gè)接口,因此STRINGCAT可以直接繼承NormalFunction類,完整代碼如下:
http://www.finereport.com/forumimages/e435.png
說明:
Java報(bào)表使用函數(shù)STRINGCAT(Para,Para,Para…..)時(shí),根據(jù)函數(shù)名取得運(yùn)算該函數(shù)的類STRINGCAT,并將參數(shù)傳入類中的args對(duì)象數(shù)組中,執(zhí)行該類的run函數(shù)。
而在run函數(shù)中即實(shí)現(xiàn)了將傳入的參數(shù)以字符串的形式連接起來。并返回最終形成的字符串。
2. 編譯自定義函數(shù)
將編譯后的STRINGCAT.CLASS放到FineReport的安裝目錄WEB-INF下面的classes目錄下,因?yàn)?/span>STRINGCAT.JAVA屬于包com.fr.demo,所以STRINGCAT.CLASS需要放到classes\com\fr\demo目錄下。
3. 注冊(cè)自定義函數(shù)
生成該函數(shù)的類后需要在設(shè)計(jì)器中進(jìn)行注冊(cè),才可以使用該函數(shù)。打開服務(wù)器|函數(shù)管理器,選擇剛剛定義好了STRINGCAT類,如下圖
http://www.finereport.com/forumimages/e436.png
使用報(bào)表工具時(shí),函數(shù)名稱可以自定義,如這邊定義為Stringcat;
同時(shí)可以添加該函數(shù)的使用說明,如上圖所示的描述
4. 使用自定義函數(shù)
注冊(cè)好自定義函數(shù)后,制作報(bào)表時(shí)便可直接使用了,使用方法與內(nèi)置的函數(shù)是相同的。
4.1 新建報(bào)表
4.2 定義兩個(gè)報(bào)表參數(shù)para1、para2,類型分別為字符串型與整形,默認(rèn)值分別為空字符串與0
http://www.finereport.com/forumimages/e437.png
在空白報(bào)表的任意單元格里寫入公式:=Stringcat($para1,$para2)(注意:寫入公式的時(shí)候在參數(shù)名前加$,表明這是使用的參數(shù))
點(diǎn)擊預(yù)覽會(huì)彈出填寫參數(shù)的對(duì)話框,寫入?yún)?shù)值如下
http://www.finereport.com/forumimages/e438.png
確定后可以看到結(jié)果
http://www.finereport.com/forumimages/e439.png
說明STRINGCAT公式可以正常使用啦。
文章轉(zhuǎn)自:
了解Java報(bào)表工具就從這里開始