电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开插件 - 辅助属性值校验

来源:金蝶云社区作者:金蝶2024-09-237

二开插件 - 辅助属性值校验

客户需求: 当用户=A时 单据体明细行的每个物料的其中一个辅助属性不能存在B。例如;用户A时,单据明细行物料【等级】这个辅助属性不等于B

实现方案: 保存时,如果当前用户是A,则当明细中有物料【等级】等于B的给出提示,不保存。

1.  查看辅助属性[等级]的编码。打开主菜单 - 基础管理 - 基础资料 - 辅助属性列表菜单。


2.  查看辅助属性[等级]的值列表,查看B的编码。


3.  表单插件代码如下:

public override void BeforeSave(BeforeSaveEventArgs e)
{
    base.BeforeSave(e);
    //用户A内码100088,等级编码为001,等级值不能为B
    long User_Id = 100088;
    string Level_Number = "001";
    string Level_Value = "B";
    //取采购申请单明细
    Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
    DynamicObjectCollection lstEntityObjs = this.Model.GetEntityDataObject(entity);
    if (lstEntityObjs.IsEmpty()) return;
    foreach (DynamicObject dynItem in lstEntityObjs)
    {
        //取当前分录录入的辅助属性值
        DynamicObject dynAuxValue = dynItem["AuxPropId"] as DynamicObject;
        if (dynAuxValue == null) continue;
        //取当前分录录入的物料
        DynamicObject dynMaterial = dynItem["MaterialId"] as DynamicObject;
        //取当前分录物料的辅助属性
        DynamicObjectCollection lstMaterialAuxProps = dynMaterial["MaterialAuxPty"] as DynamicObjectCollection;
        if (lstMaterialAuxProps.IsEmpty()) continue;
        //循环校验各个辅助属性
        foreach (DynamicObject auxPropItem in lstMaterialAuxProps)
        {
            //判断物料启用该辅助属性
            var isEnable1 = ObjectUtils.Object2Bool(auxPropItem["IsEnable1"]);
            if (!isEnable1) continue;
            //组合辅助属性字段,例如:F100001
  

二开插件 - 辅助属性值校验

客户需求: 当用户=A时 单据体明细行的每个物料的其中一个辅助属性不能存在B。例如;用户A时,单据明细行物料【等级】这个辅助属性不等于B...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信