1、编写jrxml文件
-  1.1 新建项目
 使用Jaspersoft Studio来创建一个项目,如图所示,新建一个项目,步骤: File -> New -> Project->JasperReportsProject 
- 1.2 新建一个Jasper Report模板
 找到你新建的项目。步骤:项目右键 -> New -> Jasper Report,选择 Blank A4 (A4纸大小的模板),然后点击Next并对模板命名 
 如图所示,报表模板被垂直的分层,每一个部分都是一个Band,每一个Band的特点不同: 
 Title(标题): 只在整个报表的第一页的最上端显示。只在第一页显示,其他页面均不显示。
 Page Header(页头): 在整个报表中每一页都会显示。在第一页中,出现的位置在 Title Band的下面。在除了第一页的其他页面中Page Header 的内容均在页面的最上端显示。
 Page Footer(页脚): 在整个报表中每一页都会显示。显示在页面的最下端。一般用来显示页码。
 Detail 1(详细): 报表内容,每一页都会显示。
 Column Header(列头): Detail中打印的是一张表的话,这Column Header就是表中列的列头。
 Column Footer(列脚): Detail中打印的是一张表的话,这Column Footer就是表中列的列脚。
 Summary(统计): 表格的合计段,出现在整个报表的最后一页中,在Detail 1 Band后面。主要是用来做报表的合计显示。
-  1.3 通过拖拽右边控件到指定位置画出一个人员信息的报表模型 
 红框部分,上面是各种组件窗口,下面是组件的属性设置窗口。 
-  1.3.1 JasperSoft studio常用控件的使用方法
 1.Static Text: 静态文本控件,用于展示静态文本
 2.Text Field: 动态文本控件,可从数据库,或者是Map集合,或者JavaBean中获取数据,然后填充到此组件中。
 语法:$F{value}
 3.Image: 图片控件,此控件有两个常用值,如下图所示: 
 在这里选择第一项可以动态加载工作空间中的图片资源。
-  1.4报表页面介绍      
-  1.5子报表的使用
 运行效果: 
 1.5.1首先制作一个子报表
 在Jasper Studio中新建一个模板文件,这里我就叫做【subReport.jrxml】,将模板文件中除了Detail区域之外,其余的都删除,如下图示: 
 接着添加三个Text Field文本域组件到Detail区域里面,调整样式,修改Detail区域高度等于30px,这里修改高度是为了让子报表的高度根据数据的来自动扩展。 
 到这里,子报表就算已经制作完成了,当然你要增加样式,你可以根据实际需求改动,我这里只是告诉你如何制作父子报表。
-  1.5.2父报表中引用子报表
 首先父报表中需要新增一个字段  
- 此时会弹出一个窗口,让你选择子报表文件的路径。  
 
- 选择成功之后,调整一下子报表的样式,最终样式如下所示。 
- 设置子报表的数据源 
 设置子报表路径  
- 设置子报表数据源 
 需要注意的是,数据源类型必须使用
 【new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subData})】方式包装起来。不要问为什么,就按照这样写就没问题,不然会报错。
- 到这里,我们的父子报表模板文件就制作成功啦,编译模板文件,生成对应的文件,将其放入到Java工程里面。







![【PYG】Planetoid中边存储的格式,为什么打印前十条边用edge_index[:, :10]](https://img-blog.csdnimg.cn/direct/1909b053a7d7489eb61ccb86baec98e0.png)











