Jaspersoft Studio软件使用
简介
在企业级应用开发中,报表生成、报表打印下载是其重要的一个环节。在之前的课程中我们已经学习了报表中比较重要的一种:Excel报表。其实除了Excel报表之外,PDF报表也有广泛的应用场景,例如货运详情,货运单等。
目前世面上比较流行的制作PDF报表的工具如下:
- Jasper Report:是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF。Jaspersoft Studio的前身。
- iText PDF:iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
- Openoffice:openoffice是开源软件且能在windows和linux平台下运行,可以灵活的将word或者Excel转化为PDF文档。
常见操作
- 模板编辑器Jaspersorft Studio下载地址Find out more about Jaspersoft Studio | SourceForge.net
- JRXML:报表填充模板,本质是一个XML;Jasper:由JRXML模板编译生成的二进制文件,用于代码填充数据。
- 如何打开已经隐藏的窗口:菜单栏依次选择window→show view→other→已经隐藏的窗口名→Open
- 在TIBC Jaspersoft Studio 6.2.0版本下,在打开jasper文件编辑时在软件中是以jrxml文件格式进行体现的,要使用jxml文件进行模板编辑,在编辑完点击“Save”按钮,作用是:将当前编辑的结果保存成新版本的jrxml文件,并未生成新的jasper文件;点击“Compile Report”按钮,作用:根据当前编辑完成的jrxml文件内容,保存生成与之对应的jasper文件。
- 查看当前模板的纸张大小信息:鼠标移至模板页面左边线上部区域,点击鼠标右键,弹出模板菜单页面,在模板菜单页面点击“Page Format…(页面格式…)”按钮,调出纸张设置对话框。
- 新建模板步骤:在菜单栏中依此选择File→New→Jasper Report,进入到Report Templeates(报表模板)界面;在Report Templeates界面选择需要的模板,点击“Next”,进入到Report File(报表文件)界面,可修改模板存放路径和模板名称;在Report File界面点击“Finish”,完成报表模板创建(点击“Next”按钮,进入到Data Source(数据源)配置界面,不需要操作)。
- 在模板中添加元素:在“Palette”视窗中,选中自己所需要的元素(动态文本、静态文本、条形码文本等等),拖拽至模板中对应的位置上,完成模板元素新增操作。
- 在模板中给元素添加框架:通过鼠标选中所需元素,点击鼠标右键,弹出菜单页面,点击“Enclose into Frame”按钮,完成元素框架添加。
- 给动态文本添加字段:在“Outline”(大纲视图)菜单中,选中“Field”按钮点击鼠标右键,弹出菜单,点击“Create Field”按钮,在软件界面右边弹出字段的“Properties”(属性栏)窗口,可编辑字段的名称、字段描述、字段类(class,选择“java. Lang.String”)。
- 更改文件存储的位置:打开主菜单“File —> Switch WorkSpace”,选择你打算存放报表工程及报表设计文件的目录。
- 建立数据库连接:在“Repository Explorer”页签,依次进入“Data Adapter—>Create Data Adapter—>数据库连接方式(一般选择Database JDBC Connection)—>数据库连接配置(填写所连接数据库配置信息)—>Driver Classpath(添加相应数据库的jar包的存放路径)”
-
sqlserver本人选择框起来那个,选择另一个报错,所以看个人工具及数据库版本
连接数据库需要添加相应的jar包
MySQL:
Sqlserver:
- 建立主数据源(主档数据源)
界面元素解释
名称 |
翻译 |
备注 |
Jrxml |
jaspersoft的编辑文件格式 |
一种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 |
大纲视图 |
包含了当前编辑的报表的所有基础信息,包括一些固定区域的样式(Style)、报表参数(Parameters)、字段(Fields)、变量(Variables)、直接链接((Title)标题面板、(Detail)内容面板等)等,我们可以方便地查看和修改。点击一个面板的链接之后,我们可以在右侧的属性视图(Properties)中查看和修改该面板对应的一些基本属性,如高度、布局。 从大纲视图中我们发现,一个报表包含很多固定的面板。在每一个报表中标题和汇总(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 |
坐标 |
以当前元素的左上角的坐标作为当前元素的坐标。 |
Parameters 下的那些灰色参数,表示是系统级的参数,不能编辑或者删除它。
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 |
在代码来源(Source)一栏中报表代码中某个元素的类型开始和结束不一致 |
正确表达式为: eld> … … ield> 或 Text> … … cText> |
在Jaspersoftstudio软件界面,针对编辑好jrxml格式的文件,点击“Compile Report”按钮,无法保存生成jasper文件 |
Jaspersoftstudio生成jrxml的版本与打开jrxml的版本不一致 |
使用新版本的Jaspersoftstudio打开jasper文件重新生成jrxml。 |
根据模板(模板仅一页内容)执行打印时,打印机会打印出一张有内容的和一张空白页,或会进行正反两面打印(一面有内容一面没内容) |
维护模板时模板有空白页产生 |
针对仅有一页内容的模板,在每次编辑模板完成时都需要点击“Preview”进行模板预览,在模板预览界面中如果发现“Page 1 of 2”,那么就表示改模板占据两页,存在空白页,需要在“Outline”下选择当前模板的Properties(属性栏)找到“When no data type”一栏,选择“All Sections No Detail”,再点击“Compile Report”按钮,进行jrxml文件保存,再点击“Preview”进行模板预览,如果还不行,增大模板下边框间距,确保模板内容不超过纸张底线,再点击“Compile Report”按钮,进行jrxml文件保存,再点击“Preview”进行模板预览。 |
在编辑打印模板时,添加条码组件后,打印后会将条码中的数值显示到条码下方 |
Jaspersoftstudio软件高版本中会自动将条码信息以明文的形式显示出来 |
使用TIBC Jaspersoft Studio 6.2.0版本进行编辑带有条码组件的模板。 |
提示报错: 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中创建模板报表,连接数据库,编辑执行查询视图的SQL语句后,点击Jaspersoft中的预览界面,正常输入变量参数,无法预览。预览界面显示“Document is empty”。 |
因为对用的数据库表中无结果数据 |
在对应的数据表中插入数据,使得查询的视图中存在可用数据。 |
获取打印模板通过打印服务器进行打印时,发现打印内容不展示,空白显示(有时候会出现部分信息能够打印显示,部分信息不能够打印显示) |
打印服务器字体中不包含打印模板中的字体,导致无法进行信息展示 |
将打印模板中的字体调整为打印服务器中有的字体 |
通过Jaspersoft Studio设计器打开别人发的jasper格式文件时,页面有报错提示:Failed to create the part‘s controls ,紧接着页面关闭。 |
接收到的jasper格式文件采用的是低版本( 6.2.0 )的Jaspersoft Studio设计器编译生成的,高版本的设计器在打开时不兼容 |
使用高版本的Jaspersoft Studio设计器打开对应jrxml文件进行重新编译生成jasper文件 |
函数表达式
表达式 |
含义 |
备注 |
"".equals( $F{D020} )?"X":$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} )?"X":$F{D020} |
当变量D020等于空字符串或null值时,返回为“X”,否则返回对应的变量值 |
Jaspersoft Studio软件使用相关推荐
- TlBCO Jaspersoft Studio 软件根据条件设置字体颜色
最近客户提出一个需求,根据结果不一样设置字体颜色,我一听客户提出的要求,真想打死他,没办法只能撸起袖子干,在网上找些资料,很少,研究一点API,最终实现了.记录我的实现过程,希望能帮助大家. 1.找到 ...
- 模板设计器Jaspersoft Studio、结合JasperReports输出报表
Jaspersoft Studio是一个图形化的报表设计工具,可以非常方便的设计出PDF报表模板文件(其实就是一个xml文件),再结合JasperReports使用,就可以渲染出PDF文件. 1.下载 ...
- 玩转 Jasper Report(1) Jaspersoft Studio 安装使用教程
文章目录 1 摘要 2 Jaspersoft Studio 下载安装 3 导出PDF的完整示例 4 当前示例的 jasper 源码 5 推荐参考资料 1 摘要 Jasper Report 作为一个老牌 ...
- jaspersoft studio实践 --实现网页版打印小票(模板一)
由于项目业务需要,需要开发一个打印票据的需求.于是前面找了一堆资料来简单学习了下,就开始自己动手开发起来了,下面直接细说. 首先小票模板的设计就用到了Jaspersoft Studio这个软件(如果需 ...
- 【PDF报表】Jasperreports+jaspersoft studio快速入门
目录 一.JasperReport简介 二. JasperReport的开发步骤 1.生命周期 2.执行流程 三.模板工具Jaspersoft Studio 1.概述 2.安装配置 3.面板介绍 4. ...
- 说说下一代的报表设计器——Jaspersoft Studio
大家所熟知的报表设计器应该是 iReport,现在已经不再维护咯,Jaspersoft 公司已经把资源转向了 Jaspersoft Studio,所以我们就来看一看这个新一代的设计器吧. Jasper ...
- Jaspersoft Studio入门:从模板创建报告,并创建数据源
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource (usually a ...
- Jaspersoft Studio简介
参考来源:https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v640/introduc ...
- jaspersoft studio创建jasperreport模板 summary显示page header(页眉)
使用jaspersoft studio创建模板,page header在每页都显示,但是当这页只有summary部分时,就不显示page header. 解决方法:强制让page header在sum ...
最新文章
- Linux下的编译(环境是centos6.8 gcc 4.4.7)
- mysql查询某一时间段之后数据的sql_mysql进阶(十九)SQL语句如何精准查找某一时间段的数据...
- 手把手教你用 TensorFlow 实现文本分类(下)
- wordpress 文章页面 (single.php)
- python对csv数据提取某列的某些行_python pandas获取csv指定行 列的操作方法
- python ** 运算符_Python语法基础(2)运算符
- svnant-不可映射字符编码
- python dict排序
- TFN推出2.5G传输分析仪D240S 等待您来验证
- 基于Rasa_NLU的微信chatbot
- 在pytorch中实现十折交叉验证
- 破解寝室安装老毛子路由器校园网电信闪讯锐捷认证
- python中获取中位数的两种方法
- Android蓝牙配对
- php accesscontrolallowcredentials,No Access-Control-Allow-Origin 跨域错误解决
- python搜索pdf内容所在页码_使用pyPDF从文档中检索页码
- python基础知识ppt
- VMware安装优麒麟20.04LTS
- java怎么打开控制台_java控制台怎么打开?如何启用和查看 Java 控制台?
- idea 连接达梦数据库