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

如何控制单据头字段只反写一次

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

如何控制单据头字段只反写一次

说明:

   1. 单据反写规则的执行是按单据关联主实体数来执行的,主实体往往是单据体,所以在反写单据头执行了N次

   2. 适应情况,反写规则为累加或累减模式,单据头字段反写单据头字段


反写插件代码:


using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;

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

namespace Kingdee.BOS.TestPlugIn.Demo
{
    [Description("限制单据头只反写一次")]
    [Kingdee.BOS.Util.HotUpdate]
    public class WriteBackHeadPlugIn : AbstractBusinessFlowServicePlugIn
    {
        //需要干预的反写规则
        private bool _isNeedHandleRule = false;
        private bool _isFirstWriteBack = true;
        /// <summary>
        /// 反写前事件,每个反写规则走一次,得到需要干预反写规则
        /// </summary>
        /// <param name="e"></param>
        public override void BeforeWriteBack(BeforeWriteBackEventArgs e)
        {
            this._isNeedHandleRule = false;
            this._isFirstWriteBack = true;
            var ruleName = e.Rule.Name.ToString();
            if (ruleName.EqualsIgnoreCase("单据B反写单据A——单据头字段"))
            {
                this._isNeedHandleRule = true;
            }
        }
    /// <summary>     
        /// /// 反写条目反写后事件,每一行都会走     
        /// /// </summary>    
        /// /// <param name="e"></param>    
        public override void AfterCommitAmount(AfterCommitAmountEventArgs e)   
        {           
            base.AfterCommitAmount(e);        
            if (this._isNeedHandleRule)      
            {             
                //第一次反写不处理       
                if (this._isFirstWriteBack)    
                {                
 

如何控制单据头字段只反写一次

说明: 1. 单据反写规则的执行是按单据关联主实体数来执行的,主实体往往是单据体,所以在反写单据头执行了N次 2. 适应情况,反写...
点击下载文档文档为doc格式

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

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