1. 概述
1.1 問題描述
在報表設計時有時會遇到如下需求:圖片與文字說明分開并形成目錄的形式,點擊文字才能展示對應的圖片。如下圖所示:
1.2 解決思路
先通過添加「超級鏈接>動态參數」設置過濾,然後使用 TOIMAGE() 函數設置圖片展示。
2. 示例
2.1 數據準備
新建普通報表,新建兩個内置數據集分别爲「問題」和「回答」。爲了方便兩個數據集之間建立聯系,這裏以 ID 字段作爲唯一标識。如下圖所示:
2.2 圖片準備
點擊下載圖片包:picture.rar
将每個問題對應的圖片按照回答的ID進行重命名,例如第一個回答對應的圖片則以「1」來命名。将所有準備好的圖片放置本地路徑,或者是服務器路徑(請注意區分服務器爲 Windows 還是 Linux ),因爲在 TOIMAGE() 函數中,Windows 路徑表示爲 D:/1.png,在 Linux 中路徑表示爲 /u01/.../.../1.png。
本示例将圖片放置在本地的報表工作目錄下:D:\FineReport_10.0\webapps\webroot\WEB-INF\reportlets\picture
注:picture 爲自己創建的文件夾。
2.3 報表設計
單元格内容設置如下表:
單元格 | 操作 |
---|---|
A1 | 插入圖片,選擇圖片時插入方式選擇「适應」 |
C1~E1 | 合并單元格,插入普通文本「問題描述」,調整字體樣式爲「華文琥珀」,字體大小爲 19 |
G1~P1 | 合并單元格,插入圖片,選擇圖片時插入方式選擇「适應」 |
A2 | 拖入「問題」數據集的 ID 列 |
B2 | 輸入文本「 . 」,表示序号與文字隔開的點 |
C2~E2 | 合并單元格,拖入「問題」數據集的 Q 列 |
G2~P2 | 合并單元格,拖入「回答」數據集的 A 列。設置擴展方向爲「不擴展」,「左父格」爲無 |
G3~P27 | 合并單元格以展示圖片。設置「左父格」爲無 |
單元格内容設置完成後,給标題行添加下邊框,表格樣式如下圖所示:
注:第一行的文字與圖片僅爲裝飾,可自行設計,小圖片下載可參考此網站:阿裏巴巴矢量圖庫 。
2.4 設置動态參數
因爲要通過點擊問題文字達到展示圖片的效果,所以要給問題文字所在單元格添加一個動态參數類型的超級鏈接。
選中 C2 單元格,點擊右側屬性面板「超級鏈接」,添加「動态參數」,參數名稱爲「ID」,值類型爲公式,輸入 A2。如下圖所示:
注:設置超鏈後字體爲變成藍色并帶有下劃線顯示,手動調整字體設置取消下劃線,字體顔色設爲黑色即可。
2.5 設置過濾
雙擊回答所在單元格 G2,設置過濾,設置「回答」數據集中的 ID 字段等於參數 $ID。
注:此處的 $ID 也是對應每個圖片名稱的 ID。
2.6 設置圖片展示
1)選中 G3 單元格,單擊鼠标右鍵選擇「單元格元素>插入公式」,TOIMAGE() 公式爲:TOIMAGE("D:/FineReport_10.0/webapps/webroot/WEB-INF/reportlets/picture/" + $ID + ".png", false)
注:需要将文件目錄路徑中的 \ 都改爲 / 。
注:因爲圖片的名稱($ID)需要與「回答」數據集中的 ID 字段一一對應,所以只能放置一張圖片。
2)G3 單元格展示圖片時可能圖片大小不一,會顯示不全,設置「單元格屬性>樣式>對齊」的圖片布局爲「适應」即可。
2.7 效果預覽
2.7.1 PC 端
保存報表,點擊「分頁預覽」,效果如 1.1 節所示。
2.7.2 移動端
App 端和 HTML5 端均支持,效果如下圖所示:
注:本文示例僅以普通報表爲例,在決策報表中報表塊之間同樣适用,詳情可自行下載模板查看。
3. 模板下載
已完成模板可參見:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\點擊文字顯示圖片-普通報表.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\frm\點擊文字顯示圖片-決策報表.frm
點擊下載模板: