上一章讲了CDSView+Fiori Element 之List Report的基础知识,认识一下 List Report的基本用法。
SAP学习笔记 - 开发06 - CDSView + Fiori Element 之 List Report-优快云博客
本章继续讲 List Report 中一些常用功能:
1,List Report 的检索(Search)
2,List Report 的过滤(Filter)
3,检索帮助 - 表模式
4,检索帮助 - CDSView模式
由于这里面也有我的老师没有公开的内容,所以我把本篇设为VIP文章。
目录
1-2,@Search.defaultSearchElement: true
1-3,@Search.fuzzinessThreshold: 0.5
2-1,@UI.selectionField.position: 20
以下是详细内容。
1,List Report 的检索(Search)
1-1,@Search.searchable: true
注意它是针对整个CDSView的,不是针对某个字段的,所以放置的位置在Header位置
1-2,@Search.defaultSearchElement: true
这个annotation 是说该检索功能具体针对的是哪些字段。
方法就是把这个注解给加到哪个字段上,那么那个字段就属于检索的范围。
比如上图我是放到了 Fldate 和 Class 这两个字段上,那么检索范围就是这两个字段。
a),检索 Flight Date
输入 20240328 点回车,确实可以检索
b),检索Class 字段
输入 F 点回车,确实可以检索
1-3,@Search.fuzzinessThreshold: 0.5
这个就是模糊检索,注意不是前端一致,中间一致,后端一致那种,
它可以设置数值在0 - 1 之间,数值越接近1表示越精确,=1 就是完全一致。
检索结果如下
重设 @Search.fuzzinessThreshold: 0.9
检索结果如下
检索结果是不一样的对吧,但是规则好像也不太好说明,所以检索结果有可能超出意外
在实际使用当中,需要多方调试,最终确定一个可靠的系数
2,List Report 的过滤(Filter)
2-1,@UI.selectionField.position: 20
还可以写作 @UI.selectionField: [{ position: 10 }]
position 跟 lineItem 里面一样,就是个显示顺序。
设置完之后就显示如下
它的特点就是点一下会弹出帮助框
然后点Go就可以检索出来了
2-2,检索帮助 - 表模式
有些字段Code不太好输入,希望通过名称来检索,然后选择
那该怎么做呢?
可以做一个Helper,需要设置以下几点:
- association to scustom as _customer on Customid = _customer.id
通过Key关联主表和Helper表,我觉得可以理解为Left Join
- @ObjectModel.foreignKey.association: '_customer'
指示该字段(Customerid)的Helper参照哪个表(_customer)的外键。
- _customer:
暴露参照表,其实就是把Helper表名作为一个字段给放到Select当中来
这里也可以看出SAP倾向于通过别名来隐藏真实的表以增强安全性
1),SCUSTOM 顾客表
咱们这里演示的关联Helper表如下
- SCUSTOM 顾客表,它有两个Key,作为开发者能用的只有ID
- MANDT:Client
- ID:顾客Code
2),检索帮助的Layout
其实就是把Helper表 SCUSTOM 的内容给显示在这里
可以输入任意的字段来进行检索,选择某一条返回到前页面的时候,会把Customerid给带过去
<参照:增加Helper之前的Layout>
2-3,检索帮助 - CDSView模式
除了上面的那种表模式,还可以使用CDSView模式来作为association 表。主要做法如下
- association to CDSView名称 as _customer on Customid = _customer.id
通过Key关联主表和Helper表,我觉得可以理解为Left Join
- @Consumption.valueHelp: '_customer'
指示该字段(Customerid)的Helper参照哪个表(_customer)的外键。
注意它不是一个表,所以不是用ObjectModel,而是用Consumption
- _customer:
暴露参照表,其实就是把Helper CDSView名作为一个字段给放到Select当中来
这里也可以看出SAP倾向于通过别名来隐藏真实的表以增强安全性
下面来看下步骤:
1),新规Helper的CDSView
比如这里 ZTEST_SCUSTOM_01
注意既然是CDSView,操作空间就大了,比如就可以只暴露指定字段
咱们这里就让客户检索 Name,City,Country,Region 这几个字段
另外注意以下几点:
- 上面的【检索帮助 - 表模式】是以Filter(过滤)那种方式来进行检索的,
这里是以 Search(检索)这种方式进行检索的,因为你要隐藏具体字段嘛,目前好像只能做到这样
- @Search.serachable: true 来让它打开检索功能
- @Search.defaultSearchElement: true 说明具体检索了哪些字段,即暴漏给用户哪些字段
具体在用户使用的时候其实就是一个检索框,所以可以有效隐藏信息
2),检索帮助的Layout
相当于把检索功能给搬到了Helper里面
那这个功能就太强大了,Helper的CDSView你可以随意定制嘛
<参照:对照表模式的Layout>
对比下面表模式Layout,可以看到上面的CDSView模式Layout非常简洁
本章讲了 List Report 中一些常用功能:
1,List Report 的检索(Search)
2,List Report 的过滤(Filter)
3,检索帮助 - 表模式
4,检索帮助 - CDSView模式
以上就是本章的内容。
更多SAP顾问业务知识请点击下面目录链接