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

反写上游子单据体

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

反写上游子单据体

说明:目前反写规则只支持关联实体(一般为单据体),和关联实体的父单据体(单据头)的反写,如果需要反写上游单据的关联实体的子单据体,则需要插件处理。

示例:单据B关联实体反写单据A关联实体的子单据体

步骤:

  1. 在单据A和单据B关联的单据体都增加一个隐藏的整形字段,命名为隐藏整数,key设置为FHideInterger,并设置单据B中的隐藏整数默认值为100

  2. 创建一个反写规则,如下图:

    image.webp

  3. 编写反写插件,并注册到单据B的反写插件中,业务逻辑要点:

    3.1  反写规则为上面的反写规则才运行

    3.2  保存和删除操作都需要处理

    3.3 此反写规则每次保存都需要运行

  4. 执行效果,如下图:

    image.webp

反写代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.ComponentModel;


using Kingdee.BOS;

using Kingdee.BOS.Core;

using Kingdee.BOS.Util;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.BusinessEntity;

using Kingdee.BOS.Core.BusinessFlow;

using Kingdee.BOS.Core.BusinessFlow.PlugIn;

using Kingdee.BOS.Core.Metadata.FieldElement;

using Kingdee.BOS.Core.BusinessFlow.PlugIn.Args;

using Kingdee.BOS.BusinessEntity.BusinessFlow;

namespace Kingdee.BOS.TestPlugIn.BillABillB

{

    [Description("单据B反写插件")]

    [Kingdee.BOS.Util.HotUpdate]

    public class BillBWriteBackPlugIn : AbstractBusinessFlowServicePlugIn

    {

        //需要干预的反写规则

        private bool _isNeedHandleRule = false;


        /// <summary>

        /// 反写前事件,每个反写规则走一次,得到需要干预反写规则

        /// </summary>

        /// <param name="e"></param>

        public override void BeforeWriteBack(BeforeWriteBackEventArgs e)

        {

            this._isNeedHandleRule = false;

            var ruleName = e.Rule.Name.ToString();

            if (ruleName.EqualsIgnoreCase("单据B反写单据A—隐藏的整数字段"))

            {

                this._isNeedHandleRule = true;

            }

        }

/// <summary>

        /// 加入需要反写的上游字段,反写取得是上游部分数据包,所以要通过插件加入自定义需要处理的字段

        /// </summary>

        /// <param name="e"></param>

        public override void AfterCustomReadFields(AfterCustomReadFieldsEventArgs e)

        {

            if (this._isNeedHandleRule)

            {

                e.AddFieldKey("F_KKK_SubText2");//上游单据子单据体文本 

            }

        }

    /// <summary>

        /// 反写条目反写后事件,每一行都会走

        /// </summary>

        /// <param name="e"></param>

        public override void AfterCommitAmount(AfterCommitAmountEventArgs e)

        {

            base.AfterCommitAmount(e);

            if (this._isNeedHandleRule)

            {


              //保存操作

                if (this.OperationNumber.EqualsIgnoreCase("Save"

反写上游子单据体

说明:目前反写规则只支持关联实体(一般为单据体),和关联实体的父单据体(单据头)的反写,如果需要反写上游单据的关联实体的子单据体,...
点击下载文档文档为doc格式

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

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