如何在移动列表以序号过滤单据体数据原创
金蝶云社区-吴锐雄
吴锐雄
0人赞赏了该文章 554次浏览 未经作者许可,禁止转载编辑于2023年11月27日 18:38:29

关键词:移动列表,过滤,分录,单据体


一、需求

移动列表中,只展示第一行单据体(分录)数据,其他分录行的数据过滤掉不展示。


二、思路与方案

单据体有一个隐藏字段seq,是用来做单据体行的排序的。

我们可以给移动列表添加一个插件,重构ListDataProvider,加入过滤条件,从而展示第一行单据体数据,过滤掉其他数据。


三、实现过程

1.开发单据

创建单据体

image.png


设计移动列表,将单据体的分录行号字段,码号字段拖入移动列表

image.png


接下来,准备用分录行号进行过滤,但是不建议将分录行号展示出来,因此设置分录行号字段的高度和宽度。

image.png


新增2个测试数据:

image.png

image.png


2.编写和注册插件代码

代码如下,过滤对单据体entryentity的分录行号字段(标识是seq进行过滤

public class MobTestEnFilterPlugin extends AbstractMobListPlugin {

    @Override
    public void beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) {
        args.setListDataProvider(new TextLineListDataProvider());
    }

    private class TextLineListDataProvider extends ListDataProvider {

        @Override
        public DynamicObjectCollection getData(int start, int limit) {

            QFilter qFilter = new QFilter("entryentity.seq", QCP.equals, 1);
            getQFilters().add(qFilter);
            DynamicObjectCollection dynamicObjects = super.getData(start, limit);
            return dynamicObjects;
        }

    }


}


注册插件:

image.png


四、效果图

关闭插件,数据过滤前是这样的:

image.png


开启插件,产生数据过滤之后:

image.png


五、开发环境版本

无限制


六、注意事项

移动列表中,单据体每个字段都占一行,如果某个单据上有x个字段且y行的单据体数据,那么仅一行单据都会有x*y行数据,再加上单据头行数就更多了。因此,在设计移动列表的字段时,要精简数据量,减少展示字段,把尽可能多的核心数据展示在手机上。


七、参考资料

移动列表





图标赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!