
最近在做 SAP Fiori Elements List Report 页面时,一个很常见的问题又冒了出来,我们已经把 OData 服务接上了,实体字段也暴露出来了,页面也能跑起来,可是列表一打开,总觉得不像一个真正给业务人员使用的应用。字段顺序不对,关键字段没在最左边,金额列散落在后面,技术字段还混在表格里,手机端一缩窄,业务人员最关心的信息反而被挤掉了。这个时候,问题并不在 SAP UI5 控件本身,也不在前端 controller 里,而是在 CDS UI annotations 里对字段的位置、标签、优先级和可见性没有设计好。在 Fiori Elements 的开发方式里,List Report 的很多 UI 行为并不是靠手写 XML view 完成的,而是由后端暴露的 metadata 决定。@UI.lineItem就是其中很关键的一类注解。我们把一个字段标记为@UI.lineItem,Fiori Elements 就知道它应该进入列表表格。再配合position,页面就知道列的先后顺序。再配合importance,页面就能在屏幕空间变窄时判断哪些字段更应该保留,哪些字段可以暂时隐藏。一个看似简单的销售订单列表,背后其实是一套关于信息优先级的设计。字段不是越多越好,列表页要先回答业务问题List Report 的核心价值不是把数据库字段完整