单据转换.二开案例.选单时清空历史分录
【场景】选单时清空明细信息里面的已有分录
【案例】通过单据转换插件实现,选单时清空分录
<0>单据转换插件
```csharp
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
namespace DynamicFormPlugIn.BillConvert
{
[Kingdee.BOS.Util.HotUpdate]
[System.ComponentModel.Description("选单时清空没保存的分录")]
public class ClearEntityRowWhileDraw_ServicePlugIn : AbstractConvertPlugIn
{
public static string EntityKey = "FPOOrderEntry";
public override void OnCreateDrawTarget(CreateDrawTargetEventArgs e)
{
var entity = e.TargetBusinessInfo.GetEntity(EntityKey);
if (entity == null)
return;
var billObj = e.TargetData;
if (!billObj.DynamicObjectType.Properties.ContainsKey(entity.EntryName))
return;
DynamicObjectCollection rowColl = billObj[entity.EntryName] as DynamicObjectCollection;
if (rowColl == null)
return;
for(int idx = rowColl.Count -1; idx>=0;--idx)
{
var row = rowColl[idx];
if (row == null)
continue;
int entryId = ObjectUtils.Object2Int(row[0]);
if (entryId != 0)
{
//已经保存到数据库的行,如需要也可以清理,自行根据业务实现
//rowColl.RemoveAt(idx);
}
else
{
//没有保存到数据库的行
rowColl.RemoveAt(idx);
}
}
}
}
}
```
<1>注册单据转换插件
建议:如果客户建议注册到首个,因为是删除分录,尽可能越早做越好,避免浪费性能
![image.webp](/download/01001bf2f0a67f484c1294bcd67bf483f071.webp)
【效果】针对没有保存过的分录,选单时会自动清空
![Image_20230118182138.webp](/download/010046c2551c8e0b45a4a5ec4ff1596acb87.webp)
![Image_20230118182203.webp](/download/01002289728358814fb3a0d7f77d599516f7.webp)
单据转换.二开案例.选单时清空历史分录
【场景】选单时清空明细信息里面的已有分录【案例】通过单据转换插件实现,选单时清空分录<0>单据转换插件```csharpusing Kingdee.BOS.Cor...
点击下载文档
本文2024-09-16 18:32:51发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22860.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章