编程语言
首页 > 编程语言> > Jasper iReport Java List Datasources设计多个并列表格 平行表格 Subreport

Jasper iReport Java List Datasources设计多个并列表格 平行表格 Subreport

作者:互联网

### 一、表格制作
我们知道,iReport制作表格一般通过Column Header Band和Detail Band来完成,在Column Header中使用Static Text完成表头制作,在Detail中通过Text Field制作表体内容
![image.png](http://blog.jerrym.top/upload/2020/12/image-052388f410e7406f9c884f8e599c8da9.png)
值来自Fields
![image.png](http://blog.jerrym.top/upload/2020/12/image-d5882b78340e4c7ba0f0f4ad270795bd.png)
```java
Map<String, Object> itemMap = new HashMap<>();
CheckoutReport report = reports.get(i);
//数据源Parameters
itemMap.put("reportCode", report.getCheckoutReportCode());
itemMap.put("customerName", report.getCustomerName());
itemMap.put("customerInvCode", report.getCustomerInvCode());
itemMap.put("invCode", report.getCheckoutPlan().getInvCode());
//图片路径
itemMap.put("invImg", fileProperties.getPath().getPath() + FileUtil.IMAGE + File.separator + report.getInvImg());
List<Map<String, Object>> data = new ArrayList<>();
Map<String, Object> dataDetail = new HashMap<>();
dataDetail.put("checkoutDetailName", "");
dataDetail.put("checkoutItemName", "");
data.add(dataDetail);
JasperFillManager.fillReport(jasperReport, itemMap, data)
```

### 二、并列/平行表格制作
一般一个Report只有一个Column Header和Fields,在一个report中做展示两个不同结构的表格,可以考虑Table组件,但我们这里使用Subreport的方式来实现。Subreport正常效果是主子表展示,即一行主列表内容下面跟着子列表的内容,要做成并列列表需要把两个列表都做成Subreport,父报表不包含列表,如下图:
![image.png](http://blog.jerrym.top/upload/2020/12/image-a76832e28f494c6c8f10a5b08dfba26c.png)
建立两个Detail Band,分别拖一个Subreport组件到里面,Subreport按上一步的表格方式正常设计,删除其他所有Band,只保留Column Header和Detail
赋值时,对上上一步的dataSources做如下修改:
```java
//指明子报表jasper文件路径
itemMap.put("SUBREPORT_DIR", fileProperties.getPath().getPath() + FilePath.JASPER_REPORT_PATH + File.separator);
Map<String, Object> dataDetail = new HashMap<>();
dataDetail.put("standardDetails", new ArrayList<Map<String, String>>());
dataDetail.put("resultDetails", new ArrayList<Map<String,String>>());
data.add(dataDetail);
```

原文地址:http://blog.jerrym.top/archives/jaspermultipletable

标签:Java,Datasources,表格,dataDetail,image,report,itemMap,put,new
来源: https://www.cnblogs.com/GeorgeMei/p/14103566.html