实践案例 | 引出单据体数据,助力快速校对
小编推荐
当分录达到一定规模后,在系统上校对受翻页、查询等使用习惯限制,无法快速实现校对,影响工作效率,这种情况该如何处理呢?
别担心,金蝶云·苍穹开发平台提供了通用操作“引出单据体数据”,支持配置到单据体分录工具栏,在运行时以所见即所得的方式,引出单据体全部数据到Excel文件中,即可在Excel中进行快速校对。
案例撰稿人:tomi_li。
1 业务背景
客户A处在新零售电商行业,对于采购物料的型号、数量、金额等信息需要严格把控,在采购订单审批时需要认真校对物料信息,避免出错。但由于该客户的订单数据量巨大,一张采购订单分录经常在1000条以上,均需要直接在系统上检查校对,受翻页、查询等使用习惯限制,无法快速实现校对,影响工作效率。
客户希望能够把采购订单的物料分录导出到Excel文件中,通过Excel自带的筛选、汇总等功能对物料信息进行分类统计和检查,以提升单据数据审核效率和准确率。
2 解决方案
该方案只要实现支持将采购订单的物料分录明细数据引出到Excel文件,再通过Excel自带的筛选、汇总等功能对物料信息进行分类统计和检查即可解决客户的痛点。
金蝶云·苍穹开发平台提供了通用操作“引出单据体数据”,支持配置到单据体分录工具栏,在运行时以所见即所得的方式,引出单据体全部数据到Excel文件中。
所以,该方案可以扩展采购订单,在物料分录工具栏添加“引出单据体数据”按钮即可实现将物料数据全部引出到Excel文件中。
小知识:“引出单据体数据”支持通过二次开发插件,对引出数据文件名、Excel数据表、表格样式进行干预,以满足用户对引出数据的定制化需求。
3 关键步骤展示
以采购订单引出物料明细信息数据为例,操作步骤如下:
1、【开发平台】→【供应链云】→【采购管理】→【扩展采购订单】,打开【表单设计】界面,在物料明细单据体工具栏添加按钮,在操作代码属性选择“引出单据体操作”,并设置操作参数为“物料明细”,设置完成后,保存单据元数据。
操作参数选择“物料明细”
添加按钮及操作代码属性选择“引出单据体数据”操作
2、运行时打开采购订单单据编辑界面,在物料明细工具栏点击“引出单据体数据”按钮,弹出引出单据体数据确认框,并在提示信息中展示本次引出单据体分录行数量,点击“确定”按钮,展示引出进度条,引出完成后,浏览器自动下载引出数据的Excel文件。
点击“引出单据体数据”
引出单据体数据确认
3、引出单据体数据文件下载完成后,打开文件可查看引出的数据与单据体中展示的数据一致。如图所示:
查看引出的数据
4 方案的可复用价值
标准产品提供通用操作“引出单据体数据”,用户可按需配置,使用更加灵活方便。
无需定制引出模板,即可实现一键引出单据体所有数据,所见即所得,性能更优,效率更高。
5 扩展案例
引出单据体数据支持操作插件配置,提供标准接口对引出文件内容,可以进行二次开发。如下图所示:
操作插件配置
单据体引出事件接口代码如下:
/**
* 单据体引出事件标准接口
*/
public interface IExportEntryPlugin {
/**
* 引出前事件
* 写入Excel前,每行数据触发
* @param beforeExportEntryEvent
*/
default void beforeExportEntry(BeforeExportEntryEvent beforeExportEntryEvent){}
/**
* 引出后事件
* Excel写入完成,文件上传前触发
* @param afterExportEntryEvent
*/
default void afterExportEntry(AfterExportEntryEvent afterExportEntryEvent){}
具体案例如下:
场景:对引出单据体数据做干预,例如:引出采购订单物料明细时,设置Excel前三行为红色,以便查阅。
方案:继承单据体引出事件标准接口IExportEntryPlugin重写afterExportEntry
具体示例代码如下:
public class TestExportentryPlugin implements IExportEntryPlugin {
private static Log log = LogFactory.getLog(TestExportentryPlugin.class);
@Override
public void beforeExportEntry(BeforeExportEntryEvent beforeExportEntryEvent) {
List<Object> rowData = beforeExportEntryEvent.getRowData();
if (!rowData.isEmpty()) {
for (int i = 0; i < rowData.size(); i++) {
if (rowData.get(i) instanceof String) {
rowData.set(i,"插件赋值的字符串");/*untrans*/
}
}
}
}
@Override
public void afterExportEntry(AfterExportEntryEvent afterExportEntryEvent) {
File file = afterExportEntryEvent.getFile();
if (file != null) {
// 示例:修改前三行的第一列为红色字体
try (FileInputStream fis = new FileInputStream(file);) {
Workbook wb = new XSSFWorkbook(fis);
Sheet sheet = wb.getSheetAt(0);
// 修改背景颜色(示例写死,自行修改)
for (int i = 0; i < 3; i++) {
CellStyle cs = wb.createCellStyle();
cs.setFillForegroundColor(IndexedColors.RED.getIndex());
cs.setFillPattern(FillPatternType.SOLID_FOREGROUND);
sheet.getRow(i).getCell(1).setCellStyle(cs);
}
// 保存
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
wb.close();
out.close();
} catch (Throwable ex) {
log.error(ex);
}
}
}
}
注:单据体引出并非作为单据体引入的配套功能,引出单据体数据不能直接作为单据体引入的模板使用。
6 相关资料
引入引出专题文档:
https://vip.kingdee.com/knowledge/specialDetail/228886918686445824?productLineId=29
#往期推荐#
更多精彩内容,“码”上了解!↓
实践案例 | 引出单据体数据,助力快速校对
本文2024-09-23 00:38:58发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140829.html