博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EAS 之F7控件实现多选择并保存
阅读量:5236 次
发布时间:2019-06-14

本文共 2727 字,大约阅读时间需要 9 分钟。

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

转载于:https://www.cnblogs.com/luojiabao/p/11092177.html

你可能感兴趣的文章
spring与quartz整合
查看>>
Kattis之旅——Eight Queens
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
6.1.2.10 超链接美化
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
Android控件之GridView探究
查看>>
在工程中要加入新的错误弹出方法
查看>>
PS 滤镜— — sparkle 效果
查看>>
snmpwalk命令常用方法总结
查看>>
网站产品设计
查看>>
TCP/IP协议
查看>>
如何修改被编译后DLL文件 (转发)
查看>>
C++按格式接收输入字符(京东,滴滴,360笔试必用)
查看>>
代理ARP
查看>>
go 学习笔记(4) ---项目结构
查看>>
分割线细线
查看>>
java 中的一些运算符问题
查看>>
css切换--使用cookie
查看>>