- 27
- 0
- 约2.14千字
- 约 5页
- 2017-03-04 发布于四川
- 举报
润乾报表api定自义背景图
API自定义报表背景图一些客户开发报表要到给报表动态设置背景图,背景图可能是一些从数据库中存储的图片,从数据库中把这些图片查出来,然后动态的设置为某些报表的背景图。由于设计器中只能指定固定的图片,没办法动态的设置,也不能用到数据库中存储的图片,所以这个功能要靠api来实现。用api来实现报表的背景图需要实现润乾api的IBackGraphGenerator接口,重写generate(Context arg0, BackGraphConfig arg1)方法,最后返回一个BufferedImage对象。下面就用一个例子来实现用api自定义报表的背景图。?第一步:连接数据库,并从数据库中取出图片。首先要连接数据库,然后从数据库中将图片查出来,再将图片解析成BufferedImage类型。如上面所说自定义报表背景图需要实现润乾api的IBackGraphGenerator接口,重写generate(Context arg0, BackGraphConfig arg1)方法。以demo数据库的雇员表里面照片为例,将照片设置成报表的背景图,api代码如下所示:package com.zhengzhong.practise;?import java.awt.image.BufferedImage;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;?import com.runqian.report4.usermodel.BackGraphConfig;import com.runqian.report4.usermodel.Context;import com.runqian.report4.usermodel.IBackGraphGenerator;import java.sql.*;??import javax.imageio.ImageIO;import javax.imageio.stream.ImageInputStream;??public class Graphic implements IBackGraphGenerator{? public BufferedImage generate(Context arg0, BackGraphConfig arg1) { // TODO Auto-generated method stub String driver=org.hsqldb.jdbcDriver; String url=jdbc:hsqldb:hsql://localhost/runqianDB; String user=sa; String passwd=; String sql=SELECT 雇员.照片 FROM 雇员; BufferedImage bi=null; try { Class.forName(driver); Connection conn=DriverManager.getConnection(url,user,passwd); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(sql); System.out.println(rsrsrsrsrsrsrsrsrsrs=+rs); rs.next(); InputStream is = rs.getBinaryStream(1);?System.out.println(+is);?bi = ImageIO.read(is);?System.out.println(============================+bi); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return bi; }?}?第二步:在报表中使用自己定义的背景图。将上面的类连同包一起放到designer\web\WEB-INF\classes\ 路径下(这里是为了在设计器中预览看到效果,如果在web应用中请放到应用的WEB-INF\classes\ 路径下)。随便制作一张报表,保持demo数据
原创力文档

文档评论(0)