由于物料分组不属于基础资料 不能通过基础资料属性字段 添加引用属性来获取物料分组的上级分组,需要插件处理
一:在物料上添加分组字段(上级分组)
二:二开插件挂于表单插件之后
插件代码如下图:
具体如下:
/// <summary> /// 值更新事件(需要勾选“即时更新事件”的选项) /// </summary> /// <param name="e"></param> public override void DataChanged(DataChangedEventArgs e) { switch (e.Field.Key) { //物料分组值更新事件 获取对应的上级分组字段给新增加的上级分组字段赋值 case CONST_BD_MATERIAL.CONST_FBillHead.KEY_FMaterialGroup: if (!e.NewValue.IsNullOrEmptyOrWhiteSpace() && !e.OldValue.Equals(e.NewValue)) { long materialGroupId = Convert.ToInt64(e.NewValue); //往上再找一层物料分组 string strSql = "SELECT FPARENTID FROM T_BD_MATERIALGROUP WHERE FID = @Id "; SqlParam[] pram = new SqlParam[] { new SqlParam("@Id", KDDbType.Int64, materialGroupId) }; long parentId = DBServiceHelper.ExecuteScalar<long>(this.Context, strSql, (long)0, pram); this.View.Model.SetValue("FMaterialGroupUp", parentId); } break; } }
推荐阅读