2020-08-19 02:21发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在寻找将数字字段转换为阿拉伯数字的例程。 例如-1230.56 = ١٢٣٠.١٢٣٠阿拉伯语。
深层Jayagoda ,
您可以尝试使用REPLACE ALL OCCURRENCES关键字或TRANSLATE关键字,移动您的电话号码 转换为字符变量,然后在字符变量上使用上述关键字。 以下代码供参考。
在lv_char中用'٩'替换'9'的所有事件。 要么 使用'0٠1١2٢3٣4٤5٥6٦7٧8٨9٩'翻译lv_char。
我已经提到了上面的代码,用于仅替换数字9的所有匹配项,类似地适用于所有数字并转换为数字。
有一个表格T015Z和视图V_T015Z,该视图用于维护不同语言的数字和单词。 您可能可以检查一下是否有用。
致谢!
Deepal Jayagoda ,请继续回答您提出的问题。
系统是否已安装阿拉伯语(= AR外部,= A内部)?
设置本地语言" A"。
3。 如果不是阿拉伯文并且无法安装阿拉伯文,则唯一的选择就是编写自己的翻译规则。
Deepal Jayagoda提到的TRANSLATE语句非常适合一般情况,a)如果 已翻译符号的顺序保持不变,并且b)可以将符号翻译为1:1(例如x-> y而不是x-> yz以及xy-> z也不可以)
使用'0A'转换值。 "只能将0转换为A。 使用" 0A1B"转换值。 "只能将变量值的0转换为A,将1转换为B
标记,如果需要的话,可能只需要将符号从右移到左。 但是,以防万一您还有其他翻译问题,这是您可能会遇到的问题:
将值" xy"的所有出现替换为" mn"。
以及这种可能性:
DATA(arabic_number)= translate(val = | {number} |从='0123456789'到='٠١٢٣٤٥٦٧٨٩')。 pre> 如果仅用于一个自定义程序,这很好。 但是,如果要在所有程序中使用它,SAP不会对此进行任何说明。 最终,我想知道阿拉伯语是否有一种字体会代表0123456789和٠١٢٣٤٥٦٧٨٩都像٠١٢٣٤٥٦٧٨٩。 如果是这样,您可以在SAP GUI设置中选择此字体。 编辑:我找不到任何这样的字体,所以我猜这种解决方案将意味着很多问题和混乱(我不认为是一种特殊情况,这只是我的感觉)。 您可能会 还可以使用"转换例程/转换退出"来完成此工作。 注意:我扫描了S/4HANA中的标准例程,没有一个包含这些阿拉伯字符(通过字形,十进制和十六进制的Unicode数字进行搜索)。 编辑:请谨慎执行" "翻译"仅适用于数字字段,而不适用于同时包含数字和非数字文本的文本。 如果您对后一种情况感兴趣,则可能会根据周围的单词所用的语言应用一些上下文"翻译",例如,请参见此在Microsoft论坛上进行讨论。
如果仅用于一个自定义程序,这很好。
但是,如果要在所有程序中使用它,SAP不会对此进行任何说明。 最终,我想知道阿拉伯语是否有一种字体会代表0123456789和٠١٢٣٤٥٦٧٨٩都像٠١٢٣٤٥٦٧٨٩。 如果是这样,您可以在SAP GUI设置中选择此字体。 编辑:我找不到任何这样的字体,所以我猜这种解决方案将意味着很多问题和混乱(我不认为是一种特殊情况,这只是我的感觉)。
您可能会 还可以使用"转换例程/转换退出"来完成此工作。 注意:我扫描了S/4HANA中的标准例程,没有一个包含这些阿拉伯字符(通过字形,十进制和十六进制的Unicode数字进行搜索)。
编辑:请谨慎执行" "翻译"仅适用于数字字段,而不适用于同时包含数字和非数字文本的文本。 如果您对后一种情况感兴趣,则可能会根据周围的单词所用的语言应用一些上下文"翻译",例如,请参见此在Microsoft论坛上进行讨论。
最多设置5个标签!
深层Jayagoda ,
您可以尝试使用REPLACE ALL OCCURRENCES关键字或TRANSLATE关键字,移动您的电话号码 转换为字符变量,然后在字符变量上使用上述关键字。 以下代码供参考。
我已经提到了上面的代码,用于仅替换数字9的所有匹配项,类似地适用于所有数字并转换为数字。
有一个表格T015Z和视图V_T015Z,该视图用于维护不同语言的数字和单词。 您可能可以检查一下是否有用。
致谢!
Deepal Jayagoda ,请继续回答您提出的问题。
系统是否已安装阿拉伯语(= AR外部,= A内部)?
否则,要安装语言,请查看博客安装语言-on-sap-systems ,并搜索 Translation_Config_v1.pdf
3。 如果不是阿拉伯文并且无法安装阿拉伯文,则唯一的选择就是编写自己的翻译规则。
Deepal Jayagoda提到的TRANSLATE语句非常适合一般情况,a)如果 已翻译符号的顺序保持不变,并且b)可以将符号翻译为1:1(例如x-> y而不是x-> yz以及xy-> z也不可以)
标记,如果需要的话,可能只需要将符号从右移到左。 但是,以防万一您还有其他翻译问题,这是您可能会遇到的问题:
右端的负号需要移到左端,您应该首先实现内部数字到字符的转换,并使用类似于功能模块CLOI_PUT_SIGN_IN_FRONT(未正式发布)的逻辑将符号从右移到
以及这种可能性:
一周热门 更多>