寻源管理二开指南--附件开发要点

1. 附件开发要点
1.1 附件的类型
1.1.1 根据元数据划分
1、附件面板:“附件面板”一个面板控件,它不属于实体的属性,无法通过动态对象获取附件面板的信息。因此,如果我们需要获得一个表单的附件面板的数据,往往需要用到AttachmentServiceHelper进行查询。其数据存放在元数据bos_attachment中。

// 获取 报价单的附件面板的附件数据: List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments(TndMetadataConstant.TND_QUOTEBILL, billId, sourceAttachPanel, false); // 绑定 数据到附件面板 AttachmentPanel attachmentPanel = this.getvew().getControl(targetAttachPanel); attachmentPanel.bindData(attachments);
|
2、附件字段:附件字段的本质是一个多选基础资料,其为一个实体的字段,在代码开发中可以从DynamicObject中获取到附件字段的信息,正如其他多选基础资料一样。也可以用附件字段的接口AttachmentFieldServiceHelper。其数据存放在元数据 bd_attachment 中。

附件字段的取值和赋值,同多选基础资料。
在寻源管理中,为了便于附件处理,封装了一些工具类,如下所示:
//标的附件获取 List<Map<String, Object>> purAttachs = AttachmentUtils.getEntryAttachments(SrcMetadataConstant.SRC_PURLISTF7, purfilter, SrcCommonConstant.PURLISTENTRY_FJ, context.getBillId());
// 标的附件携带(多选基础资料需要复制,否则会出现pkId重复) row.set(SrcPurlistConstant.PURLISTENTRY_FJ, PdsCommonUtils.cloneAttachment(materialObj, SrcPurlistConstant.PURLISTENTRY_FJ)); |
附件面板和附件字段应如何区分
1.1.2 根据应用场景划分
1、主单据中的附件面板

2、组件中的附件面板,如“开标说明组件”中的附件

3、分录附件,典型的有采购清单分录附件、标书分录附件等

4、独立的附件字段:类型与分录附件一样,但不是放在单据体中,而是作为一个独立的字段存在,如“报名登记”中的汇总附件。

5、报表附件,在主单据或组件上配置了打印模板,系统可以动态地将当前数据根据模板,转为pdf附件。也可以通过 电子归档,自动收集报表附件,详见电子归档资料。

特别注意:附件面板和独立的附件字段,其附件url均为临时地址,在保存到数据库之前,需要转换为正式地址,否则一段时间后就失效,无法查看和下载。
// 获取临时附件 DynamicObjectCollection attachRows = this.getModel().getDataEntity().getDynamicOb |
寻源管理二开指南--附件开发要点
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



