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

说明:
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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



