二开插件如何干预引入数据原创
金蝶云社区-Howhy
Howhy
3人赞赏了该文章 871次浏览 未经作者许可,禁止转载编辑于2023年01月04日 16:17:09

在单据引入时,有时候需要移除掉一些不符合要求的数据。本示例演示了,当采购订单引入时,如果明细信息存在采购数量(FQTY)是0的数据时,直接移除掉此行,让引入其他数据。


示例代码如下,重点是列表插件重写BeforeImportData

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace Witt.Cloud.PlugIn.Bill
{
    [Description("引入过滤数据测试")]
    public class ImportFilterPlugin : AbstractListPlugIn
    {
        public override void BeforeImportData(BeforeImportDataArgs e)
        {
            var dataTable = e.DataSource.Tables[0];
            //过滤出采购数量为0的数据
            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                var qtyObj = dataTable.Rows[i]["FQty"];
                if (qtyObj != null && !string.IsNullOrWhiteSpace(qtyObj.ToString()))
                {
                    var qty = Convert.ToInt32(qtyObj.ToString());
                    if (qty == 0)
                    {
                        dataTable.Rows.RemoveAt(i);
                    }
                }
            }

        }
    }
}


赞 3