一学即会的基础资料F7开发小技巧

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

一学即会的基础资料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 相关资料


更多基础资料开发的相关资料,可参考以下链接:


左树设置过滤

编辑显示属性

多选基础资料赋值




#往期推荐#


#  提升5倍效率的开发平台哪里有?看这里!

#  开发商标识:新手司机持证上岗啦

 性能诊断-循环“虐恋”

#  轻松玩转报表开发的两种模式

 数值类型允许为空,您了解吗

 BOTP增效之路(上):“转换规则”助你一键下推单据

#  BOTP增效之路(下):“反写规则”助你自动实现单据反写



更多精彩内容,“码”上了解!↓



一学即会的基础资料F7开发小技巧

基础资料作为苍穹开发中必不可少的一部分,相信大多数小伙伴都已经使用过,比如人员、币别、物料等。本期,小编就给大家介绍几个常用又易上...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息