二开案例.列表插件.信息中心已办列表显示单据编号

【应用场景】
历史版本,信息中心待办列表可以显示单据编号,而已办列表没有单据编号字段,不方便查看。
此方案演示如何通过二开的方式给已办列表增加单据编号字段。
注意:标准产品已在版本PT-146930 [8.1.0.20221110]及之后的版本,给已办列表增加了单据编号字段,您也可以通过升级补丁的方式解决此问题,最新版本支持效果如下图。

【解决方案】
目前有2种方案来实现此需求。
<1>元数据大调整,扩展信息中心_已办任务,新增单据编号字段,调整单据头绑定的视图V_WF_ASSIGNEND,视图上要新增单据编号字段,单据编号可从流程实例编码截取而来。(此方案标准产品预计22年9月补丁会发布)
此方案支持单据编号显示、过滤和排序,但实现过程复杂,后续升级维护麻烦。
<2>不动元数据,仅通过列表插件动态创建列。
此方案仅能显示单据编号,不支持使用单据编号进行过滤和排序。
本案例采用此方案实现。
【案例演示】
信息中心已办列表显示单据编号。
【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【列表插件】信息中心已办列表显示单据编号
/// https://vip.kingdee.com/article/352107501707124992
/// </summary>
[Description("【列表插件】信息中心已办列表显示单据编号"), HotUpdate]
public class AppendBillNoColumnListPlugIn : AbstractListPlugIn
{
public override void CreateListHeader(CreateListHeaderEventArgs e)
{
base.CreateListHeader(e);
if (!e.ListHeader.GetChilds().Exists(o => o.Key.EqualsIgnoreCase("FNumber")))
{
// 如果流程实例编码列被隐藏了,单据编号列也隐藏
return;
}
var header = e.ListHeader.AddChild(0);
header.Caption = new LocaleValue("单据编号/编码");
header.Key = "FBillNo";
header.FieldName = "FBillNo";
header.ColType = SqlStorageType.Sqlnvarchar;
header.Width = 200;
header.Visible = true;
header.ColIndex = e.ListHeader.GetChilds().Max(o => o.ColIndex) + 1;
}
public override void FormatCellValue(FormatCellValueArgs args)
{
二开案例.列表插件.信息中心已办列表显示单据编号
【应用场景】历史版本,信息中心待办列表可以显示单据编号,而已办列表没有单据编号字段,不方便查看。此方案演示如何通过二开的方式给已办...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



