EAS_固定资产二开字段

1.针对固定资产模块二开,首先要对固定资产卡片业务操作对应的后台数据有个认识,卡片主要有三种卡片,固定资产卡片(当前卡片)、备份卡片、业务卡片,

三者关系是这样的:

1)当前卡片记录的是固定资产当前的状态信息,

2)业务卡片记录的固定资产在做了业务之后的状态,比如变更,清理,拆分,组合、调拨啥的,在审批之后,就会将业务卡片的信息回写到当前卡片上

3)  备份卡片记录的是固定资产在做了业务之后,将原来的固定资产信息备份记录,用于反审核时候,将备份回写到当前卡片上

扩展字段要同时扩展这3个实体,否则有可能会出现字段显示不全或 值没有还原的清况

2.这里我们举例给固定资产卡片的基础信息也签增加F7类型字段,导入固定资产卡片编辑页签后,增加相应F7控件

 然后保存,这时实体固定资产卡片上也会自动增加对应的字段,此时,我们固定资产新增页面就可以看到新加的字段,

我们新增固定资产,并将刚才加的字段选择对应记录后保存,审核,然后打开固定资产变更单,对刚才新增的固定资产进行变更,会发现刚才新加的成本中心字段,这里已经有控件了,但是却没有值,

 1)有控件是因为,变更编辑页面继承了固定资产新增页面,所以在固定资产编辑新增控件后,这里也有;

2)没有值是因为变更编辑界面控件没有绑定设置值,这里需要我们手动在代码里设置,

 我们扩展备份卡片和业务卡片实体,再去操作导入变更编辑界面,给onload添加前置脚本,把添加的控件绑定到代码里的对象上

前置脚本如下:

//把动态控件传递到代码中
var components = new java.util.HashMap();
components.put("prmtcbzx", pluginCtx.getKDBizPromptBox("prmtcbzx"));
pluginCtx.getUI().setDEPComponents(components);

prmcbzx为F7控件的名称,不是名称,setDEPComponens()为自定义的方法,用来绑定控件,然后在代码里绑定控件

KDBizPromptBox prmtcbzx = null;

    public void setDEPComponents(Object object)
    {
        HashMap components = (HashMap)object;
        prmtcbzx = (KDBizPromptBox)components.get("prmtcbzx");
    }

在onload()方法里将对象值和控件绑定

public void setPrmtcbzx() throws EASBizException, BOSException{
        // 设置F7的控件默认选中值
        if (prmtcbzx !=null) {
            CostCenterOrgUnitInfo costInfo = (CostCenterOrgUnitInfo)this.editData.get("cbzx");
            if(!EmptyUtil.isEmpty(costInfo)){
                CostCenterOrgUnitInfo costCenterOrgUnitInfo = CostCenterOrgUnitFactory.getRemoteInstance()
                .getCostCenterOrgUnitInfo(new ObjectUuidPK(costInfo.getId().toString()));
                prmtcbzx.setValue(costCenterOrgUnitInfo);
            }
        }
    }

然后重新变更,即可在打开页面看到维护的扩展F7的值,其他的单子的做法类似,例如组合单

需要注意的是,这里点击变更查看,实际上,展示的是业务卡片的数据,其他单子也如此,

 

posted @ 2024-04-19 11:18  凉了记忆  阅读(7)  评论(0编辑  收藏  举报