填报教程之FineReport工具: 保存模板至数据库

 时间:2024-11-13 02:05:43

若您是政府部蜂擒萏赃门等,您制作的模板cpt文件放在硬盘中,如果硬盘遇上意外,导致cpt文件丢失,后果会很严重。为了降低这个风险,我们可将确认无误的cpt揍茏壅混文件全部保存在数据库中(cpt文件即二进制数据),这样您若是硬盘遇上意外导致cpt文件丢失,也可以在查看时再将这些cpt文件(即二进制数据)从数据库中提取,从而避免发生重大损失。下面就通过填报FineReport工具来进行介绍。

工具/原料

填报FineReport工具V8.0

方法/步骤

1、如下可查看,这里是已经将已有的cpt模板保存于oracle数据库中,点击我们的报表数据集,数据库查询|数据库数据集,输入SELECT*FROMREPORT,预览可看到

填报教程之FineReport工具: 保存模板至数据库

2、那么,如何将cpt模板保存入库呢?以下我们详细介绍。

3、数据库表准备数据库中先建好一张report的表,表中包含两个字段cptname(字符串型)和cpt(Blob类型)。

4、编写保存模板程序packagecom.fr.demo;importjav瞢铍库祢a.io.File;足毂忍珩importjava.io.FileInputStream;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importcom.fr.base.Env;importcom.fr.base.FRContext;publicclassSaveReportToDatabase{publicstaticvoidmain(String[]args){SaveReport();}privatestaticvoidSaveReport(){try{//连接数据库Stringdriver="oracle.jdbc.driver.OracleDriver";Stringurl="jdbc:oracle:thin:@192.168.100.169:1521:orcl10g";Stringuser="temp";Stringpass="temp123";Class.forName(driver);Connectionconn=DriverManager.getConnection(url,user,pass);PreparedStatementpresmt=conn.prepareStatement("insertintoreportvalues(?,?)");//读进需要保存入库的模板文件EnvoldEnv=FRContext.getCurrentEnv();StringenvPath=oldEnv.getPath();Filecptfile=newFile(envPath+"\\reportlets\\gettingstarted.cpt");intlens=(int)cptfile.length();InputStreamins=newFileInputStream(cptfile);//将模板保存入库presmt.setString(1,"gettingstarted.cpt");//第一个字段存放模板相对路径presmt.setBinaryStream(2,ins,lens);//第二个字段存放模板文件的二进制流presmt.execute();conn.commit();presmt.close();conn.close();}catch(Exceptione){e.printStackTrace();}}}

5、注:最新的代码链接。注:该程序中使用了JDBC连接数据库,您需要在编写代码前先将对应数据库的驱动包加载进project中。

6、编译运行运行该程序,重新查看数据库中数据,便可以看到您新增的记录了。

怎样使用VBA设置单元格的字体? 易语言取空白字节集 VBA-创建宏过程 vb判断word文件是否打开 VBA实现Excel标题自动更新页脚
热门搜索
紫霞仙子图片 冰淇淋图片 少女派别ova 魔方图片 降龙木图片