2

WRITE语句有很多选项,所以我想知道,它是否调用了 CONVERSION_EXIT_* 函数,或者它如何以多种方式打印原始数据类型?

如果它确实使用了 CONVERSION_EXIT_*s,那是什么?

4

1 回答 1

3

原始数据类型 ( DATA foo TYPE n LENGTH 10) 没有ALPHA分配给它们的任何转换出口 ( 等)。

  • 您可以手动选择它们,例如使用

    写...到...使用编辑掩码'==ALPHA'。

  • 或者可以将它们分配给数据字典域(事务代码SE11)。在这种情况下,它们被隐式调用,例如:

    • 由屏幕(dynpro)处理(除非明确关闭)。
    • 通过写

      数据(语言)= CONV 系统语言('E')。" 域 SYLANGU 有 conv.exit ISOLA

      数据文本类型 c 长度 2。

      将语言写入文本。" conv.exit ISOLA 将 'E' 转换为 'EN'

除了WRITE,ABAP 本身在支持转换退出方面做的很少——这是一件好事,因为转换应该只发生在程序的输入/输出边界而不是内部。

只要您正在处理它,最好将所有数据保留为内部格式,并且仅在输出发生之前对其进行转换。

于 2013-04-22T18:24:25.263 回答