需求如下:卡片分录行上有标签,用于展示行数据的关键信息,那标签的名称就需要按行的关键信息来动态展示;
实现如下:
在afterBindData事件上进行处理,需要获取卡片分录的控件和数据,循环卡片分录的数据,进行修改标签名称,代码如下:
DynamicObjectCollection entryColl = this.getModel().getDataEntity(true).getDynamicObjectCollection("xxxx");
CardEntry cardEntry = this.getControl("xxxx");
for (int i = 0; i < entryColl.size(); i++) {
//xx处理人
DynamicObject handler = item.getDynamicObject("xxx_creater");
Map<String, Object> map = new HashMap<>();
String value = "";
if (handler != null) {
value = handler.getLocaleString("name").getLocaleValue_zh_TW() + "("
+ handler.getString("number") + ")";
}
map.put("text", value);
Map<String, Object> mapNew = new HashMap<>();
mapNew.put("标签标识", map);
//修改名称
cardEntry.setCustomProperties(cardEntry.getKey(), i, mapNew);
}
推荐阅读