二开案例.文件服务.设置附件列表的列宽度以及隐藏列

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

二开案例.文件服务.设置附件列表的列宽度以及隐藏列

**【应用场景】** 附件列表中文件名列宽度太小,文件名没法显示全;别名列不使用,列表中不要显示。 **【案例演示】** <1>编写列表插件,代码如下。 ``` csharp using Kingdee.BOS.Core; using Kingdee.BOS.Core.Attachment; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.List.PlugIn.Args; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Core.Metadata.FieldElement; using Kingdee.BOS.JSON; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; namespace Kingdee.BOS.PlugInTest { /// <summary> /// 【列表插件】自定义附件列表插件 /// </summary> [Description("【列表插件】自定义附件列表插件"), HotUpdate] public class CustomAttachmentListPlugIn : AbstractListPlugIn { /// <summary> /// 列表创建列事件 /// </summary> /// <param name="e">列表创建列参数</param> public override void ListCreateColumns(ListCreateColumnsEventArgs e) { base.ListCreateColumns(e); if (e.Columns != null && e.Columns.Count > 0) { foreach (JSONObject column in e.Columns) { if (column == null) continue; string columnName = string.Empty; if (column.ContainsKey("dataIndex")) { columnName = column["dataIndex"].GetString(); } if (string.IsNullOrWhiteSpace(columnName)) continue; // 文件名列宽度改为300 if (columnName.EqualsIgnoreCase("FAttachmentName")) { column["width"] = 300; } // 别名字段隐藏不显示 else if (columnName.EqualsIgnoreCase("FaliasFileName")) { column["visible"] = false; } } } } } } ``` <2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。 <3>注册插件。 ![注册插件.webp](/download/0100cd898c5d758c4d0792d978cecf42021a.webp) <4>现在可以登业务站点,打开单据的附件列表,验证一下结果。 ![设置附件列表的列属性.webp](/download/01006e4a5d95a3c04d789e74c9c999cfe0c6.webp)

挺实用的,总部帖子也更新了一种写法,可以一起参考:

namespace DemoPlugin

{

    [Description("附件列表插件扩展"), HotUpdate]

    public class AttachmentListPlugInExt : AbstractListPlugIn

    {

        public override void ListCreateColumns(ListCreateColumnsEventArgs e)

        {

            base.ListCreateColumns(e);

            // 找到标识为 FAttachmentName 的字段

            var attachmentNameCol = e.Columns

                .Select(c => c as JSONObject)

                .FirstOrDefault(c => "FAttachmentName".EqualsIgnoreCase(c["dataIndex"].GetString()));

            // 设置列名

            attachmentNameCol["header"] = "名字";

            // 设置列宽

            attachmentNameCol["width"] = 500;

            // 设置列可见性

            attachmentNameCol["visible"] = true;

        }

    }

}


二开案例.文件服务.设置附件列表的列宽度以及隐藏列

**【应用场景】**附件列表中文件名列宽度太小,文件名没法显示全;别名列不使用,列表中不要显示。**【案例演示】**<1>编写列表插件,代码...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息