Odata关联绑定到sap.m.table

2020-09-09 07:34发布

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

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


你好

我们正在尝试将具有关联关系的odata绑定到sap.m.table。

我们有一个标题表和一个项目表。

我们可以从绑定到头表的实体集中成功读取odata。

在标题表中单击特定列值时,将显示具有多个记录的项目表,该记录具有标题表中该特定值。

我们的Odata函数调用具有语法

sap/opu/odata/sap/Z_SRV/HeaderSet(SystemName ='X',SelIndicator ='2')?$ expand = HeaderToItem

我们正在尝试读取Odata并将其设置为json模型(即itemModel),然后将其绑定到我们的项目表(即idTable2)

Odata.read的语法如下:

 var itemModel = new sap.ui.model.json.JSONModel();  var that = this;  var systemName =" X";
 var selIndicator =" 2";
 oModel.read(" HeaderSet(SystemName ='" + systemName +"',SelIndicator ='" + selIndicator +"')?$ expand = HeaderToItem",null,
 空,真,
 函数(OData){
 itemModel.setData(OData);  itemModel.setSizeLimit(5000);  },
 函数(oError){
 jQuery.sap.require(" sap.m.MessageToast");
 sap.m.MessageToast.show("服务正在维护中。请稍后再试");
 });
 this.getView()。byId('idTable2')。setModel(itemModel); 

当我们检查OData或itemModel时,我们得到下面的结构。 另外,odata.read中的odata调用成功构造了odata url,并在浏览器的F12中获取了响应。

我们不确定在json模型(itemModel)/OData结构下面的哪里可以获得记录。

1]请让我们知道如何在以下结构中导航到它?

此外,idTable2中上面的表绑定是

2]请让我们知道绑定是否正确。

此致

Pooja

odata.jpg (88.0 kB)

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

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


你好

我们正在尝试将具有关联关系的odata绑定到sap.m.table。

我们有一个标题表和一个项目表。

我们可以从绑定到头表的实体集中成功读取odata。

在标题表中单击特定列值时,将显示具有多个记录的项目表,该记录具有标题表中该特定值。

我们的Odata函数调用具有语法

sap/opu/odata/sap/Z_SRV/HeaderSet(SystemName ='X',SelIndicator ='2')?$ expand = HeaderToItem

我们正在尝试读取Odata并将其设置为json模型(即itemModel),然后将其绑定到我们的项目表(即idTable2)

Odata.read的语法如下:

 var itemModel = new sap.ui.model.json.JSONModel();  var that = this;  var systemName =" X";
 var selIndicator =" 2";
 oModel.read(" HeaderSet(SystemName ='" + systemName +"',SelIndicator ='" + selIndicator +"')?$ expand = HeaderToItem",null,
 空,真,
 函数(OData){
 itemModel.setData(OData);  itemModel.setSizeLimit(5000);  },
 函数(oError){
 jQuery.sap.require(" sap.m.MessageToast");
 sap.m.MessageToast.show("服务正在维护中。请稍后再试");
 });
 this.getView()。byId('idTable2')。setModel(itemModel); 

当我们检查OData或itemModel时,我们得到下面的结构。 另外,odata.read中的odata调用成功构造了odata url,并在浏览器的F12中获取了响应。

我们不确定在json模型(itemModel)/OData结构下面的哪里可以获得记录。

1]请让我们知道如何在以下结构中导航到它?

此外,idTable2中上面的表绑定是

2]请让我们知道绑定是否正确。

此致

Pooja

odata.jpg (88.0 kB)
付费偷看设置
发送
3条回答
葫芦娃快救爷爷
1楼-- · 2020-09-09 08:26

您好 Pooja Menon

我不确定请求是否真的发送了 因为它对我来说看起来不正确,而且您正在使用expand,所以您将同时获得父项和项数据。

执行以下操作:

 var sKey = oModel.createKey({
      " SystemName":系统名称,
 ...其他键的...
 });
 oModel.read(sKey +"/img/HeaderToItem",{
     成功:函数(OData){
           itemModel.setData(OData);
          itemModel.setSizeLimit(5000);
 },
 }); 

在成功函数中放置一个调试器,查看数据如何发送并继续。

但是上面的操作不是必需的,您可以直接将元素绑定到 table和m.table将自动为您发送读取请求。

在父表项选择事件中,执行以下代码:

 var sKey = oModel.createKey({
      " SystemName":系统名称,
 ...其他键的...
 });
//确保密钥正确传递
 this.getView()。byId('idTable2')。bindElement(sKey);
//在表格下方,通过导航
 

BR,

马赫什语

您想结束这个问题吗? p> Joseph

悻福寶寶
3楼-- · 2020-09-09 08:11

嗨,Mahesh,

解决了!! 在创建oData模型时,必须将json显式设置为true。

此致

Pooja

一周热门 更多>

向帮助了您的网友说句感谢的话吧!