下列步骤是快速搭建一个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的更多相关文章

  1. Cucumber+Rest Assured快速搭建api自动化测试平台

    转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/ 什么是 ...

  2. Nginx学习笔记--001-Nginx快速搭建

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  3. Github pages + jekyll 博客快速搭建

    Github pages + jekyll 博客快速搭建 寻找喜欢的模版 https://github.com/jekyll/jekyll/wiki/sites http://jekyllthemes ...

  4. NodeJS 最快速搭建一个HttpServer

    最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081

  5. 利用yeoman快速搭建React+webpack+es6脚手架

    自从前后端开始分离之后,前端项目工程化也显得越来越重要了,之前写过一篇搭建基于Angular+Requirejs+Grunt的前端项目教程,有兴趣的可以点这里去看 但是有些项目可以使用这种方式,但有些 ...

  6. 基于Docker快速搭建多节点Hadoop集群--已验证

    Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...

  7. 基于 Jenkins 快速搭建持续集成环境

      什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...

  8. bootstrap快速搭建属于自己的后台模板库

    不论做什么项目,我们都以快速搭建为主,设计师固然重要,但是,我们前端开发的也必须能给出自己以前做过什么样的模板,自己收藏的模板,或者我们弹框的形式,我的提示框的形式,我用的下拉框的插件,日历的插件,我 ...

  9. vuejsLearn---通过手脚架快速搭建一个vuejs项目

    开始快速搭建一个项目 通过Webpack + vue-loader 手脚架 https://github.com/vuejs-templates/webpack 按照它的步骤一步一步来 $ npm i ...

随机推荐

  1. Are We There Yet? (zoj1745)

    Are We There Yet?     (ZOJ Problem Set - 1745) Are We There Yet? Time Limit: 2 Seconds      Memory L ...

  2. cmd启动,重启,停止IIS命令

    直接使用CMD我们可以操作很多事情,比如启动IIS,重启IIS,停止IIS 重启IIS服务器,开始->运行->cmd (以下列出相关操作命令): iisreset /RESTART 停止后 ...

  3. 全球多个 TOP 网站藏挖矿代码,5 亿 PC 沦为矿工

    据ZDNet报道,现在很多网站都开始在网页脚本中藏匿挖矿代码,在用户访问时偷算力用于挖矿.来自Adguard的报告称也证实,也有5亿台电脑中招. 最新最热的IT技术付费社区 IT帮 itbang.me ...

  4. 接口自动化测试方案PHP + mysql

    接口测试在测试工作中是很常见的工作,但是在以往的接口测试工作中借助的一般是第三方插件.python开发的发送请求脚本.LR脚本.Jmeter脚本,之前也使用python开发了一套接口自动化测试系统,但 ...

  5. Learning Scrapy 中文版翻译 第一章

    第一章:scrapy介绍 欢迎来到scrapy之旅.通过这本书,我们将帮助你从只会一点或者零基础的Scrapy初学者达到熟练使用这个强大的框架在互联网或者其他资源抓取海量的数据.在这一章节,我们将给你 ...

  6. Django项目搭建和配置总结

    安装和创建虚拟环境 参考:linux系统下Python虚拟环境的安装和使用 安装Django包 先进入虚拟环境,在联网下执行: pip install django==1.8.7 1.8.7表示dja ...

  7. word2vec 数学原理

    word2vec 是 Google 于 2013 年推出的一个用于获取词向量的开源工具包.我们在项目中多次使用到它,但囿于时间关系,一直没仔细探究其背后的原理. 网络上 <word2vec 中的 ...

  8. MYSQL 总结

    1.数据库实质中访问的是 DBMC,数据库是一种存储介质 2.groub by 与 having 理解 group by 有一个原则,select后面的所有列中,没有使用聚合函数的列必须出现在 gro ...

  9. php开发微信公众号获取信息LBS

    1.一般的公众号都可以在微信公众平台里面设置自定义菜单和自动回复消息,如果需要获取用户位置,则必须开启 服务器配置,当次功能开启后,微信公众平台的自定义菜单和自动回复则失效. 需要通过接口开发来实现微 ...

  10. 『实践』Yalmip建模+Cplex类求解

    Yalmip建模+Cplex类求解 一.缘由 Yalmip只能设置部分Cplex的参数,所以需要调用Cplex类.而且optimize是Yalmip提供的常用函数,但此函数的返回结果参数有限. 图1 ...