xml查看来自两个实体集的绑定数据

2020-09-16 12:30发布

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

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


尊敬的专家,

我正在使用Master-Detail应用程序。 我有一个带有列表控件的视图,并且将其与来自名为" entityset1"的实体集的数据绑定。

来自实体集1的
  Odata->数据
  122333   

在同一服务中,我确实有另一个称为entityset2的实体集。

来自实体集2的
  Odata->数据
  isActive   

仅来自实体集2的数据将通过过滤器(/sap/opu/odata/sap/My_SRV/entityset2?$ filter =(serialno = 122333)

检索

我现在正尝试从entityset2中检索值,并将其绑定到列表中的一个属性。 此列表已与entityset1数据绑定。

Myview.xml。

    <属性>       

Controller.js(使用以下几行进行绑定)

  this.oList.bindAggregation(" items",{
             路径:"/img/entityset1",模板:this.oListItem,
             过滤器:this.searchFilters
         }); var oserialnum = this.getView()。getBindingContext()。getObject()。serialno; var oHdata = new sap.ui.model.Filter(" serialno"," EQ",oserialnum); this.searchFilters = new  sap.ui.model.Filter([oserialnum],true); this.oList.bindAggregation(" items",{
                     路径:"/img/entityset2",
                     过滤器:this.searchFilters
                 });  

但是,在" this.getView()。getBindingContext()。getObject()。serialno"这一行上,我收到错误消息"无法读取未定义的属性'getObject'"。

有人可以建议如何从entity2中检索数据并将其绑定到列表吗?

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

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


尊敬的专家,

我正在使用Master-Detail应用程序。 我有一个带有列表控件的视图,并且将其与来自名为" entityset1"的实体集的数据绑定。

来自实体集1的
  Odata->数据
  122333   

在同一服务中,我确实有另一个称为entityset2的实体集。

来自实体集2的
  Odata->数据
  isActive   

仅来自实体集2的数据将通过过滤器(/sap/opu/odata/sap/My_SRV/entityset2?$ filter =(serialno = 122333)

检索

我现在正尝试从entityset2中检索值,并将其绑定到列表中的一个属性。 此列表已与entityset1数据绑定。

Myview.xml。

    <属性>       

Controller.js(使用以下几行进行绑定)

  this.oList.bindAggregation(" items",{
             路径:"/img/entityset1",模板:this.oListItem,
             过滤器:this.searchFilters
         }); var oserialnum = this.getView()。getBindingContext()。getObject()。serialno; var oHdata = new sap.ui.model.Filter(" serialno"," EQ",oserialnum); this.searchFilters = new  sap.ui.model.Filter([oserialnum],true); this.oList.bindAggregation(" items",{
                     路径:"/img/entityset2",
                     过滤器:this.searchFilters
                 });  

但是,在" this.getView()。getBindingContext()。getObject()。serialno"这一行上,我收到错误消息"无法读取未定义的属性'getObject'"。

有人可以建议如何从entity2中检索数据并将其绑定到列表吗?

付费偷看设置
发送
4条回答
me_for_i
1楼-- · 2020-09-16 12:54

里约热内卢

最好将两个实体集合并为一个或使用两者创建深层结构。 对于列表,您只能绑定一个实体来形成项目。

我希望它是一个oData服务..比起您可以使用$ expand在一个请求中获取两个值并可以将其绑定 到控件的聚合。

很少有知识-

1。 您不能像目前那样将2个不同的实体绑定到同一聚合"项目"。

2。 而且也不要像现在那样绑定聚合-只需将模型和元素绑定到控制器中的视图,并使用实体路径将items属性添加到列表中即可。

谢谢

Viplove ..

三十六小时_GS
3楼-- · 2020-09-16 12:42

在您的代码中,您仅绑定列表,我想视图仍未绑定,因此getBindingContext()返回未定义

无论如何,正如其他人所说,您不能将聚合绑定到2个不同的实体,最好的选择是更改模型并将它们组合在一起

野沐沐
4楼-- · 2020-09-16 12:47

谢谢大家,基本上该应用是 标准Fiori App,我才开始扩展它。 请允许我澄清一下。

在我的控制器中,以下代码将odata-> entityset1绑定到Masterview上的Listitem。

 ListBinding:function(){
  如果(!this.oSearchText){this.oSearchText = sap.ui.core.routing.HashChanger.getInstance()。getHash()。split("/")[1];
 }
  this.oList.bindAggregation(" items",{
    路径:"/img/entityset1",
    模板:this.oListItem,
    过滤器:this.searchFilters
   });


 

但是,在将其自身绑定之前,我需要从entityset1获取值(serialno),以便使用该值查询entityset2并从entityset2获取一个值并将其绑定到其他控件或可能是另一个列表。 我的第一个任务是在绑定到列表之前获取值(serialno)。

我已经检查了标准应用程序,但没有定义模型,因此它是一个未命名的模型。

我已经尝试过使用this.getView()。getModel()并得到未定义的错误。 你们其中之一可以建议如何从entityset1获取值吗?

一周热门 更多>