动态影响 UI 元素的可见性和可编辑性
学习目标
影响某些 UI 元素的可见性和可编辑性。
动态字段控制
在课程 Suppressing Optional Information on Demand 中,您已了解如何隐藏对象页面上的区域、子区域和单独的字段。在这种情况下,应用程序中会出现 Show More 或 Show Less 按钮;选择这些按钮即可显示相应区域。
您还可以永久地或基于某些条件隐藏对象页面上的部分内容。在这种情况下,用户将无法打开这些内容;它们不会出现在对象页面中。例如,对于已取消的差旅,您可能希望隐藏 Starting Date 和 End Date 字段,因为它们在此情况下不相关。
为此,您可以使用 @UI.Hidden 注解。它有一个布尔值,该值既可以是静态的(对所有对象实例均为 true 或 false),也可以依赖于另一个属性,该属性对于不同的对象实例可以有不同的值。
除了隐藏字段之外,您还可以控制其他字段属性,例如将字段设为只读或必填。您既可以在 Page Map 中完成此操作,也可以直接使用相应的注解。更多信息,请参阅 字段的更多功能。
对状态为已取消的差旅隐藏起始日期和结束日期
在 General Information 子区域中有两个日期字段:Starting Date 和 End Date。您将为差旅状态为 Canceled 的差旅隐藏这两个字段。
任务流程
在本练习中,您将向 TravelStatus 实体添加新属性 cancelRestrictions。该属性将指示这些差旅适用某些限制:对于 Canceled 差旅,其值为 true;对于 Open 和 Accepted 差旅,其值为 false。
然后,您将为两个日期字段 Starting Date 和 End 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 官方交互式练习)
步骤
添加新属性以指示已取消的差旅。
在 SAP Business Application Studio 中打开项目中的
schema.cds文件。向
TravelStatus实体添加cancelRestrictions属性。 示例代码:
cancelRestrictions: Boolean; // is true for cancelled travels
从
*db>data*文件夹中打开sap.fe.cap.travel-TravelStatus.csv文件。添加新属性
cancelRestrictions及其对应的值:对于Canceled为1(true),对于Open和Accepted为0(false)。在
layouts.cds文件中添加@UI.Hidden注解。使用
!\[@UI.Hidden\]: TravelStatus.cancelRestrictions为BeginDate和EndDate属性添加注解。返回应用程序检查结果。
选择一条差旅并选择 Reject Travel。
打开其对象页面。请注意,此差旅的 Starting Date 和 End Date 字段未显示,因为其 Travel Status 为 Canceled。
结果
在本课中,您已了解如何借助 @UI.Hidden 注解,基于某些静态或动态布尔值隐藏对象页面上的部分内容。
注意
您可以在 GitHub 上找到此解决方案的文件。
解决方案分支为 solution/hide-starting-and-end-dates-for-canceled-travels 。
您可以在 GitHub 上查看与上一分支相比的代码更改。
后续步骤
更多信息,请参阅
使用 UI.Hidden 注解隐藏功能
字段的不同表示形式
字段的更多功能