表单插件对直接sql账表汇总字段的干预

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

表单插件对直接sql账表汇总字段的干预

说明:

1、如果在直接sql账表取数中自行加了小计,在汇总统计的时候是无法通过设置排除小计数据的,下面的示例通过对临时表数据的干预,达到对汇总数据的干预

2、直接sql账表只有表单插件,并且运行的事件非常少,主要有AfterBindData ,OnFormatRowConditions; 连单元格格式化事件都不执行。

示例过程:

创建直接sql账表aa,对账表数量字段,如果是偶数行则设置为0,不做汇总

1、创建直接sql账表表单插件,代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Model.Report;
using Kingdee.BOS.App.Data;
namespace Kingdee.BOS.TestPlugIn22.FormPlugin
{
    [HotUpdate]
    [Description("单据测试插件")]
    public class TestFormPlugIn : AbstractSysReportPlugIn
    {
        bool _isRunFormat = false;
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
            _isRunFormat = true;
        }
        /// <summary>
        /// 格式化行数据,每一行会运行一次
        /// </summary>
        /// <param name="args"></param>
        public override void OnFormatRowConditions(Core.Report.PlugIn.Args.ReportFormatConditionArgs args)
        {
            if (this._isRunFormat)
            {
                base.OnFormatRowConditions(args);
                var sqlModel = this.Model as SQLReportModel;
                var sql = string.Format("Update {0} set 数量=0 where FIdentityId%2=0", sqlModel.TableName);
                DBUtils.Execute(this.Context, sql);
                this._isRunFormat = false;
            }
        }
      }
}

2. 注册表单插件

3. 没有插件的运行效果


4、注册插件干预后的效果:

表单插件对直接sql账表汇总字段的干预

说明:1、如果在直接sql账表取数中自行加了小计,在汇总统计的时候是无法通过设置排除小计数据的,下面的示例通过对临时表数据的干预,达到...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息