二开案例.表单插件.附件(文件服务)

【应用场景】
在界面上显示并使用附件(文件服务)字段。
该字段可以将文件上传并存储在文件服务器,并提供预览、下载、删除功能。
【案例演示】
采购订单,新增附件(文件服务)字段,新增附件名称字段,附件上传后,通过值更新事件字段获取附件文件名,显示在附件名称字段上。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】获取附件名称
/// </summary>
[Description("【表单插件】获取附件名称"), HotUpdate]
public class GetAttachmentNameFormPlugIn : AbstractDynamicFormPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
if (e.Field.Key.Equals("F_Jac_Attachment", StringComparison.OrdinalIgnoreCase))
{
#region 方式1:从当前数据包中获取文件信息
var objFiles = this.Model.DataObject[e.Field.PropertyName + "_Files"] as DynamicObjectCollection;
if (objFiles != null && objFiles.Count > 0)
{
var fileInfo = objFiles[0];
var fileName = fileInfo["FileName"].ToString();
this.Model.SetValue("F_Jac_Text", fileName);
}
else
{
this.Model.SetValue("F_Jac_Text", string.Empty);
}
#endregion
#region 方式2:从数据库重新读取文件信息
//var fileId = this.Model.DataObject[e.Field.PropertyName] as string;
//if (!string.IsNullOrWhiteSpace(fileId))
//{
// var metadata = FormMetaDataCache.GetCache
二开案例.表单插件.附件(文件服务)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



