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的值,其他的单子的做法类似,例如组合单
需要注意的是,这里点击变更查看,实际上,展示的是业务卡片的数据,其他单子也如此,