
【场景】批量生成时,按照平台默认顺序,最终的单据编号也会按照这个顺序
【案例】调整目标单生成的顺序
<0>数据准备

<1>设置默认物料分组,最终生成首个单是01,第二个单是02物料的;

<2>插件干预生成的顺序

```chsarp
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
namespace DynamicFormPlugIn.BillConvert
{
[Kingdee.BOS.Util.HotUpdate]
public class ConvertServicePluIn_SortTargetBill : AbstractConvertPlugIn
{
public override void AfterConvert(AfterConvertEventArgs e)
{
{
string tgtBillHeadKey = e.TargetBusinessInfo.GetEntity(0).Key;
var tgtBillSet = e.Result.FindByEntityKey(tgtBillHeadKey);
if (tgtBillSet == null || tgtBillSet.Length <= 0)
return;
Array.Sort(tgtBillSet, (lhs, rhs) => { return Compare(lhs, rhs, e.TargetBusinessInfo); });
}
}
private int Compare(ExtendedDataEntity lhs, ExtendedDataEntity rhs, BusinessInfo businessInfo)
{
string lhsKey = GetSortKey(lhs, businessInfo);
string rhsKey = GetSortKey(rhs, businessInfo);
//正序
//return string.Compare(lhsKey, rhsKey);
//倒序
return string.Compare(rhsKey, lhsKey);
}
/// <summary>