当前位置: 首页 > Web前端 > HTML

SmartValue帮助摘要

时间:2023-03-28 12:58:43 HTML

在EntityTypeProduct上,定义一个名为CurrencyCode的属性。我们的SmartField不直接绑定到此CurrencyCode,而是绑定到另一个仅包含纯价格值的Price字段。Price字段通过注释sap:unit="CurrencyCode"将其单位字段绑定到CurrencyCode字段。货币单位由另一个名为Currency的EntityType描述。这个EntityType包含两个属性,CURR和DESCR,分别代表货币单位的代码和描述值。那么Price在运行时显示的单位应该显示CURR的值还是DESCR的值呢?这必须通过下图中显示的自定义注释来指定。(1)通过Target属性,指定后面注解的目标字段为CurrencyCode(2)为CurrencyCode定义的注解类型为com.sap.vocabularies.Common.v1.ValueList(3)定义Label属性的值对于annotationasCurrency,即UI界面元素的标签显示为字符串Currency。因为在我们的例子中,货币单位只显示为一个TextField,并没有显示标签文本,所以Label属性是否定义无关紧要。(4)CollectionPath属性指定了CurrencyCode的ValueHelp的数据来源,来自于EntityTypeCurrency。如果该属性值指定不正确,您将遇到如下图所示的错误消息:Rightnow,therearenovisiblecolumnsinthetable。请在表格设置中选择您需要的列。在应该显示货币列表的表格中,没有显示任何内容。(5)通过com.sap.vocabularies.Common.v1.ValueListParameterOut的LocalDataProperty和ValueListProperty属性,分别绑定CurrencyCode和CURR。(6)将CurrencyEntityType的DESCR字段类型设置为com.sap.vocabularies.Common.v1.ValueListParameterDisplayOnly,也就是说这个字段只是为了增加ValueHelp中表格显示的可读性,起到锦上添花的作用。当用户在ValueHelpTable中选中一行时,该行的CURR字段值会传回CurrencyCode字段,DESCR字段值不会参与ValueHelp值传递场景。