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

 更新时间:2021年01月27日 14:33:08   作者:夕四丶  
这篇文章主要介绍了SpringBoot整合Ureport2报表及常见使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、Maven 添加依赖

<!--ureport-->
   <dependency>
     <groupId>com.syyai.spring.boot</groupId>
     <artifactId>ureport-spring-boot-starter</artifactId>
     <version>2.2.9</version>
   </dependency>

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的使用说明

到此这篇关于SpringBoot整合Ureport2报表及常见使用方法的文章就介绍到这了,更多相关SpringBoot整合Ureport2内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java获取时间打印到控制台代码实例

    Java获取时间打印到控制台代码实例

    这篇文章主要介绍了Java获取时间打印到控制台代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • java从list中取出对象并获得其属性值的方法

    java从list中取出对象并获得其属性值的方法

    这篇文章主要介绍了java从list中取出对象并获得其属性值的方法,大家参考使用
    2013-12-12
  • Spring注解驱动之BeanDefinitionRegistryPostProcessor原理解析

    Spring注解驱动之BeanDefinitionRegistryPostProcessor原理解析

    这篇文章主要介绍了Spring注解驱动之BeanDefinitionRegistryPostProcessor原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Java中Socket用法详解

    Java中Socket用法详解

    本文详细讲解了Java中Socket的用法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Spring Boot 中的 @ConditionalOnBean 注解场景分析

    Spring Boot 中的 @ConditionalOnBean 注解场景分析

    本文详细介绍了Spring Boot中的@ConditionalOnBean注解的使用场景、原理和基本用法,通过多个示例,展示了如何使用该注解根据Bean是否存在来动态地注册或跳过特定的Bean,感兴趣的朋友一起看看吧
    2025-03-03
  • 全面探究 Java 内部类

    全面探究 Java 内部类

    说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟
    2021-09-09
  • Reactor 多任务并发执行且结果按顺序返回第一个

    Reactor 多任务并发执行且结果按顺序返回第一个

    这篇文章主要介绍了Reactor 多任务并发执行且结果按顺序返回第一个,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • Java使用多线程异步执行批量更新操作方法

    Java使用多线程异步执行批量更新操作方法

    这篇文章主要介绍了Java使用多线程异步执行批量更新操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • spring mvc静态资源权限访问的设置方式

    spring mvc静态资源权限访问的设置方式

    文章描述了在Spring MVC项目中,controller层和jsp页面交互时,因未开放静态资源访问导致数据提交异常,通过在spring-mvc配置文件中开放静态资源访问,成功解决了问题,控制台可正常接收到ajax提交的json数据
    2025-10-10
  • SpringBoot如何使用Fastjson解析Json数据

    SpringBoot如何使用Fastjson解析Json数据

    这篇文章主要介绍了SpringBoot如何使用Fastjson解析Json数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论