JasperReport动态页面的设置

使用工具为 TIBCO Jaspersoft Studio-6.19.0

JasperReport实现动态报表主要分为几个方面。
1、元素高度的动态变化,也就是字数过多时候,会自动往下移动。
2、位置的动态变化,当高度是动态的时候,高度的动态变化也是必然需要的。
3、动态显示某个区域的问题,例如当没有优惠券的时候,我们是不需要显示优惠券这一块区域的。
接下来我会进行说明。

一、高度变化
Text Fileld的高度自动调节

在使用Parameters去接收参数的时候,我们不确定输入的参数长度是多少,这样子我们就需要去动态的调整高度,以让内容全部显示出来。

默认的我们的Text Adjust的属性默认为CutText。意思很直白,就是多余的字段会直接剪掉。我们需要调整为stretchHeight,意思是高度是动态的,另外一个ScaleFont,翻译一下我们就知道,这个是缩放字体的意思,只不过缩放字体有时候还是会放不下需要展示的内容。

调整如图所示:
在这里插入图片描述
测试结果如下图
在这里插入图片描述
在这里插入图片描述

二、位置的动态调整

位置的调整在Position type里面。选择Float就可以了,这样子位置就移动了。
不过需要注意的是,上下两个元素的位置不能重合,不然的话,float就会失效。

在这里插入图片描述
不使用float的时候,高度变化就会出现这种情况
在这里插入图片描述

在这里插入图片描述

三、动态显示某块区域

单个Parameters可以使用 Blank When NULL,意思是里面值为空的时候不显示,不然的话会显示null。当里面有部分静态元素时,可以使用**Print When Expression **,使用上Remove Line When Blank则会移除掉空行。

Print When Expression需要填充一个Boolean值,如果为真,则显示这块区域,如果为假,则不显示,jasperReport的Boolean写法是这样子的Boolean.TRUE。Remove Line When Blank的意思则是为空的时候,移除掉改行,配合位置Float类型,可以让元素往上面移动。

举个栗子

1、先建立一个Parameter,flag。

在这里插入图片描述

2、把元素拉入Detail里面,并加入Static text

在这里插入图片描述

3、调整显示

把参数的Blank with null勾上,钩上remove line when blank
在这里插入图片描述
静态元素写上print when expression的表达式,钩上remove line when blank

($P{flag}== null ||$P{flag}  =="") ? Boolean.FALSE : Boolean.TRUE
4、下一段的语句选择float

让我们来看一下效果
当flag不为空时:
在这里插入图片描述

当flag为空时:

在这里插入图片描述

要在 JSP 页面中使用 JasperReport,可以按照以下步骤: 1. 在你的项目中导入 JasperReport 的相关库文件。 2. 创建一个 JasperReport 报表模板文件,可以使用 JasperReport 的设计工具 iReport 进行创建。 3. 在 JSP 页面中编写代码,创建一个 JasperReport 报表,并填充数据。 4. 将 JasperReport 报表输出到指定的输出流。 下面是一个简单的示例代码,演示如何在 JSP 页面中使用 JasperReport: ```java <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="net.sf.jasperreports.engine.export.*" %> <%@ page contentType="application/pdf" %> <% // 创建一个 JasperReport 报表 JasperReport jasperReport = JasperCompileManager.compileReport("report_template.jrxml"); // 填充数据 Map<String, Object> params = new HashMap<String, Object>(); params.put("parameter1", "value1"); params.put("parameter2", "value2"); JRDataSource dataSource = new JREmptyDataSource(); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource); // 输出 JasperReport 报表到指定的输出流 OutputStream out = response.getOutputStream(); JasperExportManager.exportReportToPdfStream(jasperPrint, out); %> ``` 在这个示例代码中,我们首先创建了一个 JasperReport 报表,并填充了一些数据。然后,我们将 JasperReport 报表输出到一个 PDF 文件中。在这个例子中,我们将 PDF 文件直接输出到了 JSP 页面的输出流中,因此最后生成的 PDF 文件将直接在浏览器中显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值