多选基础资料-前端控件赋值原创
900次浏览
编辑于2022年12月16日 13:55:15
一、需求阐明
当新增数据时,给多选基础资料自动赋值指定数据到前端。
当新增数据时,将指定的四大名著(西游记、水浒传、红楼梦、三国演义)赋值给前端多选基础资料控件四大名著。
二、分析实现
针对此需求,采用表单基类(AbstractFormPlugin)的afterCreateNewData事件。【说明】:无论用什么事件,业务逻辑基本一致。
@Override public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); // 图书编码表示 String bookNumber = "kaen_book"; // 1.将四大名著存储当作过滤条件 List<String> bookNames = Arrays.asList(new String[]{"西游记", "水浒传","红楼梦","三国演义"}); // 2.加载出四大名著 DynamicObject[] loadBookByName = BusinessDataServiceHelper.load(bookNumber, "id", new QFilter[]{new QFilter("name", QCP.in, bookNames)}); // 3.获取id ArrayList<String> ids = new ArrayList<>(); for (DynamicObject dynamicObject : loadBookByName) { ids.add(dynamicObject.getPkValue().toString()); } // 4.赋值 只能传入Object[]、DynamicObjectCollection、Map。所以还得将ids转换为Object[]类型 this.getModel().setValue("fourgreatclassics",ids.toArray()); }
三、效果预览
可以看到成功。如果有最佳方案,分享在评论区。
多选基础资料后端赋值并保存
推荐阅读