二开案例.过滤符.等于(忽略大小写)

【应用场景】数据过滤时,需要忽略大小写。
【案例演示】编写一个自定义过滤符,用于执行【等于(忽略大小写)】的数据查询。
【实现步骤】
<1>编写自定义过滤符,代码如下。
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.CommonFilter.ConditionVariableAnalysis;
namespace Jac.XkDemo.BOS.Core.Filter.ConditionVariables
{
/// <summary>
/// 【过滤符】等于(忽略大小写)
/// </summary>
public class EqualsIgnoreCaseAnalysis : AbstractVariableAnalysisPlugin
{
/// <summary>
/// 生成过滤条件
/// </summary>
/// <param name="ctx"></param>
/// <returns></returns>
public override string GetVariableFilter(ConditionVariableContext ctx)
{
var filterString = string.Format(" UPPER({0}) {1} '{2}' ", ctx.FieldName, ctx.Operater, ctx.CompareValue.ToUpper());// 英文字符
//filterString = string.Format(" UPPER({0}) {1} N'{2}' ", ctx.FieldName, ctx.Operater, ctx.CompareValue.ToUpper());// 中文字符
return filterString;
}
/// <summary>
/// 照搬GetVariableFilter的实现就好
/// </summary>
/// <param name="ctx"></param>
/// <returns></returns>
public override string GetScriptFilter(ConditionVariableContext ctx)
{
return GetVariableFilter(ctx);
}
}
}
/*
-- 添加自定义过滤符
DELETE FROM T_MDL_FILTERCONDITION WHERE FID=888001;
INSERT INTO T_MDL_FILTERCONDITION
( FID ,
FCONDITIONTYPEID ,
FSEQ ,
FOPERATE ,
FINPUTCTLTYPE ,
FDATASOURCETYPE ,
FDATAFIELDINDEX ,
FVALUE ,
FINPUT ,
FCLASSNAME ,
FISCUST
)
VALUES ( 888005 , -- FID - int
88888 , -- FCONDITIONTYPEID - int 【符号集编码】
1 , -- FSEQ - int
'=' , -- FOPERATE - varchar(50)
9 , -- FINPUTCTLTYPE - int【-1:常量,不需要输入数据;0:手工录入(包括文本, 日期, 数值等);1:下拉选择 (包括下拉列表, 字段比较等);
二开案例.过滤符.等于(忽略大小写)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



