PLM.二开案例.变更单新增一个已影响评估的标记

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PLM.二开案例.变更单新增一个已影响评估的标记

【应用场景】

当变更对象较多,且部分对象不存在或不返回评估对象时,无法准确知道是否已经评估过。需要一个标记去记录用户是否进行过评估操作。


【案例演示】



【实现步骤】

<1>扩展变更单,在变更对象单据体中新增一个字段标识是否评估

<2>新增一个表单插件,并绑定至扩展的变更单中

你可能需要引用以下组件:

编写代码如下:

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System;
using System.ComponentModel;
using System.Linq;

namespace ISV.ECN.Common.BusinessEntity
{
    [Description("示例:影响评估标记插件")]
    public class AssociatedRemark: AbstractBillPlugIn
    {
        public override void EntryBarItemClick(BarItemClickEventArgs e)
        {
            if (e.BarItemKey.ToUpper() == "TBASSOCIATED") //影响评估
            {
                var entity = this.View.BusinessInfo.GetEntity("FChangeObjectEntity");
                var entityData = this.View.Model.GetEntityDataObject(entity);
                if (entityData != null && entityData.Count() < 0) return;

                //评估对象获取: 取已勾选的第一个变更对象,且为非评估返回的对象(父行标识区分)

                var firstSelectedRow = entityData.First(r => Convert.ToBoolean(r["IsSelect"]) && Convert.ToInt64(r["BaseObject"]) > 0);
                if (firstSelectedRow != null && string.IsNullOrWhiteSpace((firstSelectedRow["PARENTROWID"] ?? string.Empty).ToString()))
                {
                    this.Model.SetValue("F_ISV_Associated", true, entityData.IndexOf(firstSelectedRow));
                }
            }
        }
    }
}

<3>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。

<4>注册插件

<5>更新业务类型后即可验证



【参考资料】

【汇总】星空PLM二开指南(持续更新...) (kingdee.com)



【金蝶云星空BOS二次开发案例演示】

https://vip.kingdee.com/article/94751030918525696


PLM.二开案例.变更单新增一个已影响评估的标记

【应用场景】当变更对象较多,且部分对象不存在或不返回评估对象时,无法准确知道是否已经评估过。需要一个标记去记录用户是否进行过评估操...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息