1、应用场景:
上传文件字段、附件文件服务器字段选择文件上传时,限制只允许选择特定类型文件上传。
2、现状分析:
如下图所示,文件上传控件有过滤条件及文件最大大小属性,分别用以控制文件上传时可选择的文件类型以及文件上传时最大允许上传大小,小于等于零时代表不限制。
但是在上传文件字段以及附件(文件服务器)字段中,则没有过滤条件属性,该属性后续会规划支持,但是目前只能通过二开方式进行控制。
3、案例演示:
本案例将演示采购订单上拖上传文件字段及附件(文件服务器)字段,对上传文件字段限制只允许上传txt文件,对附件(文件服务器)字段限制只允许上传doc文档。下图为实现后的效果:
4、实现步骤:
4.1、表单插件C#示例代码:
using System;
using System.ComponentModel;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Util;
namespace Running.Sample.PlugIn.BusinessPlugIn.Bill
{
[HotUpdate, Description("为上传文件字段、附件(文件服务器)字段设置文件过滤类型。")]
public class P20200829UploadFilterEdit : AbstractBillPlugIn
{
public override void AfterBindData(EventArgs e)
{
this.View.GetControl("F_yzds_FileUpdate").SetCustomPropertyValue("UploadFilter", "txt files|*.txt");
this.View.GetControl("F_yzds_Attachment").SetCustomPropertyValue("UploadFilter", "doc files|*.doc");
}
}
}
4.2、表单插件Python示例代码:
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core import *
# 数据绑定后事件内,为上传文件字段、附件(文件服务器)字段设置文件过滤类型。
def AfterBindData(e):
this.View.GetControl("F_yzds_FileUpdate").SetCustomPropertyValue("UploadFilter", "txt files|*.txt");
this.View.GetControl("F_yzds_Attachment").SetCustomPropertyValue("UploadFilter", "doc files|*.doc");