描述性文本替换smartTable中的代码

2020-08-17 14:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨。 我有以下情况。 具有两...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨。

我有以下情况。

具有两个字段的smartTable,一个字段用于代码,一个字段用于描述。

我要代表的是一个带有说明的字段,以后将变成一个下拉列表,其中包含由其代码定义的不同选项。

我想得到这样的东西,但只能使用注释。

我知道我可以在SmartTable中定义一个带有Smartfields的表来获取它,但这不是我想要的,它必须通过注释来工作。

我所拥有的是以下内容:

这是我的SmartTable:

在元数据中,我们收到以下信息:

在批注中,我们声明了LineItems,对于代码字段,则选择了下拉列表。

获得以下功能:

阅读模式:

编辑模式:

但是在这里我有两个问题。

在读取模式下,代表代码,而不是描述。

在"编辑"模式下,您的displayBehavior会显示描述和代码,但我只需要描述。

我怎么能得到这个?,仅靠注释即可。

(2.0 kB)
1条回答
CJones
2020-08-17 14:41

我回答自己,以防有人服务。

最后,我无法仅通过注释创建下拉列表,因此必须通过xml视图声明表。

我最初的问题是不这样做,这是因为我通过addRow方法以优雅的方式向表中添加行,将odata和本地数据混合在一起。

这也是一个表,该表的数据已通过服务器更新,从而导致该表不断进行重新绑定,因此从UI5添加的行将被删除。

当我在xml视图中声明表时引起的问题,但是我们设法通过覆盖表的updateItems方法来纠正它。

这是我们项目的特殊情况,但是对于常规实施,以下过程应该是正确的。

我们需要:

2个实体:

  • 用于检索要显示的数据的两个实体,其中包含两个字段(键和值,例如DropdownKey:" 001",DropdownText:" Fantastic option")
  • 1个具有键值字段的实体,用于从下拉列表中检索所有数据。

Xml视图:我们声明表和smartField。

注释:我们定义ValueList的属性

元数据:实体字段上的必需标签。

实体:

我们的下拉菜单称为" TipoPosición",由 ItemType 和 ItemDescription 字段组成。

这是我们的下拉菜单实体:" TipoPosicion",其中包含键值字段。

XML视图:

不要忘记声明customData库以启用smartFields。

 xmlns:customData =" http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1" 
 
 
   <列>
     <栏目>
        
           
        
     
   
   <项目>
     
 <单元格>
           
 
 
 
 
 
      
    
   

注释:

 
    
       
          
 
 
 <收藏>
         
  
 
 
 
 
                    
   
 
   
 
 
             
 
      
 
 

元数据:

我们重新定义了* MPC_EXT类的DEFINE方法。

对于表实体,我们在键字段中添加sap:文本标签。

 DATA(lo_entity_type)=模型-> get_entity_type(iv_entity_name ='EntitySetTable')。

 DATA(lo_property)= lo_entity_type-> get_property(iv_property_name ='ItemType')。

 DATA(lo_annotation)=
  lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation('sap')。
  lo_annotation-> add(iv_key ='text'
  iv_value ='ItemDescription')。

在下拉实体中,我们将标签sap:text添加到其容器中sap:semantics =" fixed-values"。

 lo_entity_type =
  model-> get_entity_type(iv_entity_name ='TipoPosicion')。  " #EC NOTEXT

 " ItemTypeCode
 lo_property = lo_entity_type-> get_property(iv_property_name ='ItemTypeCode')。

 lo_annotation =
    lo_property->/iwbep/if_mgw_odata_annotatabl〜create_annotation('sap')。
  lo_annotation-> add(iv_key ='text'
  iv_value ='说明')。
 lo_entity_set =模型-> get_entity_set(iv_entity_set_name ='TipoPosicionSet')。
 lo_annotation = lo_entity_set-> create_annotation(iv_annotation_namespace ='sap')。
 lo_annotation-> add(
  出口
  iv_key ='语义'
  iv_value ='固定值'
  )。

通过这种方式,我们达到了预期的结果:

一周热门 更多>