ABAP之单位转换的详细用法

举报
百里丶落云 发表于 2023/08/29 17:49:28 2023/08/29
【摘要】 序HELLO,这里百里,一个学习中的ABAPER,在工作中,我们在MM模块中,展示ALV界面中会经常使用单位字段.这个字段是分成明暗码的情况.就是说我们看到的字段和展示出的字段不一样的情况.会给用户带来非常不友好的体验. 为什么要单位转换在SAP中会出现使用的单位和展示出来的单位不一致的情况.我们这举个例子, 比如 ‘HZS’ 对应的 单位就是 ‘张’ ,一张两张的张. 然而我们在ALV展...

HELLO,这里百里,一个学习中的ABAPER,在工作中,我们在MM模块中,展示ALV界面中会经常使用单位字段.这个字段是分成明暗码的情况.就是说我们看到的字段和展示出的字段不一样的情况.会给用户带来非常不友好的体验.

为什么要单位转换

在SAP中会出现使用的单位和展示出来的单位不一致的情况.我们这举个例子, 比如 ‘HZS’ 对应的 单位就是 ‘张’ ,一张两张的张. 然而我们在ALV展示的界面时候,他显示的内容为汉字,这时我们通过DEBUG查询到的内表数据却是’HZS’ .假使我们要进一步对这个数据进行加工, 比如打印.OLE,SMARTFORM时.我们会发现 展示出来的内容为暗码即’HZS’ .百里就遇到过这种情况,ALV展示的界面好好的用户说,想增加一个打印数据内容.想也没想,因为ALV已经展示了中文字段.直接上操作指针,结果没测试传到正式环境了,用户打印出来都是暗码字段. 可是坑死我了…

如何进行单位转换

在SAP的单位转化其实很简单. 我们这里讲述两种单位转换的方式.

第一种,WRITE…TO …

这是百里无意中发现的,在测试DMEO时,DEBUG内容为暗码,但是按了F8打印出来就变成了明码,我一直以为是我错了哪一步 ,结果经过重重debug 发现.居然是WRITE 可以直接展示明码字段. 不过这个也有一个前提 .
就是展示出的内容是跟语言环境走的. 如果你语言环境选得是’ZH’展示出来就是中文. 如果你选的是’EN’ 则显示英文 …

WRITE 暗码单位 TO 工作区字段 

第二种 调用函数替换

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'  
      EXPORTING  
        INPUT  = 出参
      IMPORTING  
        OUTPUT = 入参  .

案例

数据准备

data : btgew TYPE MEINS .  
data : btgew1 TYPE MEINS .  
DATA:LV_DW TYPE CHAR10.  
btgew = 'SZH' .  
"btgew = 'STU' .

WRITE 案例

WRITE btgew TO LV_DW.

WRITE : btgew .
WRITE : LV_DW .
 

函数案例

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'  
      EXPORTING  
        INPUT  = btgew  
      IMPORTING  
        OUTPUT = btgew  .
        
![wallhaven-9d611k.jpg](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/22bf1a46de344defad45950397eba9ff~tplv-k3u1fbpfcp-watermark.image?)
        
        
WRITE : 'message' .  
WRITE : btgew .  
WRITE: sy-uline .  
WRITE : '结果' .  
WRITE : btgew1 .

结果

如图我们输入的’HZS’ ,经过两种方式的转换后,最终输出的结果为中文的’张’ .
还是要注意语言环境. 否则会失效 .

image.png

百里鸡汤

未觉池塘春草梦,

阶前梧叶已秋声。

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

wallhaven-9d611k.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。