如何在导出报表时动态添加分组列原创
4人赞赏了该文章
4,053次浏览
编辑于2022年04月14日 17:44:13
关键词:报表、导出、分组
一、需求背景
报表查询了一个采购申请单的一些数据,在报表查询的时候没有显示分组,但是导出时需要在导出的excel中添加分组列,把申请数量和计量单位放在一个分组中
二、思路与方案
报表导出时,触发报表导出事件preProcessExportData,在该事件中把要添加到分组的列移除,并添加到指定分组列的子列中
三、实现过程
配置查询数据源
2.添加报表插件,继承AbstractReportFormPlugin,在报表导出之前事件中添加添加动态分组列
// 报表导出之前,数据加工 @Override public void preProcessExportData(List<AbstractReportColumn> exportColumns, DynamicObjectCollection data, NumberFormatProvider numberFormatProvider) { //创建分组列 ReportColumnGroup reportColumnGroup = new ReportColumnGroup(); //标题 reportColumnGroup.setCaption(new LocaleString("动态分组")); //字段名 reportColumnGroup.setFieldKey("exportGroup"); Iterator<AbstractReportColumn> iterator = exportColumns.iterator(); while (iterator.hasNext()) { AbstractReportColumn exportColumn = (AbstractReportColumn) iterator.next(); LocaleString caption = exportColumn.getCaption(); String localeValue = caption.getLocaleValue(); if (localeValue.equals("申请数量")||localeValue.equals("计量单位")) { //把指定的列添加到一个分组下面 reportColumnGroup.getChildren().add(exportColumn); //List遍历删除必须用迭代器 iterator.remove(); } } //添加导出的分组列 exportColumns.add(reportColumnGroup); super.preProcessExportData(exportColumns, data, numberFormatProvider); }
四、实现效果
点击引出按钮导出excel表数据,可以看到,申请数量和计量单位添加到了动态分组列的下面
五、开发环境版本
COSMICV4.0.010.0
六、参考资料
reqPreProcessExport.zip(1.09KB)
赞 4
4人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读