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