如何在发票与费用项目对应设置的单据体中添加二开字段原创
金蝶云社区-俊宏
俊宏
1人赞赏了该文章 283次浏览 未经作者许可,禁止转载编辑于2022年09月23日 17:30:22

前序

本教程需要您具有C#插件的开发能力。本教程不适用于公有云多租户用户。

背景

在发票与费用项目对应设置中,您可以设置根据报销单上字段或是发票上字段的匹配值,让您在报销单收票时,星空根据发票与费用项目对应设置中的影响因素找到您期望的费用项目和差旅费类型填入到报销明细中。目前发票与费用项目对应设置中只能对部分字段进行设置匹配值,不能完全满足不同用户需要对二开字段或是其他字段进行匹配,因此需要您对发票与费用项目对应设置进行二开以便支持您希望能匹配的字段。

需要您提前知道的是,目前发票与费用项目对应仅能支持文本,基础资料、下拉列表这三种类型的字段。其他类型的字段暂时还未支持到,若您需要用其他类型的字段进行匹配,建议您可以变通处理,例如把其他类型的字段值更新到另一个文本字段中,再通过文本字段进行匹配。另一方面,单据影响因素的匹配目前也仅支持单据头中的字段进行匹配。

实现步骤

我们将以一个报销单单据头上一个名称为“付款申请原因”绑定实体属性为“FPayReqType”的文本字段作为示例,演示如何添加二开字段作为单据匹配因素,你可以按照相同的方式添加基础资料字段和下拉列表字段。您可以根据您的需要,决定是否调整单据影响因素或发票影响因素,还是都调整。

            

image.png

字段“付款申请原因”

(1)添加引用并继承插件

新建.Net Framework 类库项目,并引用下列动态库

l  Kingdee.BOS.dll

l  Kingdee.BOS.Core.dll

l  Kingdee.BOS.DataEntity.dll

l  Kingdee.K3.FIN.ER.Business.PlugIn.dll

引用完毕后,在该项目中新建一个类,并继承插件类InvAndExpMappingEditPlugin,这里将新建类命名为InvAndExpMappingEditPluginExtend。

(2)重写方法使单据影响因素可以支持二开

重写插件类InvAndExpMappingEditPlugin中的获取单据影响因素字段的虚方法

List<EnumItem> GetReimbComboSource(FormMetadata metadata)

FormmetaData 参数为报销单的表单元数据对象,包含报销单所有字段的详细信息。返回值List<EnumItem>是用于在发票与费用项目对应设置中显示的多语言对象数组。您可以参考下面的示例来进行重写

image.png

重写单据影响因素虚方法示例

(2)重写方法使发票影响因素可以支持二开

发票因素的处理方式与单据影响因素相同,需要重写获取发票影响因素字段的虚方法

List<EnumItem> GetInvComboSource(FormMetadata metadata)

与单据影响因数不同的是,这个虚方法中的FormMetadata是收票单的表单元数据对象。您可以参考下面的示例来进行重写

image.png

重写发票影响因素虚方法示例

(3)挂载插件

在星空安装的服务中打开BOS设计器,找到发票与费用项目对应设置右键并点击拓展,在表单插件中点击“注册”。选取到我们制作的组件文件(.dll)并停用标准插件。最后点保存即可。

image.png

挂载插件

实现效果

image.png

效果图

若您有需要,可以下载下方的示例源码。

赞 1