对象页面上表格中的动态内部导航(FIORI Elements List报告)

2020-08-14 17:16发布

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

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


你好

我已经用Fiori Elements创建了一个List Report应用程序。 初始对象页面包含一个列表,该列表包含具有不同表单ID的FormHeader项。 现在,根据表单ID,我想导航到具有不同实体集的不同子对象页面。 这些子对象页面根据表单ID代表不同的表单,其中包含特定的输入字段(代表不同的表单类型)。

我扩展了onListNavigationExtension函数,但是它不起作用。 当我尝试从列表项导航到特定的子对象页面时,显示错误页面,显示消息"找不到目标"。 有什么想法可以解决这个问题吗?

在此先感谢您的每一个提示和提示!

伯恩德

DetailsExtension.controller.js

 sap.ui.controller(" ..... ext.controller.DetailsExtension",{
 
  onListNavigationExtension:函数(oEvent){
   var oNavigationController = this.extensionAPI.getNavigationController();
   var oBindingContext = oEvent.getSource()。getBindingContext();
   var oObject = oBindingContext.getObject();
   var oModel = oBindingContext.getModel();
  
   var oContext;
   
  //触发所有其他特殊的内部导航,我们使用默认内部导航
   如果(oObject.form_id ===" OSHA_301"){
       sPath = sPath +"/img/to_Form001";
       oContext =新的sap.ui.model.Context(oModel,sPath);
       oNavigationController.navigateInternal(oContext,
 {navigationProperty:" to_Form001"});
   }
 …
 …
   其他{
   //返回false触发默认的内部导航
    返回false;
   }
  //返回true是必要的,以防止进一步的默认导航
   返回true;
  }
 });
 

manifest.json

" sap.ui.generic.app":{
   " _version":" 1.3.0",
   "设置":{
    " forceGlobalRefresh":否,
    " objectPageHeaderType":"动态"
   },
   "页面":{
    " ListReport | ZEHSOH_C_MSRV_HEAD":{
     " entitySet":" ZEHSOH_C_MSRV_HEAD",
     "零件": {
      " name":" sap.suite.ui.generic.template.ListReport",
      "列表":是的,
      "设置":{
       " smartVariantManagement":是
      }
     },
     "页面":{
      " ObjectPage | ZEHSOH_C_MSRV_HEAD":{
       " entitySet":" ZEHSOH_C_MSRV_HEAD",
       "零件": {
        " name":" sap.suite.ui.generic.template.ObjectPage",
        "设置":{
         "部分":{
          "形式": {
           " navigationProperty":" to_Form",
           " entitySet":" ZEHSOH_C_MSRV_FORM",
           " createMode":"内联"
          }
         }
        }
       },
       "页面":{
        " ObjectPage | to_Protocol":{
         " navigationProperty":" to_Protocol",
         " entitySet":" ZEHSOH_C_MSRV_HSP",
         "零件": {
          "名称":" sap.suite.ui.generic.template.ObjectPage"
         }
        },
        " ObjectPage | to_Form":{
         " navigationProperty":" to_Form",
         " entitySet":" ZEHSOH_C_MSRV_FORM",
         "零件": {
          "名称":" sap.suite.ui.generic.template.ObjectPage"
         },
         "页面":{
          " ObjectPage | to_Form001":{
           " navigationProperty":" to_Form001",
           " entitySet":" ZEHSOH_C_MSRV_FORM001",
           "零件": {
            "名称":" sap.suite.ui.generic.template.ObjectPage"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  

屏幕截图

x

(133.3 kB)

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

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


你好

我已经用Fiori Elements创建了一个List Report应用程序。 初始对象页面包含一个列表,该列表包含具有不同表单ID的FormHeader项。 现在,根据表单ID,我想导航到具有不同实体集的不同子对象页面。 这些子对象页面根据表单ID代表不同的表单,其中包含特定的输入字段(代表不同的表单类型)。

我扩展了onListNavigationExtension函数,但是它不起作用。 当我尝试从列表项导航到特定的子对象页面时,显示错误页面,显示消息"找不到目标"。 有什么想法可以解决这个问题吗?

在此先感谢您的每一个提示和提示!

伯恩德

DetailsExtension.controller.js

 sap.ui.controller(" ..... ext.controller.DetailsExtension",{
 
  onListNavigationExtension:函数(oEvent){
   var oNavigationController = this.extensionAPI.getNavigationController();
   var oBindingContext = oEvent.getSource()。getBindingContext();
   var oObject = oBindingContext.getObject();
   var oModel = oBindingContext.getModel();
  
   var oContext;
   
  //触发所有其他特殊的内部导航,我们使用默认内部导航
   如果(oObject.form_id ===" OSHA_301"){
       sPath = sPath +"/img/to_Form001";
       oContext =新的sap.ui.model.Context(oModel,sPath);
       oNavigationController.navigateInternal(oContext,
 {navigationProperty:" to_Form001"});
   }
 …
 …
   其他{
   //返回false触发默认的内部导航
    返回false;
   }
  //返回true是必要的,以防止进一步的默认导航
   返回true;
  }
 });
 

manifest.json

" sap.ui.generic.app":{
   " _version":" 1.3.0",
   "设置":{
    " forceGlobalRefresh":否,
    " objectPageHeaderType":"动态"
   },
   "页面":{
    " ListReport | ZEHSOH_C_MSRV_HEAD":{
     " entitySet":" ZEHSOH_C_MSRV_HEAD",
     "零件": {
      " name":" sap.suite.ui.generic.template.ListReport",
      "列表":是的,
      "设置":{
       " smartVariantManagement":是
      }
     },
     "页面":{
      " ObjectPage | ZEHSOH_C_MSRV_HEAD":{
       " entitySet":" ZEHSOH_C_MSRV_HEAD",
       "零件": {
        " name":" sap.suite.ui.generic.template.ObjectPage",
        "设置":{
         "部分":{
          "形式": {
           " navigationProperty":" to_Form",
           " entitySet":" ZEHSOH_C_MSRV_FORM",
           " createMode":"内联"
          }
         }
        }
       },
       "页面":{
        " ObjectPage | to_Protocol":{
         " navigationProperty":" to_Protocol",
         " entitySet":" ZEHSOH_C_MSRV_HSP",
         "零件": {
          "名称":" sap.suite.ui.generic.template.ObjectPage"
         }
        },
        " ObjectPage | to_Form":{
         " navigationProperty":" to_Form",
         " entitySet":" ZEHSOH_C_MSRV_FORM",
         "零件": {
          "名称":" sap.suite.ui.generic.template.ObjectPage"
         },
         "页面":{
          " ObjectPage | to_Form001":{
           " navigationProperty":" to_Form001",
           " entitySet":" ZEHSOH_C_MSRV_FORM001",
           "零件": {
            "名称":" sap.suite.ui.generic.template.ObjectPage"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  

屏幕截图

x

(133.3 kB)
付费偷看设置
发送
1条回答
哎,真难
1楼-- · 2020-08-14 18:04

不确定是否仍需要此解决方案,但是我可以使用以下代码来实现。 这里to_dmg是我的子对象页面导航。

 var oExtensionAPI = this.extensionAPI;
 var oNavigationController = oExtensionAPI.getNavigationController();
 var oModel = this.getView()。getModel();
 var sPath ="/img/zpm_c_workSchedule(workorder ='4100505536',operation ='0010')/to_dmg(wonum ='4100505536',vornr ='0010')";
 var oContext = new sap.ui.model.Context(oModel,sPath);
 oNavigationController.navigateInternal(oContext);
 

一周热门 更多>