XML配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="eventMediator" class="nc.ui.pubapp.uif2app.model.AppEventHandlerMediator">
<property name="model" ref="manageAppModel" />
<property name="handlerGroup">
<list>
<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent" />
<property name="handler">
<bean class="编辑后事件类限定名">
<property name="model" ref="manageAppModel"/>
<property name="editor" ref="billFormEditor"/>
</bean>
</property>
</bean>
</list>
</property>
</bean>
</beans>
功能注册中添加XML:
事件类实现 IAppEventHandler<CardBodyAfterEditEvent> 接口,再手动添加两个app控件值,通过XML进行注入,XML中ref的具体名称去该单据的总XML中寻找
private BillManageModel model;
private BillForm editor;
public BillForm getEditor() {
return editor;
}
public void setEditor(BillForm editor) {
this.editor = editor;
}
public BillManageModel getModel() {
return this.model;
}
public void setModel(BillManageModel model) {
this.model = model;
}
@Override
public void handleAppEvent(CardBodyAfterEditEvent arg0) {
// 获取当前字段名
String key = arg0.getKey();
// 获取当前表体面板
BillCardPanel currentPanel = arg0.getBillCardPanel();
// 当前所选中的行号
int[] currentRow = currentPanel.getBillTable().getSelectedRows();
// 获取当前单据表头字段
String headvalue = (String) editor.getBillCardPanel().getHeadItem("表头字段名").getValueObject();
// 获取表体当前选中行物料主键
String bodyvalue= currentPanel.getBodyValueAt(currentRow[0], "表体字段名").toString();
// 表体当前选中行字段赋值
currentPanel.setBodyValueAt(bodyvalue, currentRow[0], "需要赋值的表体字段名");
}