快速搭建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 ...
随机推荐
- 执行manage.py syncdb提示Unknown command: 'syncdb'
1. 实验环境 ubuntu14.4 + django1.9.7 2. 问题描述 在配置完数据库mysite/settings.py后,通常需要运行 python manage.py syncdb 为 ...
- Ubuntu下的终端多标签切换快捷键
ubuntu下由于常在终端下工作,也同样需要在一个终端窗口下开启多个标签方便日常开发工作(vim党,尽量避免使用鼠标) 方法一: alt+1 alt+2 alt+3 方法二: ctrl + pageU ...
- ios自定义数字键盘
因为项目又一个提现的功能,textfiled文本框输入需要弹出数字键盘,首先想到的就是设置textfiled的keyboardType为numberPad,此时你会看到如下的效果: 但是很遗憾这样 ...
- web 导出 csv
public void ProcessRequest(HttpContext context) { //DownloadFile("教程.csv" ...
- PHP 支付
蚂蚁金服开放平台 2.下载PHP的SDK&demo 3.申请应用 OR 使用沙箱环境 4.生成应用私钥&应用公钥 5.配置config.php 蚂蚁金服开放平台",对,没错, ...
- Entity Framework Core 2.0 使用入门
一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core.以前我也嫌弃EF太重而不去使用它,但是EF Core(E ...
- 【转】DMA和cache一致性
DMA和cache一致性问题 Cache原理 CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多.缓存的出现主要是为了解决CPU ...
- javascript入门知识点总结(一)
学了几天javascript,现总结一下原生javascript的基本知识点. 一.javascript基本知识 变量 定义: var a = 123; var b = 'abc'; //连写 var ...
- 栈(存储结构链表)--Java实现
/*用链表实现栈--链栈 * */ public class MyLinkedStack { public MyLinkedList linklist; int items; public MyLin ...
- mybatis xml中使用where 条件中的in方法
<select id="queryCount" resultType="cn.bnsr.edu_yun.view.FileView"> SELECT ...