Jaspersoft Studio软件使用

简介

在企业级应用开发中, 表生成、 表打印下载是其重要的一个环节。在之前的课程中我们已经学习了 表中比较重要的一种:Excel 表。其实除了Excel 表之外,PDF 表也有广泛的应用场景,例如货运详情,货运单等。 

目前世面上比较流行的制作PDF 表的工具如下:

  1. Jasper Report:是一个强大、灵活的 表生成工具,能够展示丰富的页面内容,并将之转换成PDF。Jaspersoft Studio的前身。
  2. iText PDF:iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
  3. Openoffice:openoffice是开源软件且能在windows和linux平台下运行,可以灵活的将word或者Excel转化为PDF文档。

常见操作

  1.  JRXML: 表填充模板,本质是一个XML;Jasper:由JRXML模板编译生成的二进制文件,用于代码填充数据。
  2. 如何打开已经隐藏的窗口:菜单栏依次选择window→show view→other→已经隐藏的窗口名→Open
  3. 查看当前模板的纸张大小信息:鼠标移至模板页面左边线上部区域,点击鼠标右键,弹出模板菜单页面,在模板菜单页面点击“Page Format…(页面格式…)”按钮,调出纸张设置对话框。
  4. 新建模板步骤:在菜单栏中依此选择File→New→Jasper Report,进入到Report Templeates( 表模板)界面;在Report Templeates界面选择需要的模板,点击“Next”,进入到Report File( 表文件)界面,可修改模板存放路径和模板名称;在Report File界面点击“Finish”,完成 表模板创建(点击“Next”按钮,进入到Data Source(数据源)配置界面,不需要操作)。
  5. 在模板中添加元素:在“Palette”视窗中,选中自己所需要的元素(动态文本、静态文本、条形码文本等等),拖拽至模板中对应的位置上,完成模板元素新增操作。
  6. 在模板中给元素添加框架:通过鼠标选中所需元素,点击鼠标右键,弹出菜单页面,点击“Enclose into Frame”按钮,完成元素框架添加。
  7. 更改文件存储的位置:打开主菜单“File —> Switch WorkSpace”,选择你打算存放 表工程及 表设计文件的目录。
  8. 建立数据库连接:在“Repository Explorer”页签,依次进入“Data Adapter—>Create Data Adapter—>数据库连接方式(一般选择Database JDBC Connection)—>数据库连接配置(填写所连接数据库配置信息)—>Driver Classpath(添加相应数据库的jar包的存放路径)”
  9. sqlserver本人选择框起来那个,选择另一个 错,所以看个人工具及数据库版本

    连接数据库需要添加相应的jar包

    MySQL:

    Sqlserver:

  10. 建立主数据源(主档数据源)

界面元素解释

名称

翻译

备注

Jrxml

一种XML文件格式,用于保存和共享为JasperReports库和使用它的应用程序(如JasperSoft Studio和JasperReports服务器)创建的 表。JRXML是一种开放格式,它使用XML标准精确定义 表的所有结构和配置。

Jasper

 jaspersoft的运行文件格式

JRXML模板编译生成的二进制文件,执行PDF 表打印的代码运行格式文件。

Title

标题面板

只在首页打印一次 , 表面板

Detail

内容面板

详情,根据数据数量,自动循环输出, 表面板。

Column  Header

行首面板

通常用来定义行的字段名称。每页都打印, 表面板。

Page  Header

页首面板

每页都打印, 表面板。

Page  Footer

页尾面板

每页都打印, 表面板。

Column Footer

行尾面板

可用来告知 表的一些参数,诸如页码等。每页都打印, 表面板。

Last Page Footer

最后页的页尾面板

只在最后页打印一次。

Palette

调色板

调色板包含三个部分:Basic Elements(基本元素),Composite Elements(复合元素,其他元素组合创建的元素), Components(组件,软件商业版中可用元素)。通过拖拽调色板中的三个部分的元素至 表各类面板中,实现元素在 表中的新增 。

Composite Elements

复合元素

复合元素是一个或多个可以在 表中使用的预配置元素。你可以配置元素的大小、颜色或字体等属性,或创建具有复杂经常使用的表达式,然后将其另存为复合元素。复合元素不能包含基于数据集的元素,例如图表或交叉表。

Basic Elements

基本元素

表的基本构造块是元素,一切都是通过元素创建的,元素可以包含文本、创建表格、显示图像等。

Note

备注

Basic Element里的元素,

Text Field

字段文本

Basic Element里的元素,动态文本字段允许您打印使用表达式创建的任意文本部分(或数字或日期)。

Static Text

静态文本

Basic Element里的元素,通常标题使用此格式。

Image

图片

Basic Element里的元素

Break

强制分页符

Basic Element里的元素

Rectangle

矩形

Basic Element里的元素

Ellipse

椭圆

Basic Element里的元素

Line

线条

Basic Element里的元素

Frame

框架

Basic Element里的元素,框架是一个矩形元素,可以包含其他元素,还可以选择在它们周围绘制边框。框架内的元素是相对于框架而不是相对于标注栏定位的,当移动框架时,框架中包含的所有元素都会一起移动。框架会自动拉伸以适合其内容。

Subreport

子 表

Basic Element里的元素

Barcode

条形码、二维码

Basic Element里的元素

Chart

图表

Basic Element里的元素

Properties

属性栏

元素属性分为多个类别,通过“属性”视图中的选项卡可见。可用的属性依赖于元素类型。类别包含以下几类:Appearance、Borders、Element、Inheritance、Hyperlink

Appearance

外观选项卡

外观选项卡允许您设置元素的位置、大小、颜色和文本样式。

Borders

边框选项卡

允许设置元素的填充和边框样式、颜色和宽度。

Text Field , Note,

Static Text, Image,and so on

元素名

允许设置评估时间以及特定于元素类型的属性。例如:静态文本选项卡允许您为字段定义不可更改的文本,并控制其外观;文本字段选项卡允许设置文本字段元素的格式和位置;图像选项卡允许您设置图像对齐、填充和缩放属性。

Inheritance

继承选项卡

会显示当前元素的基本属性(Element attributes),能够重置当前属性(Reset Elements Properties),会显示 表的默认属性(Default attributes),允许查看从其他级别继承的任何属性,并在可能时覆盖这些属性。

Horizontal Alignment

水平对齐位置

选项:CENTER(居中对齐)、LEFT(左对齐)、RIGHT(右对齐)、JUSTIFIED(两端对齐)

Bold

字体加粗

选项:True(加粗)、Flase(不加粗)

Box  Top/Bottom/Left/Right Line Style

上/下/左/右边框线类型

选项:Solid(实线)、Dashed(虚线)、Dotted(点线)、Double(双实线)

Box Top/Bottom/Left/Right Line Width

上/下/左/右边框线宽度

Backcolor

背景色

Hyperlink

超链接选项卡

允许在元素中定义图像、文本字段和图表的超链接。

java. Lang.String

常量字符串

Undo

撤消

Redo

恢复

Outline

大纲视图

从大纲视图中我们发现,一个 表包含很多固定的面板。在每一个 表中标题和汇总(summary)面板只打印一次,页眉(header)和页脚(footer)在 表的每一页都会独立打印。我们可以直接在field中新增、删除字段,还可以将字段拖拽到 表的细节面板中,Jasper Studio将会为我们创建一个文本字段(text field)元素,并设置其值为对应字段的数据。文本字段不应出现在除细节面板之外的其它地方。

Field

字段

大纲视图下的子单元菜单,在 表中,有三组对象可以存储值:字段(Field)、参数(Parameters)和变量(Variables)。点击“Create Field”按钮,对当前 表进行新增字段;“Field”表单下会显示当前 表中所有的字段信息。

Parameters

参数

大纲视图下的子单元菜单,在 表中,有三组对象可以存储值:字段(Field)、参数(Parameters)和变量(Variables)。

Variables

变量

大纲视图下的子单元菜单,在 表中,有三组对象可以存储值:字段(Field)、参数(Parameters)和变量(Variables)。

Text Field Menu

动态文本菜单

鼠标在面板中选中动态文本,点击鼠标右键,弹出菜单,菜单目录如下:

Undo Change Text Field Expression:撤消更改文本字段表达式

Redo:恢复

Cut:剪切

Copy:复制

Paste:粘贴

Copy Format:

Enclose into Frame:装入框架

Save as Composite Element:

Add to Template Set:

Delete:删除

Show Properties:

Order:

Align in Container:

Size to Container:

Arrange In Container:

Oragnize as Table:

Add Detail Band:

Stretch To Content:

Convert to Static Text:转换为静态文本;将动态文本属性调整成静态

Fit text in element:在元素中调整文本;

JSON Tags:

CSV Tags:

XLS Tags:

PDF 508 Tags:

Report State

告状态

操作编译jasper文件中的jrxml源文件时,显示编译运行的日志信息

Page Format

页面格式

主要是模板页面的属性信息,包含:Format(纸张大小,A4、A3等等),Width(纸张宽度),Height(高度),Page Orientation(页面方向,包含选项:Portrait(纵向)、Landscape(横向)),Units(单位,cm、mm、pixel等),Margins(边距,包含:Top(上部)、Bottom(下部)、Right(右边)、Left(左边)),Columns(面板,包含:Columns(面板数量)、Column Width(面板宽度)、Space(空间)、Print Order(打印顺序,包含选项:Vertical(垂直)和Horizontal(水平)))。

Location

坐标

以当前元素的左上角的坐标作为当前元素的坐标。

 Jaspersoft Studio 定义了一些内置参数(Parameters),具体说明如下:

内置参数

说明

REPORT_PARAMETERS_MAP

使用者调用 API 中的 fillReport() 方法所传入的 Map 型键值对参数。

REPORT_CONNECTION

表中的 JDBC connection,用于执行 SQL 语句。

REPORT_MAX_COUNT

表所能填充的最大记录数。如果未指定,则没有限制。

REPORT_DATA_SOURCE

如果没有使用 JDBC connection(比如非数据库的数据源 CSV 等),将会使用这个参数。

REPORT_SCRIPTLET

表创建时的脚本实例,默认使用 net.sf.jasperreports.engine.JRDefaultScriptlet。

REPORT_LOCALE

locale 区域设置,一般用于国际化场景。默认为系统值。

REPORT_TIME_ZONE

所在时区,默认为系统值。

REPORT_FORMAT_FACTORY

默认实现是 net.sf.jasperreports.engine.util.FormatFactory。可以参考该工厂类,实现自定义工厂。

REPORT_CLASS_LOADER

可用于设置 表填充时的 class loader。

REPORT_URL_HANDLER_FACTORY

可用于指定创建 URL handlers 实现工厂。

REPORT_FILE_RESOLVER

默认实现是 net.sf.jasperreports.engine.util.FileResolver,用于解析 表中的资源路径,也可以自定义。

REPORT_VIRTUALIZER

定义 表填充器的实现类,默认为 JRVirtualizer 接口的实现类。

IS_IGNORE_PAGINATION

Boolean 类型,分页开关。默认情况下,除了导出 excel 与 HTML 之外,其它情况不分页。

常见问题处理

问题

原因

解决方法

Element reaches outside frame width:x =0,width=122,available width=120

元素达到外部框架宽度:x=0,宽度=122,可用宽度=120

根据 错信息,调至到Source界面,查看错误元素位置,在模板中进行调整修改

An internal error occurred during: “Building report”.java.lang.Null Pointer Exception

正确表达式为:

eld>

ield>

Text>

cText>

Jaspersoftstudio生成jrxml的版本与打开jrxml的版本不一致

使用新版本的Jaspersoftstudio打开jasper文件重新生成jrxml。

根据模板(模板仅一页内容)执行打印时,打印机会打印出一张有内容的和一张空白页,或会进行正反两面打印(一面有内容一面没内容)

维护模板时模板有空白页产生

Jaspersoftstudio软件高版本中会自动将条码信息以明文的形式显示出来

提示 错:

There are compilation errors please fix the design.

详细 错:

Invalid character constant

Errors were encountered when compiling report expressions class file:

使用了Jasper格式进行编译预览,导致无法保存

可以使用jasper文件对应的rxml文件在设计器中进文件行编译

详细 错:

The operator / is undefined for the argument type(s) java.lang.String,java.lang.String

Error were encountered when compiling report expressions class file:

当配置单打印显示为null时

jasper模板中动态文本的编 未在模板字段关系中维护关联关系,导致无法映射关联取值

在模板字段关系中维护关联关系

当配置单打印显示为N/A时

根据模板字段关系的关联关系,校验取值取到空值

当配置单动态取值打印照片显示为空白时

1、jasper模板中动态文本的编 未在模板字段关系中维护关联关系,导致无法映射关联取值

2、根据模板字段关系的关联关系,校验取值取到空值

因为对用的数据库表中无结果数据

在对应的数据表中插入数据,使得查询的视图中存在可用数据。

获取打印模板通过打印服务器进行打印时,发现打印内容不展示,空白显示(有时候会出现部分信息能够打印显示,部分信息不能够打印显示)

打印服务器字体中不包含打印模板中的字体,导致无法进行信息展示

将打印模板中的字体调整为打印服务器中有的字体

通过Jaspersoft Studio设计器打开别人发的jasper格式文件时,页面有 错提示:Failed to create the part‘s controls ,紧接着页面关闭。

接收到的jasper格式文件采用的是低版本( 6.2.0

)的Jaspersoft Studio设计器编译生成的,高版本的设计器在打开时不兼容

使用高版本的Jaspersoft Studio设计器打开对应jrxml文件进行重新编译生成jasper文件

函数表达式

表达式

含义

备注

“”.equals( $F{D020} )”:$F{D020}

当变量D020的值等于空字符串时,返回为“X”,否则,返回对应的变量值

equals()方法用于判断两个对象是否相等。

$F{D090}.replace(“|”,”n”)

当变量D090的值中出现“|”时,将“|”替换成换行符

replace() 方法通过用 newChar 字符替换字符串中出现的所有 searchChar 字符,并返回替换后的新字符串。

null==$F{D001} :$F{D001}.concat(“_”).concat($F{D006})

当变量D001的值为null时,将变量D001的值赋予为空字符串,否则,将返回对应的变量值,最后将D001值和D006值用“_”进行拼接。

concat() 方法用于将指定的字符串参数连接到字符串上。

$F{H004}.substring(0,4)

截取变量H040的值前四位

substring(int,int)

null == $F{D020} || “”.equals( $F{D020} )”:$F{D020}

当变量D020等于空字符串或null值时,返回为“X”,否则返回对应的变量值

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92895 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐