如何在移动列表以序号过滤单据体数据原创
555次浏览
编辑于2023年11月27日 18:38:29
关键词:移动列表,过滤,分录,单据体
一、需求
移动列表中,只展示第一行单据体(分录)数据,其他分录行的数据过滤掉不展示。
二、思路与方案
单据体有一个隐藏字段seq,是用来做单据体行的排序的。
我们可以给移动列表添加一个插件,重构ListDataProvider,加入过滤条件,从而展示第一行单据体数据,过滤掉其他数据。
三、实现过程
1.开发单据
创建单据体
设计移动列表,将单据体的分录行号字段,码号字段拖入移动列表
接下来,准备用分录行号进行过滤,但是不建议将分录行号展示出来,因此设置分录行号字段的高度和宽度。
新增2个测试数据:
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; } } }
注册插件:
四、效果图
关闭插件,数据过滤前是这样的:
开启插件,产生数据过滤之后:
五、开发环境版本
无限制
六、注意事项
移动列表中,单据体每个字段都占一行,如果某个单据上有x个字段且y行的单据体数据,那么仅一行单据都会有x*y行数据,再加上单据头行数就更多了。因此,在设计移动列表的字段时,要精简数据量,减少展示字段,把尽可能多的核心数据展示在手机上。
七、参考资料
mob_listen_filter.zip(10.22KB)
赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!