单据体导出功能说明

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

单据体导出功能说明

1 简介

1.1 功能介绍

用户需要单独导出表单界面分录、子分录数据时,可使用该功能。该功能仅支持表单界面使用。

该功能与列表操作【按列表导出】类似,将导出与界面分录格式一致的数据。

1.2 应用场景

1、【物料入库单】单据较复杂,单据头数据较多,分录个数较多时,用户希望只导出“物料明细”分录相关数据,可使用该功能,导出当前关注的数据。

2、修改单据体导出的文件的表格格式、颜色,以及文件名。

1.3 关键字段/按钮说明

关键字段说明

字段名称

详细解释

操作参数

下拉选择操作绑定的分录,导出时,将导出该分录。

单据体导出插件

注册该插件,支持干预单据体导出过程(修改行数据,修改最终导出的文件)。

2 主要操作

2.1 主要操作

前提条件

单据表单界面存在【单据体导出】功能按钮,该按钮建议放置在对应的分录工具栏中。


操作步骤

步骤1: 新增操作


步骤2: 配置操作

①如当前可选操作不包含操作编码“exportentry”的操作,选择右上角“新增”按钮进行新增。

②操作参数中选择当前单据需要导出的分录。

③单据体导出插件可配置二开插件路径。

 

 

步骤3: 点击单据体导出

2.2 插件示例

苍穹版本5.0.011后,单据体导出功能提供插件干预入口,二次开发可配置插件干预单据体导出过程。插件提供两个方法供二开使用。

①干预写入Excel前的行数据,修改为业务需要的数据或格式。

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,"插件赋值的字符串");
           }
        }
      }
    }
}

②干预即将下载的Excel文件流,修改为业务需要的文件。

public class TestExportentryPlugin implements IExportEntryPlugin {
    private static Log log = LogFactory.getLog(TestExportentryPlugin.class);
    
    @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);
            }
        }
    }
}





单据体导出功能说明

1 简介1.1 功能介绍用户需要单独导出表单界面分录、子分录数据时,可使用该功能。该功能仅支持表单界面使用。该功能与列表操作【按列表导...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息