在一个自定义控件中处理来自不同模型的两组数据

2020-09-05 16:44发布

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

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


目标:

我想通过预定义的搜索字段将两个模型(数据集)传递给自定义控件,稍后可以在其中执行过滤。

我从一个简化的想法开始,那就是将数据从前端传递到我的自定义控件,现在遇到了麻烦。

简化概念的背景:

使用聚合 foo 创建一个自定义控件,该控件的值将从视图中提供。

还创建另一个聚合元素_searchField,它将使用从视图提供的数据填充该元素。 每次用户输入_searchField时都触发onSuggestTerm。

功能(控制){
     var DropDownListInput = Control.extend('xx.control.DropDownListInput',{
       元数据:{
         defaultAggregation:'foo',
         汇总:{
           foo:{类型:'sap.m.SuggestionItem',多个:true,singularName:'suggestionItem'},
           _searchField:{类型:" sap.m.SearchField",多个:false,可见性:"隐藏"}
         }
       }
     });

     DropDownListInput.prototype.init = function(){
       var that = this;
       this.onSuggestTerm =函数(事件){
         var oSource = event.getSource();
         var oBinding = that.getAggregation('foo');
         oBinding.filter(new sap.ui.model.Filter({
           过滤器:新的sap.ui.model.Filter('DISEASE_TERM',sap.ui.model.FilterOperator.Contains,'Other')
         }));
         oBinding.attachEventOnce('dataReceived',function(){
           oSource.suggest();
         });
       };

       this.setAggregation('_ searchField',新的sap.m.SearchField({
         id:" UNIQUEID1",
         enableSuggestions:是的,
         proposalionItems:that.getAggregation('foo'),
         建议:that.onSuggestTerm
       }));
     };

     返回DropDownListInput;
   });
 

我这里没有提供用于控制的渲染器功能,但是它存在,这是从中摘录的最重要内容:

 oRM.write('');
       oRM.renderControl(oControl.getAggregation('_ searchField'));
 oRM.write('
');

将数据从xml视图传递到此控件:

 
       
         
       
  

代码无法运行,并显示此错误无法路由到目标:[object Object]-

我不知道这是怎么回事。

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

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


目标:

我想通过预定义的搜索字段将两个模型(数据集)传递给自定义控件,稍后可以在其中执行过滤。

我从一个简化的想法开始,那就是将数据从前端传递到我的自定义控件,现在遇到了麻烦。

简化概念的背景:

使用聚合 foo 创建一个自定义控件,该控件的值将从视图中提供。

还创建另一个聚合元素_searchField,它将使用从视图提供的数据填充该元素。 每次用户输入_searchField时都触发onSuggestTerm。

功能(控制){
     var DropDownListInput = Control.extend('xx.control.DropDownListInput',{
       元数据:{
         defaultAggregation:'foo',
         汇总:{
           foo:{类型:'sap.m.SuggestionItem',多个:true,singularName:'suggestionItem'},
           _searchField:{类型:" sap.m.SearchField",多个:false,可见性:"隐藏"}
         }
       }
     });

     DropDownListInput.prototype.init = function(){
       var that = this;
       this.onSuggestTerm =函数(事件){
         var oSource = event.getSource();
         var oBinding = that.getAggregation('foo');
         oBinding.filter(new sap.ui.model.Filter({
           过滤器:新的sap.ui.model.Filter('DISEASE_TERM',sap.ui.model.FilterOperator.Contains,'Other')
         }));
         oBinding.attachEventOnce('dataReceived',function(){
           oSource.suggest();
         });
       };

       this.setAggregation('_ searchField',新的sap.m.SearchField({
         id:" UNIQUEID1",
         enableSuggestions:是的,
         proposalionItems:that.getAggregation('foo'),
         建议:that.onSuggestTerm
       }));
     };

     返回DropDownListInput;
   });
 

我这里没有提供用于控制的渲染器功能,但是它存在,这是从中摘录的最重要内容:

 oRM.write('');
       oRM.renderControl(oControl.getAggregation('_ searchField'));
 oRM.write('
');

将数据从xml视图传递到此控件:

 
       
         
       
  

代码无法运行,并显示此错误无法路由到目标:[object Object]-

我不知道这是怎么回事。

付费偷看设置
发送
1条回答
My梦
1楼-- · 2020-09-05 17:37

你好,

我并没有真正了解你,但是关于你的错误和你的代码,也许可以尝试一下:

 
       
         
       
 

 

问候,

约瑟夫

一周热门 更多>