银行存款对账-银行存款流水账增加凭证字号显示原创
金蝶云社区-Ddodondong
Ddodondong
1人赞赏了该文章 438次浏览 未经作者许可,禁止转载编辑于2021年12月28日 10:25:17
  1. 新增插件

  2. using Kingdee.BOS.Orm.DataEntity;
    using Kingdee.BOS.ServiceHelper;
    using Kingdee.K3.FIN.Core;
    using System;
    using System.ComponentModel;
    using System.Linq;
    using Kingdee.BOS.Util;
    namespace Kingdee.K3.FIN.CN.Business.PlugIn.BankAcntCheck
    {
        /// <summary>
        /// 
        /// </summary>
        [Description("我的插件")]
        public class MyPlugIn : BankAcntCheck
        {
            /// <summary>
            /// 设置凭证字号
            /// </summary>
            private void SetVourchNo()
            {
                var bankTrans = this.View.Model.DataObject["BankTransList"];
                var bankTransData = bankTrans as DynamicObjectCollection;
                if (bankTransData == null || !bankTransData.Any())
                    return;
                //获取日记账数据
                var journalBankTransData = bankTransData.Where(f => Convert.ToString(f["FDOWNBILLFORMID"]) == BusinessObjectConst.CN_JOURNAL).ToList();
                var entryIds = journalBankTransData.Select(f => Convert.ToInt64(f["FDOWNENTRYID"])).ToList();
                //查询日记账明细的凭证字号
                var sql = string.Format(@"SELECT A.FENTRYID,A.FVOUCHERGROUPID,A.FVOUCHERGROUPNO,GL.FNAME FROM T_CN_JOURNALENTRY A 
                                LEFT JOIN T_BD_VOUCHERGROUP_L GL ON A.FVOUCHERGROUPID=GL.FVCHGROUPID WHERE A.FENTRYID IN ({0}) AND A.FVOUCHERGROUPID>0", string.Join(",", entryIds));
                var ret = DBServiceHelper.ExecuteDynamicObject(this.Context, sql)
                    .GroupBy(f => Convert.ToInt64(f["FENTRYID"])).ToDictionary(f => f.Key, a => a.FirstOrDefault());
                //遍历赋值
                
                for (var i = 0; i < bankTransData.Count; i++)
    {
                    var data = bankTransData[i];
                    if (!Convert.ToString(data["FDOWNBILLFORMID"]).EqualsIgnoreCase(BusinessObjectConst.CN_JOURNAL))
                        continue;
                    var entryId = Convert.ToInt64(data["FDOWNENTRYID"]);
                    DynamicObject vourch = null;
                    if (!ret.TryGetValue(entryId, out vourch))
                        continue;
                    this.View.Model.SetValue("FDOWNVOUCHERGROUPID", vourch["FNAME"], i);
                    this.View.Model.SetValue("FDOWNVOUCHERGROUPNO", vourch["FVOUCHERGROUPNO"], i);
                }
                this.View.UpdateView("FBankTransList");
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="e"></param>
            public override void AfterCreateNewData(EventArgs e)
            {
                base.AfterCreateNewData(e);
                SetVourchNo();
            }
    /// <summary>
            /// 
            /// </summary>
            /// <param name="e"></param>
            public override void AfterBarItemClick(BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e)
            {
                base.AfterBarItemClick(e);
                switch (e.BarItemKey)
                {
                    case "tbFilter"://显示过滤界面后过滤
                    case "tbRefresh"://刷新
                    case "tbAutoBlend"://自动勾对
                    case "tbBlendByHand"://手工勾对
                        SetVourchNo();
                        break;
                }
            }
        }
    }
  3. 增加字段,凭证字FDOWNVOUCHERGROUPID,凭证号FDOWNVOUCHERGROUPNO

    image.png

  4. 表单插件反注册原插件,注册新插件

    image.png

赞 1