金蝶云星空单据编辑界面,不允许批量填充操作【分条件】

发布时间 2023-12-05 18:39:32作者: lanrenka

一、前提说明

上一个文章的设计,不管是填充值,还是清空值都一律不允许,但是有时候业务就允许清空,不允许填充值而已。

 

二、案例演示
售后单,明细信息单据体,物料编码字段为空,允许填充,物料编码不为空,禁止批量填充。

 

三、开发设计
编写表单插件,在BeforeEntryBatchFill事件。

public override void BeforeEntryBatchFill(BeforeBatchFillEventArgs e)
{
    base.BeforeEntryBatchFill(e);
    //单个字段
    //if (e.FieldKey.EqualsIgnoreCase("F_XXXX_MaterialId"))
    //{
    //    var material = this.View.Model.GetValue("F_XXXX_MaterialId", e.StartRowIndex) as DynamicObject;//物料编码
    //    if (material != null)
    //    {
    //        e.Cancel = true;
    //        this.View.ShowMessage("物料编码字段禁止批量填充!");
    //    }
    //}
    //多个字段
    switch (e.FieldKey.ToUpperInvariant())//e.FieldKey 自动转大写了
    {
        case "F_XXXX_MATERIALID":
            var material = this.View.Model.GetValue("F_XXXX_MaterialId", e.StartRowIndex) as DynamicObject;//物料编码
            if (material != null)
            {
                e.Cancel = true;
                this.View.ShowMessage("物料编码字段禁止批量填充!");
            }
            break;
        case "F_XXXX_PRODUCTLIBRARYID":
            var ProductLibrary = this.View.Model.GetValue("F_XXXX_ProductLibraryId", e.StartRowIndex) as DynamicObject;//序列号
            if (ProductLibrary!=null)
            {
                e.Cancel = true;
                this.View.ShowMessage("序列号字段禁止批量填充!");
            }
                  
            break;
    }
         
}

 

四、测试

填充值

 清空值