首页 > 其他 > 详细

EAS 之F7控件实现多选择并保存

时间:2019-06-26 18:35:37      阅读:143      评论:0      收藏:0      [点我收藏+]

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();
}
}
}

EAS 之F7控件实现多选择并保存

原文:https://www.cnblogs.com/luojiabao/p/11092177.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!