浅析元数据列表排序原创
380次浏览
编辑于2023年09月19日 11:08:18
废话少说,上代码
//解析列表元数据,获取列表的排序 String orderBy = ""; StringBuilder orderByBuilder = new StringBuilder(); //1、获取列表数据 Map<String, Object> listMeta = FormMetadataCache.getListMeta("bd_projectkind"); //2、获取列表JSON数据 JSONObject listData = JSONObject.parseObject(listMeta.get("BillList").toString()); //3、获取元数据列表,第1个为列表(其次为卡片、轻分析) JSONObject list = listData.getJSONArray("Items").getJSONObject(0); //获取列表排序字段 JSONArray fieldList = list.getJSONArray("Items"); for (Object item : fieldList) { JSONObject field = JSONObject.parseObject(item.toString()); String k = field.getString("Visible"); String o = field.getString("Order"); //列表和F7都显示的字段才参与 if ("63".equals(k) && !"NotOrder".equalsIgnoreCase(o)) { orderByBuilder.append(field.getString("ListFieldKey")).append(" ").append(field.getString("Order")).append(","); } } //去掉结尾“,”号 if(orderByBuilder.length() > 0) { orderBy = orderByBuilder.substring(0, orderByBuilder.length() - 1); }
看了代码再来扯犊子吧。
哪些场景会要动态代码获取列表或F7列表的排序设置呢?上图。
项目分类是一个基础资料
项目也是一个基础资料,项目归类到项目分类下
为了在项目基础资料列表界面的左侧项目分类导航树中,与项目分类列表的排序保持一致,就需要在项目基础资料左侧导航树重构树形数据时,更加项目分类列表排序的规则去取数进行排序。所以就需要用到上述代码。
这样就兼容了项目分类树排序与列表保持了一直,无需现场再进行二开处理,用户可以自定义排序啦。
推荐阅读