实践案例 | 引出单据体数据,助力快速校对

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

实践案例 | 引出单据体数据,助力快速校对

小编推荐


当分录达到一定规模后,在系统上校对受翻页、查询等使用习惯限制,无法快速实现校对,影响工作效率,这种情况该如何处理呢?


别担心,金蝶云·苍穹开发平台提供了通用操作“引出单据体数据”,支持配置到单据体分录工具栏,在运行时以所见即所得的方式,引出单据体全部数据到Excel文件中,即可在Excel中进行快速校对。


案例撰稿人:tomi_li。




业务背景


客户A处在新零售电商行业,对于采购物料的型号、数量、金额等信息需要严格把控,在采购订单审批时需要认真校对物料信息,避免出错。但由于该客户的订单数据量巨大,一张采购订单分录经常在1000条以上,均需要直接在系统上检查校对,受翻页、查询等使用习惯限制,无法快速实现校对,影响工作效率。


客户希望能够把采购订单的物料分录导出到Excel文件中,通过Excel自带的筛选、汇总等功能对物料信息进行分类统计和检查,以提升单据数据审核效率和准确率。


解决方案


该方案只要实现支持将采购订单的物料分录明细数据引出到Excel文件,再通过Excel自带的筛选、汇总等功能对物料信息进行分类统计和检查即可解决客户的痛点。


金蝶云·苍穹开发平台提供了通用操作“引出单据体数据”,支持配置到单据体分录工具栏,在运行时以所见即所得的方式,引出单据体全部数据到Excel文件中。


所以,该方案可以扩展采购订单,在物料分录工具栏添加“引出单据体数据”按钮即可实现将物料数据全部引出到Excel文件中。


小知识:“引出单据体数据”支持通过二次开发插件,对引出数据文件名、Excel数据表、表格样式进行干预,以满足用户对引出数据的定制化需求。


关键步骤展示


以采购订单引出物料明细信息数据为例,操作步骤如下:


1、【开发平台】→【供应链云】→【采购管理】→【扩展采购订单】,打开【表单设计】界面,在物料明细单据体工具栏添加按钮,在操作代码属性选择“引出单据体操作”,并设置操作参数为“物料明细”,设置完成后,保存单据元数据。


上传图片

操作参数选择“物料明细”


上传图片

添加按钮及操作代码属性选择“引出单据体数据”操作


2、运行时打开采购订单单据编辑界面,在物料明细工具栏点击“引出单据体数据”按钮,弹出引出单据体数据确认框,并在提示信息中展示本次引出单据体分录行数量,点击“确定”按钮,展示引出进度条,引出完成后,浏览器自动下载引出数据的Excel文件。


上传图片

点击“引出单据体数据”


上传图片

引出单据体数据确认


3、引出单据体数据文件下载完成后,打开文件可查看引出的数据与单据体中展示的数据一致。如图所示:


上传图片

查看引出的数据


方案的可复用价值


标准产品提供通用操作“引出单据体数据”,用户可按需配置,使用更加灵活方便。


无需定制引出模板,即可实现一键引出单据体所有数据,所见即所得,性能更优,效率更高。


扩展案例


引出单据体数据支持操作插件配置,提供标准接口对引出文件内容,可以进行二次开发。如下图所示:


上传图片

操作插件配置


单据体引出事件接口代码如下:


/**
 * 单据体引出事件标准接口
 */

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);
            }
        }
    }
}


注:单据体引出并非作为单据体引入的配套功能,引出单据体数据不能直接作为单据体引入的模板使用


相关资料


引入引出专题文档:


https://vip.kingdee.com/knowledge/specialDetail/228886918686445824?productLineId=29



#往期推荐#


# 实践案例 | 基于苍穹平台,灵活实现一站式报账

# 实践案例 | 一体化门户与应用平台,满足企业员工多样化工作管理需求

# 实践案例 | 工作效率翻倍的秘籍:快捷键功能全面解析


更多精彩内容,“码”上了解!↓


上传图片

实践案例 | 引出单据体数据,助力快速校对

小编推荐当分录达到一定规模后,在系统上校对受翻页、查询等使用习惯限制,无法快速实现校对,影响工作效率,这种情况该如何处理呢?别担心...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息