我想修改CDS视图中的元素,以更改显示其显示方式。我尝试使用虚拟元素,如果从单独的元素中获取数据(存储原始数据)并将其放入新的虚拟元素,则可以正常工作。
但是,我无法弄清楚如何在我的表中显示冗余元素的情况下修改元素本身。如果我尝试隐藏原始数据,则数据将无法正确加载。如果我尝试制作原始元素虚拟,它会丢失它自己的数据。
实现我想要的正确方法是什么?
我只是对如何在SmartTable
上排除原始列进行了自己的测试。以下是我的测试演示。
要将您的原始列从表格设置对话框的"列"选项卡中显示出来,有一个注释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'
).