关于苍穹PC端单据列表的配置开发请参考金蝶云苍穹开发者生态平台——开发者——视频中心——中级工程师路线——单据开发(进阶)——复杂列表(https://dev.kdcloud.com/index/study/detail/d367c56c-a573-4fbc-9a7b-43ec764f058a?from=middle)。
但是很多时候简单的配置实现不了实际业务中一些复杂的需求场景,那么这个时候我们就要用列表插件来进行开发。下面我就给大家罗列出所有标准单据列表的插件事件,以助于大家开发。
import kd.bos.entity.datamodel.events.BeforePackageDataEvent;
import kd.bos.entity.datamodel.events.PackageDataEvent;
import kd.bos.form.control.events.BaseDataColumnDependFieldSetEvent;
import kd.bos.form.events.AfterQueryOfExportEvent;
import kd.bos.form.events.BeforeCreateListColumnsArgs;
import kd.bos.form.events.BeforeCreateListDataProviderArgs;
import kd.bos.form.events.BeforeQueryOfExportEvent;
import kd.bos.form.events.FilterContainerInitArgs;
import kd.bos.form.events.FilterContainerSearchClickArgs;
import kd.bos.form.events.HyperLinkClickArgs;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.form.field.events.BeforeFilterF7SelectEvent;
import kd.bos.form.field.events.ListExpandEvent;
import kd.bos.list.events.BeforeShowBillFormEvent;
import kd.bos.list.events.BillClosedCallBackEvent;
import kd.bos.list.events.ChatEvent;
import kd.bos.list.events.CreateTreeListViewEvent;
import kd.bos.list.events.ListRowClickEvent;
import kd.bos.list.events.SetCellFieldValueArgs;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
/**
* 单据列表插件
* 仅展示所有单据列表事件.因AbstractListPlugin继承自AbstractFormPlugin,故没有列举AbstractFormPlugin中的事件
*
* @author Administrator
*/
public class SampleBillListPlugin extends AbstractListPlugin {
private final static Log log = LogFactory.getLog(SampleBillListPlugin.class);
/**
* 过滤容器F7弹出前的处理方法
*
* @param evt
* 过滤容器内F7弹出前事件参数
*/
@Override
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent evt) {
log.info("filterContainerBeforeF7Select");
super.filterContainerBeforeF7Select(evt);
}
/**
* 过滤字段上的基础资料字段过滤条件调整事件
*
* @param evt
* 设置过滤条件事件参数
* 通过参数设置主业务组织、特殊数据权限、数据权限、自定义过滤条件
*/
@Override
public void filterColumnSetFilter(SetFilterEvent evt) {
log.info("filterColumnSetFilter");
super.filterColumnSetFilter(evt);
}
/**
* 设置常用过滤的基础资料依赖字段
*
* @param args
*/
@Override
public void baseDataColumnDependFieldSet(BaseDataColumnDependFieldSetEvent args) {
log.info("baseDataColumnDependFieldSet");
super.baseDataColumnDependFieldSet(args);
}
/**
* 创建树形列表视图
*
* @param e
* 创建树形列表视图事件
*/
@Override
public void createTreeListView(CreateTreeListViewEvent e) {
log.info("createTreeListView");
super.createTreeListView(e);
}
/**
* 设置单元格指令
*
* @param args
*/
@Override
public void setCellFieldValue(SetCellFieldValueArgs args) {
log.info("setCellFieldValue");
super.setCellFieldValue(args);
}
/**
* 过滤容器初始化的处理方法,页面加载和点击搜索时触发
*
* @param args
* 过滤容器初始化事件参数
*/
@Override
public void filterContainerInit(FilterContainerInitArgs args) {
log.info("filterContainerInit");
super.filterContainerInit(args);
}
/**
* 过滤容器搜索点击的处理方法,此事件之前先触发filterContainerInit
*
* @param args
* 过滤容器搜索点击事件参数
*/
@Override
public void filterContainerSearchClick(FilterContainerSearchClickArgs args) {
log.info("filterContainerSearchClick");
super.filterContainerSearchClick(args);
}
/**
* 过滤容器搜索点击后的处理方法,此事件发生在过滤条件解析后,主要用于点击过滤条件时联动修改其他过滤字段控件,
* 修改前已先在filterContainerInit事件将要修改的字段用全局变量进行缓存
*
* @param args
* 过滤容器搜索点击事件参数
*/
@Override
public void filterContainerAfterSearchClick(FilterContainerSearchClickArgs args) {
log.info("filterContainerAfterSearchClick");
super.filterContainerAfterSearchClick(args);
}
/**
* 创建列表列前触发
* @param args 创建列表前事件参数
*/
@Override
public void beforeCreateListColumns(BeforeCreateListColumnsArgs args) {
log.info("beforeCreateListColumns");
super.beforeCreateListColumns(args);
}
/**
* 创建列表数据提供者前触发
*
* @param args
* 列表取数接口参数
*/
@Override
public void beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) {
log.info("beforeCreateListDataProvider");
super.beforeCreateListDataProvider(args);
}
/**
* 设置过滤条件.如果是树形列表的过滤条件,建议重载buildTreeListFilter
*
* @param e
* 设置过滤条件事件参数
*/
@Override
public void setFilter(SetFilterEvent e) {
log.info("setFilter");
super.setFilter(e);
}
/**
* 数据包装前事件,数据包为整体数据包
* 注意: 不要修改基础资料的引用属性,因为会打乱缓存数据,此方法只适合非基础资料字段修改
*
* @param e
* 数据再包装事件参数
*/
@Override
public void beforePackageData(BeforePackageDataEvent e) {
log.info("beforePackageData");
super.beforePackageData(e);
}
/**
* 数据包装事件,用于修改发送给前端之前的数据,用于单元格填值
*
* @param e
* 数据包装事件参数
*/
@Override
public void packageData(PackageDataEvent e) {
log.info("packageData");
super.packageData(e);
}
/**
* 单据列表超链接点击的处理方法
*
* @param args
* 超链接点击事件参数
*/
@Override
public void billListHyperLinkClick(HyperLinkClickArgs args) {
log.info("billListHyperLinkClick");
super.billListHyperLinkClick(args);
}
/**
* 查询引出数据前事件
*/
@Override
public void beforeQueryOfExport(BeforeQueryOfExportEvent e) {
log.info("beforeQueryOfExport");
super.beforeQueryOfExport(e);
}
/**
* 查询引出数据后事件
*/
@Override
public void afterQueryOfExport(AfterQueryOfExportEvent e) {
log.info("afterQueryOfExport");
super.afterQueryOfExport(e);
}
/**
* 列表折叠表单事件
*
* @param e
* 列表折叠表单事件源
*/
@Override
public void expandClick(ListExpandEvent e) {
log.info("expandClick");
super.expandClick(e);
}
/**
* 云之家聊天信息弹出事件
*
* @param e
* 云之家聊天信息弹出事件
*/
@Override
public void chat(ChatEvent e) {
log.info("chat");
super.chat(e);
}
/**
* 列表行点击事件
*
* @param evt
* 列表行点击事件参数
*/
@Override
public void listRowClick(ListRowClickEvent evt) {
log.info("listRowClick");
super.listRowClick(evt);
}
/**
* 列表行双击事件
*
* @param evt
* 列表行点击事件参数
*/
@Override
public void listRowDoubleClick(ListRowClickEvent evt) {
log.info("listRowDoubleClick");
super.listRowDoubleClick(evt);
}
/**
* 表单关闭回调事件
*
* @param e
* 表单关闭回调事件参数
*/
@Override
public void billClosedCallBack(BillClosedCallBackEvent e) {
log.info("billClosedCallBack");
super.billClosedCallBack(e);
}
/**
* 显示表单前触发
*
* @param e
* 显示表单前置事件
*/
@Override
public void beforeShowBill(BeforeShowBillFormEvent e) {
log.info("beforeShowBill");
super.beforeShowBill(e);
}
}
注意:
① 如果找不到插件类源码,或者该文中还有未列出单据列表插件事件,请以最新版本的苍穹补丁为准。
② 因标准单据列表插件(AbstractListPlugin)是继承自表单插件(AbstractFormPlugin),所以在该文中没有列举出表单插件所提供的的插件事件,如有需要请自行查看java插件开发指南或金蝶云苍穹开发者生态平台(https://dev.kdcloud.com/)上的资料。
③ 后续我会陆续发文以简单样例展示以上事件的开发,敬请关注。
大家如有任何建议和意见,欢迎在评论区留言,我将努力改进。
创作不易,如能帮到大家,请动动您的金手指点赞鼓励一下,非常感谢。【emoji】
推荐阅读