1.功能实现效果截图:
2.实现方法:账户项是是参照,账户册是中间数据,通过对账户项进行编辑后事件控制,当账户项编辑后,对账户项和账户册填充对应的主键,主键用'@'隔开。通过显示公式,将账户项的主键显示为对应的名称,儿账户册是显示公式的条件。该公式为自定义公式类型。
3.该功能实现要用表体编辑前事件
@Override
public void handleAppEvent(CardBodyBeforeEditEvent e) {
if (e.getKey().equals("nor_para")) {
setCellEditable(e);
}else if(e.getKey().equals("pk_coa")){
BillCardPanel panel = e.getBillCardPanel();
setMultiSelectRef(panel);
}
e.setReturnValue(UFBoolean.TRUE.booleanValue());
}
/**
* 设置参照可多选
* @param panel
*
*/
public void setMultiSelectRef(BillCardPanel panel){
UIRefPane coaRefPanel = (UIRefPane) panel.getBodyItem("pk_coa").getComponent();
//UIRefPane coaRefPanelName = (UIRefPane) panel.getBodyItem("account_item_name").getComponent();
coaRefPanel.setMultiSelectedEnabled(true);
//coaRefPanelName.setMultiSelectedEnabled(true);
}
4.在相应的xml文件中配置表体编辑前事件即可
<!-- 表体编辑前事件 -->
<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardBodyBeforeEditEvent" />
<property name="handler">
<bean class="nc.ui.frm_alm.stress_test_plan.ace.handler.BodyBeforeEditHandler" />
</property>
</bean>