反馈已提交

网络繁忙

单元格用HTML显示图片

  • 文档创建者:cherishdqy
  • 编辑次数:18次
  • 最近更新:Carly 于 2022-09-06
  • 1. 概述

    1.1 问题描述

    使用 FineReport 设计报表时,需要显示存储在数据库中的图片,该如何实现呢?

    1.2 解决思路

    若图片以路径形式或 Base64 编码形式存储在数据库,通过设置单元格内容用 HTML 形式显示就可以实现。

    若需要打印和导出图片,需要使用绝对路径,相对路径无法支持导出和打印。

    也可参考文档 TOIMAGE函数显示单元格图片,但使用 TOIMAGE 函数只适用于显示某一路径下的图片。

    2. 工程路径下的图片

    2.1 准备数据

    选取工程路径 webapps\webroot\help\picture\store 下的 1.png、2.png、3.png 作为展示图片。

    新建内置数据集 Embedded1 存放图片工程路径信息,如下图所示:

    注:此示例使用的是相对路径,不支持导出和打印。

    1563868083500987.png

    2.2 报表样式设计

    在 A1~C1 单元格输入标题,将内置数据集中「图片名称」字段拖入 A2 单元格,「图片路径」字段拖入 B2 单元格,A2~C2 单元格扩展方向为「纵向扩展」,如下图所示:

    1563868953768757.png

    2.3 插入公式

    选中 C2 单元格,单击右键选择「单元格元素>插入公式」,公式如下:

    "<img style='height:160px;width:240px' src='" + B2 + "'/>"

    公式说明:

    height (图片高度) 为 160 像素,width (图片宽度)为 240 像素。

    src 为图片的工程路径,即引用 B2 单元格图片路径信息。

    1563869064212004.png

    2.4 单元格显示内容设置

    选中 C2 单元格,选择「单元格属性>其他>高级>显示内容」为「用HTML显示内容」,如下图所示:

    1610438832443625.png

    2.5 效果预览

    1)PC 端

    保存模板,点击「分页预览」,效果如下图所示:

    1610440799599798.png

    2)移动端

    App 端和 H5 端均支持,效果如下图所示:

    1610441562336520.jpg

    注:移动端预览时图片可能无法完整显示,可以通过调大模板单元格行高来匹配移动端图片显示高度。

    3. Base64形式的图片

    3.1 准备数据

    准备 Base64 编码方式的图片数据,搜索在线图片转码工具上传图片进行转码即可。

    新建内置数据集 Embedded1 ,输入通过工具转码得出的 Base64 形式的图片数据,如下图所示:

    注:FineReport 内置数据集对字段长度没有限制,但是普通数据库有长度限制。请确保图片转码后的 Base64 字符长度满足数据库字段长度限制,否则将导致显示异常。

    Snag_1f9727b4.png

    3.2 设计报表

    A1 单元格输入标题「图片名称」,C1 单元格输入标题「image」,将内置数据集的字段「图片名称」拖入 A2 单元格,字段「image」拖入 B2 单元格,再将 B 列隐藏。如下图所示:

    1610443667479757.png

    3.3 插入公式

    选中 C2 单元格,单击右键选择「单元格元素>插入公式」,公式如下:

    "<img width='100%' height='100%' src='" + B2 + "'>"

    公式说明:将 B2 单元格的图片按照原始比例显示出来。

    1610443975665462.png

    3.4 单元格显示内容设置

    选中 C2 单元格,选择「单元格属性>其他>高级>显示内容」为「用HTML显示内容」,如下图所示:

    1610444589307287.png

    3.5 效果预览

    1)PC 端

    保存模板,点击「分页预览」,效果如下图所示:

    Snag_1fafed23.png

    2)移动端

    App端 及 H5 端均支持,效果如下图所示:

    Screenshot_20210112_174543.jpg

    注:移动端预览时图片可能无法完整显示,可以通过调大模板单元格行高来匹配移动端图片显示高度。

    4. 模板下载

    已完成模板可参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\单元格显示工程下的图片.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\单元格显示Base64图片.cpt

    点击下载模板:

    单元格显示工程下的图片.cpt

    单元格显示Base64图片.cpt

    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭