简单账表表单插件中启用表单服务插件中定义的Ttile原创
金蝶云社区-eris
eris
4人赞赏了该文章 1475次浏览 未经作者许可,禁止转载编辑于2021年08月11日 16:50:21

一、简单账表表单服务插件GetReportTiles增加Title和值(默认都是文本类型值),默认为禁用

public override ReportTitles GetReportTitles(IRptParams filter)
 {
            var rTile = new ReportTitles();
            var customFilterObj = filter.FilterParameter.CustomFilter;
            var CreateTime = ObjectUtils.Object2String(customFilterObj["FCreateDate1"]);
            var mObj =customFilterObj["FMNumber"] as DynamicObject;
            var mId = ObjectUtils.Object2String(mObj["Number"]);
            rTile.AddTitle("FCreateDate1", CreateTime);
            rTile.AddTitle("FMNumber", mId);
            return rTile;
 }

image.png

二、在表单插件的AfterBindData事件中启用即可。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Model.Report;
using Kingdee.BOS.Web.Report;
namespace Kingdee.BOS.TestPlugIn.BillFormPlugin
{
    [HotUpdate]
    [Description("单据简单明细帐表表单插件")]
    public class BillASimpleReportFormPlugIn : AbstractSysReportPlugIn
    {
        /// <summary>
        /// 数据绑定后事件
        /// </summary>
        /// <param name="e"></param>
        public override void AfterBindData(EventArgs e)
        {
            var reportModel = this.Model as SysReportModel;
            var reportView = this.View as SysReportView;
            var titles = reportModel.ReportTitles;
            if (titles != null)
            {
                foreach (var title in titles)
                {
                    var ctl = reportView.TryGetControl(title.TitleKey);
                    if (ctl != null)
                    {
                        ctl.Enabled = true;
                    }
                }
             }
     }
}

三、启用后赋值其实都是文本值,如果想根据字段类型来赋值,还需要在表单插件中处理,参考连接中的第4项:https://vip.kingdee.com/article/209963869630678016

赞 4