创建列表报表

学习目标

  • 创建元数据扩展,向其添加列表报表的 UI 注释

为映射视图创建 ABAP CDS 元数据扩展

在本练习中,您将为差旅实体的映射视图添加 ABAP CDS 元数据扩展。您可以将所有 UI 相关注释放入其中。

前提条件

您已完成获取 ABAP RESTful 应用程序编程模型概览单元中的发布 OData V4 服务练习(课程:创建 OData V4 服务)。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您具有之前在 ADT 中打开的 OData 服务包。

  2. ZFE_TRAVEL_###### 中展开核心数据服务,其中 ZFE_TRAVEL_###### 是包的唯一标识。

  3. 选择并展开"数据定义"。您可以看到可以为其创建 UI 注释的三个投影视图。

  4. 双击数据定义中的 ZC_FE_TRAVEL_######"差旅"实体的映射视图随即打开。

  5. 差旅实体创建元数据扩展。

  6. 选择并右键单击 ZC_FE_TRAVEL_######

  7. 选择新建元数据扩展。随即打开新建元数据扩展对话框。

  8. 确保元数据扩展的名称输入为 ZC_FE_TRAVEL_######

  9. 输入描述作为**差旅实体的 UI 注释**。

  10. 选择下一步。随即打开选择传输请求

  11. 再次选择下一步。将显示"模板"。

  12. 选择完成。您可以看到已生成元数据扩展。注释 ZC_FE_TRAVEL_###### 是您的投影视图。您可以将差旅实体的所有 UI 相关注释添加到此文件中。

  13. CONTROL + 空格。在后续下拉列表中,选择 #CORE(annotation)。您已选择 #CORE 作为 @Metadata.layer 的值。

  14. 展开元数据扩展。您可以在元数据扩展文件夹中查看新创建的元数据**ZC_FE_TRAVEL_###### 扩展。

结果

您已成功为 ZC_FE_TRAVEL_###### ABAP CDS 映射视图创建 ABAP CDS 元数据扩展。在即将进行的练习中,将差旅实体的所有 UI 相关注释添加到此文件中。

向列表报表表添加列

在本练习中,您将了解如何向显示行程的表添加列。为此,必须使用 ABAP CDS @UI.lineItem 注释注释相应字段。

前提条件

您已完成本课中的为映射视图创建 ABAP CDS 元数据扩展练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 在浏览器中打开应用预览。表未显示任何列。

  2. 在 ADT 中打开差旅实体映射视图。

  3. 您具有在 ADT 中打开的先前练习中生成的 OData 服务包。

  4. 选择并双击 数据定义 中可用的 ZC_FE_TRAVEL_######"差旅"实体的映射视图随即打开。

  5. 复制将要用于添加注释的下列字段:

  • TravelID

  • AgencyID

  • CustomerID

  • BeginDate

  • EndDate

  • BookingFee

  • TotalPrice

  • OverallStatus

  • LastChangedAt

  1. 将映射视图中的所有所选字段粘贴到元数据扩展。

  2. 元数据扩展中双击 ZC_FE_TRAVEL_######

  3. 如下方示例代码所示,粘贴要为其添加 @UI.lineItem 注释的 Travel 实体投影视图中的所有字段。

{
TravelID;
AgencyID;
CustomerID;
BeginDate;
EndDate;
BookingFee;
TotalPrice;
OverallStatus;
LastChangedAt;
}
  1. 在 字段上方添加 ABAP CDS @UI.lineItem 一行。

  2. 在字段上方输入一行 @UI.lineItem

  3. 按键盘上的 CTRL + 空格键查看注释建议。

  4. 选择并双击 @lineItem: \[{}\] (annotation)

  5. 添加 @UI.lineItem 注释的位置属性。

  6. 按键盘上的 CTRL + 空格键。

  7. 选择并双击 @position: (annotation)

  8. 输入 10 作为头寸值。TravelID 字段将显示为表的第一列。

  9. 针对每个字段执行以下步骤。确保为其余字段连续输入头寸值。在这种情况下,第二个字段的位置值为 20,第三个字段的位置值为 30,以此类推。

  10. 单击菜单栏中的 激活 以保存并激活更改。

  11. 在浏览器中打开应用预览以查看所有注释字段。

  12. 在项目浏览器中展开业务服务文件夹。

  13. 业务服务 中展开 服务绑定 选项。

  14. 双击 ZUI_FE_TRAVEL_######_O4

  15. 在打开的服务绑定中,选择来自实体集的**差旅和服务版本详细信息标签的关联

  16. 选择 预览 。应用预览将用 @UI.lineItem 注释的所有字段显示为表列。

  17. 选择执行。显示表数据。

  18. 选择并单击表中的第一个条目。将显示所选表条目的对象页面。此对象页面为空,因为尚未维护相应的注释。

结果

您已成功将列添加到表中,其中显示所有注释字段。您还将成功查看表中的数据,并导航到对象页面。

将过滤器字段添加到列表报表

在本练习中,将TravelIDAgencyIDCustomerID 字段添加到清单报表的过滤器栏。

前提条件

您已完成本课中的将列添加到清单报表表练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 您已在 ADT 中为差旅预测视图打开元数据扩展。

  2. 使用 TravelID 进行注释 @UI.selectionField

  3. @UI.selection 字段前输入 TravelID

  4. 从后续列表中选择并双击 @selectionField: \[{}\] (annotation)

  5. TravelID 设置为 UI 上的第一个过滤器字段。

  6. 将光标放在 @UI. selectionField: \[{}\] 的大括号内。

  7. 从选项中选择并双击 @position: (annotation)

  8. 输入 10 作为 @UI.selectionField 注释的位置属性。这样,TravelID 成为 UI 上的第一个过滤器字段。

  9. 按照 AgencyID 中描述的相同方式,使用 @UI.selectionFieldCustomerIDTravelID 进行注释。确保为其余字段连续输入头寸值。在这种情况下,第二个字段的位置值为 20,第三个字段的位置值为 30,以此类推。

  10. 单击菜单栏中的 激活 以保存并激活更改。

  11. 在浏览器中打开应用预览以查看所有注释的过滤器字段。

  12. 双击 ZUI_FE_TRAVEL_######_O4

  13. 在打开的服务绑定中,从实体集和服务版本详细信息**标签的关联中选择差旅

  14. 选择 预览 。现在,应用预览将差旅标识旅行社标识**和客户标识显示为过滤器栏字段。缺省情况下, 搜索 字段和 编辑状态 将添加到过滤器栏。

  15. 选择执行。显示表数据。

  16. 过滤代理标识字段中的表数据。

  17. 选择代理标识的值帮助选项。

  18. 搜索并选择标签的已生成列表中选择第一个项目。

  19. 选择确定

  20. 从清单报表中选择执行。您可以看到表数据已根据之前选择的过滤条件进行过滤。

结果

您已成功地将差旅 ID旅行社标识符**和客户标识符添加到列表报告的过滤器栏。基于所选过滤条件过滤数据。

将关键性添加到差旅状态列

在本练习中,您将向总体状态值添加关键性颜色。总体状态列显示差旅的总体状态,其中 O 为未清,A 为已接受,X 为已取消。根据关键性颜色,已接受状态显示为绿色,未处理状态显示为橙色,已取消状态显示为红色。您还将向这些值添加相应的图标。

前提条件

您已完成本课中的将过滤器字段添加到清单报表练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 随即打开 SAP Fiori 元素的基于关键性突出显示行项目文档。您可以查看关键性的可能值。

  2. 您已在 ADT 中为差旅预测视图打开元数据扩展。

  3. 数据定义中双击 ZI_FE_TRAVEL_######travel 实体的 ABAP CDS 视图已打开。OVERALL_STATUS 字段在生成的视图中可用。

  4. 如以下示例代码所示,添加名为 OverallStatusCriticality 的虚拟元素,其中包含 OVERALL_STATUS 的映射值。

case OVERALL_STATUS
when 'O' then 2
when 'A' then 3
when 'X' then 1
else 0
end   as OverallStatusCriticality,
  1. 单击菜单栏中的 激活 以保存并激活更改。

  2. 将新创建的字段添加到差旅实体的草稿表中。

  3. 在项目浏览器中展开 行为定义

  4. 双击 ZI_FE_TRAVEL_######. 从菜单栏中单击*"激活*"。

  5. 您可以看到草稿表的错误图标。

  6. 选择错误图标。错误消息已展开。

  7. 双击消息。将 overallstatuscriticality 字段添加到差旅实体的草稿表中。

  8. 再次单击菜单栏中的 激活 以保存并激活更改。

  9. 将新创建的字段添加到映射视图。

  10. 在项目浏览器中双击 ZC_FE_TRAVEL_######

  11. 向下滚动至 OverallStatus 并将 OverallStatusCriticality 字段添加到投影视图。

  12. 单击菜单栏中的 激活 以保存并激活更改。

  13. 将关键性属性作为 OverallStatusCriticality 添加到 @UI.lineItem 字段的 OverallStatus 注释。

  14. 在项目浏览器的**元数据扩展文件夹中,双击 ZC_FE_TRAVEL_######。随即为差旅实体打开元数据扩展。

  15. criticality: 'OverallStatusCriticality' 注释的 @UI.lineItem 属性添加到 OverallStatus。此属性紧接在 position 属性之后添加。您可以按照以下示例代码所示对其进行注释:

@UI.lineItem: [{position: ##, criticality: 'OverallStatusCriticality'}]
OverallStatus;
  1. 单击菜单栏中的 激活 以保存并激活更改。

  2. ADT 中的更改现已完成。切换到浏览器中的应用预览。

  3. 选择执行总体状态列显示关键性颜色和总体状态值。

结果

您已成功为"差旅"实体的总体状态列添加关键性颜色以及关键性图标。您已在应用预览中查看更改。

为整体状态添加描述文本,而不是代码

在本练习中,将使用有意义的文本替换清单报表的总体状态列中的代码。

前提条件

您已完成本课中的"*将关键性添加到差旅状态列"*练习。

观看模拟并执行步骤

此练习包含指导您完成详细步骤的模拟。模拟后可以找到所有步骤。您可以遵循模拟并使用自己的试用账户执行步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 在 ADT 中,您已在项目浏览器中打开数据定义

  2. 检查文本提供者视图。

  3. 数据定义中双击 ZI_FE_TRAVEL_######

  4. 您可以看到 TravelStatus 的文本提供者视图关联已定义。

  5. 向下滚动。您可以看到关联 _TravelStatus差旅 CDS 视图中公开。

  6. 将文本提供者视图中的文本字段添加到差旅实体的映射视图。

  7. 通过双击 ZI_FE_STAT_######. 确保文本提供者视图对差旅状态开放

  8. F8 功能键显示视图的文本值。

  9. 双击 ZC_FE_TRAVEL_######. "差旅"实体的映射视图随即打开。

  10. 向映射视图中添加包含差旅状态文本的新字段 _TravelStatus.TravelStatusText as TravelStatusText

  11. 在项目视图中用 OverallStatus 标注注释 @ObjectModel.text.element

  12. 您已打开差旅实体的映射视图。

  13. @ObjectModel.text.element: \['TravelStatusText'\] 注释添加到 OverallStatus 字段。请注意,@ObjectModel 注释是 CDS 运行时所必需的,因此会直接添加到映射视图中,而不是添加到元数据扩展中。

  14. 单击菜单栏中的 激活 以保存并激活更改。

  15. 切换到浏览器中的应用预览。除总体状态列的代码外,您还可以查看文本。现在,您必须隐藏代码,以便仅显示所需文本。

  16. 添加 @UI.textArrangement 注释以仅显示不含代码的文本。

  17. 从 ADT 的项目浏览器中展开元数据扩展

  18. 双击 ZC_FE_TRAVEL_######. 随即为差旅映射视图打开元数据扩展。

  19. 重点关注 OverallStatus 行项目。

  20. @UI.textArrangement: #TEXT_ONLY 注释添加到 OverallStatus。此值确保只有文本在 UI 上可见,并且括号中显示的代码保持隐藏。

  21. 再次单击菜单栏中的 激活 以保存并激活更改。

  22. 切换到浏览器中的应用预览。现在,您可以看到代码已隐藏。

结果

您已成功将文本添加到"差旅"实体的总体状态列。您还隐藏了显示在括号中的状态代码。