附件字段和附件面板的区别
问题描述
在日常工作中,发现有许多小伙伴没有意识到附件面板和附件字段的区别,这篇文章用于给大家简要地说明其最显著的区别,帮助大家在开发时选择正确的控件。
附件面板:
“附件面板”一个面板控件,它不属于实体的属性,往表单里添加一个“附件面板”,在实体大纲中是无法看见的(如下图所示),这就意味着在后端插件代码中,无法通过动态对象(DynamicObject)获取附件面板的信息。因此,如果我们需要获得一个表单的附件面板的数据,往往需要用到AttachmentServiceHelper进行查询。
“附件面板”中上传的附件存储在bos_attachment表单中,如下图所示。从表结构可以发现,附件面板上传的附件和表单的关系是多对一的,一条附件数据,只能对应着一条单据的主键id。因此,如果你的业务需求需要重复利用某附件,比如说同一个附件被三个单据引用,这种需求用附件面板实现是不合适的。此外,如果你在表单中把该附件删除了,那么在bos_attachment中也会自动删除该附件。
附件字段:
“附件字段”的本质是一个多选基础资料,其为一个实体的字段,在表单中添加了附件字段后,在实体大纲是可以看得见的。因此,我们在代码开发中可以从DynamicObject中获取到附件字段的信息,正如其他多选基础资料一样。当然我们也可以用专门用于附件字段的接口AttachmentFieldServiceHelper。
“附件字段”上传的附件存在bd_attachment中。在我们往自己的表单中添加附件字段时,和多选基础资料字段一样需要输入表名,该表即为当前表单和bd_attachment表的中间关系表,可以看出其为多对多的关系。一个附件可以很轻易地被多次引用。此外,如果你在表单中删除了附件字段中的附件,bd_attachment中的信息是不会被删除的,这也是与附件面板的一大区别。
适用版本
任意
附件字段和附件面板的区别
本文2024-09-23 00:20:12发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138817.html