将SmartFilterBar输入从"多值"更改为"单值"

2020-09-08 11:07发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们正在WebIDE中开发一个使...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在WebIDE中开发一个使用xsodata的ALP应用程序。 我们希望智能过滤器栏上的过滤器之一仅接受一个值,而不是多个值。 智能筛选器栏由基于元数据的注释自动呈现,但是我们无法添加v2注释 sap:filter-restriction =" single-value" ,据称可以控制该区域。 >

在API参考上检查SmartFilterBar控件后( https://sapui5.netweaver.ondemand.com/sdk/#/api/sap.ui.comp.smartfilterbar.SmartFilterBar/annotations/FilterExpressionType ),我看到了 我们可以将v4注释 com.sap.vocabularies.Common.v1.FilterExpressionRestriction 添加到应用程序的注释中,并将 AllowedExpressions 设置为SingleValue。 但是,我在Annotation Modeler上找不到该注释。 此外,在检查词汇表的内容时( https://wiki.scn.sap.com/wiki/display/EmTech/OData+4.0+Vocabularies+-++SAP+Common#FilterExpressionRestrictionType ),我注意到注释FilterExpressionRestriction建议 实际上不推荐使用API​​ Reference中的,而是由 Capabilities.FilterRestrictions代替。 ,但是本词汇表未提及任何有关单值/多值的内容( https://www.odata.org/blog/introducing-a-capabilities-vocabulary /)。

有人可以阐明我如何在过滤器上设置单个字段以仅允许单个值吗?

最诚挚的问候,

安德烈

3条回答
渐行渐远_HoldOn
2020-09-08 11:58

您是否尝试过在OData服务的实现类中重新定义DEFINE方法?

如果您执行以下操作(此示例用于日期字段):

方法定义。

 数据:lo_entity_type类型参考/iwbep/if_mgw_odata_entity_typ,
           lo_property类型参考/iwbep/cl_mgw_odata_property,
           lo_annotation类型参考/iwbep/if_mgw_odata_annotation。

     super-> define()。

     lo_entity_type =模型-> get_entity_type(iv_entity_name ='[ODataServiceName] Type')。
     lo_property?= lo_entity_type-> get_property(iv_property_name ='[FieldYouWantToFilter]')。

     呼叫方法lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation
       出口
         iv_annotation_namespace =/iwbep/if_mgw_med_odata_types => gc_sap_namespace
       接收
         ro_annotation = lo_annotation。

     lo_annotation-> add(iv_key ='display-format'iv_value ='Date')。
     lo_annotation-> add(iv_key ='filter-restriction'iv_value ='single-value')。

     呼叫方法lo_property->/iwbep/if_mgw_odata_property〜set_type_edm_datetime。

     调用方法lo_property->/iwbep/if_mgw_odata_property〜set_internal_type
       出口
         iv_type = cl_abap_typedescr => typekind_date。


   终止方法。

您最终将在ALP过滤器中找到它。

一周热门 更多>