下列步骤是快速搭建一个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. ZOJ2105 终于找到错误

    ZOJ2105:点击打开链接 错误代码 #include<stdio.h> #include<stdlib.h> int q[110]; int main() { int a, ...

  2. myeclipse 中clean的作用

    myeclipse中clean的作用     重新编译的功能 就是将编译好的class文件都删除后在重新生成.如果引用的jar包不能工作可以尝试下.

  3. netfilter/iptables和firewalld的关系

    1.netfilter 是linux 内核模块,其中包含了大量的内核规则,而要想对这些内核规则进行操作,就需要用户态的工具. iptables和firewalld就是一个用户态的工具. 2.iptab ...

  4. 如何抽象一个 Vue 公共组件

    之前一直想写一篇关于抽象 Vue 组件的随笔,无奈一直没想到好的例子.恰巧最近为公司项目做了一个数字键盘的组件,于是就以这个为例聊聊如何抽象 Vue 的组件. 先上 Demo 与 源码.(demo最好 ...

  5. jenkins、ant、selenium、testng搭建自动化测试框架

    如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开ec ...

  6. win10 uwp MVVM入门

    MVVM 是一个强大的架构,基本从 WPF 开始,wr(我说的就是微软)就提倡使用 MVVM.它可以将界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写中. 然后在编写完后台代码后 ...

  7. 初学者易上手的SSH-hibernate02 三种查询方式

    在上一章中已经搭建好了一个hibernate的环境,那么这一章我们就使用这个环境来进行基本CRUD.在这之前我们先了解一个东西:主键生成策略.就是当向数据库表中插入记录的时候,这个记录的主键该如何生成 ...

  8. zabbix杂文二

    ps1:主要是一些遇到的问题,不一定对所有人都有用... PS2:安装前就一定要去看下官方文档 PS3:安装zabbix的时候会参照这上面的 http://blog.chinaunix.net/uid ...

  9. Java常用类(三)之StringBuffer与StringBuidler

    前言 前面一篇给大家介绍了String类,这个我们经常会用到的一个类,那这一篇给大家分享的是StringBuffer与StringBuidler.等下我也会比较他们三个之间的区别 一.StringBu ...

  10. LINUX 笔记-命令执行顺序 && ,||

    && 格式:命令1 && 命令2 说明:命令1返回真(即返回0,成功被执行)后,命令2才能够被执行 例:/apps/bin目录将会被移到/apps/dev/bin目录下 ...