片段:如何根据变量值仅从模型中获取数据?

2020-09-07 12:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 我有以下情况: ...

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

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


尊敬的专家,

我有以下情况:

  • 我们有一个MainView和一个ViewSettingsDialog(用于按类别过滤(之所以有效,因为它独立于用户)和单个值(不起作用))
  • 有一个在登录时被User-ID识别的用户(我的编码中有值)
  • 根据用户的不同,MainView上的表仅包含与其相关的内容(有效)
  • 取决于用户,该片段也应仅显示相关内容(如表中所示)

最后一点是我有问题。 我知道不可能用这样的本地JSON模型进行过滤:

 /emp}'}]}" key ="合作伙伴 " text =" {i18n> ID}">
 <项目>
  
         
  

我不知道如何以某种方式"操纵"或过滤模型,即仅根据用户显示相关数据? 我也阅读了许多有关此问题的博客文章,但无济于事。 我当前用于按下过滤器按钮的代码如下:

 handleFilterButtonPressed:function(){
 var oView;
 var indiModel = this.getOwnerComponent()。getModel(" indiModel");
 oView = this.getView();
 oView.setModel(indiModel);
 this.createViewSettingsDialog(" zindivsel_nmf.view.FilterDialog")。setModel(indiModel);
 this.getView()。addDependent(this.createViewSettingsDialog(" zindivsel_nmf.view.FilterDialog")));
 this.createViewSettingsDialog(" zindivsel_nmf.view.FilterDialog")。open();
 },

您知道如何解决该问题吗?

此致

蒂姆

(14.9 kB)
4条回答
Cikesha
2020-09-07 13:24

嗨,

也许您可以尝试使用自定义控件。

1/您将开发一个自定义控件MyViewSettingsFilterItem,它基于具有新属性(例如" emp")的ViewSettingsFilterItem控件。

此处是构建控件的文档

https://sapui5.hana.ondemand.com /#/topic/8dcab0011d274051808f959800cabf9f.html

2/在您的自定义控件类中,您覆盖了setEmp函数,以便使用正确的过滤器绑定项目

3/在片段中,您将使用自定义控件

该类可能是这样的:

(注意:我没有测试以下代码,只是想了解我的意思)

 sap.ui.define([
 " sap/m/ViewSettingsFilterItem",
 " sap/ui/model/Filter",
 " sap/ui/model/FilterOperator",
 " sap/m/ViewSettingsItem"
 ],函数(ViewSettingsFilterItem,Filter,FilterOperator,ViewSettingsItem){
 "使用严格";
 返回ViewSettingsFilterItem.extend(" my.custom.control.MyViewSettingsFilterItem",{

 元数据:{
             属性:{
                 " emp":{type:" string"}
             }
         },
        渲染器:" sap.m.ViewSettingsFilterItemRenderer",

         setEmp:function(sValue){
         this.setProperty(" emp",sValue);

         var aFilter = [];

         var oTemplate = new ViewSettingsItem({
         键:" {PartnerKey}",
         文字:" {Partner}"
         });

         if(sValue){
         aFilter.push(new Filter(" PartnerKB",FilterOperator.EQ,sValue));
         }

         this.bindItems({
         路径:"/img/EinzelselektionSet",
         过滤器:aFilter,
         模板:oTemplate
         });

         }

 });

 }); 

,您可以像这样在片段中使用控件:

  

致谢

面料

一周热门 更多>