列表插件概述

列表插件模型

列表分为PC列表和移动列表,PC列表分为普通列表,分组列表和树型列表

普通列表的插件基类是kd.bos.list.plugin.AbstractListPlugin,

移动列表插件基类是kd.bos.list.plugin.AbstractMobListPlugin,

对于分组列表的开发从kd.bos.list.plugin.StandardTreeListPlugin开始,

树型列表继承kd.bos.list.plugin.AbstractTreeListPlugin

列表插件事件列表

BillList

事件名称

对应控件监听

说明

billListHyperLinkClick

addHyperClickListener

超链接点击

beforeCreateListColumns

addCreateListColumnsListener

列创建

beforeCreateListDataProvider

addCreateListDataProviderListener

自定义取数(注意不要修改基础资料的引用属性,因为会打乱缓存数据,此方法只适合非基础资料字段修改)

setFilter

addSetFilterListener

设置过滤条件

beforePackageData

addBeforePackageDataListener

包装数据前,需要遍历这个数据包,用于格式化数据(注意不要修改基础资料的引用属性,因为会打乱缓存数据,此方法只适合非基础资料字段修改)

packageData

addPackageDataListener

包装数据,单元格填值,用于格式化数据

chat

addChatListener

打开云之家监听

FilterContainer

事件名称

对应控件监听

说明

filterContainerInit

addFilterContainerInitListener

过滤字段元数据初始化

filterContainerSearchClick

addSearchClickListener

查询,过滤条件第一次解析,过滤条件是界面上的初始过滤值

filterContainerAfterSearchClick

addAfterSearchClickListener

最终查询条件解析后,可以在此事件得到最终解析后的过滤条件,然后做自定义处理

filterContainerBeforeF7Select

addBeforeF7SelectListener

常用过滤和方案过滤的F7监听

CommonFilterColumn

事件名称

对应控件监听

说明

filterColumnSetFilter

addSetFilterListeners

过滤字段上的基础资料字段过滤条件调整事件

事件生命周期

页面加载

beforeCreateListDataProvider

filterColumnSetFilter

filterContainerInit

beforeCreateListColumns

setFilter

packageData

点击查询

filterColumnSetFilter

filterContainerInit

filterContainerSearchClick

filterContainerAfterSearchClick

beforeCreateListColumns

beforeCreateListDataProvider

setFilter

packageData

接口参数说明

BeforeCreateListColumnsArgs

方法名

说明

getListColumns

获取列表字段

setListColumns

设置列表字段

getListGroupColumns

获取分组字段

setListGroupColumns

设置分组字段

getMergeListColumns

获取合并列表字段

getDynamicTextListColumns

获取动态文本字段

getListColumn

通过字段名获取列表字段

addListColumn

添加列表字段

FilterContainerInitArgs

方法名

说明

getFilterContainerInitEvent

获取过滤容器初始事件

setFilterContainerInitEvent

设置过滤容器初始事件

getFastFilterColumns

获取快速过滤字段

getCommonFilterColumns

获取常用过滤字段

getSchemeFilterColumns

获取方案过滤字段

getFilterColumn

通过字段名获取过滤字段

addFilterColumn

添加过滤字段

FilterContainerSearchClickArgs

方法名

说明

getSearchClickEvent

获取查询点击事件

setSearchClickEvent

设置查询点击事件

getFastQFilters

获取快速过滤条件

getCurrentCommonFilter

获取当前常用过滤条件

setCurrentCommonFilter

设置当前点击的常用过滤条件

getFilterValues

过滤条件原始值

setFilterValues

设置过滤条件原始值

getEntryEntity

获取当前选择的最小单位分录

getFilterModel

获取过滤模型

getFilterParameter

获取常用过滤条件

setFilterParameter

设置常用过滤条件

getFilterValue

通过字段名获取过滤值

getQFilter

通过字段名获取供ORM取数的QFilter

getSelectMainOrgIds

获取选中组织

getFieldName

获取过滤字段控件映射的实体字段名

addConstFilter

添加常量过滤条件

addFilter

添加过滤条件(不包括快速过滤)

addFastFilter(String fieldName, String value)

添加快速过滤条件

BeforeFilterF7SelectEvent

方法名

说明

getRefEntityId

获取绑定的实体编码

setRefEntityId

设置绑定的实体编码

isCancel

是否取消

setCancel

设置是否取消

getSelectedIds

获取已选择的基础资料

isMulti

是否多选

getFieldName

映射的实体字段名

getRefPropKey

实际字段名(多级的情况下最后一级)

setRefPropKey

设置实际字段名(多级的情况下最后一级)

getQfilters

获取过滤条件

setQfilters

设置过滤条件

getCustomQFilters

获取插件设置的过滤条件

setCustomQFilters

设置插件设置的过滤条件(多个)

addCustomQFilter

添加插件设置的过滤条件

getMergeQFilters

获取最终合并的所有过滤条件

SetFilterEvent

方法名

说明

getQFilters

获取所有过滤条件(不包括权限相关的以及插件设置的过滤)

getCustomQFilters

获取插件设置的过滤条件

setCustomQFilters

设置插件设置的过滤条件(多个)

addCustomQFilter

添加插件设置的过滤条件

getMainOrgQFilter

获取主业务组织数据权限

setMainOrgQFilter

设置主业务组织数据权限

getSpecialDataPermQFilter

获取特殊数据权限

setSpecialDataPermQFilter

设置特殊数据权限

getDataPermQFilters

获取数据权限

setDataPermQFilters

设置数据权限

getOrderBy

获取排序

setOrderBy

设置排序

getFieldName

获取过滤字段控件映射的实体字段名

HyperLinkClickArgs

方法名

说明

getHyperLinkClickEvent

获取超链接点击事件

setHyperLinkClickEvent

设置超链接点击事件

isCancel

是否取消

setCancel

设置是否取消

getFieldName

获取字段名

getRowIndex

获取行索引

BeforeCreateListDataProviderArgs

方法名

说明

getListDataProvider

获取取数接口类

setListDataProvider

设置取数接口类

PackageDataEvent

方法名

说明

getRowData

获取当前行数据

setRowData

设置当前行数据

getFormatValue

获取格式化的单元格数据

setFormatValue

设置格式化后的单元格数据

isCancel

是否取消本行数据(rowData)输出

setCancel

设置是否取消本行数据(rowData)输出

ChatEvent

方法名

说明

isCancel

是否取消云之家聊天

setCancel

设置是否取消云之家聊天

getCurrentListSelectedRow

获取当前记录行

getFieldKey

当前字段key

分组和树型列表插件事件

方法名

说明

initializeTree

树初始化事件

initTreeToolbar

树左侧工具栏初始化事件

treeToolbarClick

树左侧工具栏点击事件

beforeBuildTreeNode

TreeListView初始化TreeNode前调用

expendTreeNode

树结点展开事件

refreshNode

树结点刷新事件

beforeTreeNodeClick

树结点点击前事件

treeNodeClick

树结点点击事件

buildTreeListFilter

设置树结点的过滤条件到右侧单据列表

search

树结点搜索事件

示例:filterContainerInit

@Override

publicvoid filterContainerInit(FilterContainerInitArgs args) {

FilterColumn filterColumn = args.getFilterColumn("datefield");

filterColumn.setDefaultValues("2019-1-30", "2019-1-31");

FilterColumn filterColumn2 = new FilterColumn("textfield");

args.addFilterColumn(filterColumn2);

CommonFilterColumn commonFilterColumn = new CommonFilterColumn("combofield");

args.addFilterColumn(commonFilterColumn);

SchemeFilterColumn schemeFilterColumn = new SchemeFilterColumn("combofield");

args.addFilterColumn(schemeFilterColumn);

super.filterContainerInit(args);

}

示例:filterContainerSearchClick

@Override

publicvoid filterContainerSearchClick(FilterContainerSearchClickArgs args) {

System.err.println(args.getFilterValue("datefield"));

System.err.println(args.getFastFilterValues());

System.err.println(args.getQFilter("datefield"));

System.err.println(args.getSelectMainOrgIds());

args.addConstFilter("datefield", CompareTypeEnum.TODAY);

args.addFastFilter("textfield", "test");

args.addFilter("textfield", CompareTypeEnum.EQUAL, "123");

super.filterContainerSearchClick(args);

}

示例:filterContainerBeforeF7Select

@Override

publicvoid filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {

if ("basedatafield2.name".equals(args.getFieldName()))

args.addCustomQFilter(new QFilter("name", QFilter.equals, "test123"));

super.filterContainerBeforeF7Select(args);

}

示例:filterColumnSetFilter

@Override

publicvoid filterColumnSetFilter(SetFilterEvent args) {

if ("basedatafield2.name".equals(args.getFieldName()))

args.addCustomQFilter(new QFilter("name", QFilter.equals, "test123"));

// 基础资料依赖于上面的选择字段orgfield1,将orgfield1的已选中值添加到basedatafield2

if ("basedatafield2.name".equals(args.getFieldName())) {

FilterColumnSetFilterEvent args2 = (FilterColumnSetFilterEvent) args;

args.addCustomQFilter(new QFilter("name", QFilter.equals, args2.getCommonFilterValue("orgfield1.number")));

}

super.filterColumnSetFilter(args);

}

示例:beforeCreateListColumns

@Override

publicvoid beforeCreateListColumns(BeforeCreateListColumnsArgs beforecreatelistcolumnsargs) {

ComboListColumn comboListColumn = new ComboListColumn();

comboListColumn.setListFieldKey("combofield");

MergeListColumn mergeListColumn = new MergeListColumn();

mergeListColumn.setKey("mergelistcolumn");

mergeListColumn.getItems().add(comboListColumn);

beforecreatelistcolumnsargs.addListColumn(mergeListColumn);

IListColumn listColumn = beforecreatelistcolumnsargs.getListColumn("textfield");

System.err.println("beforeCreateListColumns");

System.err.println(listColumn);

System.err.println(beforecreatelistcolumnsargs.getDynamicTextListColumns());

System.err.println(beforecreatelistcolumnsargs.getMergeListColumns());

System.err.println(beforecreatelistcolumnsargs.getListGroupColumns());

super.beforeCreateListColumns(beforecreatelistcolumnsargs);

}

示例:setFilter(如果是树型列表的过滤条件添加建议重载buildTreeListFilter)

@Override

publicvoid setFilter(SetFilterEvent e) {

e.addCustomQFilter(new QFilter("combofield", "=", "1"));

}

示例:packageData(此方法为单元格填值,操作列设置字体颜色和根据条件修改文本字段内容)

@Override

publicvoid packageData(PackageDataEvent e) {

if (e.getSource() instanceof ListOperationColumnDesc) {

List<OperationColItem> operationColItems = (List<OperationColItem>) e.getFormatValue();

for (OperationColItem operationColItem : operationColItems) {

operationColItem.setForeColor("green");

}

}

elseif (e.getSource() instanceof ColumnDesc) {

ColumnDesc columnDesc = (ColumnDesc) e.getSource();

if ("textfield".equals(columnDesc.getKey()) && "1".equals(e.getFormatValue()))

e.setFormatValue("test");

}

super.packageData(e);

}

示例:chat(取消云之家聊天)

@Override

publicvoid chat(ChatEvent e) {

// 取消云之家聊天

e.setCancel(true);

super.chat(e);

}

示例:beforePackageData(注意不要修改基础资料的引用属性,因为会打乱缓存数据,此方法只适合非基础资料字段修改)

@Override

publicvoid beforePackageData(BeforePackageDataEvent e) {

super.beforePackageData(e);

for (DynamicObject object : e.getPageData()) {

object.set("test", "test");

}

}

示例:beforeCreateListDataProvider(自定义取数)

@Override

publicvoid beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) { args.setListDataProvider(new ListDataProvider(){

@Override

public DynamicObjectCollection getData(intstart, intend) {

intdataCount=selfQueryDataCount();

intbillDataCount=selfQueryBillDataCount();

List<SummaryResult> summaryResults=selfQuerySummaryResult();

// 自己的取数逻辑得到DynamicObjectCollection

DynamicObjectCollection dynamicObjectCollection = selfQueryData();

getQueryResult().setCollection(dynamicObjectCollection);

getQueryResult().setDataCount(dataCount);

getQueryResult().setBillDataCount(billDataCount);

getQueryResult().setSummaryResults(summaryResults);

returndynamicObjectCollection;

}

});

super.beforeCreateListDataProvider(args);

}

原为链接:https://vip.kingdee.com/article/318066281335319808?productLineId=29&isKnowledge=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值