电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.过滤符.今年

来源:金蝶云社区作者:金蝶2024-09-236

二开案例.过滤符.今年

【应用场景】平台内置的过滤符无法满足数据过滤需求。

【案例演示】编写一个自定义过滤符,用于执行【今年】的数据查询。

【实现步骤】

<1>继承 AbstractVariableAnalysisPlugin,编写自定义过滤符,实现条件过滤功能。

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.CommonFilter;

using Kingdee.BOS.Core.CommonFilter.ConditionVariableAnalysis;

using System;


namespace Jac.XkDemo.BOS.Core.Filter.ConditionVariables

{

    /// <summary>

    /// 【过滤符】今年

    /// </summary>

    public class YearAnalysis : AbstractVariableAnalysisPlugin

    {

        /// <summary>

        /// 生成过滤条件

        /// </summary>

        /// <param name="ctx"></param>

        /// <returns></returns>

        public override string GetVariableFilter(ConditionVariableContext ctx)

        {

            var dts = new DateTimeFunctions(ctx.Context, ctx.NowTime);

            if (TimeZoneUtils.IsLongDateField(ctx.filterRow))

            {

                var year = dts.GetSystemYear(0);

                var beginTime = year.Item1;

                var endTime = year.Item2;

                var filterString = dts.GetCompareDateTimeString(ctx.FieldName, ctx.Operater, beginTime, endTime);

                return filterString;

            }

            else

            {

                var beginTime = new DateTime(ctx.NowTime.Value.Year, 1, 1);

                var endTime = beginTime.AddYears(1);

                var filterString = dts.GetCompareDateTimeString(ctx.FieldName, ctx.Operater, beginTime, endTime);

                return filterString;

            }

        }


        /// <summary>

        /// 照搬GetVariableFilter的实现就好

        /// </summary>

        /// <param name="ctx"></param>

        /// <returns></returns>

        public override string GetScriptFilter(ConditionVariableContext ctx)

        {

            return GetVariableFilter(ctx);

        }

    }

}



<2>执行以下SQL脚本,向平台内置过滤比较符号库注册自定义过滤符。

/*

-- 添加自定义过滤符

DELETE FROM T_MDL_FILTERCONDITION WHERE FID=888006;

INSERT INTO T_MDL_FILTERCONDITION

        ( FID ,

          FCONDITIONTYPEID ,

          FSEQ ,

          FOPERATE ,

          FINPUTCTLTYPE ,

          FDATASOURCETYPE ,

          FDATAFIELDINDEX ,

          FVALUE ,

          FINPUT ,

          FCLASSNAME ,

          FISCUST

        )

VALUES  ( 888006 , -- FID - int

          88888 , -- FCONDITIONTYPEID - int

     

二开案例.过滤符.今年

【应用场景】平台内置的过滤符无法满足数据过滤需求。【案例演示】编写一个自定义过滤符,用于执行【今年】的数据查询。【实现步骤】<1>继...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信