Fiori Element List Report 开发实战3

作者:郑德鼎 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

Fiori Element List Report开发实战3——通过向导创建报表并发布

上篇文章中,我们已经得到了创建好的OData,现在将通过VS

Code的向导创建报表程序。需要注意,前面几步中,我们通过SICF打开的接口,文档中有self和latest-

version两个字段,这里的地址是你的真实OData地址。稍后创建要使用这个地址。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

还记得第一篇文章新建的文件夹吗?现在它真的有用了!

首先我们在VS Code打开新建好的文件夹,添加到工作区之中。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

虽然我承认这里是在玩梗,但是工作区使用的文件夹对后续的开发影响不大。不过这里还是强烈建议,你的所有文件路径最好全部由英文数字所组成,不要夹杂中文或其他特殊字符。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

接下来,我们鼠标点击中上部的命令栏,选择显示并运行命令。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

这时,我们可以使用的命令基本就列出来了。这里我们简单输入一些关键字进行查询,比如“Fiori:Open”。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

我们可以看到,相似字符的命令都自动搜索出来了。我们点击

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

,开始向导创建。

我们的目标是List Report程序,这里选择第三个页签。这里也能预览到大致的样式。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

下一步,我们选择OData服务,输入地址和能访问接口的服务账号,之后下一步。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

这里默认带出了Main entity。有的服务可能带有一些其他功能,所以Main entity需要手动选择下。

Table type是表格的样式,这里使用Responsive,表现最接近ALV。其他样式大家可以自行体验。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

下一步,我们会定义程序的名称描述相关信息

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

我们这里修改下信息。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

需要注意一些东西:

Application namespace:命名空间是一种在编程中用于区分不同模块、类、函数等标识符的机制。在 SAP UI5

中,命名空间用于标识和组织应用的各个模块、库和资源。每个命名空间都代表了一个独特的标识符前缀,用于将相关的功能模块组织在一起。这有助于确保不同部分之间的标识符不会发生冲突,同时也提供了一种逻辑结构,使开发者能够更好地组织和维护代码。如果后面打算增加一些自定义的功能,这里最好填上。

Minimum SAPUI5 version:UI5组件一定程度上可以向下兼容,这里选择可以支持的最小UI5版本。这里直接保持默认,后续可以修改。

Add deployment configuration:可以在当前向导配置传输。目前点No,后续生成。

Add FLP configuration:可以配置应用挂在Fiori Launchpad上,这里点No,上传后可以本地再配置。

Configure advanced options:可以定义主题,启用一些特性,这里保持默认就行,点No。

点击Finish,开始生成程序。等待片刻。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

然后我们可以看到这个界面。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

我们先预览下创建的报表

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

如上图点击按钮,选择命令,稍等服务启动,默认浏览器会弹出一个页面。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

确定下密码

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

好像不对劲……既没有搜索框,也没有字段展示,发生什么事了?

莫慌,浏览器不要关,回到VS Code。

测试生成的语言默认是英文,我们先修改一下。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

我们先修改下本地测试环境的语言为中文

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

这样回到之前的网页,它已经自动刷新,能看到Adapt

Filters内的字段起码是中文了。这说明程序已经从OData读取正确的语言了。我们当然可以用英文登录SAP,SEGW中设置英语的描述。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

同时在VS Code的终端窗口中看到,OData的数据访问确实切换到中文了。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

然后我们修改annotation.xml,定义默认的搜索页面和默认的展示表字段。

虽然在向导中,有按钮

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

,可以在下面的列表里定位要修改的部分,创建内容。但是如果知道修改位置,跳过向导才是速度最快的方法。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

定位在这里,我们插入一些内容

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

< Annotations Target = " ZODATA_ZLOG_V2_SRV . zlog_et " >

< Annotation Term = " UI . SelectionFields " >

< Collection >

< PropertyPath > ERDAT PropertyPath >

< PropertyPath > UZEIT PropertyPath >

< PropertyPath > ZSYSID PropertyPath >

< PropertyPath > ZFM_ID PropertyPath >

< PropertyPath > ZFM_NAME PropertyPath >

< PropertyPath > ZFM_MS PropertyPath >

< PropertyPath > UUID PropertyPath >

< PropertyPath > ERDAT_OUT PropertyPath >

< PropertyPath > UZEIT_OUT PropertyPath >

Collection >

Annotation >

Annotations >

Target参数是OData的服务+Entity Type组成。

UI.SelectionFields可以设置默认的搜索字段。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

接下来是默认的表列。

< Annotation Term = " UI . LineItem " >

< Collection >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ERDAT " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " UZEIT " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZSYSID " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZFM_ID " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZFM_NAME " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZFM_MS " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " UUID " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ERDAT_OUT " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " UZEIT_OUT " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZINPUT " />

Record >

< Record Type = " UI . DataField " >

< PropertyValue Property = " Value " Path = " ZOUTPUT " />

Record >

Collection >

Annotation >

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

注意,这里显示不下的传入传出Json,会通过显示在正常字段下方的形式进行展示。

我们的查询表,默认优先关注当前的日期,所以我们要针对传入日期时间进行倒叙排列。

< Annotation Term = " UI . PresentationVariant " >

< Record >

< PropertyValue Property = " Visualizations " >

< Collection >

< AnnotationPath > @ UI . LineItem AnnotationPath >

Collection >

PropertyValue >

< PropertyValue Property = " SortOrder " >

< Collection >

< Record Type = " Common . SortOrderType " >

< PropertyValue Property = " Property " PropertyPath = " ERDAT " />

< PropertyValue Property = " Descending " Bool = " true " />

Record >

< Record Type = " Common . SortOrderType " >

< PropertyValue Property = " Property " PropertyPath = " UZEIT " />

< PropertyValue Property = " Descending " Bool = " true " />

Record >

Collection >

PropertyValue >

Record >

Annotation >

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

至此,这个单纯查询的报表功能就算开发完成了。由于是OData V2,一些更好的效果无法配置,实际开发中,还是推荐优先使用OData

V4。此外,向导生成的页面模型,是JSON,因此功能还是受限严重。真的想开发一些有功能的报表,最好还是直接手搓页面。

想学习UI5开发,官方文档是https://ui5.sap.com/。这里可以学会如果一步一步的手搓UI5页面。同时可以下载现有的样例进行参考。

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

程序已经开发完成。接下来就是发布到本地的SAP环境中了。

回到Application Information页面。如果页面找不到,可以在命令行中打开:

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

点击

Fiori Element List Report 开发实战3 - 封面图
Fiori Element List Report 开发实战3 - 封面图

如下图这样配置,程序可以发布到本地SAP。目标

...

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「FioriElementListReport开发实战3.md」整理生成,仅用于内部技术分享与学习交流。