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

客户需求: 当用户=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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



