1.节点对应的xml文件中找到打开节点监听的配置
<!-- 打开节点监听 newadd-->
<bean id="InitDataListener" class="nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener">
<property name="model" ref="bmModel"/>
<property name="context" ref="context"></property>
<property name="voClassName" value="nc.vo.frm_alm.stress_test_plan.AggStressTestPlanVO"/>
</bean>
2.在如下图所示的包中新建监听器,继承nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener类,重写initData
@SuppressWarnings("unchecked")
@Override
public void initData(FuncletInitData data) {
if(null == data){
AggStressTestPlanVO[] bills = null;
try {
bills = NCLocator.getInstance().lookup(IStress_test_planMaintain.class).query();
this.getModel().initModel(bills);
} catch (Exception e) {
Logger.error("初始化界面出错!");
}
}else{
super.initData(data);
}
}
3.在IStress_test_planMaintain接口中增加query方法,并在对应的实现类中实现该方法
@Override
public AggStressTestPlanVO[] query() throws BusinessException {
AggStressTestPlanVO[] bills = null;
EfficientBillQuery<AggStressTestPlanVO> query = new EfficientBillQuery<>(AggStressTestPlanVO.class);
bills = query.query(" from alm_stress_test_plan where isnull(dr,0)=0 ");
return bills;
}
4.修改第一步中的配置,改为自己新增的监听器保存即可。
5.主子表和单表在实现该功能的时候主要的区别就是在获取数据是API调用的不同,主子表要获取的聚合的VO,而且子表的数据属于懒加载,在列表页上点击主表的一条数据后才会加载子表的数据