列表(卡片视图)数据前移后移原创
6人赞赏了该文章
1,274次浏览
编辑于2021年11月01日 15:11:33
1,需求背景:在列表的卡片视图中,每个卡片需要有前移后移按钮,可以将相邻两个数据移动交换位置
2,实现方案:可以在单据加一个整数字段,作为排序字段,然后在列表上用按照该字段去排序,然后移动的时候修改该字段的值去移动。
3,具体实现:
案例需求:
卡片视图展示数据,每个卡片需要有前移后移功能,最前面的不能前移,最后面的不能后移,移动后,两个数据需要交换位置
案例代码:
第一步:在单据界面,添加一个整数字段作为排序字段,然后在保存之前,对排序字段赋值,第一张单据数据字段为1,第二张单据整数字段为2,依次下去。(也可以按照其他的要求给整数字段赋初始值)
第二步:在列表界面,,先设置列表按照排序字段升序或者降序排列(本例是降序),再监听按钮(这里前移,后移是放的按钮),然后通过判断点击按钮的标识去判断前移操作还是后移操作,并且获取当前选择行的数据,将其排序字段和需要移动的数据的排序字段交换赋值。再刷新页面。
@Override public void registerListener(EventObject e) { // TODO Auto-generated method stub super.registerListener(e); Button button1 = this.getView().getControl("kdec_buttonap"); button1.addClickListener(this); Button button2 = this.getView().getControl("kdec_buttonap1"); button2.addClickListener(this); } @Override public void click(EventObject evt) { // TODO Auto-generated method stub super.click(evt); Button source = (Button) evt.getSource(); String key = source.getKey(); BillList billList = this.getControl("billlistap"); ListSelectedRowCollection collection = billList.getSelectedRows(); Long selectId = (Long) collection.get(0).getPrimaryKeyValue(); QFilter qFilter = new QFilter("id", QCP.equals, selectId); DynamicObject dys = BusinessDataServiceHelper.loadSingle("kdec_partnerdemo", "id,kdec_sort",new QFilter[] { qFilter }); //排序字段 int selectSort = dys.getInt("kdec_sort"); DynamicObject[] dyObjects = BusinessDataServiceHelper.load("kdec_partnerdemo", "id", null); int count = dyObjects.length; if ("kdec_buttonap".equals(key) && selectSort != count) { QFilter qFilter2 = new QFilter("kdec_sort", QCP.equals, selectSort + 1); DynamicObject dys2 = BusinessDataServiceHelper.loadSingle("kdec_partnerdemo", "id,kdec_sort",new QFilter[] { qFilter2 }); dys.set("kdec_sort", selectSort + 1); dys2.set("kdec_sort", selectSort); SaveServiceHelper.update(new DynamicObject[] { dys, dys2 }); } else if ("kdec_buttonap1".equals(key) && selectSort != 1) { QFilter qFilter2 = new QFilter("kdec_sort", QCP.equals, selectSort - 1); DynamicObject dys2 = BusinessDataServiceHelper.loadSingle("kdec_partnerdemo", "id,kdec_sort",new QFilter[] { qFilter2 }); dys.set("kdec_sort", selectSort - 1); dys2.set("kdec_sort", selectSort); SaveServiceHelper.update(new DynamicObject[] { dys, dys2 }); } this.getView().updateView(); }
4,版本号:BOS_V3.0.006.0
billlistcard.zip(5.99KB)
赞 6
6人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!