快速搭建Japser Report
下列步骤是快速搭建一个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。
快速搭建Japser Report的更多相关文章
- Cucumber+Rest Assured快速搭建api自动化测试平台
转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/ 什么是 ...
- Nginx学习笔记--001-Nginx快速搭建
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...
- Github pages + jekyll 博客快速搭建
Github pages + jekyll 博客快速搭建 寻找喜欢的模版 https://github.com/jekyll/jekyll/wiki/sites http://jekyllthemes ...
- NodeJS 最快速搭建一个HttpServer
最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081
- 利用yeoman快速搭建React+webpack+es6脚手架
自从前后端开始分离之后,前端项目工程化也显得越来越重要了,之前写过一篇搭建基于Angular+Requirejs+Grunt的前端项目教程,有兴趣的可以点这里去看 但是有些项目可以使用这种方式,但有些 ...
- 基于Docker快速搭建多节点Hadoop集群--已验证
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
- 基于 Jenkins 快速搭建持续集成环境
什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...
- bootstrap快速搭建属于自己的后台模板库
不论做什么项目,我们都以快速搭建为主,设计师固然重要,但是,我们前端开发的也必须能给出自己以前做过什么样的模板,自己收藏的模板,或者我们弹框的形式,我的提示框的形式,我用的下拉框的插件,日历的插件,我 ...
- vuejsLearn---通过手脚架快速搭建一个vuejs项目
开始快速搭建一个项目 通过Webpack + vue-loader 手脚架 https://github.com/vuejs-templates/webpack 按照它的步骤一步一步来 $ npm i ...
随机推荐
- nodejs后台集成富文本编辑器(ueditor)
1 下载ueditor nodejs版本 2 复制public目录下面的文件 到项目静态资源public文件夹下 3 在项目根目录创建ueditor文件夹 要复制进来的内容为 4 在根目录的 uedi ...
- html加载时事件触发顺序
一般情况下页面的响应加载顺序时,域名解析-加载html-加载js和css-加载图片等其他信息. jq ready()的方法就是Dom Ready,他的作用或者意义就是:在DOM加载完成后就可以可以对D ...
- Jquery几行代码解决跟随屏幕滚动DIV
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Spring MVC 过滤静态资源访问
过滤的必要性 一般来说,HTTP 请求都会被映射到 DispatcherServlet,进而由具体的类来承接处理,但对于类似 js 或者 css 这样的静态资源则没必要这样,因为对资源的获取只需返回资 ...
- WDA的配置
WDA的配置 SAP的技术总是搞得很复杂,WDA的涉及到配置如下: 1. Internet Communication Manager 确认ICM中提供的HTTP/HTTPS运行正常. Tcode: ...
- (@WhiteTaken)设计模式学习——享元模式
继续学习享元模式... 乍一看到享元的名字,一头雾水,学习了以后才觉得,这个名字确实比较适合这个模式. 享元,即共享对象的意思. 举个例子,如果制作一个五子棋的游戏,如果每次落子都实例化一个对象的话, ...
- Windows 10 快捷键汇总表格
Windows 10 快捷键汇总表格 Windows 10 快捷键汇总 Win键 + Tab 激活任务视图 Win键 + A 激活操作中心 Win键 + C 通过语音激活Cortana Win键 + ...
- for循环的基础使用
for循环: for 变量名 in 列表:do 循环体 done 执行机制: 依次将列表中的元素赋值给“变量名”:每次赋值后即执行一次循环体: ...
- LINUX 笔记-read命令
作用:读入值给变量 1.read 从键盘读入字符到name变量 2.read -p 'msg' var... 输入提示 3.read -s vars 隐藏输入 4.read读取文件时,每次调用会读取 ...
- [Java Web 第一个项目]客户关系处理系统(CRM)项目总结
一.table的应用: 1.表格的常用属性 基本属性有:width(宽度).height(高度).border(边框值).cellspacing(表格的内宽,即表格与tr之间的间隔).cellpadd ...