反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

保存模板至数据库

  • 文档创建者:lu123
  • 历史版本:20
  • 最近更新:RosieY 于 2022-01-05
  • 1. 概述

    1.1 应用场景

    一般制作的模板文件都放在硬盘中,如果硬盘损坏,就会导致文件丢失,后果会很严重。为了降低这个风险,我们可将模板文件全部保存在数据库中(二进制数据),这样若是硬盘损坏导致文件丢失,也可以将数据库中的备份文件取出,从而避免发生重大损失。

    如下图所示,这里是已经将 cpt 模板保存于 MySQL 数据库中,点击查询即可看到保存的二进制文件。那么,如何将 cpt 模板保存入库呢?

    1.2 实现原理

    通过程序读取报表后将其提交入库。

    2. 示例

    以下示例读取内置模板 GettingStarted.cpt 后将其存储在数据库表 report 中。

    2.1 准备存储表

    数据库中先建好一张 report 表,表中包含两个字段 cptname(字符串型)和 cpt(二进制数据类型)。如下图所示,在MySQL 数据库中新建表 report。

    222

    2.2 准备编译环境

    编译程序前,需先创建一个 Java 工程环境,并且需要一个 Java 编辑器,如 Eclipse 或 idea 。

    在编辑器工程中导入 FineReport 工程 JAR 包。包括用户自己报表工程

    %FR_HOME%/lib下的所有的包,

    %FR_HOME%/server/lib 下的所有包,

    %FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包;

    代码中会将模板信息入库,还需要导入对应的 JDBC 驱动,

    还要引入 JDK 下的 tools.jar。详细操作可参考:编译Java程序 

    2.3 编写 Java 程序

    在编辑器中编写 Java 程序 SaveReportToDatabase.java,即读取内置模板 GettingStarted.cpt 后将其存储在数据库表 report 中。完整代码可参见:

    注1:该程序中使用了 JDBC 连接数据库,2.2 节导入 JAR 包时需要将对应的数据库的驱动包导入工程中。

    注2:用户使用时,注意将示例代码中的工程路径、模板名称用户自己工程下的;数据库连接信息替换为用户准备好的数据库。

    注3:如果数据库大小写不敏感即不区分大小写,代码无需修改;如果数据库区分大小写,则需要将表名需要加双引号,修改后 insert into \"report\" values(?,?)

    https://code.fanruan.com/demo/example/src/branch/release/10.0/src/main/java/com/fr/demo/SaveReportToDatabase.java

    2.4 编译 Java 文件

    Java 程序编写完成后,在编译器中编译 SaveReportToDatabase.java ,编译通过后,就会在数据库表report 中看到新增的模板记录。如下图所示:

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

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

    总裁办24H投诉

    热线电话:173-1278-1526