物料清单正查套打基础资料属性原字段为下拉列表的字段 显示数字问题原创
金蝶云社区-乐滋滋
乐滋滋
2人赞赏了该文章 707次浏览 未经作者许可,禁止转载编辑于2021年11月29日 17:12:13

1、物料清单正查为动态表单 打印 是业务插件实现的

2、目前有客户遇到物料上一个下拉列表字段 以发料方式为例

在物料清单正查表体界面添加基础资料属性字段(FprpissuType) 绑定基础资料子项物料编码 引用属性发料方式

3、此时打开BOS套打设计器 修改物料清单正查的套打模板 表体添加字段FprpissuType 

4、物料清单正查界面 套打设置选择维护过后的套打模板 点击预览 FprpissuType这个字段显示的不是直接领料、倒冲领料等 而是显示的1、2等数字 这是因为倒发料方式字段在物料上是一个下拉列表字段,标准产品套打没有处理基础资料属性原字段为下拉列表的类型  但是支持当前单据体是下拉列表的类型 所以客户可以在物料清单正查界面添加字段(下拉列表 绑定对应的枚举)

5、在物料清单点击刷新后写插件 处理当前界面下拉列表的赋值(为什么不用实体服务规则:原因是物料清单正查表体填充数据标准产品代码有控制 所以配了实体服务规则也不会起作用 需要根据标准产品预留的二开接口来实现字段赋值)

6、具体实现如下:

protected override void RefreshEntityView()        {            base.RefreshEntityView();            //获取当前表体数据 携带物料自定义字段到物料清单正查 这里以携带物料发料方式为例 携带到正查的一个下拉字段            DynamicObjectCollection child = this.View.Model.DataObject.GetDynamicObjectItemValue<DynamicObjectCollection>("BomChild");            foreach (var item in child)            {                DynamicObject material = item.GetDynamicObjectItemValue<DynamicObject>("MaterialId");//获取物料                if (!material.IsNullOrEmptyOrWhiteSpace())                {                    DynamicObject prcMtrl = material.GetDynamicObjectItemValue<DynamicObjectCollection>("MaterialProduce").FirstOrDefault();                    if (!prcMtrl.IsNullOrEmptyOrWhiteSpace())                    {                        string propertyName = prcMtrl.GetDynamicObjectItemValue<string>("IssueType");                        item.SetDynamicObjectItemValue("FCombo", propertyName);//FCombo 为物料清单正查添加的二开 下拉列表字段                    }                }            }            this.View.UpdateView(EntityKey_FBomChildEntity);        }

7、当然这个代码是基类要继承与我们物料清单正查的表单插件类:TreeBomQueryForward

8、将二开的插件挂于标准产品物料清单正查表单插件之后(并取消标准产品TreeBomQueryForward插件的勾选)

9、配置完成以后 预览就能看到界面正确的显示结果(如下图结果)

1111.png


赞 2