ireport 循环_ireport5.6.0分组显示

本文介绍了如何在iReport中进行分组设置,包括创建模板、连接数据源、设置SQL查询并添加分组,以及Java调用实现分组报告的步骤。在Java调用时,通过传递数据库连接来运行报告并生成PDF。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,ireport中分组

二,java调用实现分组

一,ireport中分组:

1,新建模板文件,纸张随意,名称随意,路径随意

2,连接要分组的数据源

3,添加测试表和数据

CREATE TABLEyananTest (

departIdINT,

departNameVARCHAR (20),

stuNameVARCHAR (20)

)GO

INSERT INTO yananTest VALUES(1,'开发部','张亚南'),(1,'开发部','随意'),(2,'实施部','实施1'),(2,'实施部','实施2'),(2,'实施部','实施3'),(3,'销售部','销售1')GO

View Code

4编写sql查询数据

勾选自动提取字段或点击读取字段,能出来蓝色行表示查询无误。点击ok,确定后在左侧Fields字段自动出现蓝色行的字段

5,右击报表点击add report group

groupname随意,选择departId,departId是要分组的依据

下一步中的 group header footer根据自己实际情况,此处为了展示都要

确定后detail1前后会加上分组header和footer

6拖动departName到header栏,stuName到detail1栏,footer随便加一条横线

如果组件面板不显示的话在窗口中点击组件面板即可

拖动后为了美观好看可以调整header、footer、detail1栏的边界线调整下高度

大功告成,点击预览

二,java调用实现分组

我的第一思路是,删除sql语句在Fields中添加字段,java中传参,行不通,因为调用的时候,Fields是接收不到java的传参的。我的第二思路是在Parameters中建立这几个字段,然后传参,仍然行不通,因为分组只能是字段(有待进一步研究),传参是集合。我的第三想法是添加dataset,进行分组,呜呜,初接触我还不会,等以后确定了再补上。最后千辛万苦终于找到方法

sql语句不变,java传数据库连接

方法如下:

将上述report1.jrxml编译后将生成的report1.jasper文件copy到项目指定目录下,我的是目录是i根目录下的report

实现如下代码

@RequestMapping("/test")

@ResponseBodypublic void test(HttpServletRequest req,HttpServletResponse res) throwsException{

Map map = new HashMap();

String realPath= ClassUtils.getDefaultClassLoader().getResource("").getPath();//项目根目录。该处是springboot方式

ServletContext context =req.getSession().getServletContext();

WebApplicationContext wac=WebApplicationContextUtils.getRequiredWebApplicationContext(context);

DataSource dbSource= (DataSource) wac.getBean("dataSource"); //配置文件里的beanid

Connection conn =dbSource.getConnection();byte[] bytes = JasperRunManager.runReportToPdf(realPath + "ireport/report1.jasper", map, conn);

res.setContentType("application/pdf");

res.setContentLength(bytes.length);

ServletOutputStream out=res.getOutputStream();

out.write(bytes,0, bytes.length);

out.flush();

out.close();

}

View Code

启动项目访问即可出现步骤一6中的pdf页面部分。如果中文不显示,参考之前的文章@ireport初接触

至于java中使用ireport详细说明,参考下一篇文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值