Fiori-扩展对象页面

2020-09-13 15:36发布

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

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


大家好,

我阅读了一些有关如何扩展对象页面的博客,但我仍然处于封锁状态。 这是我的资料来源:

我目前在列表报告和对象页面上。 我的列表报告中的所有扩展均已完成,可以。 我的版本是1.38 ...

我有EntitySet标头(主要)和EntitySet项(次要)。

现在,我正在处理对象页面(OP)。 我添加了一个自定义部分(在第一个链接的帮助下,非常感谢 Jocelyn Dart ), 它完美地工作。
第二次,我尝试将OP扩展为执行两个操作:

    我的订单项(智能表格?)中的
  • 操作按钮-图片1
  • 页脚栏中的操作-图片2

在下面,您可以找到manifest.js的扩展部分。 扩展列表报告还可以,OP的常规数据还可以...

我认为我离……某物很近,但我看不出我的错误在哪里。 您对我做错什么有任何想法/建议吗?

非常感谢您的帮助。

对订单项的操作(图片1)

我的脚栏上的操作(图2-法文显示,但是我们有保存,取消和共享的内容)

我的清单摘录

"扩展":
 {
 "扩展名":{
 " sap.ui.viewExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " SmartFilterBarControlConfigurationExtension |标题":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.Customfilter",
 " type":" XML"
 }
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " BeforeFacet | Headers | InvoiceItem":{
 " className":" sap.ui.core.mvc.View",
 " viewName":" MyNameSpace.ext.view.GeneralData",
 " type":" XML",
 " sap.ui.generic.app":{
 " title":" {@ i18n> GENERALDATA}"
 }
 }
 }
 },
 " sap.ui.controllerExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " controllerName":" MyNameSpace.ext.controller.ListReportExt"
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Detail":{
 " controllerName":" MyNameSpace.ext.controller.ObjectPageExt",
 " sap.ui.generic.app":{
 "项目":{
 " EntitySet":"项目",
 "部分":{
 " InvoiceItem":{
 " id":" InvoiceItem",
 "动作":{
 " onItemRefresh":{
 " id":" onItemRefresh",
 " text":" Super",
 " press":" onItemRefresh",
 " requiresSelection":否
 }
 }
 }
 },
 "动作":{
 " onPreSave":{
 " id":" onPreSave",
 " text":" Awesome",
 " press":" onPreSave",
 "确定":正确
 }
 }
 }
 }
 }
 }
 }
 }
 

再次感谢您的帮助。

(3.8 kB)

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

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


大家好,

我阅读了一些有关如何扩展对象页面的博客,但我仍然处于封锁状态。 这是我的资料来源:

我目前在列表报告和对象页面上。 我的列表报告中的所有扩展均已完成,可以。 我的版本是1.38 ...

我有EntitySet标头(主要)和EntitySet项(次要)。

现在,我正在处理对象页面(OP)。 我添加了一个自定义部分(在第一个链接的帮助下,非常感谢 Jocelyn Dart ), 它完美地工作。
第二次,我尝试将OP扩展为执行两个操作:

    我的订单项(智能表格?)中的
  • 操作按钮-图片1
  • 页脚栏中的操作-图片2

在下面,您可以找到manifest.js的扩展部分。 扩展列表报告还可以,OP的常规数据还可以...

我认为我离……某物很近,但我看不出我的错误在哪里。 您对我做错什么有任何想法/建议吗?

非常感谢您的帮助。

对订单项的操作(图片1)

我的脚栏上的操作(图2-法文显示,但是我们有保存,取消和共享的内容)

我的清单摘录

"扩展":
 {
 "扩展名":{
 " sap.ui.viewExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " SmartFilterBarControlConfigurationExtension |标题":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.Customfilter",
 " type":" XML"
 }
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " BeforeFacet | Headers | InvoiceItem":{
 " className":" sap.ui.core.mvc.View",
 " viewName":" MyNameSpace.ext.view.GeneralData",
 " type":" XML",
 " sap.ui.generic.app":{
 " title":" {@ i18n> GENERALDATA}"
 }
 }
 }
 },
 " sap.ui.controllerExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " controllerName":" MyNameSpace.ext.controller.ListReportExt"
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Detail":{
 " controllerName":" MyNameSpace.ext.controller.ObjectPageExt",
 " sap.ui.generic.app":{
 "项目":{
 " EntitySet":"项目",
 "部分":{
 " InvoiceItem":{
 " id":" InvoiceItem",
 "动作":{
 " onItemRefresh":{
 " id":" onItemRefresh",
 " text":" Super",
 " press":" onItemRefresh",
 " requiresSelection":否
 }
 }
 }
 },
 "动作":{
 " onPreSave":{
 " id":" onPreSave",
 " text":" Awesome",
 " press":" onPreSave",
 "确定":正确
 }
 }
 }
 }
 }
 }
 }
 }
 

再次感谢您的帮助。

(3.8 kB)
付费偷看设置
发送
6条回答
悠然的二货
1楼-- · 2020-09-13 16:09

你好

这是我对扩展程序的解决方案,希望可以为您提供帮助:)

Manifest.json:

"扩展":{
 " component":" APP_ID",
 "扩展名":{
 " sap.ui.viewExtensions":{
 " APP_ID.view.Master":{
 " EXTENSION_NAME":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" APP_ID.view.Extensions.EXTENSION_FRAGMENT_NAME",
 " type":" XML"
 }
 },
 " APP_ID.ZAPP_TEMPLATE_MD.view.Detail":{//这里是另一个
 

视图:

 <列表>
       <项目>
 
       
 
 

片段:

 
 
 
 />
 
                 ...............................
 
 
 

这对我来说很好:)

而且,如果要在Extension内使用extensionPoints,则可以这样做:

" sap.ui.viewExtensions":{
 " APP_ID.view.Extensions.EXTENSION_FRAGMENT_NAME":{
 " NEW_EXTENSION_NAME_INSIDE_ANOTHER_EXTENSION":{
                     ...... 

致谢。

Nan4612
2楼-- · 2020-09-13 16:11

谢谢克里斯蒂安(Cristian)的回答。 但是我不确定我是否可以在我的情况下应用您的建议。 我在控制器声明中发现了错误。 错过了" S"!

" sap.suite.ui.generic.template.ObjectPage.view.Detail":{

代替

" sap.suite.ui.generic.template.ObjectPage.view.Details":{

现在我的控制器已加载,但我的动作均未加载:/

我仍在寻找LineItem和页脚栏中动作周围的对象页面扩展示例。

再次感谢您!

hongfeng1314
3楼-- · 2020-09-13 16:09

大家好,

我发现了一些东西! 控制器声明中缺少" S"。 现在我们有

" sap.suite.ui.generic.template.ObjectPage.view.Details" 
"扩展":{
 "扩展名":{
 " sap.ui.viewExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " SmartFilterBarControlConfigurationExtension |标题":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.Customfilter",
 " type":" XML"
 }
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " BeforeFacet | Headers | InvoiceItems":{
 " className":" sap.ui.core.mvc.View",
 " viewName":" MyNameSpace.ext.view.GeneralData",
 " type":" XML",
 " sap.ui.generic.app":{
 " title":" {@ i18n> GENERALDATA}"
 }
 }
 }
 },
 " sap.ui.controllerExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " controllerName":" MyNameSpace.ext.controller.ListReportExt"
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " controllerName":" MyNameSpace.ext.controller.ObjectPageExt",
 " sap.ui.generic.app":{
 "标题":{
 " EntitySet":"标题",
 "部分":{
 " InvoiceItems":{
 " id":" InvoiceItems",
 "动作":{
 " ActionItemsRefresh":{
 " id":" ActionItemsRefresh",
 " text":" {@ i18n> ACTIONREFRESH}",
 " press":" OnActionItemsRefresh"
 }
 }
 }
 }
 }
 }
 }
 }
 }
 },

 

我已成功添加对" LineItem"的操作。 我将其链接到函数导入。

现在,我必须:
-从后端重新绑定数据
-添加图标而不是文本
-在页脚栏中添加操作

我部署了我的应用进行测试,我们遇到了一个新问题。 您从启动板运行应用程序,再次导航并重新启动...应用程序未出现,因为我们的第一个扩展XML有重复的ID ...我不明白为什么?

如果您有任何建议或答案...。非常感谢!!

shere_lin
4楼-- · 2020-09-13 16:12

通过添加控制器的onExit函数解决了重复的ID,并销毁了所有" ID"字段。/p>

软件心理学工程师
5楼-- · 2020-09-13 16:36

大家好,

一切都受到控制...或关闭^^这是我寻求帮助的清单

"扩展":{
 "扩展名":{
 " sap.ui.viewExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " SmartFilterBarControlConfigurationExtension |标题":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.Customfilter",
 " type":" XML"
 }
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " BeforeFacet | Headers | InvoiceItems":{
 " className":" sap.ui.core.mvc.View",
 " viewName":" MyNameSpace.ext.view.GeneralData",
 " type":" XML",
 " sap.ui.generic.app":{
 " title":" {@ i18n> GeneralData}"
 }
 },
 " AfterFacet | Headers | InvoiceItems":{
 " className":" sap.ui.core.mvc.View",
 " viewName":" MyNameSpace.ext.view.Attachments",
 " type":" XML",
 " sap.ui.generic.app":{
 标题:" {@ i18n>附件}"
 }
 },
 " ResponsiveTableColumnsExtension | Items | ToItems :: com.sap.vocabularies.UI.v1.LineItem":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.ObjectPageTableColumns",
 " type":" XML"
 },
 " ResponsiveTableCellsExtension | Items | ToItems :: com.sap.vocabularies.UI.v1.LineItem":{
 " className":" sap.ui.core.Fragment",
 " fragmentName":" MyNameSpace.ext.fragment.ObjectPageTableCells",
 " type":" XML"
 }
 }
 },
 " sap.ui.controllerExtensions":{
 " sap.suite.ui.generic.template.ListReport.view.ListReport":{
 " controllerName":" MyNameSpace.ext.controller.ListReportExt"
 },
 " sap.suite.ui.generic.template.ObjectPage.view.Details":{
 " controllerName":" MyNameSpace.ext.controller.ObjectPageExt",
 " sap.ui.generic.app":{
 "标题":{
 " EntitySet":"标题",
 "部分":{
 " InvoiceItems":{
 " id":" InvoiceItems",
 "动作":{
 " ActionItemsRefresh":{
 " id":" ActionItemsRefresh",
 " press":" OnActionItemsRefresh",
 " requiresSelection":否
 }
 }
 }
 },
 "标题":{
 "动作":{
 " PreSave":{
 " id":" ActionPreSave",
 " text":" PreSave",
 " press":" OnActionPreSave",
 "确定":正确
 }
 }
 }
 }
 }
 }
 }
 }
 }

 

要在我的CustomAction上应用图标,我在Object Page控制器的OnInit事件上使用了JS。 我将"启用"属性绑定到ui> editable。

要在页脚栏中获取CustomAction,必须将其添加到清单中,但在"读取"模式下将其添加到页眉中,而在"编辑"模式中将其添加到页脚中,因此...在对象页面的OnInit事件中,我使用JS将其隐藏 控制器。

现在,我正在处理智能表中的"自定义列/单元格" ...但是现在,它尚无法使用。 但是,我肯定会得到的:)

谢谢。

huskylover
6楼-- · 2020-09-13 16:34

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答