sap.m.表中的依存选择

2020-09-14 05:09发布

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

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


知名专家

我需要你的帮助。

一个表由多列组成,其中两列选择另一个,即 地区取决于第一个,即国家/地区。

直到第1行一切正常。 添加第2行时,有时第1行的Region显示第2行的Region,类似于第二张图片。 上方的第3行区域已更改,选择项也已更改。

能不能帮我知道我要去哪里错了?

我使用了以下代码:

在表中:

 <选择
     selectedKey =" {tempModel> Country}"
     change ='onSelectTableCountry'
     items =" {path:'/CountrySet',templateShareable:'true'}">
     
 
 <选择
     selectedKey =" {tempModel> Region}"
     items =" {path:'/RegionSet',templateShareable:'true'}">
     
 
 

在Json模型中:

" AddressSet":[{
       "国家":"",
       "区域":""
 }],
 " addAddress":{
       "国家":"",
       "区域":""
 } 

在控制器中:

 onSelectTableCountry:函数(oEvent){
 var aSelectedCell = oEvent.getSource()。getParent()。getCells();
 var SelectedCountry = aSelectedCell [6] .getSelectedKey();
 var oBinding = oEvent.getSource()。getParent()。getCells()[7] .getBinding('items');
 oBinding.filter([新的Filter([
 新的过滤器({
 路径:"平淡",
 运算符:FilterOperator.EQ,
 值1:SelectedCountry
                 })
          ])]);
 },

 handleIdentifyAdd:function(oEvent){
        var aTableData = this.tempModel.getProperty('/AddressSet');
        var pData = jQuery.extend(true,{},this.tempModel.getProperty('/addAddress'));
        aTableData.push(pData);
        this.tempModel.setProperty('/AddressSet',aTableData);
 },
 

谢谢

戴维斯。

pic-1.jpg (19.8 kB)

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

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


知名专家

我需要你的帮助。

一个表由多列组成,其中两列选择另一个,即 地区取决于第一个,即国家/地区。

直到第1行一切正常。 添加第2行时,有时第1行的Region显示第2行的Region,类似于第二张图片。 上方的第3行区域已更改,选择项也已更改。

能不能帮我知道我要去哪里错了?

我使用了以下代码:

在表中:

 <选择
     selectedKey =" {tempModel> Country}"
     change ='onSelectTableCountry'
     items =" {path:'/CountrySet',templateShareable:'true'}">
     
 
 <选择
     selectedKey =" {tempModel> Region}"
     items =" {path:'/RegionSet',templateShareable:'true'}">
     
 
 

在Json模型中:

" AddressSet":[{
       "国家":"",
       "区域":""
 }],
 " addAddress":{
       "国家":"",
       "区域":""
 } 

在控制器中:

 onSelectTableCountry:函数(oEvent){
 var aSelectedCell = oEvent.getSource()。getParent()。getCells();
 var SelectedCountry = aSelectedCell [6] .getSelectedKey();
 var oBinding = oEvent.getSource()。getParent()。getCells()[7] .getBinding('items');
 oBinding.filter([新的Filter([
 新的过滤器({
 路径:"平淡",
 运算符:FilterOperator.EQ,
 值1:SelectedCountry
                 })
          ])]);
 },

 handleIdentifyAdd:function(oEvent){
        var aTableData = this.tempModel.getProperty('/AddressSet');
        var pData = jQuery.extend(true,{},this.tempModel.getProperty('/addAddress'));
        aTableData.push(pData);
        this.tempModel.setProperty('/AddressSet',aTableData);
 },
 

谢谢

戴维斯。

pic-1.jpg (19.8 kB)
付费偷看设置
发送
1条回答
槿木_熙
1楼-- · 2020-09-14 06:01

除了使用单元格之外,您还应该仅基于模型...

因此,当您选择国家/地区时,然后将/RegionSet属性设置为仅过滤来自该国家/地区的项目。 您不需要使用单元格和其他所有内容。.如果明天您的单元格顺序发生变化,则您的应用程序将崩溃-这不是一个好习惯。

谢谢!

我按照您的建议尝试了。 这是我的观察。/Region中的数据保持不变,UI的行为与之前所述类似。 如果用户要更改其他行的区域,则select(区域模型)中的项目具有按上次更改的国家/地区过滤的数据,因此Region表中的数据将根据当前模型进行更改。

我觉得,我们需要根据在此选择的国家/地区,每行设置一个"区域模型"。

一周热门 更多>