美文网首页程序员
如何修改ODATA中属性的文本

如何修改ODATA中属性的文本

作者: 泫晨懿然 | 来源:发表于2018-07-22 14:31 被阅读210次

场景:OData中的属性字段的文本参考系统已有字段时,可能未必是用户想要的提示文本,针对此情况,将属性文本的方法记录如下。

注释:我使用环境是S4 HANA 1709,SAP GUI 750,ABAP Eclipse Neon。

如下图所示:

图1

在最后ODATA返回的metadata文件中对Category属性的label heading quickinfo等文本属性想进行修改。

1.在事务代码SEGW中对属性的文本直接进行修改如下图

图2

直接修改Label属性的文本,是最简单直观的方法,但是如果涉及到这个文本要进行多语言翻译,那就不推荐了。

图3 图4

点击Label Editor的按钮会弹出图4的对话框,可以指定符合需求的Data Element,文本即可修改,Data Element的文本翻译好后,多语言就能正常显示。

或者自己在SE11中新建一个结构,里面参考的Data Element全部用符合需求的,通过这个结构创建Entity Type,所有Data Element进行翻译后解决多语言问题。


2.如果使用CDS View中的数据作为ODATA的数据源,那直接使用CDS Annotation指定即可。

注释:CDS Annotation多与Fiori Elements一起使用或着相关的模版。

图5

在CDS View中用EndUserText-Annotations,比如@EndUserText.label: 'Inspection Method Status Criticality'.(此处的label仍然需要在后台翻译)。

在WEB IDE的local annotation文件编辑器中,找到 UI.Data.Field节点,点击Action栏位的+按钮,在弹出的图7中进行相应属性添加以及文本修改.(此处添加的文本会在I18N文件中多一个属性和文本,这个需要随同I18N文件中其他文本一起进行翻译 )

图6 图7

3.通过修改MPC_EXT中的Define方法实现对文本的修改

METHOD define.

"数据声明

DATA: lo_annotationTYPE REF TO /iwbep/if_mgw_odata_annotation,

lo_entity_typeTYPE REF TO /iwbep/if_mgw_odata_entity_typ,

lo_propertyTYPE REF TO /iwbep/if_mgw_odata_property.

"调用MPC父类的define方法

super->define(  ).

"找到修改属性所在的Entity Type.

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

"找到修改的属性

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

"直接绑定修改后文本的数据元素

lo_property->bind_data_element_for_text( iv_element_name= 'S_SEATSMAX' ).

ENDMETHOD.

保存激活后,重新生成ODATA,然后查看ODATA的metadata文件.

如果想再次Debug Define方法,请重新生成ODATA,否则无法进入断点。(ODATA只会在每次生成后的第一次调用进入MPC,MPC_EXT方法生成metadata文件)

4.也是通过修改MPC_EXT中的Define方法实现对文本的修改,只是思路和效果有略微差异

代码如下图

图8

    最后Metadata的文本更新效果:

图9

相关文章

  • 如何修改ODATA中属性的文本

    场景:OData中的属性字段的文本参考系统已有字段时,可能未必是用户想要的提示文本,针对此情况,将属性文本的方法记...

  • C4D与AE结合案例实践(四 - 2):创建3D文本

    创建3D文本 适用于单个文字动画 在菜单栏选择运动图形>文本 修改文本内容 修改文本属性 修改封顶(文字的边缘和倒...

  • 新2019计划:python学习-类【6】

    本篇章,主要介绍类,如何编写类,如何使用属性在类中存储信息,如何编写类的方法,如何修改实例的属性(直接修改和通过方...

  • 修改UILable文本的属性

    效果如下:

  • UILabel 标签

    进阶 1.修改文本特定内容属性 额外类 NSAttributedString 属性字符串NSMutableAttr...

  • 前端—列表文本字体

    [前端 -- 文本属性和字体属性] 文本对齐 text-align 属性规定元素中的文本的水平对齐方式。 属性值:...

  • UIBaselineAdjustment 的作用

    UILabel 的baselineAdjustment 属性 控制当lable 中的文字自动缩小时如何调整文本的基...

  • 关于富文本ckeditor的操作

    修改内容时修改富文本的内容时,首先要拿到内容,如何拿到富文本的内容呢?富文本有个getData()方法

  • 易错题

    1 css中如何设置英文首字母大写? text-transform 属性控制文本的大小写。这个属性会改变元素中的字...

  • UITextField 使用

    修改UITextField的占位文字颜色 富文本属性 objc@property(nullable,nonatom...

网友评论

    本文标题:如何修改ODATA中属性的文本

    本文链接:https://www.haomeiwen.com/subject/llylmftx.html