单据动态添加单选按钮(组)原创
金蝶云社区-BIN哥
BIN哥
9人赞赏了该文章 1665次浏览 未经作者许可,禁止转载编辑于2021年03月31日 16:59:57
  • 应用场景:很多时候我们使用单选按钮是动态生成的,而非在表单设计器就设定好的。下面的示例记录了通过业务数据在界面上动态创建单选按钮(组)的过程:


Container radioFlex = getControl("flex标识");
DynamicObjectCollection items = new DynamicObjectCollection();  // 实际是业务查询的值
List<ComboItem> radioGroupItems = new ArrayList<>();
for(int itemIndex = 0; itemIndex < items.size(); itemIndex ++) {
    DynamicObject item = items.get(itemIndex);
    radioGroupItems.add(new ComboItem(itemIndex+1, new LocaleString("单选按钮标题"), "单选按钮值"));

    // 创建字段
    FieldAp fieldAp = new FieldAp();
    fieldAp.setId("字段id");
    fieldAp.setKey("字段标识");
    fieldAp.setName(new LocaleString("单选按钮标题"));

    // 创建单选按钮
    RadioField radioField = new RadioField();
    radioField.setId("单选按钮id");
    radioField.setKey("单选按钮标识");
    radioField.setGroup("单选按钮组标识");     // 单选按钮组的标识要跟下面创建的单选按钮组的标识一致
    radioField.setItems("单选按钮值");
    fieldAp.setField(radioField);

    // 字段加入到flex中
    radioFlex.addControls(Collections.singletonList(fieldAp.createControl()));
}

// 创建单选按钮组
FieldAp fieldAp = new FieldAp();
fieldAp.setId("单选按钮组id");
fieldAp.setKey("单选按钮组标识");
// 单选按钮组
RadioGroupField radioGroupField = new RadioGroupField();
radioGroupField.setItems(radioGroupItems);      // 按钮组需要设置好items
fieldAp.setField(radioGroupField);
// 字段加入到flex中
radioFlex.addControls(Collections.singletonList(fieldAp.createControl()));



注意:单选按钮需要配合单选按钮组才能正常使用。另外,不知道是不是苍穹环境版本问题,我的单选按钮的按钮值的属性是 items ,而非开发文档value ,所以我的示例代码使用的是 radioField.setItems(XXX);

赞 9