修改cds视图中的元素

时间:2017-08-30 13:33:45

标签: abap cds

我想修改cds视图中的元素,以便更改它的显示方式。我尝试使用虚拟元素,如果我从一个单独的元素(存储原始数据)中获取数据并将其放入一个新的虚拟元素中,它就可以正常工作。

但是我无法弄清楚如何修改元素本身而不在表格中显示冗余元素。 如果我尝试隐藏原始数据,则数据未正确加载。如果我尝试将原始元素设为虚拟,则会丢失它自己的数据。

达到我想要的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我刚刚对SmartTable上的原始专栏进行了自己的测试。下面是我的测试演示。

要排除原始列在“表格设置”对话框的“列”标签中显示,有一个annotation sap:visible = false

重新定义mpc_ext的Define方法:

data: 
lo_entity_type type ref to /iwbep/if_mgw_odata_entity_typ,
lo_property    type ref to /iwbep/if_mgw_odata_property,
lo_annotation  type ref to /iwbep/if_mgw_odata_annotation.

super->define( ).

lo_entity_type = model->get_entity_type( 'YOUR_ENTITY_TYPE' ).

lo_property = lo_entity_type->get_property( 'YOUR_ORIGINAL_COLUMN' ) .

lo_annotation = lo_property->/iwbep/if_mgw_odata_annotatabl~create_annotation( /iwbep/if_mgw_med_odata_types=>gc_sap_namespace ).
lo_annotation->add(
    iv_key    = 'visible'
    iv_value  = 'false'
).