动态影响 UI 元素的可见性和可编辑性

学习目标

  • 影响某些 UI 元素的可见性和可编辑性。

动态字段控制

在课程 Suppressing Optional Information on Demand 中,您已了解如何隐藏对象页面上的区域、子区域和单独的字段。在这种情况下,应用程序中会出现 Show MoreShow Less 按钮;选择这些按钮即可显示相应区域。

您还可以永久地或基于某些条件隐藏对象页面上的部分内容。在这种情况下,用户将无法打开这些内容;它们不会出现在对象页面中。例如,对于已取消的差旅,您可能希望隐藏 Starting DateEnd Date 字段,因为它们在此情况下不相关。

为此,您可以使用 @UI.Hidden 注解。它有一个布尔值,该值既可以是静态的(对所有对象实例均为 true 或 false),也可以依赖于另一个属性,该属性对于不同的对象实例可以有不同的值。

除了隐藏字段之外,您还可以控制其他字段属性,例如将字段设为只读或必填。您既可以在 Page Map 中完成此操作,也可以直接使用相应的注解。更多信息,请参阅 字段的更多功能

对状态为已取消的差旅隐藏起始日期和结束日期

General Information 子区域中有两个日期字段:Starting DateEnd Date。您将为差旅状态为 Canceled 的差旅隐藏这两个字段。

任务流程

在本练习中,您将向 TravelStatus 实体添加新属性 cancelRestrictions。该属性将指示这些差旅适用某些限制:对于 Canceled 差旅,其值为 true;对于 OpenAccepted 差旅,其值为 false

然后,您将为两个日期字段 Starting DateEnd Date 添加 @UI.Hidden 注解。它将根据之前创建的 cancelRestrictions 属性的值隐藏这些字段。

前提条件

您已完成单元 Configuring the Body of the Object Page 中的练习 Use Side Effects to Update the Total Price Immediately After Adding Another Booking(课程:Configuring Side Effects)。或者,您可以检出其解决方案分支:solution/use-side-effects-to-update-total-price

观看模拟并执行步骤

本练习包含一个展示所有步骤的模拟。您可以使用自己的试用账户跟随该模拟操作。

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

步骤

  1. 添加新属性以指示已取消的差旅。

  2. 在 SAP Business Application Studio 中打开项目中的 schema.cds 文件。

  3. TravelStatus 实体添加 cancelRestrictions 属性。 示例代码:

cancelRestrictions: Boolean; // is true for cancelled travels
  1. *db>data* 文件夹中打开 sap.fe.cap.travel-TravelStatus.csv 文件。

  2. 添加新属性 cancelRestrictions 及其对应的值:对于 Canceled1(true),对于 OpenAccepted0(false)。

  3. layouts.cds 文件中添加 @UI.Hidden 注解。

  4. 使用 !\[@UI.Hidden\]: TravelStatus.cancelRestrictionsBeginDateEndDate 属性添加注解。

  5. 返回应用程序检查结果。

  6. 选择一条差旅并选择 Reject Travel

  7. 打开其对象页面。请注意,此差旅的 Starting DateEnd Date 字段未显示,因为其 Travel StatusCanceled

结果

在本课中,您已了解如何借助 @UI.Hidden 注解,基于某些静态或动态布尔值隐藏对象页面上的部分内容。

注意

  • 您可以在 GitHub 上找到此解决方案的文件。

  • 解决方案分支为 solution/hide-starting-and-end-dates-for-canceled-travels 。

  • 您可以在 GitHub 上查看与上一分支相比的代码更改。

后续步骤

更多信息,请参阅

  • 使用 UI.Hidden 注解隐藏功能

  • 字段的不同表示形式

  • 字段的更多功能