1      开发工具

1.1  软件名称

名称:TIBCO Jaspersoft Studio

版本:6.0或以上,建议6.2.1

1.2  软件安装

免安装软件包,拷贝即可使用,建议放在D:盘或其它自己好找的目录。

拷贝好软件后,可为主程序创建一个快捷方式:

1.3  TIBCO Jaspersoft Studio界面说明

安装好后打开主界面,关掉欢迎页面,即可出现开发主界面,如下:

打开或设计报表时,为如下界面:

2      报表设计

2.1  工作空间设置

打开主菜单“File —> Switch WorkSpace”,选择你打算存放报表工程及报表设计文件的目录。

点击OK后,程序将自动关闭并重新启动。如果没有重启,请手工重新打开。

2.2  报表工程目录结构说明

重新打开界面后,系统会自动创建一个默认的报表工程:

此时,在你工作空间所在目录会生成如下文件夹:

在MyReports目录里创建3个目录:

l  JSON:用于后期存放在设计报表格式时用到的样例数据文件

l  DataAdapter:用于存放设计报表需要定义的数据源

l  Print:报表设计文件(*.jrxml)及编译好的报表格式文件(*.jasper)

2.3  生成JSON数据文件

l  用浏览器打开猿猿企业管理系统(这里以谷歌浏览器为例进行说明),登录后打开需要设计打印格式的功能界面(如采购订单),打开(或新建)一张有多行商品数据的单据。

l  按下F12,打开调试界面,在单号位置输入单号回车,如下图。

按图中的步骤,找到JSON数据,并将其全部复制出来(也许是第一个action,也可能是最后一个,更有可能是几个合起来(,"SER_FWDFASP":[{"YH)。

l  可在浏览器中打开JSON解析工具对JSON字符串进行格式化。解析工具地址:http://www.bejson.com/jsonview2

l  将刚才格式化好的JSON字符串复制粘贴到新建的文件中,并进行编辑:

n  将前5(7)行替换为【{"PUR_CGDD":】

n  后4行替换为 【}】

n  替换完毕后,能在试图中看到以下结构则表示格式正确,可以继续后续操作:

n  

l  切换到报表设计工具,在报表工程的JSON目录创建一个JSON文件:
在JSON目录点鼠标右键àNew/Fileà输入文件名PUR_CGDD1.json-->Finish

l  将刚才编辑好的JSON字符串全选,拷贝到新文件中。

l  样例数据到此准备就绪。

2.4  创建数据源(Data Adapter)

在工程的DataAdapter目录点右键àNewàData Adapter,打开如下界面:

点Next:

选择JSON File,点Next:

输入数据源名称;

File/Url位置选中刚才建好的json文件名;

选择Use the report JSON expression when filling the report。

点击Finish。

测试一下,成功则进入下一步。

2.5  创建主报表

在Print目录(或其子目录)点右键àNew/Jasper Report,打开如下界面:

Next:

输入打印报表名称PUR_CGDD1.jrxml,Next:

选择刚才建好的数据源,在下面的列表里选中主节点“PUR_CGDD”,Next

可用字段全选,Finish。(主报表不需要设置分组字段Group by)

界面上出现了一个待设计的空打印模版。

上面有若干个栏位,删除其他栏位,保留Page Header、Detail 1、Page footer,并适当拉宽3者的高度,以方便放置内容。

2.6  设置打印纸张

在下图方框区域点右键àPage Format…,调出纸张设置对话框:

按纸张实际大小进行设置,注意将所有单位设置成mm(毫米)。

2.7  放置打印内容

2.7.1  静态文本

在右上方组件区域找到【Static Text】,鼠标选中后,在页面空白处点击一下或者拖放到页面,即可增加一个静态文本组件。

双击该组件可对需要显示的文本内容进行编辑。通过工具栏的相关按钮可对字体、文本对齐方式、组件对齐方式进行调整。

2.7.2  单据字段

在屏幕左下方的组件列表中找到Fields列表,将需要的字段拖放到报表上。当拖放到Detail 1区域时,系统会生成一个静态标签和一个字段值标签,拖放到其他位置时只有字段值标签。

将组件进行相应编辑,并拖放到PageHeader的相应区域。

继续添加完其它字段内容,预览如下:

2.7.3  条码

条码在拖放到报表上时,会要求选择条码格式,请按公司扫码设备要求进行选定。选定后,在右下方的组件属性栏选择“AdvancedàCode Expression”,弹框选择对应的字段即可。

2.7.4  合计字段配置 ?

在界面右下方的报表元素列表Variables栏增加一个Variable;

在右边的属性中做如下设置:

报表元素

取值必须修改为Double类型,不然无法相加数据,Double才正常

最后把这个Variable拖拽到ColumnFooter区域。

2.7.5  数量金额格式设置

选中相应的数量、金额字段后,在属性页面找到属性”TextField Properties/Pattern”,点后面的按钮调出格式设置对话框进行设置即可。

2.8  创建子报表(多个query.action时,子表需关联新的json)

在右上方将Subreport拖入Detail 1,弹出如下界面:

选择Create anew report,Next,默认纸张,输入子报表的文件名:

然后选择数据源:

Next,与主报表一样选择所有字段,再Next,选择Group by 字段(CKKQID):(只有需要按某字段分组时才选此项,否则直接Next)

Next,选择子报表获取数据表达式:

按下列表达式填入文本框,其中最后的双引号中是子表对应的JSON节点名称。(填入软件)-改expression为主目录"PUR_CGDDMX.J"

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("PUR_CGDDMX")

点击Finish,生成子报表,子报表只保留“Column Header、Detail 1、Column Fooder”三个区域。

然后将商品明细需要展示的字段拖到Detail 1区域,并排版。

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("CRM_VIPCLXX")

CRM_VIPCLXX取值另外一个aciton的CRM_VIPCLXX

跨表取值必须建立子报表

subDataSource取值

2.9  分组设置

首先,在子报表创建时,在Group by页面选择要分组的字段(采购订单上为:CKKQID);

在子报表设计页面左下方的CKKQID Group Header,点右键Add Header Band;

将CKKQID、CKKQMC等字段配置到新增加的Group Header Band区域。

所有设置完毕后,预览效果,如下:

分组增加代码:1、  <sortFieldname="FABHMC" order="Descending"/>

(order=“Descending”表示倒序排列)

2、分组重新开页

2、<groupname="FABHMC"isStartNewPage="true">

<groupExpression><![CDATA[$F{FABHMC}]]></groupExpression>

</group>

3、合计按分组打印

3      报表文件的配置与发布

l  报表文件设计好后,经过编译(BuildALL),可在报表目录生成*.jsper文件。

l  将两个*.jsper文件拷贝出来,放在Tomcat/bin/resources/print目录下与该功能界面jsp相同的子目录中。

l  并在界面配置表中按钮定义表里打印按钮的AURL字段设置为对应的主报表文件名称。

l  报表格式即发布成功。

编辑窗口:

1、  显示不了中文:

Ⅰ编码转换

Source添加如下内容:

<propertyname="com.jaspersoft.studio.data.defaultdataadapter"value="OneEmpty Record"/>

<propertyname="com.jaspersoft.studio.unit."value="mm"/>

<propertyname="com.jaspersoft.studio.unit.pageHeight"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.pageWidth"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.topMargin"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.bottomMargin"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.leftMargin"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.rightMargin"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.columnWidth"value="mm"/>

<propertyname="com.jaspersoft.studio.unit.columnSpacing"value="mm"/>

<stylename="myStyle"isDefault="true"pdfFontName="STSong-Light"pdfEncoding="UniGB-UCS2-H"isPdfEmbedded="true"/>

II时间格式转换:newSimpleDateFormat("yyyy-MM-dd HH : mm : ss").format(newjava.util.Date(Long.parseLong($F{SHRQ_SJ})))

III空值改成不显示

IX打印分组:

1、  对BXBJ进行分组

2、  将BXBJ字段复制到新增分组

X.将数字进行文字判断转换(待研究):

IF ($F{BXBJ}=="0","选修","必修")

XI.将分页改为按分组计算:

4      问题总结

4.1  日期显示问题

描述1:jaspersoft 上显示的是日期时间,在网页上为秒数

解决:网页json转jaspersoft时会成为日期时间的,所以要加上日期函数

描述2:有日期函数的可以为空。

解决:运用三元运算符做判断,jaspersoft不能用if…else;有日期函数时,为空会报错。

$F{YQJCSJ}.equals("0")?"无":newSimpleDateFormat("yyyy-MM-dd").format(new java.util.Date(Long.parseLong($F{YQJCSJ})))

描述3:在网页json上加上了相应的字段,但是在网页上还是显示不出来。

解决:单单在网页json上添加是不能显示的,还需在数据库相应的表上添加相应的字段;

4.2  其它

用double和INT刚好取值0有问题

用java.math.BigDecimal这个方法避免

4.3  模板三目运算判断

连续的三目判断:

表达式:

($F{ZCZT}.equals("1")) ? "在库" : (($F{ZCZT}.equals("2"))? "在用" : (($F{ZCZT}.equals("3"))? "闲置" : (($F{ZCZT}.equals("4"))? "维修" : (($F{ZCZT}.equals("5"))? "借出" : (($F{ZCZT}.equals("6"))? "报废" : (($F{ZCZT}.equals("7"))? "调拨售出" : (($F{ZCZT}.equals("8"))? "盘亏待处理" : ($F{ZCZT}.equals("9"))? "盘亏" : "Cancelled")))))))

如:

Jaspersoft Studio报表设计的更多相关文章

  1. TIBCO Jaspersoft Studio 报表软件使用教程

    Detail 1里面放置动态内容框可以循环遍历数据 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn ...

  2. Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表

    在接下来的教程中,我们将实现一个简单的JasperReports示例,展现其基本的开发.使用流程.文章很长,不过是以图片居多,文字并不多. 实例中使用最新的Jasper Studio5.2进行报表设计 ...

  3. 1.报表TIBCO Jaspersoft Studio工具教程入门--生成jrxml和jasper文件 然后拖拽到项目中 跟ireport一样

    转自:https://blog.csdn.net/KingSea168/article/details/42553781 2. 在接下来的教程中,我们将实现一个简单的JasperReports示例,展 ...

  4. jasperReport Studio java报表设计(详细)

    一.环境搭建 在spring-mvc.xml加入 <!-- jasperReports--><import resource="classpath*:spring-mvc- ...

  5. 从iReport至Jaspersoft Studio

    这篇文章同步到http://www.waylau.com/from-ireport-to-jaspersoft-studio/ 从5.5版本号開始,Jaspersoft Studio将代替iRepor ...

  6. jaspersoft studio 的初级入门(一)

    前言 最近的工作涉及到企业的报表生成功能,于是就想用此篇博客来记录我的学习历程.进入Jasperreport项目的官网发现有一个软件叫Jaspersoft studio的,它的版本也是6.3.1跟Ja ...

  7. ActiveReports报表控件 V13 正式发布,提供在线报表设计和自适应报表布局

    重磅消息, ActiveReports V13 正式发布!本次更新 ActiveReports 将给您带来全新的报表设计体验:提供在线报表设计器.提供响应式布局和屏幕尺寸自适应能力.提供全新的图表…… ...

  8. Jaspersoft Studio简介

    参考来源:https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v640/introduc ...

  9. 加快FineReport报表设计的几个心得体会

    加快FineReport报表设计的几个心得体会 一.从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度.否则每次设计时模板均要从远程读取数据,速度相当慢 ...

随机推荐

  1. Node.js躬行记(5)——定时任务的调试

    最近做一个活动,需要用到定时任务,于是使用了 node-schedule 库. 用法很简单,就是可配置开始.结束时间,以及重复执行的时间点,如下所示,从2020-12-23T09:00:00Z开始,每 ...

  2. MM-采购模块相关业务

    采购模块主要业务流程: 1.收集采购需求(采购申请单),系统采购申请单单据可以由需求部门手工产生,也可以由系统的MRP(物料需求计划)来产生. 2,货源确定,用来确定所申请的物料,通过何种方式向供应商 ...

  3. Android猜数字大小游戏

    功能介绍:该程序能够提示猜大了猜小了,并且对空白输入处理,还对猜测次数限制,提供重置功能. 1.先看界面,一个输入框EditText,两个Button 2.界面设计  activity_main2.x ...

  4. 使用JMeter进行压力测试

    使用JMeter进行压力测试(基础篇) 1.启动Jmeter 双击图中所示文件出现如下图所示即启动成功 2 新建测试计划 File------>new 2.1右键新建线程组 add-----&g ...

  5. 有两张表;使用SQL查询,查询所有的客户订单日期最新的前五条订单记录。

    客户信息表(c CUSTOM)有以下字段:id.name.mobile 客户订单表(C_ORDER)有以下字段:id.custom_id.commodity.count.order _date Sel ...

  6. Spring—SSJ集成&声明式事务管理

    1.   课程介绍 1.  SSJ集成;(掌握) 2.  声明式事务管理;(掌握) 什么是三大框架 2.1.  ssh Struts/Struts2 Spring Hibernate 2.2.  ss ...

  7. Kubernetes K8S之通过helm部署metrics-server与HPA详解

    Kubernetes K8S之通过helm部署metrics-server与 Horizontal Pod Autoscaling (HPA)详解 主机配置规划 服务器名称(hostname) 系统版 ...

  8. JedisCluster使用pipeline操作Redis Cluster最详细从0到1实现过程

    公众号文章链接:https://mp.weixin.qq.com/s/6fMsG009RukLW954UUndbw 前言 2020年4月30日,Redis 6.0.0正式发布,标志着redis从此告别 ...

  9. HarmonyOS(LiteOs_m) 官方例程移植到STM32初体验

    HarmonyOS(LiteOs_m) 官方例程移植到STM32初体验 硬件平台 基于正点原子战舰V3开发板 MCU:STM32F103ZET6 片上SRAM大小:64KBytes 片上FLASH大小 ...

  10. centos7搭建sonarqube环境+jenkins部署全流程

    一.简介sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量 不遵循代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写.潜在的 ...