二开案例.文件服务.设置附件列表的列宽度以及隐藏列
**【应用场景】**
附件列表中文件名列宽度太小,文件名没法显示全;别名列不使用,列表中不要显示。
**【案例演示】**
<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>编写列表插件,代码...
点击下载文档
本文2024-09-16 18:11:37发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-20548.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章