Mars‘s docMars‘s doc
🏠主页
  • 🍻Activiti

    • 01-核心API
    • 02-监听
    • 03-数据库表介绍
    • 04-常见问题
  • 📊JasperReport

    • 01-JaspersoftStudio工具使用
    • 02-JasperReport集成
    • 03-JasperReport常见问题
  • 🎬JavaScript

    • 01-Node
    • 02-VuePress
    • 03-Vue组件高度宽度
    • 04-显示器和屏幕高度
    • 05-页面地址
    • 06-归纳总结
  • 🍵Java

    • 01-Java8特性
    • 02-多线程
    • 03-Jar包
    • 04-Util
    • 05-validation注解
    • 06-反编译
    • 07-try-with-resource
    • 08-ThreadLocal内存泄漏
    • 09-Jvm
    • 10-Excel
    • 11-Lombook
    • 12-条件注解
    • 13-WebMvcConfigurationSupport
    • 14-WebMvcConfigurer
    • 15-分布式锁
    • 16-Caffeine
    • 17-DynamicDatasource
    • 18-MybatisPlus
    • 19-Swagger
    • 20-BeanPostProcessor
    • 21-Bean初始化
    • 22-ConfigurableApplicationContext
    • 23-常用注解
    • 24-ApplicationListener
    • 25-JavaDoc
    • 26-Spring-Cache
    • 27-StopWatch耗时统计
    • 28-Word
    • 29-Druid
    • 30-OpenFeign
    • 31-反射相关
    • 32-Fastjson
    • 33-Yaml
  • 💻Linux

    • 01-Linux常用命令
    • 02-Linux脚本汇总
    • 03-Yum源
    • 04-Debian
    • 05-Ubuntu
  • 🐋Docker

    • 01-Docker常用命令
    • 02-Dockerfile
    • 03-Swarm
    • 04-Stack
    • 05-Docker常见问题
    • 06-DockerCompose
    • 07-Docker应用用汇总
    • 08-Kasm
    • 09-Rustdesk
  • 🌐Nginx

    • 01-Nginx
  • 📈数据库

    • 01-Mysql
    • 02-Clickhouse
    • 03-Doris
    • 04-DRDS
  • 📉Kettle

    • 01-入门
    • 02-js脚本
    • 03-优化
    • 04-连接组件
    • 05-参数
    • 06-工具
    • 07-日志
    • 08-流程组件
    • 09-输入组件
    • 10-输出组件
    • 11-转换组件
    • 12-驱动
  • 🎨Git

    • 01-Git使用
  • 📝Maven

    • 01-Maven使用
    • 02-Maven配置
  • 🎯Jenkins

    • 01-Jenkins部署
    • 02-Jenkisn常见问题
  • 01-设计模式之禅
  • 02-领域驱动设计
  • 03-JavaScript高级程序设计
  • 🍓树莓派

    • 01-RaspBerry
  • 📘Markdown

    • 01-Markdown语法
    • 02-Markdown表情
    • 03-Markdown代码块语言对照
  • 📇其他

    • 01-HTML XML 转义
    • 02-GitHub
    • 03-Idea
    • 04-Nmon
    • 05-Windows
    • 06-WinSw
GitHub
🏠主页
  • 🍻Activiti

    • 01-核心API
    • 02-监听
    • 03-数据库表介绍
    • 04-常见问题
  • 📊JasperReport

    • 01-JaspersoftStudio工具使用
    • 02-JasperReport集成
    • 03-JasperReport常见问题
  • 🎬JavaScript

    • 01-Node
    • 02-VuePress
    • 03-Vue组件高度宽度
    • 04-显示器和屏幕高度
    • 05-页面地址
    • 06-归纳总结
  • 🍵Java

    • 01-Java8特性
    • 02-多线程
    • 03-Jar包
    • 04-Util
    • 05-validation注解
    • 06-反编译
    • 07-try-with-resource
    • 08-ThreadLocal内存泄漏
    • 09-Jvm
    • 10-Excel
    • 11-Lombook
    • 12-条件注解
    • 13-WebMvcConfigurationSupport
    • 14-WebMvcConfigurer
    • 15-分布式锁
    • 16-Caffeine
    • 17-DynamicDatasource
    • 18-MybatisPlus
    • 19-Swagger
    • 20-BeanPostProcessor
    • 21-Bean初始化
    • 22-ConfigurableApplicationContext
    • 23-常用注解
    • 24-ApplicationListener
    • 25-JavaDoc
    • 26-Spring-Cache
    • 27-StopWatch耗时统计
    • 28-Word
    • 29-Druid
    • 30-OpenFeign
    • 31-反射相关
    • 32-Fastjson
    • 33-Yaml
  • 💻Linux

    • 01-Linux常用命令
    • 02-Linux脚本汇总
    • 03-Yum源
    • 04-Debian
    • 05-Ubuntu
  • 🐋Docker

    • 01-Docker常用命令
    • 02-Dockerfile
    • 03-Swarm
    • 04-Stack
    • 05-Docker常见问题
    • 06-DockerCompose
    • 07-Docker应用用汇总
    • 08-Kasm
    • 09-Rustdesk
  • 🌐Nginx

    • 01-Nginx
  • 📈数据库

    • 01-Mysql
    • 02-Clickhouse
    • 03-Doris
    • 04-DRDS
  • 📉Kettle

    • 01-入门
    • 02-js脚本
    • 03-优化
    • 04-连接组件
    • 05-参数
    • 06-工具
    • 07-日志
    • 08-流程组件
    • 09-输入组件
    • 10-输出组件
    • 11-转换组件
    • 12-驱动
  • 🎨Git

    • 01-Git使用
  • 📝Maven

    • 01-Maven使用
    • 02-Maven配置
  • 🎯Jenkins

    • 01-Jenkins部署
    • 02-Jenkisn常见问题
  • 01-设计模式之禅
  • 02-领域驱动设计
  • 03-JavaScript高级程序设计
  • 🍓树莓派

    • 01-RaspBerry
  • 📘Markdown

    • 01-Markdown语法
    • 02-Markdown表情
    • 03-Markdown代码块语言对照
  • 📇其他

    • 01-HTML XML 转义
    • 02-GitHub
    • 03-Idea
    • 04-Nmon
    • 05-Windows
    • 06-WinSw
GitHub
  • 🏫技术相关

    • 🍻Activiti

      • 01-核心API
      • 02-监听
      • 03-数据库表介绍
      • 04-常见问题
    • 📊JasperReport

      • 01-JaspersoftStudio工具使用
      • 02-JasperReport集成
      • 03-JasperReport常见问题
    • 🎬JavaScript

      • 01-Node
      • 02-VuePress
      • 03-Vue组件高度宽度
      • 04-显示器和屏幕高度
      • 05-页面地址
      • 06-归纳总结
    • 🍵Java

      • 01-Java8特性
      • 02-多线程
      • 03-Jar包
      • 04-Util
      • 05-validation注解
      • 06-反编译
      • 07-try-with-resource
      • 08-ThreadLocal内存泄漏
      • 09-Jvm
      • 10-Excel
      • 11-Lombook
      • 12-条件注解
      • 13-WebMvcConfigurationSupport
      • 14-WebMvcConfigurer
      • 15-分布式锁
      • 16-Caffeine
      • 17-DynamicDatasource
      • 18-MybatisPlus
      • 19-Swagger
      • 20-BeanPostProcessor
      • 21-Bean初始化
      • 22-ConfigurableApplicationContext
      • 23-常用注解
      • 24-ApplicationListener
      • 25-JavaDoc
      • 26-Spring-Cache
      • 27-StopWatch耗时统计
      • 28-Word
      • 29-Druid
      • 30-OpenFeign
      • 31-反射相关
      • 32-Fastjson
      • 33-Yaml
  • 🏢服务器

    • 💻Linux

      • 01-Linux常用命令
      • 02-Linux脚本汇总
      • 03-Yum源
      • 04-Debian
      • 05-Ubuntu
    • 🐋Docker

      • 01-Docker常用命令
      • 02-Dockerfile
      • 03-Swarm
      • 04-Stack
      • 05-Docker常见问题
      • 06-DockerCompose
      • 07-Docker应用用汇总
      • 08-Kasm
      • 09-Rustdesk
    • 🌐Nginx

      • 01-Nginx
  • 🏩数据相关

    • 📈数据库

      • 01-Mysql
      • 02-Clickhouse
      • 03-Doris
      • 04-DRDS
    • 📉Kettle

      • 01-入门
      • 02-js脚本
      • 03-优化
      • 04-连接组件
      • 05-参数
      • 06-工具
      • 07-日志
      • 08-流程组件
      • 09-输入组件
      • 10-输出组件
      • 11-转换组件
      • 12-驱动
  • 🏬管理工具

    • 🎨Git

      • 01-Git使用
    • 📝Maven

      • 01-Maven使用
      • 02-Maven配置
    • 🎯Jenkins

      • 01-Jenkins部署
      • 02-Jenkisn常见问题
  • 🏯书籍笔记

    • 01-设计模式之禅
    • 02-领域驱动设计
    • 03-JavaScript高级程序设计
  • 🏦其他

    • 🍓树莓派

      • 01-RaspBerry
    • 📘Markdown

      • 01-Markdown语法
      • 02-Markdown表情
      • 03-Markdown代码块语言对照
    • 📇其他

      • 01-HTML XML 转义
      • 02-GitHub
      • 03-Idea
      • 04-Nmon
      • 05-Windows
      • 06-WinSw

Jaspersoft studio 工具使用

目录

  • Jaspersoft studio 安装
  • Jaspersoft studio 说明
    • Outline 元素列表
    • Basic Elements 基本元素
    • Report 模板参数
    • 内置参数
  • JasperReport 开发
    • 创建Report及数据源
    • 设计Reoprt
    • 预览Report
    • 参数
    • 样式
  • JasperReport Table
    • 创建Report
    • 创建参数
    • 创建Dataset and Query
    • Dataset
    • Table
    • Table的一些扩展
  • JasperReport Frame

Jaspersoft studio 安装

地址:Jaspersoft studio

基础环境:jdk1.8+

Jaspersoft studio 说明

Outline 元素列表

元素名词描述
Styles样式可以创建全局样式,在表格处用的比较多
Parameters参数由外面传递到里面的参数,一般使用HashMap,也可以向子报表传参
Fields字段映射字段
Sort Fields有序字段有序的映射字段
Scriptlets脚本
Title标题除了第一页,其他页都不展示
Page Header页头每页都会展示,在页面上部
Column Header列头表中列的列头
Detail内容区重复出现的内容在此展示
Column Footer列脚表中列的列脚
Page Footer页脚每页都会展示,在页面下部
Last Page Footer最后一页页脚只在最后一页展示
Summary统计区报表最后一页中,一般用来统计
Background背景设置报表的背景样式
No Data

Basic Elements 基本元素

元素描述
Note备注
Text Field动态文本
Static Text静态文本
Image图片
Break强制分页符
Rectangle矩形
Ellipase椭圆
Line线条
Generic
Frame框架
Barcode条形码、二维码
ListList集合
Chart图表
Crosstab
Table表格
MapMap
Spider网状图表
Custom Visualization

Report 模板参数

元素名称描述
Report Name模板名称注意,如果你复制了一份模板文件,这个地方是没有修改的
Description模板描述这个模板文件是干什么的,起注释作用
Language有三种 Java、groovy、javascript,这里指定报表表达式使用的语言。
Imports引入其他包自定义,或者第三方
Format Factory Class翻译指定实现要与此报表一起使用的接口的类的名称。如果省略,将创建的实例
When No Data Type参数当打印的报表数据源中没有数据的情况下,也就是数据源为空的情况下
null默认,不选择。
No Pages不打印数据。
Blank Pages返回一个空白的页面。
All Sections No Detail打印除了Detail 之外的所有页面。
No Data Section把No Data的Band 的也打印出来。
Title On A New Page表示 Tilte Band 单独一页打印。
Summary On A New Page表示 Summary 单独一页打印。
Summary With Page Header And Footer表示在Sumnmary最后一页,也显示Header头 和 Footer脚
Float Column Footer在最后一页,Column Foot(列脚)是否紧挨着最后一个Details
Ignore Pagination忽略分页
Create bookmarks创建书签
Dataset
When Resource Missing Type参数当资源的属性错误时
Null默认,为Null
Empty空
Key输出key
Error报错,异常
Scriptlet Class自定义scriptlet,可在报表生成时自定义一些行为
Resource Bundle资源绑定,报表所用资源文件
Default Data Adapter默认数据源,在这里,可以选择数据源配置在哪里
Edit query,filter and sort options数据源相关操作
Page Format报表格式化类似打印预览设置

内置参数

内置参数
元素名称描述
$V{PAGE_NUMBER}当前页数可以是页码也可以是页数,通过TextField的计算时间的不同值来设置
$V{PAGE_COUNT}前页面中记录的数目
$V{GROUPNAME_COUNT}当前组的记录数
$V{COLUMN_NUMBER}列号码当前page中的列号,用于序号等
$V{REPORT_COUNT}当前文档中数据源记录数目全文档总的列号,分页后列号是连续的,用于序号等

JasperReport 开发

  1. JRXML:报表填充模板,本质是一个XML。

  2. Jasper:由JRXML模板编译生成的二进制文件,用于代码填充数据。

创建Report及数据源

  1. 创建Report
创建Report
  1. 选择模板,空白即可,下一步
空白Report
  1. 填写Report名称,下一步
Report名称
  1. 选择/创建数据源
数据源

4.1. 首次使用,点击“New”创建数据源,选择“Database JDBC Connection”,点击下一步

创建数据源

4.2. 填写数据源配置

  • Name:数据源名称
  • JDBC Driver:驱动名称,选 MySQL (com.mysql.jdbc.Driver)
  • JDBC Url:数据库连接串,填如 jdbc:mysql://ip:port/db\_name?characterEncoding=utf8&useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true&connectTimeout=60000&socketTimeout=60000 ,注意修改ip:port/db\_name内容
  • Username:数据库用户名
  • Password:数据库密码
数据源信息

4.3. 配置数据源驱动

数据库驱动

4.4. 测试并保存

测试并保存

4.5. 填写SQL

未定义参数前可以不填写sql,或者使用where 1 = 2 解析字段即可

注意: $P{emp\_dept\_name} 为 JasperReport 参数传递语法,参考下文“参数”中的配置

填写sql

设计Reoprt

  1. 删除Report中不使用的内容
删除不使用内容
  1. 设计Report内容

2.1. Title & Column Header :表头和列头

表头和列头
  • 表头设置
表头字体布局设置
  • 列头快速布局
列头快速布局
  • 列头背景色
列头背景色

2.2. 填充列

列属性
  • 数据集配置
数据集
  • 解析数据集
解析数据集
  • 填充结果
填充结果
  • 最终结果
最终结果

预览Report

预览

参数

  • 参数可以定义在 where 条件中,用于过滤数据,语法为 $P{参数名},比如:

    where emp_dept_name = $P{emp_dept_name}
    
  • 参数也可以传入 SQL 片段,用于拼接 SQL 语句,语法为 $P!{参数名},比如:

    where $P!{conditions}
    
参数
  • 处理 SQL 语句中的 Null,$P{parametername} 格式的参数,无法正确处理Null 值,我们可以使用 $X{EQUAL,fieldname,parametername}来处理 Null 值。也可以通过样式/格式设置
样式格式
  • 处理 SQL 语句中的 IN 与 NOT IN 形式,$X{IN 或者 NOTIN, 字段名,参数名} ,emp_dept_values的参数值一般是一个列表(java.util.Collection)或者一个数组

    select * from emp where $X{IN, emp_dept_name,emp_dept_values}
    

样式

  1. 设置单元格和内容的长宽
设置单元格和内容的长宽
  1. 边框
边框
  1. 字体和单元格内边距
字体和单元格内边距

JasperReport Table

创建Report

创建报表:file->new->Jasper Report,删掉不适用的元素。

table新建

创建参数

Outline: table_demo->Parameters->Create Parameter

参数用于报表传值,调用报表时候的参数值,理解为sql中的where条件

table参数table参数名

创建Dataset and Query

Outline: table_demo->Dataset and Query

主数据源的数据集,用于报表展现和table中sql参数的获取

table数据集table数据集内容

Dataset

  • 创建Empty Dataset

Outline: table_demo->Create Dataset

table dataset:table展现的内容

table子数据集table_dataset_empty
  • 创建Dataset Parameter

Outline: table_demo->emptable->Parameters->Create Parameter

table_dataset_parameter
  • 修改Detaset

Outline: table_demo->emptable->Dataset and Query

table_dataset

Table

  • 配置table
table_dataset_step0table_dataset_step1table_dataset_step2table_dataset_step3table_dataset_step4table_dataset_step5table_dataset_step6table_dataset_step7table_dataset_step8
  • 预览table
table_dataset_step9

Table的一些扩展

表格的表头

table design模式下,给多有column新建一个Group Columns

table_headertable_header1

动态table

根据主数据源返回结果,自动按照部门分组,每个部门一个独立table

table_header2table_header3table_header4
table参数

table参数可以选择主数据的结果(Fields),也可以选择系统参数(Parameters)

table_parameter

table 列求和

使用dataset的variables对列进行求和。

创建可变参数

table_sum_variables

配置可变参数,注意用于计算的属性需要与variables数据类型保持一致

table_sum_variables1

配置计算

table_sum_variables2

预览

table_sum_variables3

JasperReport Frame

Frame 元素,会根据内容自动拉伸显示的内容,实现动态文本高度。

下面是一个简单的测试报表,在不配置字体和单元格的情况下,字体过长会被截断。

基础报表

测试下效果,输入参数设置为一个长点的内容

2222222222222222222222222测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测1111111111111111111111111试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试4444444444444444444444444444444444444444

预览效果如下,可以发现文字显示不全

基础报表预览

然后将入参文本属性设置为自适应高度,$P(text)->Text field->Text Adjust,将其属性设置为 StretchHeight

基础报表入参设置高度自适应

预览效果如下,发现文字内容确实自适应高度了,但是会覆盖下面单元格内容

基础报表自文本适应高度预览

引入 Frame ,并设置高度自适应

jasper_frame_元素

jasper_frame_配置1

jasper_frame_配置2

最后预览效果如下

jasper_frame_预览

注意: 如果多选元素设置属性失败,需要逐个属性配置以上截图内容

Edit this page
Last Updated:
Contributors: wangxiaoquan
Next
02-JasperReport集成