一学即会的基础资料F7开发小技巧
基础资料作为苍穹开发中必不可少的一部分,相信大多数小伙伴都已经使用过,比如人员、币别、物料等。
本期,小编就给大家介绍几个常用又易上手的基础资料F7开发小技巧,感兴趣的话,就往下阅读吧!
1 影响F7列表数据的条件
在正式介绍基础资料F7的开发小技巧前,小编先为大家讲解四种影响F7列表数据的条件:
1) F7控件的监听器-BeforeF7SelectListener:通过插件实现此接口的beforeF7Select方法,可以在打开F7之前进行干预,比如设置过滤条件、更改F7模板、查看未审核数据等。
2) 列表插件的setFilter方法。
3) 个性化控制器-AbstractBasedataController:基础资料全局配置,跟列表插件类似,但是作用范围更大,可作用于列表、F7、模糊查询等。
4) 自定义F7模板:F7模板用于个性化F7的打开样式。系统默认的F7模板主要是bos_treelistF7、bos_listf7两种,也可以自己新建F7模板,且自定义模板可以定义个性化过滤条件。
2 案例讲解
接下来,小编从业务场景出发,以问答的形式为大家讲解常用的基础资料F7开发小技巧。
注:以下案例均以基础资料(百科全书)为示例。
基础资料(百科全书)示例
场景一:用户是一个科学爱好者,想在众多的书籍中选择科学类书籍。那么,打开百科全书F7时,如何控制只能选择科学类书籍?
针对该用户需求,可以通过在beforeF7Select方法中添加过滤条件来实现,相关代码如下:
@Override public void beforeF7Select(BeforeF7SelectEvent evt) { //给f7列表增加过滤条件 QFilter filter = new QFilter("group", QCP.equals, 1231739886826959872L); evt.getCustomQFilters().add(filter); }
场景二:打开百科全书F7时,如何隐藏左树部分?
针对该用户需求,可以通过在beforeF7Select方法中指定F7打开的模板来实现,相关代码如下:
@Override public void beforeF7Select(BeforeF7SelectEvent evt) { //f7指定打开的模板 ListShowParameter param = (ListShowParameter)evt.getFormShowParameter(); param.setFormId("bos_listf7"); }
注:此方法也可以用于F7打开自定义的模板。
场景三:打开百科全书F7时,如何展示未审核数据和禁用数据?
对于未审核数据,只需在beforeF7Select中设置showApproved为“false”;对于禁用数据,只需在beforeF7Select中设置showUsed为“false”。相关代码如下:
@Override public void beforeF7Select(BeforeF7SelectEvent evt) { //f7打开时展示未审核数据、禁用数据 ListShowParameter param = (ListShowParameter)evt.getFormShowParameter(); param.setShowApproved(false); param.setShowUsed(false); }
场景四:打开百科全书F7时,如何去掉默认的显示禁用复选框?
显示禁用复选框示例
对于单据类型的基础资料字段,配置方式有以下两种:
方式一: 在设计器中打开“是否只显示启用”开关。操作路径为:【基础资料控件】→【属性配置页】→【字段分组】→“是否只显示启用”。
方式二: 在beforeF7Select中设置F7ClickByFilter为“false”,相关代码如下:
//单据F7 @Override public void beforeF7Select(BeforeF7SelectEvent evt) { ListShowParameter param = (ListShowParameter)evt.getFormShowParameter(); //f7打开时去掉显示禁用复选框 param.setF7ClickByFilter(false); }
对于列表常用过滤或者方案过滤的基础资料,配置方式为:通过插件实现BeforeFilterF7SelectListener接口,在beforeF7Select中设置自定义参数,相关代码如下:
//列表过滤F7 @Override public void beforeF7Select(BeforeFilterF7SelectEvent evt) { evt.addCustomParam("showDisabledCheckbox", "false"); }
场景五:打开百科全书F7时,如何只展示自己想要的数据?
该需求在实际业务场景中也十分常见。比如说,客户在单据中选择供应商时,希望系统可以优先显示历史交易记录(或自己收藏常用)的供应商资料,而无需每次都从大量的供应商资料里面搜索来选择,因为客户的供应商特别多,而不同部门对接的供应商是相对固定的。
若系统能记录最近使用的基础资料数据(例如供应商、人员),则每次录入数据时能方便快速地选到常用的数据。针对该需求,实现方式有以下两种:
方式一:在设计器中打开“启用我的常用”开关。操作路径为:【基础资料控件】→【属性配置页】→【字段分组】→“启用我的常用”。
方式二:通过在代码中设置showFrequent为"true"来实现,相关代码如下:
@Override public void beforeF7Select(BeforeF7SelectEvent evt) { ListShowParameter param = (ListShowParameter)evt.getFormShowParameter(); //f7启用我的收藏 param.setShowFrequent(true); }
收藏所需数据操作示例
场景六:基础资料字段如何展示“名称+编码”?
针对该需求,用户可通过在设计器中配置显示字段为“名称+编码”来实现。操作路径为:【基础资料控件】→【属性配置页】→【字段分组】→【显示属性】→显示字段选择“名称+编码”。
显示属性配置界面
场景七:模糊查询时,如何去掉默认的编码排序字段?
针对该需求,可通过关闭基础资料的“模糊查询排序”来实现。操作路径为:【配置工具】→【参数配置】→【单据参数】,在左侧找到对应的基础资料后,选择右侧内容区的【模糊查询】页签,关闭“模糊查询排序”,如下图所示:
关闭“模糊查询排序”操作示意
场景八:如何动态修改基础资料字段的显示属性?
针对该需求,可通过下述代码来实现:
@Override public void afterBindData(EventObject e) { Map<String, Object> prop = new HashMap<>(1); Map<String, Object> editor = new HashMap<>(1); editor.put(ClientProperties.DisplayProp, "name,number"); prop.put(ClientProperties.Item, editor); this.getView().updateControlMetadata("basedatafield", prop); }
3 相关资料
更多基础资料开发的相关资料,可参考以下链接:
#往期推荐#
# BOTP增效之路(下):“反写规则”助你自动实现单据反写
更多精彩内容,“码”上了解!↓
一学即会的基础资料F7开发小技巧
本文2024-09-23 00:21:43发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138977.html