移动端单据列表自定义显示数据原创
金蝶云社区-孤勇者
孤勇者
2人赞赏了该文章 1,192次浏览 未经作者许可,禁止转载编辑于2022年05月12日 18:18:03

背景:移动端没有单据体控件,想通过单据列表实现自定义列表取数回显数据,并且能实现页签点击刷新效果

    -->最初阶段因为使用了单据列表控件画前端时,绑定了一个临时表进行取数,后面我这边把数据清除了,采用空白表来绑定字段,不进行写入操作,只为了让数据按正常效果显示。

实现:

先监听单据列表控件自定义取数


第一步,先添加控制监听

    @Override
    public void initialize() {
        super.initialize();
       
        BillList billlistap = getControl("单据列表标识");
        billlistap.addCreateListDataProviderListener(this);
    }

  

第二步,实现该监听事件方法

 @Override
    public void createListDataProvider(BeforeCreateListDataProviderArgs arg0) {
        arg0.setListDataProvider(new ListDataProvider() {
            public DynamicObjectCollection getData(int start, int limit) {
                //获取空白数据行,主要为了取列表的数据显示格式和需要赋值的字段标识
                DynamicObjectCollection allRows = super.getData(start, limit); 
              /*
              获取自定义取数结果集resultList,这里就不作过多演示,按实际业务情况获取
              */
              //对结果集进行处理,添加到allRows中
                if (Optional.ofNullable(resultList).isPresent()) {
                    resultList.forEach(entity-> {
                        DynamicObject dynamicObject = allRows.addNew();
                        dynamicObject.set("列表字段标识","entity属性值");
                    });
                }
                //返回结果
                return allRows;
            }
        });
    }


第三步,添加点击刷新效果,我这边业务为页签点击触发事件,具体情况按实际使用调整

@Override
    public void tabSelected(TabSelectEvent event) {
        String subTabKey = event.getTabKey();
        switch (subTabKey) {
            case "页签标识":
                BillList billlistap = getControl("单据列表标识");
                billlistap.refreshData();
                break;
            default:
                break;
        }
    }


到此,就可以实现移动端单据列表显示自定义数据。




赞 2