ABAP之单位转换的详细用法
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第25天,点击查看活动详情
序
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' ,经过两种方式的转换后,最终输出的结果为中文的'张' . 还是要注意语言环境. 否则会失效 .
百里鸡汤
未觉池塘春草梦,
阶前梧叶已秋声。
这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.
相关文章
- 史上最全零信任市场玩家大盘点
- 思科重磅推出新的800G交换机
- 一文读懂虚拟机
- 1.2亿美元!中国SD-WAN的当打之年
- 2022 H1中国公有云服务市场:阿里云、华为云、腾讯云、天翼云、AWS排名前五
- 2022智能网联汽车产业峰会圆满落幕!(附回看链接)
- 谈谈运营商、云厂商、初创公司不同视角下的DPU
- 1.2 亿美元融资!Versa称将加速 SASE 产品创新
- 一文读懂什么是边缘数据中心
- 网络芯片变革之路:从设备内置转为软件编程
- 十四年老数通:DPU会给网络带来哪些改变?
- 详解:O-RAN中的网络切片
- Nick McKeown:网络的未来——可编程网络
- java监控JVM的内存使用情况等
- java中生成和验证jwt
- java中延时队列的使用
- 2022DataGrip激活码(2022DataGrip最新激活码)2022DataGrip激活码
- 网络设备的运行隐患怎么排除?日常的例行维护绝对不能少,收藏本文,轻松拿捏各种场景
- 2022dotMemory激活码(2022dotMemory最新激活码)2022dotMemory激活码
- java服装经销系统服装进销系统