1. 概述
「存儲過程」就是存儲在數據庫中的一組 SQL 語句集。FineReport 支持直接調用數據庫的存儲過程,就獲得執行了「存儲過程」SQL 語句集後的表。
下面我們就以 MySQL 爲例,建一個模板數據集,爲大家介紹下具體的定義方法。
2. 定義數據集
1)點擊「+」,添加「存儲過程」數據集,如下圖所示:
2)選擇數據庫後,在左側框内顯示的就是存儲在數據庫中的存儲過程。本示例只有一個存儲過程,雙擊該存儲過程,如下圖所示:
注:MySQL,DB2,Orcale,SQLServer 是支持自動獲取參數和參數的默認值的,而 Access,HSQL,Sybase 無法自動獲取需要手動添加。
在 MySQL 中,存儲過程查詢結果默認不使用别名。即「 select XXX AS XXX from... 」,默認使用原名而不是使用「as」後的别名。
若需要顯示别名,需要手動指定一下:在數據庫連接的 URL 後加 ?useOldAliasMetadataBehavior=true,例如:jdbc:mysql://env.finedevelop.com:55703/testskp?useOldAliasMetadataBehavior=true。
3)點擊「預覽」,可以預覽存儲過程的數據集,如下圖所示:
4)點擊「确定」,即可成功添加存儲過程數據集。添加後如下圖所示:
注:FineReport 存儲過程返回的是數據集,不能返回單個的參數值。
3. 支持返回多個結果集
若存儲過程中返回的是多個結果集,那麽在 FineReport 中也是支持同時返回多個結果集,如下圖所示:
點擊「預覽」可以看到多個結果集,如下圖所示:
數據集可以同時查看多個結果集,如下圖所示: