zoukankan      html  css  js  c++  java
  • EAS 之F7控件实现多选择并保存

    EAS BOS F7控件实现多选择并保存
    1、设置F7开户多选功能,F7.setEnabledMultiSelection(true);
    2、除了F7本身字段以外,再添加两个文本字段,F7Name(用于ListUI查询用),F7ID(用于保存多选值),F7自身是不保存数据值的
    3、在F7_dataChanged方法里把F7多选到的值分别赋值到F7Name,F7ID中,例:
    protected void f7_dataChanged(
    com.kingdee.bos.ctrl.swing.event.DataChangeEvent e) {
    Object[] F7cols = (Object[]) e.getNewValue();
    //Object data = kDLabelExpenseType.getData(); 这样也可以获取到数据,
    //Object[] F7cols = (Object[])data;
    if (null == F7cols) {
    txtF7Name.setText(null);
    txtF7ID.setText(null);
    SysUtil.abort();
    }
    StringBuilder f7id = new StringBuilder();
    StringBuilder f7Name = new StringBuilder();
    for (int i = 0; i < F7cols.length; i++) {
    OperationTypeInfo info = (OperationTypeInfo) kOperationType[i];
    String idString = info.getId().toString();// 业务类别
    operationTypeid.append(idString).append(";");
    operationTypeName.append(info.getNumber()).append("-").append(info.getName()).append(";");
    }
    String operationTypeidValue = operationTypeid.toString();
    if (!StringUtils.isEmpty(operationTypeidValue)) {
    operationTypeidValue = operationTypeidValue.substring(0,
    operationTypeidValue.length() - 1);
    txtF7ID.setText(operationTypeidValue);
    }
    String operationTypeNameValue = operationTypeName.toString();
    if (!StringUtils.isEmpty(operationTypeNameValue)) {
    operationTypeNameValue = operationTypeNameValue.substring(
    0, operationTypeNameValue.length() - 1);
    txtF7Name.setText(operationTypeNameValue);
    }
    }
    4、在数据加载的时候,把数据通过ID再解析出来赋值给F7字段 一定要先super.loadFields,再设计f7字段为多选功能,否则这里保存出来的值是内存地址

    public void loadFields() {
    // 加载
    super.loadFields();
    f7.setEnabledMultiSelection(true);
    String operationTypeID = editData.getOperationTypeID();

    if (!StringUtils.isEmpty(operationTypeID)) {
    String[] operationType = operationTypeID.split(";");
    StringBuilder sbBuilder = new StringBuilder();
    EntityViewInfo evi = new EntityViewInfo(); // 创建实体视图
    FilterInfo f = new FilterInfo();// 创建过滤对象
    for (int i = 0; i < operationType.length; i++) {
    FilterItemInfo filter1 = new FilterItemInfo("id",
    operationType[i], CompareType.EQUALS);
    f.getFilterItems().add(filter1);// 将过滤条件添加到过滤对象中
    sbBuilder.append("#").append(i).append(" ").append("or ");
    }
    String maskString = sbBuilder.toString();
    if (!StringUtils.isEmpty(maskString)) {
    maskString = maskString.substring(0, maskString.length() - 3);
    f.setMaskString(maskString);
    evi.setFilter(f);// 设置实体视图的过滤器
    try {
    IOperationType instance = OperationTypeFactory.getRemoteInstance();
    OperationTypeCollection collection = instance.getOperationTypeCollection(evi);
    int size = collection.size();
    Object[] infoObjects=new Object[size];
    for (int i = 0; i < size; i++) {
    infoObjects[i]=collection.get(i);
    }
    f7.setData(infoObjects);
    } catch (BOSException e) {
    e.printStackTrace();
    }
    }
    }

  • 相关阅读:
    进制
    流程控制
    运算符
    格式化输出
    数据结构-树的遍历
    A1004 Counting Leaves (30分)
    A1106 Lowest Price in Supply Chain (25分)
    A1094 The Largest Generation (25分)
    A1090 Highest Price in Supply Chain (25分)
    A1079 Total Sales of Supply Chain (25分)
  • 原文地址:https://www.cnblogs.com/luojiabao/p/11092177.html
Copyright © 2011-2022 走看看