关于苍穹PC端单据列表开发的样例(一)原创
金蝶云社区-聚宝彭
聚宝彭
30人赞赏了该文章 4853次浏览 未经作者许可,禁止转载编辑于2020年09月01日 13:35:12


关于苍穹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】



赞 30