单据转换.二开案例.选单时清空历史分录

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

单据转换.二开案例.选单时清空历史分录

【场景】选单时清空明细信息里面的已有分录 【案例】通过单据转换插件实现,选单时清空分录 <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...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息