一套适合SAPUI5初学者的循序渐进的学习教程计划中的文章数量本栏目约300篇,到2022年截止2007年10月28日,已更新144篇,栏目完成率48%。作者简介JerryWang,2007年电子科技大学计算机硕士毕业后加入SAP成都研究院。Jerry是SAP社区导师和SAP中国技术大使。在15年的SAP标准产品开发生涯中,Jerry参与了SAPBusinessByDesign、SAPCRM、SAPCloudforCustomer、SAPS/4HANA、SAPCommerceCloud(电商)等标准产品的研发云)。Jerry在工作中使用ABAP、Java、JavaScript和TypeScript进行开发,对包括SAPUI5在内的多种SAP自研框架有深入研究。如果大家在学习过程中对本套教程有任何疑问和写作意见,可以在教程文章下评论,也可以在本《一套适合 SAP UI5 开发人员循序渐进的学习教程》读者反馈和下次写作计划中评论。在写作过程中,我会根据大家的反馈对教程内容进行补充和修改。教程目录SAPUI5本地开发环境搭建SAPUI5应用开发教程一:HelloWorldSAPUI5应用开发教程二:BootstrapSAPUI5应用开发教程三:接触第一款SAPUI5控件SAPUI5应用开发教程四:初探XMLViewsSAPUI5应用开发教程五:ViewControllers初探SAPUI5应用开发教程六-理解SAPUI5的模块概念SAPUI5应用开发教程七-JSON模型初探SAPUI5应用开发教程8-多语言支持SAPUI5应用开发教程9-创建第一个ComponentSAPUI5应用开发教程10-SAPUI5应用Descriptor的Descriptor是什么SAPUI5应用开发教程11:SAPUI5容器类控制页面和面板SAPUI5应用开发教程第12期-UsingCSS类进一步美化UISAPUI5应用开发教程第13期-如何添加自定义CSS类SAPUI5应用开发教程第14期-如何使用嵌入式视图SAPUI5应用开发教程第15期-如何使用对话框和FragmentsSAPUI5应用开发教程16-图标图标使用SAPUI5应用开发教程17-UI5复合控件中的聚合与绑定使用SAPUI5应用开发教程十八-SAPUI5数据绑定中的特殊符号语法,以及绝对绑定和相对绑定概念详解SAPUI5应用开发教程十九-SAPUI5数据类型和复杂数据绑定SAPUI5应用开发教程20-SAPUI5表达式绑定使用详解SAPUI5应用开发教程21-SAPUI5自定义格式化程序SAPUI5应用开发教程22-Filter过滤器的开发与使用SAPUI5应用开发教程23-ListC的排序ontrols排序分组GroupSAPUI5应用开发教程24-如何使用OData数据模型SAPUI5应用开发教程25-使用自研代理服务器解决SAPUI5应用远程访问OData服务跨域问题SAPUI5应用开发教程26-OData服务与Mock服务器使用步骤详解SAPUI5应用开发教程27-SAPUI5应用单元测试工具QUnit介绍SAPUI5应用开发教程二十八-SAPUI5应用集成测试工具OPA介绍SAPUI5应用开发教程29-SAPUI5路由和导航功能介绍SAPUI5应用开发教程30-SAPUI5路由参数传递过程SAP三十一UI5应用开发教程-SAPUI5路由历史和路由回传(回溯历史)SAPUI5应用开发教程三十二-如何创建自定义SAPUI5控件SAPUI5应用开发教程三十三-SAPUI5应用的响应性(Responsiveness)SAPUI5应用开发教程三十四-SAPUI5应用基于设备类型的页面适配功能(De副适配)SAPUI5应用开发教程三十五-如何将本地开发的SAPUI5应用部署到ABAP服务器SAPUI5应用开发教程三十六-使用Chrome开发者工具Elements选项卡动态修改CSS类SAPUI5应用开发教程三十七-使用Chrome开发者工具Console面板ElementReviewSAPUI5应用开发教程第38期-使用Chrome开发者工具查看程序执行错误时的上下文信息SAPUI5应用开发教程第39期-SAP的一些常见错误及分析方法UI5App出现白屏分享SAPUI5应用开发教程40-如何制作包含component-preload.js的SAPUI5Release版本SAPUI5应用开发教程41-Chrome扩展UI5Inspector离线安装使用SAPUI5应用开发教程四十-二-SAPUI5自带的Diagnostics诊断工具使用介绍SAPUI5应用开发教程四十三-SAPUI5自带的SupportAssistant工具使用介绍SAPUI5应用开发教程第44期——标签和输入控件文本未水平对齐的原因分析及解决办法SAPUI5应用开发教程第45期——如何在SAPUI5应用中使用jQuery和NativeDOMAPISAPUI5应用开发教程第46期——使用MessageManager实现开箱即用的验证(Validation)信息抛出SAPUI5应用开发教程第47部分-如何自定义SAPUI5字符串类型输入字段的验证逻辑SAPUI5应用开发教程第四十八篇-how在SAPUI5应用程序中开发条码扫描功能SAPUI5应用程序开发教程之四十九-如何在桌面电脑上调试手机上运行的SAPUI5应用程序SAPUI5应用程序开发教程之五-如何使用Cordova为SAPUI5应用生成混合应用,可以安装在Android手机上的SAPUI5应用n开发教程51-如何使用Chrome调试手机上运行的SAPUI5Cordova混合应用SAPUI5应用开发教程52-如何使用SAPUI5标准控件结合Cordova插件调用手机摄像头条码扫描SAPUI5应用开发教程五十三-如何自定义SAPUI5数据类型(DataType)SAPUI5应用开发教程五十四-如何在本地SAPUI5配置应用到本地FioriLaunchpadSAPUI5应用开发教程五十-五-如何通过Node.jsExpress将本地SAPUI5应用部署到公网SAPUI5应用开发教程五十六-SAPUI5树形控件(tree)开发SAPUI5应用开发教程五十七-基于SmartFieldOData注解使用方法学习SAPUI5应用开发教程五十八——使用工厂方法动态创建不同类型的列表行项控件olsatRuntimeSAPUI5应用程序开发教程第59部分-如何在SAPUI5应用程序中显示世界地图SAPUI5应用程序开发教程第60部分-SAPUI5地图控件的一些高级用法SAPUI5应用程序开发教程第61部分-绘制甘特图SAPUI5应用程序甘特图SA中的图表PUI5应用开发教程第62期-基于ODataV4的SAPUI5Form控件使用介绍SAPUI5应用开发教程第63期-深入介绍基于ODataV4SAPUI5应用开发实现LocalMockServer教程第60期四-基于ODataV4的SAPUI5表格控件如何实现过滤(filtering)和排序(sorting)功能SAPUI5应用程序开发教程65-基于ODataV4的SAPUI5表格控件如何实现创建、编辑和保存功能SAPUI5应用开发教程六十六——如何实现基于ODataV4的SAPUI5表格控件的删除功能SAPUI5应用开发教程六十七——SAPUI5列表-明细(List-Detail)布局的实现基于ODataV4的SAPUI5应用开发教程第68期-如何在SAPUI5路由失败时显示自定义的NOTFound页面SAPUI5应用开发教程第69期-Howto从SAPUI5NotFound页面跳转回正常应用页面SAPUI5应用开发教程70-如何使用按钮控件触发页面路由跳转SAPUI5应用开发教程71-SAPUI5页面的嵌套路由SAPUI5应用开发教程72-SAPUI5页面路由动画效果设置SAPUI5应用开发教程七十三-使用自定义查询实现SAPUI5页面路由的书签功能SAPUI5应用开发教程七十四-SAPUI5应用使用ODataV4显示陷阱TableTabularDataSAPUI5应用开发教程七十五-如何使用SAPUI5主从表的联动技术展示复杂的表内容SAPUI5应用开发教程七十六-如何实现LazyLoading(延迟加载、懒惰SAPUI5SAPUI5应用开发教程之七十七-SAPUI5动态页面路由的高级用法:一-路由记录routes和targets之间的一对多关系SAPUI5应用开发教程七十八-如何通过url维护SAPUI5搜索的状态,使其支持书签功能SAPUI5应用开发教程七十九-采用SAPUI5应用的功能开发使用测试驱动开发(一)SAPUI5应用开发教程80-使用测试驱动开发(TestDrivenDevelopment)进行SAPUI5应用的功能开发(二)SAPUI5应用开发教程81-实例SAPUI5集成测试(IntegrationTest)使用OPA5SAPUI5应用开发教程第82期-使用OPA5开发SAPUI5集成测试用例支持页面跳转SAPUI5应用开发教程八十三-SAPUI5自动化测试套件页面开发步骤介绍SAPUI5应用开发教程之八十四-如何指定SAPUI5应用基于特定版本运行SAPUI5应用开发教程-八十五-如何使用OPA5编写测试用例测试功能ofuserinputtextSAPUI5ApplicationDevelopmentTutorialNo.86-动手开发最简单的本地Mock数据服务器SAPUI5Ap应用程序开发教程第87期-如何让SAPUI5Mock服务器支持自定义url参数SAPUI5应用程序开发教程第88期-SAPUI5Mock服务器如何实现自定义功能ImportSAPUI5应用程序开发教程第89期-如何添加多个SAPUI5列表控件的图形界面过滤器SAPUI5应用开发教程九十-基于ODataV2的SAPUI5列表-详细信息(List-Detail)布局的实现SAPUI5应用开发教程九十一-如何使用客户端JSON模型在Master-Detail-Detail布局中构建列表PageSAPUI5应用开发教程第92期-基于SAPUI5JSONModel客户端模型的分页SAPUI5应用开发教程第93期-深入讨论A显示的数据基于JSONModel数据模型的List控件SAPUI5应用开发教程九十四-SAPUI5基于JSONModel数据模型的List控件分页显示数据完整解决方案SAPUI5应用开发教程九十五-SAPUI5下拉菜单如何使用(选择)控件SAPUI5应用程序开发教程第96部分-如何自定义SAPUI5列表控件在页面中显示数据时的页面大小SAPUI5应用程序开发教程第97部分-如何使用客户端JSON模型来以Detail-Detail布局构建Master-Detail页面SAPUI5应用开发教程九十八-从viewId属性谈SAPUI5的HTML源码生成机制SAPUI5应用开发教程九十九-深入探讨SAPUI5本地开发环境中的package.json和ui5.yamlSAPUI5应用开发教程一百零一-如何修改SAPUI5框架的源码实现,并使用本地部署的SAPUI5SDKSAPUI5应用开发教程一百零一-SAPUI5应用程序的语言环境决定机制SAPUI5应用程序开发教程一百零二-详解印刷(Print)SAPUI5应用的功能SAPUI5应用开发教程一百零三——如何在SAPUI5应用中使用第三方库SAPUI5应用开发教程一百零四——SAPUI5表格控件支持多选(Multi-Select)以及如何使用使用代码一次选择多个表格行项SAPUI5应用开发教程一百零五-SAPUI5Master-DetailLayout模式联动效果的实现详解SAPUI5应用开发教程106-如何改进SAPUI5应用路由url的可读性SAPUI5应用开发教程107-SAPUI5OverflowToolbar容器控件和resize事件处理详细介绍SAPUI5应用开发教程一百零八-SAPUI5图片显示控件的使用Avatar介绍SAPUI5应用开发教程一百零九——使用SAPUI5FileUploader控件上传ad本地文件SAPUI5应用开发教程一110-深入介绍SAPUI5FileUploader控件-为什么需要隐藏iframeSAPUI5应用开发教程111-SAPUI5FileUploader控件实现本地文件上传,遇到跨域访问接收服务器端响应时出错APUI5应用开发教程一百一十二-使用自研代理服务器解决SAPUI5FileUploader上传文件遇到的跨域访问错误SAPUI5应用开发教程一百一十三-教人做fish-how自己查询任何SAPUI5控件属性的文档和技术实现细节SAPUI5应用程序开发教程第114部分-如何通过单步调试找到FioriLaunchpad路由错误的原因SAPUI5应用程序开发教程第110部分五-关于将本地SAPUI5应用配置到本地FioriLaunchpad的技术实现详解SAPUI5应用开发教程116-在SAPGUI中使用ABAP报表将SAPUI5应用上传到ABAP服务器SAPUI5应用之一开发教程117-本地开发的SAPUI5应用部署到ABA时P服务器,汉字变成乱码的原因及解决办法SAPUI5应用开发教程118-如何分析SAPUI5版本差异导致的问题SAPUI5应用开发教程119-深入剖析SAPUI5容器控件聚合SAPUI5应用开发教程120-如何查看SAPUI5框架代码抛出的错误信息是哪行代码导致了错误信息SAPUI5应用开发教程第121部分-一键部署一个out-of-the-box代理服务器解决SAPUI5应用开发中访问远程OData服务的跨域问题SAPUI5应用开发教程122-在SAPUI5应用中使用浏览器原生FetchAPI发起网络请求SAPUI5应用开发教程123-使用BusyDialog动画防止SAPUI5应用按钮短时间内被快速点击SAPUI5应用开发教程一百二十四——使用功能节流思想避免SAPUI5应用中的按钮短时间内被重复点击SAPUI5应用开发教程一百二十五——SAPUI5进阶-XMLView运行时实例化中定义的UI控件的技术细节分析SAPUI5应用开发教程一百二十六-SAPUI5进阶-JSON模型字段中的值显示在最终的UI5界面上谜底分析SAPUI5应用开发教程一百二十七-SAPUI5应用开发教程全局配置的设计与使用SAPUI5应用开发教程一百二十八-SAPUI5智能控件智能控件初识SAPUI5应用开发教程129-如何增值SAPUI5SmartField帮助功能SAPUI5应用开发教程130-如何让SAPUI5SmartField在运行时呈现为超链接并支持跳转转SAPUI5应用开发教程一百三十一-SAPUI5跨应用导航(跨-应用跳转)本地模拟实现SAPUI5应用开发教程一百三十二-SAPUI5SimpleForm控件的使用介绍SAPUI5应用开发教程一百三十三-SAPUI5应用元数据文件manifest.json加载和解析原理详解SAPUI5应用开发教程一百一d三十四——SAPUI5SimpleForm属性columnsL,columnsM,columnsXL属性深入剖析SAPUI5应用开发教程一百三十五——SAPUI5应用屏幕尺寸检测工作原理深入剖析SAPUI5应用开发教程一百三十六-SAPUI5应用SimpleForm控件ResponsiveGridLayout布局工作原理深入解析SAPUI5应用开发教程一百三十七-如何在SAPUI5SimpleFormOne中横向显示多组Form元素SAPUI5应用开发教程一百三十八-SAPUI5控件库中的表单控件和SimpleForm控件的区别和联系详解SAPUI5应用开发教程一百三十九-如何使用SAPUI5SmartForm智能表单控件介绍SAPUI5应用程序开发教程一百四十如何使用JavaS连接部署在SAPABAP服务器上的OData服务的脚本代码SAPUI5应用程序开发教程一百四十一-如何在SAPUI5应用程序中安全地存储一些敏感数据以避免被上传到Github的风险SAPUI5应用开发教程一百四十二-SAPUI5的TimePicker,一个时钟外观的时间选择控件SAPUI5应用开发教程一百四十三-SAPUI5组件定义的声明式初始化(初始组件声明式API)SAPUI5应用开发教程一百四十四-授人以鱼-如何查找SAPUI5官网未提及的控件属性的使用详情SAPUI5应用开发教程一百四四十五-正在写...说明Jerry自2014年加入SAP成都研究院CRMFiori开发团队后就开始接触SAPUI5,在SAP社区发表了多篇关于SAPUI5工作的文章,王子熙的微信公众号原理和源码分析的文章在Jerry的文章里。对SAPUI5一无所知的新手,从哪些资料入手比较好?如前所述,Jerry也是从SAPUI5菜鸟一路走来的。他知道,对于一个只有ABAP开发背景的开发人员来说,要转型到SAPUI5开发领域并不容易。因此,我利用业余时间为SAPUI5不同层次的学习者设计了本书。学习教程将开发一个完整的SAPUI5应用程序的过程分解成几个步骤,力求涵盖每个步骤中涉及的所有知识点。这些知识点可能没有我的UI5源码分析系列文章那么深入,但我力求做到简单。重要知识点附有详细的截图辅助文字介绍,便于教程学习者理解。本教程每一步的源码都存放在我的Github上,以01、02、03等文件夹标识,例如第1步的源码在这里。每一步都在上一步的基础上,增加了几个新的特性。建议零基础或对SAPUI5了解不多的SAPUI5初学者从第一步开始按顺序一步步学习,把这些代码下载到本地,配合教程的文字讲解自己动手加深理解。对于已经有一定基础的SAPUI5开发者,可以通过本文目录跳过前面部分比较基础的章节,直接选择与自己工作项目相关的章节,或者包含某些知识点的章节他们还没有掌握。学习。如果大家对教程的每一步有什么疑问,欢迎在教程对应的步骤文章中评论留言。虽然平时开发工作很忙,但我保证会定期查看大家给我留下的评论,我一定会抽空回答其中涉及的技术问题。本教程第113步,SAPUI5应用开发教程一百一十三-授人以渔-如何自己查询任何SAPUI5控件属性的文档和技术实现细节我用了整篇文章来回答一个问题学习者有这样的疑问:我想问一下sap.m.Input控件的值中设置的内容,比如路径,类型,约束,在哪里可以找到可以使用的内容?我怎么知道可以设置哪些其他属性?最近有朋友在学习本教程的第19步时,也对sap.m.List控件有类似的疑问:请告诉我,比如在ObjectListItem元素上,有一个number属性,但是value是一个JSON字符串,UI5官网的API上可以找到这个属性,但是没有说明具体值怎么设置。在官网提供的sample上可以看到是这样写的。请问,number属性中有没有什么地方可以看到具体的值?设置了哪些字段值?这位朋友问的其实是19文件夹下的InvoiceList.view.xml文件中定义的ObjectListItem控件的属性编号:formatOptions和其他字段。从SAPUI5官网只能看到number属性是string类型,没有其他信息:笔者将与大家一起探讨如何挖掘出更多该number属性的细节和使用方法。
