NC表体编辑后事件

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:

NC表体编辑后事件

 

事件类实现 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], "需要赋值的表体字段名");
    }