As the 格式化设置的ABAP文档解释:
格式设置设置如下:
但作为ABAP 文档SET COUNTRY明确指出,无法查询此语句实际设置的内容:
不要将 SET COUNTRY 语句与 SET LOCALE LANGUAGE 语句中用于设置文本环境的过时附加项 COUNTRY 混淆。特别是,它没有相应的 GET COUNTRY 语句。
确实,ABAP 文档GET LOCALE- 过时的参数提到:
添加 COUNTRY 的目的是明确读取当前文本环境的国家键。 cntry 需要一个类似字符的数据对象。这个添加的功能没有完全实现,结果是未定义的。
语句 GET LOCALE 的附加 COUNTRY 不会提取可使用 SET COUNTRY 设置的格式设置。
这给我留下了一些难题。我可以使用 FM 确定我的用户默认值SUSR_GET_USER_DEFAULTS
。我可以从表格中找出该国家/地区的设置T005X
. 但我无法弄清楚which设置了特定的国家格式,甚至if一个已在活动会话中设置!
如何确定哪些格式设置当前处于活动状态?
额外问题:有没有办法在调试器中解决这个问题?
也许你可以使用功能模块CLSE_SELECT_USR01
.
下面的例子:
REPORT test.
START-OF-SELECTION.
DATA: decimal_sign , separator.
PERFORM output.
SET COUNTRY 'US'.
PERFORM output.
FORM output.
CALL FUNCTION 'CLSE_SELECT_USR01'
* EXPORTING
* USERNAME = sy-uname
* IV_DELETE_BUFFER = ' '
IMPORTING
* X_USR01 =
* DATE_FORMAT =
decimal_sign = decimal_sign
separator = separator.
WRITE: / 'DECIMAL_SIGN', decimal_sign, 'separator', separator.
ENDFORM.
shows:
我的默认区域设置是 DE,因此我得到了小数点的实际设置。
从你的评论来看:
不幸的是,我必须解析和分析来自潜在的数十种不同表单源的为屏幕显示准备的输出数据。
您在运行时或之前的运行时获得输出吗?因为没有时间机器可以从过去的调用中获取区域设置:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)