二开案例.表达式函数.复杂字段取值函数

【应用场景】大文本字段,富文本字段,批号字段等,其字段内容通常被拆分成两部分存储(字段标识,字段标识_Tag),表达式通常只能拿到字段标识定义的这部分数据,而另一部分数据则无法获取。
【演示案例】新增函数,用于获取复杂字段的任意部分的值。

【实现步骤】
<1>编写函数,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.Metadata.Expression.FuncDefine;
using System;
namespace Jac.XkDemo.BOS.Core.Functions
{
/// <summary>
/// 【函数】复杂字段取值函数
/// </summary>
[Serializable]
public class GetValueByTagFuncDefine : AbstractFuncDefine
{
public GetValueByTagFuncDefine()
{
}
public GetValueByTagFuncDefine(Context ctx, dynamic obj)
{
m_ctx = ctx;
m_obj = obj;
}
public override IFuncDefine GetFunctionDefine(Context ctx, dynamic obj)
{
return new GetValueByTagFuncDefine(ctx, obj);
}
public override object GetFuncDefine()
{
return new Func<string, object>(FuncDefine);
}
/// <summary>
/// 富文本获取Tag
/// </summary>
/// <param name="key">复杂字段的值的标识(复杂字段的标识+Tag)</param>
/// <returns>返回复杂字段的指定部分的值</returns>
object FuncDefine(string key)
{
if (key == null)
{
return null;
}
return m_obj.ActiveObject.ActiveObject[key];
}
}
}
<2>注册函数(可参考:https://vip.kingdee.com/article/74091717745675520)。
-- 复杂字段取值函数
DELETE T_MDL_ELEMENTTYPE WHERE FID=888009;
INSERT INTO T_MDL_ELEMENTTYPE (FID,FIMGKEY,FTYPEID,FISVISIBLE,FELEMENTCLASS,FAPPEARANCECLASS)
VALUES (888009, '', 1, 0, 'Jac.XkDemo.BOS.Core.Functions.GetValueBy
二开案例.表达式函数.复杂字段取值函数
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



