spring boot整合ureport并自定义目录保存位置

在已经运行的springboot结构项目的基础上,增加打印功能,使用ureport。网上零零星星的使用方式,终于让自己整合写入代码,简单总结如下:

  • ureport画好的报表,有两种形式存储,第一,直接将报表xml存储在本地一个目录里(自定义),第二,是建立一个表,存储到数据库中。本文按理是存储到本地目录中的。

1、在原项目pom.xml中,增加相关jar包导入。

com.bstek.ureport ureport2-console 2.2.9

2、编写UreportConfig类,加载数据源、启动ureport保存、打印等的servlet


 
		com.bstek.ureport
		ureport2-console
		2.2.9


@ImportResource("classpath:context.xml")//不加项目能够启动但是会导致加载数据源报错或加载不了
@Configuration
public class UreportConfig implements BuildinDatasource {
    @Resource
    private DataSource dataSource;
    private Logger log = LoggerFactory.getLogger(getClass());

    @Bean //定义ureport的启动servlet
    @SuppressWarnings("unchecked")
    public ServletRegistrationBean ureportServlet(){
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new UReportServlet());
        servletRegistrationBean.addUrlMappings("/ureport/*");  
        return servletRegistrationBean;
    }
    @Override
    public String name() {
        return "myUReportDatasource";   //本地项目链接的数据库的别名,可自己定义。
    }

    @Override
    public Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            log.error("Ureport 数据源 获取连接失败!");
            e.printStackTrace();
        }
        return null;
    }
}

3、在项目配置文件处,新增context.xml文件(为第二步的@ImportResource的classpath同名即可),并添加以下内容:




    
    
    
        
            classpath:config.properties
        
    




4、在项目配置文件处,同样新增一个文件名config.properties,(与第三步的里的classpath同名即可),并添加如下内容,本文件是存放ureport模板文件的路径,可以根据需要自己设置:

ureport.fileStoreDir=D:/ureportfiles

到此四步就整合好ureport了,接下来启动项目,输入路径:本地访问路径/ureport/designerspring boot整合ureport并自定义目录保存位置_第1张图片

接下来说说大致的数据源使用:
1、直接链接数据库,填写与数据库的相关信息即可,填数据此处不做介绍,用的估计也较少
spring boot整合ureport并自定义目录保存位置_第2张图片

2、bean数据源类型,这个数据源可以直接根据本地代码逻辑带出数据,
spring boot整合ureport并自定义目录保存位置_第3张图片

保存后:
spring boot整合ureport并自定义目录保存位置_第4张图片
spring boot整合ureport并自定义目录保存位置_第5张图片

到此,数据源添加成功,
spring boot整合ureport并自定义目录保存位置_第6张图片
本文中的QualityBillBean如下:

@Component
public class QualityBillBean {

    @Autowired
    private IQualityFeedbackBillService qualityFeedbackBillService;
   
    public List buildReport(String dsName, String datasetName, Map parameters) {

        List list = new ArrayList<>();
        QualityFeedbackBill qualityFeedbackBill = qualityFeedbackBillService.getById(parameters.get("id").toString());
        list.add(qualityFeedbackBill);
        return list;

    }
}

list中返回的数据字段,可以添加到如图,并供左侧报表使用spring boot整合ureport并自定义目录保存位置_第7张图片

spring boot整合ureport并自定义目录保存位置_第8张图片

最后一步保存,就可以最初设置的路径中看到自己的模板

spring boot整合ureport并自定义目录保存位置_第9张图片
想要看打印效果,可以请求
本地访问路径/ureport/pdf/show?_u=file:aa.ureport.xml的路 file:后加上自己对应的文件名,如需参数,可以添加ureport/pdf/show?_u=file:aa.ureport.xml&id=1431414拼接即可。

3、第三种数据源方式,可以直接点击,此数据源为刚刚UreportConfig加载的,意思为本地的数据库链接
spring boot整合ureport并自定义目录保存位置_第10张图片
添加数据集后可以自己看到,左边就是自己项目的数据库所有表,本数据源自行写sql,之后用法打印一样,不做详细介绍,可自行琢磨
spring boot整合ureport并自定义目录保存位置_第11张图片
大致ureport的使用就是这样了,感兴趣的可以自己深挖。

你可能感兴趣的:(java知识)