快速搭建Japser Report

时间:2022-04-26 12:50:38

下列步骤是快速搭建一个Jasper Report,开发中遇到的坑会在下一个博客中提及,如有任何问题,欢迎留言评论

第一步,打开Jaspersoft Studio,界面跟eclispse一样

创建项目:

1. 默认创建好的项目名称是MyReports。

2. 自己创建,点击File → New → Other,然后出现向导页面,此时勾选show all wizards,选择自己需要的项目类型。

注:除了JasperReports Project外,其他项目类型不包含jasper report和jasper server相关的库文件,如果需要在自己的界面实现Report,就需要自己引入这些相关的库文件。

3. 直接import已有的项目,导入相关的库文件。

第二步,新建一个jasperreport

在创建的时候可以选择相应的模板,自定义的可以选Blank_A4的模板。在这个模板上,可以看到常用的Title,Page
Header,Column
Header,Detail,Column
Footer,Page
Footer和Summary,这些部分可以设置相应的高度,让其出现在合适的地方,其基本用法如下:

Title:标题,只出现在Report的第一页纸上(第一页)

Page
Header:页眉

Column
Header:自定义表头等

Detail:重复读取数据(可以添加多个)

Column
Footer:统计数据等

Page
Fotter:页脚

Summary:跟在Page
Footer后面(最后一页)

在设计Report的主界面,我们可以进行design(可视化设计),source(源码)以及preview(预览)的切换。

第三步,创建数据源

在Repository
Explore窗口,可以看到Data
Adapters和Servers,我们需要创建一个数据源,

右键create
Data Adapter,会看到xml,xls,json以及jdbc
connection等数据源类型,一般使用jdbc
connection,在配置页面配置好驱动,url,dbName以及数据库帐号密码等即可,在finish之前可以先Test一下是否连接成功。

第四步,设计Report

在Palette窗口,Jasper提供了一些Report所需要的基本的控件,我们只需要将其拖拽到相应的位置即可实现基本功能。

在Basic
Elements区域,可以选择文本框,图片框,子报表,图表等控件。

在Composite
Elements区域,提供了页码,页数,当前时间,当前日期等等。

第五步,设置属性

每个控件,包括Report等都是有相对应的属性的,共性的有长宽,布局,是否自动拉伸,相对位置(x和y),以及文本对齐方式等,当你点击每个控件或者选择show
Properties,一般在右下角会出现Properties属性窗口,一些特殊的属性的设置以及控件用法将在后面进行说明。

第六步,设置DataSet

DataSet是Report数据的来源,实际上是通过一些基本的查询语句到我们创建好的数据源去读取我们需要的数据,常用的查询语言有SQL,PLSQL,JSON,XLS,XPATH等,能创建什么数据源就可以用其独有的查询方式将我们的需要的数据读取出来,通过跟控件绑定显示数据,在这里以SQL为例,这里对SQL有一定的要求,仅能使用一条SQL语句,而且有一定的结构要求,具体的可以在点击DataSet
and
Quary后在Outline里面进行查看,有时用到一些语句例如cast类型转换等,在写SQL的地方提示会报错,但实际运行和publish到server上都是没问题的,还有就是用到with
temp as()等语句时,与后面的语句不使用“
;”连接在开发的时候能够正常运行并且显示数据,但是当publish到server上时会执行不通过。

每一个Report只有一个主DataSet,我们可以为其创建子DataSet,供table控件使用,其大体结构跟主DataSet类似,同样有Parameters,Fields,Variables等基本内容,具体用法如下所示:


Parameters
:参数,使用$P{param_name}来表示,可以内嵌到SQL语句,字段等内容里面去,

在使用到$P{param_name}当作条件的时候,一般是这么使用的“
where XX
like $P{param_name}” 或者
where XX
in $P{param_name}”,还有一种用法就是将列名,条件,参考值放到一起,代替上面的where等,一般这么使用“
$X{‘like
or
in等’,列名,$P{param_name}}”,还有一些其他的形式和用法自行研究。既然是参数,那么就应该就应该有个入口输入,也可以赋初始值,系统默认提供了一些初始参数,可以使用但不可以修改,需要自定义可以点击新创建的属性(在Parameters右键创建param),设置参数的名称,参数类型,默认值以及展现形式(弹窗等)。在preview的时候可以根据选择的数据类型获取对应的控件并且选择初始值(没有的可以创建),在publish的时候会自动该控件上传并且生成对应的控件,创建完成后也可以对数据格式在server上进行修改,只要保证参数名对应即可。

注:在server上可以设定定时执行任务,在parameters添加参数并且命名为_ScheduledTime可以获取到任务执行的时间。


Fields
:在DataSet写的查询语句输出的字段都会出现在这里面,其相关的属性与Text
Field一样,唯一的区别就是不需要手动绑定值,在Field形成之前已经自行绑定,使用的时候只需要将其拖拽到相应的模块即可。


Variables
:变量,利用参数或者字段通过计算,字符串拼接等方式,在其Expression中让其输出即可,使用的时候拖拽到模块中会对应的生成字段。

第七步,搭建Jasper
Server

下载对应的安装包并且安装,在安装的时候可以选则全部安装或者部分安装,全部安装就是除了装必要的东西外,还会安装数据库和tomcat,如果在你的机器上已经安装了这些或者部分,可以选择部分安装,根据提示指向对应的目录即可。安装好了之后,想当访问的时候不显示你的端口号(默认8080),可以到安装目录下找到server.xml文件,将端口号改成80(前提80没有被占用)并且重启即可。

注:默认社区版登陆连接为为host:8080/jasperserver,admin帐号为jasperadmin,密码为jasperadmin。