金蝶-分页账表-账表增加字段

详细说明操作步骤 步骤:
在BOSIDE中找到你需要处理的报表:

  1. 对原报表做一下扩展在这里插入图片描述
    2、添加报表字段在扩展后的报表元数据中添加字段,注意添加的字段名,需要与代码中的字段名保持一致
    在这里插入图片描述
    3、注册插件扩展后,添加注册二次开发的插件,并把原报表服务插件取消启用
    在这里插入图片描述

  2. 扩展报表过滤条件(这里借用网上图片,自已没有截图。一样的)
    在这里插入图片描述

在这里插入图片描述

继承标准产品的报表插件代码(集成服务插件的方法:SubLedgerService【查找方法在上3的服务插件原方法】):

using Kingdee.BOS.Core.Report;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.GL.App.Report;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS;

namespace Halo.K3.GL.ServicePlugIn
{
    [Kingdee.BOS.Util.HotUpdate]
    [Description("明细分类账-自定义业务日期")]
    public class CustomReportService : SubLedgerService
    {
        private string[] customRetTempTableNames;
        /// <summary>
        /// 重写GetReportHeaders方法
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public override ReportHeader GetReportHeaders(Kingdee.BOS.Core.Report.IRptParams filter)
        {
            //构建报表上显示的列
            ReportHeader header = base.GetReportHeaders(filter);
            header.AddChild("FBUSDATE", new LocaleValue("业务日期"));
            return header;
        }

        /// <summary>
        /// 构建数据
        /// </summary>
        /// <param name="filter">数据列</param>
        /// <param name="tableName">临时表</param>
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            //创建临时表。用于存放自已的数据
            IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
            customRetTempTableNames = dbservice.CreateTemporaryTableName(this.Context, 1);
            string strTable = customRetTempTableNames[0]; //得到临时表
            base.BuilderReportSqlAndTempTable(filter, strTable);

            //对初步的查询结果进行处理,然后写回基类默认的存放查询结果的临时表
            StringBuilder sb = new StringBuilder();
            string strSql = "/*dialect*/ SELECT t1.* ,(case when ISNULL(a3.FBUSDATE,'')<>'' then a3.FBUSDATE  else NULL end ) FBUSDATE "
            + " into {0} "
            + " FROM {1} t1 "
            + " LEFT JOIN T_GL_VOUCHER a3 ON t1.FVOUCHERID=a3.FVOUCHERID ";
            sb.AppendFormat(strSql, tableName, strTable);
            DBUtils.Execute(this.Context, sb.ToString());

        }

        /// <summary>
        /// 刷新报表,删除临时表
        /// </summary>
        public override void CloseReport()
        {
            //删除临时表
            if (customRetTempTableNames.IsNullOrEmptyOrWhiteSpace())
            {
                return;
            }
            IDBService dbService = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
            dbService.DeleteTemporaryTableName(this.Context, customRetTempTableNames);//使用完后的临时表要删除
            base.CloseReport();

        }
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值