对于金蝶云星空中的附件,统一使用的是同一个【附件管理】的基础资料进行附件的上传管理。
如果我们想控制整个系统只允许上传某一类附件,这种很容易做到,
我们在文件上传附件设置好“过滤条件”即可,这样就控制到了整个系统允许上传的附件类型。
但对于上面的统一控制虽然实现了,但金蝶云星空这么多用户不免有的客户就有和自定义的需求
如果不同单据控制可允许上传不同的附件类型。
如合同单据,只允许上传pdf类型的附件,制图设计单据,只允许上传cad类型的附件。
对于如上的不同单据的个性化需求,我们该如何实现呢?
可参考如下示例
示例需求:【销售订单】对于可以上传的附件类型,控制只允许word类型。
在未做控制前:
下图是【销售订单】使用的是系统的标准统一附件上传的选择界面,我们可以选到上传所有类型的附件,
进行控制后,实现效果如下:
可以看到按word类型的附件进行了过滤。
控制代码:
扩展【附件明细】BOS_Attachment 基础资料,添加表单插件
表单插件,为了方便,做成了Python脚本方式。
附上Python脚本:
'''
SetFileUpdateFilter
说明:设置单据允许上传的附件类型
示例:【销售订单】设置过滤选择word类型的附件进行上传控制
'''
def AfterBindData(e):
formId = this.View.ParentFormView.ParentFormView.BusinessInfo.GetForm().Id;
if formId == 'SAL_SaleOrder':
this.View.GetControl("FileUpdate").SetCustomPropertyValue("UploadFilter", "Word|*.docx|Word97-2003|*.doc");
因为附件列表是统一的,我们再确认下我们写的插件是否影响到其他单据的附件选择了:
【采购订单】仍然能够选择所有类型的附件,
达到了针对【销售订单】的特定控制效果了。
别忘了还有“批量新增”操作,
同样扩展“批量新增附件”BOS_AttachBatch
把Python脚本同样注册上,
测试下批量新增附件的实际效果:
批量上传也ok,也控制住了,【销售订单】只允许上传word类型的附件。
the end。
推荐阅读