将数字转换为阿拉伯语的例程

2020-08-19 02:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在寻找将数字字段转换为阿拉伯...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在寻找将数字字段转换为阿拉伯数字的例程。 例如-1230.56 = ١٢٣٠.١٢٣٠阿拉伯语。

4条回答
何必丶何苦呢
2020-08-19 02:57

系统是否已安装阿拉伯语(= AR外部,= A内部)?

  1. 如果是这样,则可以在AR中登录,并且只要存在翻译,GUI就会根据翻译规则显示所有翻译内容。 例如,当您希望将数据发送到其他系统或文件时,这也算在内。 使用WRITE ... TO ...语句。
    否则,要安装语言,请查看博客安装语言-on-sap-systems ,并搜索 Translation_Config_v1.pdf
  2. 如果您无法或不想使用阿拉伯语登录,但仍然安装了阿拉伯语,则可以在编码时使用SET LOCALE LANGUAGE'x'更改以下所有支持翻译的语句的语言输出,例如 写入...以...
设置本地语言" A"。

3。 如果不是阿拉伯文并且无法安装阿拉伯文,则唯一的选择就是编写自己的翻译规则。

Deepal Jayagoda提到的TRANSLATE语句非常适合一般情况,a)如果 已翻译符号的顺序保持不变,并且b)可以将符号翻译为1:1(例如x-> y而不是x-> yz以及xy-> z也不可以)

  • 语句" TRANSLATE ... USING mask"的" mask"值需要包含所有需要从值x转换为值y的转换对XY,因此在您的情况下为数字,可能还有十进制表示法。
使用'0A'转换值。  "只能将0转换为A。
 使用" 0A1B"转换值。  "只能将变量值的0转换为A,将1转换为B 
  • 我还建议在您的代码" TRANSLATE ... USING mask"的声明中,将" mask"的变量声明为您的编码中甚至是一个独立的INCLUDE文件中的全局变量,因此您只需为其定义一次即可 由于西方世界和ABAP使用阿拉伯数字系统;),我假设所有数字符号以及十进制的翻译都是1:1,因此所有代码和报表都可以重用

标记,如果需要的话,可能只需要将符号从右移到左。 但是,以防万一您还有其他翻译问题,这是您可能会遇到的问题:

  • 但是,如果顺序不相同,则需要先将内部数字数据复制到字符数据,然后根据翻译的方便程度,在翻译之前或之后重新排列符号。
    右端的负号需要移到左端,您应该首先实现内部数字到字符的转换,并使用类似于功能模块CLOI_PUT_SIGN_IN_FRONT(未正式发布)的逻辑将符号从右移到
  • 但是,如果每个符号的翻译不是1:1,则语句TRANSLATE不能用于那些具有1:n或m:1或m:n映射的翻译。 您需要编写特定的代码来首先支持这些情况。 " REPLACE ... IN ... WITH ..."语句将非常适合此操作,您可以一次替换所有出现的这些符号,或者必须循环遍历您的值的符号并进行转换。
将值" xy"的所有出现替换为" mn"。  

一周热门 更多>