电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

列表插件干预导出过程手册(按导入模板)

来源:金蝶云社区作者:金蝶2024-09-2315

列表插件干预导出过程手册(按导入模板)

# 1 产品概述 ## 1.1 产品介绍 导入导出框架,旨在提供一套统一的解决方案,预封装一批开箱即用的操作和插件接口,可以很方便的实现数据迁移、批量更新、数据抽取、数据备份、基础资料批量分配等功能,并统一对任务进行管理,生成执行日志。 业务领域使用这套统一的框架,可以无需关心后台线程的启动和管理,直接沿用平台已经封装好的功能界面。只需要专注于实现功能逻辑,提升开发效率,保障用户体验。 ## 1.2 业务场景 1、引出单据的列表时携带审批信息。 2、对生成的Excel动态增加列和增加对应的值。 3、修改导出文件的格式。 # 2 操作步骤 打开列表,找到【更多】>【导出数据(按导入模板)】菜单,点击下载(6.0及以下版本选引出数据(按引入模板))。 ![image.webp](/download/0100128ba4fcb5ce4957afc738dabd2ef0ec.webp) **如果存在多个模板,请选择你配置的导出模板下载。下载的excel格式同下图类似。** ![image.webp](/download/0100707b0b618ff745cf945d8e5732957c98.webp) **如果导出过程超过10分钟卡住不动,建议检查monitor日志查看是否报错中断。** # 3 插件干预 ## 方案:实现自定义列表插件 第一步:派生kd.bos.list.plugin.AbstractListPlugin类(或IListPlugin接口),实现插件干预执行类,重写下面四个方法: ```java /** 查询导出数据前事件,可以用来修改过滤条件、排序规则等 */ public void beforeQueryOfExport(BeforeExportFileEvent e) {} /**查询导出数据后事件,可以用来修改查询返回的数据,比如修改字段数据等 */ public void afterQueryOfExport(ExportFileEvent e) {} /** 导出文件前事件,目前只可以用来修改导出的文件名 */ public void beforeExportFile(BeforeExportFileEvent e) {} /** 导出文件后事件,可以用来修改导出的文件内容,比如修改excel数据、格式、加密等 */ public void afterExportFile(ExportFileEvent e) {} ``` 第二步:将上面这个实现类注册到列表插件中。 ![image.webp](/download/0100df02a489cae14641b323c3dfc6c9cbfd.webp) # 4 示例 ```java package kd.bos.designer; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.form.events.AfterQueryOfExportEvent; import kd.bos.form.events.BeforeExportFileEvent; import kd.bos.form.events.BeforeQueryOfExportEvent; import kd.bos.form.events.ExportFileEvent; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.orm.query.QFilter; /** * @author rd_agbyte_yang * * 示例代码实现功能: 1.修改按列表导出的文件名为【实体名称】+列表.xlsx 2.修改前三行的第一列为红色字体 * */ public class TestExportListPlugin extends AbstractListPlugin { @Override public void beforeQueryOfExport(BeforeQueryOfExportEvent e) { if (e.getFilters().length == 0) { e.setFilters(new QFilter[] { new QFilter("billstatus", QFilter.equals, "C") }); } else { e.getFilters()[0] = e.getFilters()[0].and(ne

列表插件干预导出过程手册(按导入模板)

# 1 产品概述## 1.1 产品介绍导入导出框架,旨在提供一套统一的解决方案,预封装一批开箱即用的操作和插件接口,可以很方便的实现数据...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信