SpringBoot整合Ureport2报表及常见使用方法

网友投稿 1294 2023-02-16

SpringBoot整合Ureport2报表及常见使用方法

SpringBoot整合Ureport2报表及常见使用方法

1、Maven 添加依赖

com.syyai.spring.boot

ureport-spring-boot-starter

2.2.9

2、编写ureport2 的配置

配置类实现 BuildinDatasource

1)注册Bean

2)重命名ureport2的数据源名称

import com.bstek.ureport.console.UReportServlet;

import com.bstek.ureport.definition.datasource.BuildinDatasource;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.ImportResource;

import javax.annotation.Resource;

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.SQLException;

@ImportResource("classpath:ureport-console-context.xml")//不加项目能够启动但是会导致加载数据源报错或加载不了

@Configuration

@EnableAutoConfiguration

public class UreportConfig implements BuildinDatasource {

@Resource

DataSource dataSource;

private Logger log = LoggerFactory.getLogger(getClass());

@Bean //定义ureport的启动servlet

public ServletRegistrationBean buildUreportServlet(){

return new ServletRegistrationBean(new UReportServlet(),"/ureport/*");// /ureport/* 不可更改

}

@Override

public String name() {

return "ureport2 数据源";

}

@Override

public Connection getConnection() {

try {

return dataSource.getConnection();

} catch (SQLException e) {

log.error("Ureport 数据源 获取连接失败!");

e.printStackTrace();

}

return null;

}

}

3、ureport2 访问路径

http://127.0.0.1:8080/项目名称/ureport/designer

4、选择数据源方式:内置数据源

ureport2 的配置类实现 BuildinDatasource ,即配好了内置的数据源,直接使用即可

5、选择数据源方式:SpringBean数据源配置

数据源名称:自定义命名

Bean ID: Bean 对象–yjReportService ,与java类名称一致 首字母需要转成小写

6、添加Sping Bean 数据源的数据集

数据集名称:自定义

方法名:你配置的Bean对象中的方法名称,即service中的方法,该方法必 须包含3个参数,否则无法找到

返回对象:报表中的返回数据接收对象,全路径名,可不写,自己手动添加返回字段(未尝试)

报表编辑完成后参数传递方式:http://127.0.0.1:8088/项目名称/ureport/preview?_u=file:报表名称&parameters=参数值

业务逻辑代码:参数值进行接收即可

7、内置数据源方式配置数据集

配置数据集有2种方式:

1、使用SQL语句查询数据

2、使用${表达式}:也是SQL的形式,用字符串拼接起来

7.1、使用SQL的方式

正常编写SQL即可,需要传递参数用‘ :' 加字段名表示

可添加默认的参数,设置的参数名字和SQL中的参数名字保持一致

如果没传参,则使用默认的参数进行查询

若有多个参数,同样的方式进行添加

例:select * from 表 where id = :id

报表制作完成后,报表参数传递方式:http://127.0.0.1:8080/项目名称/ureport/preview?_u=file:报表名称&iid=参数值

7.2、使用${表达式}方式

使用表达式的方式通常都是动态SQL的方式查询数据

外部参数传进报表后再进行查询

ureport2获取参数的方式:param(“参数字段”)

例子:${ SQL 语句 }

先看看最终效果:报表使用iframe 页面展示,外部参数传入报表查询数据

7.2.1、制作报表:

使用${ sql 语句} 注意事项:

若SQL中包含单引号包裹的字符串,那么需要加上“\”来为单引号转义,否则会出现语法错误

判断外部是否传递参数,2种方式:

1、使用三目表达式:判断是

否为空,不为空则拼接SQL语句条件

例:(param(“参数名称”)!=null && param(“参数名称”)!="" ? “and 字段 = '”+param(“参数名称”)+"'" : “”)

2、使用函数(较为简洁),可使用添加参数方式,或者直接获取参数方式

1)添加参数方式(借鉴上面的sql 传参的方式,:+字段): (emptyparam(“name”)==false ? “and name=:name” : “”)

2)直接获取参数方式:

(emptyparam(“name”)==false ? “and name=”\' “+param(“参数名称”)+”\'" " : " ")

注意字符串拼接后,sql语句前后的空格问题,单引号加 \ 的问题

${

"select from 表1 a "+

"left join 表2 b on b.id=a.id "+

"where 1=1 "

+ (param("参数名称")!=null && param("参数名称")!="" ?

"and 字段 = \'"+param("参数名称")+"\'" : " ")

+")t "

}

报表制作完成后,报表参数传递方式:http://127.0.0.1:8080/项目名称/ureport/preview?_u=file:报表名称&参数名称=参数值

8、点击报表的数据跳转页面,查看详情

在报表中添加需要跳转连接的地方进行URL配置

URL上需要传递报表中的某个参数,则点击URL参数配置

URL:自行配置 ,当前目录注意加 “点点/”

例:. ./yw/ssj/SearchList

8.1、配置URL上传递的参数

若获取当前单元格的数值作为参数,则值表达式应为:#

若获取当前单元格的对象的其他属性作为参数,则值表达式为:#.属性名称

若获取外部传进报表的参数作为参数,则值表达式为: param(“参数名称”)

9、某些数据为数值,对应的数据解释

获取的数据库数据为数字标识,需要重置单元格的数据显示

点击数据映射进行添加

例:1 表示成功。0表示失败 等

10、格式化单元格,区分标识数据

10.1、报表编辑

在需要进行格式化单元格点击配置条件

分别配置超标和未超标单元格格式化的颜色

条件配置时:

1、若当前值为数值类型,直接填写数值条件即可

2、若当前的值为字符串类型,值表达式需要在字符串加上 单引号:‘

当前值'

若选择表达式的方式:参考前面

值表达式的写法(配置URL上传递的参数有说明)

Ureport2的使用说明

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序 vue 开发框架(vuejs开发小程序)
下一篇:springboot植入pagerHelper的超详细教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~