【问题标题】:Is it possible to use 'TEXT-XXX' when declaring variable?声明变量时是否可以使用“TEXT-XXX”?
【发布时间】:2022-01-08 16:41:57
【问题描述】:

我正在公司提供的 ABAP 中进行自学,但资源不足。

输出应为:“员工编号”

“名字”

“姓氏”

“生日”

“梦想薪水”

“爱好”

指令是:使用具有正确数据类型的变量显示以下内容。 文本符号应分配给下面列出的值。

text-001 员工编号

text-002 名字

text-003 姓氏

text-004 生日

text-005 梦想薪水

text-006 爱好

但是,我们不允许在 ABAP 中声明变量时使用破折号(-)。

有什么解决方法吗?

这是我的代码

DATA: text_001 TYPE String,
      text_002 TYPE String,
      text_003 TYPE String,
      text_004 TYPE String,
      text_005 TYPE String,
      text_006 TYPE String,

MOVE 'EMPLOYEE NUMBER' TO text_001.
MOVE 'EMPLOYEE NUMBER' TO text_002.
MOVE 'EMPLOYEE NUMBER' TO text_003.
MOVE 'EMPLOYEE NUMBER' TO text_004.
MOVE 'EMPLOYEE NUMBER' TO text_005.
MOVE 'EMPLOYEE NUMBER' TO text_006.

WRITE: text_001,
     / text_002,
     / text_003,
     / text_004,
     / text_005,
     / text_006.

虽然它输出所需的输出,但检查我的代码的应用程序不接受该代码作为正确答案。由于我需要使用:

text-001 而不是 text_001

【问题讨论】:

  • 请注明应用程序显示的确切信息。
  • @SandraRossi 这是一个由我的雇主制作的内部程序,上面写着“与正确的程序不匹配”我希望它有提示,这样我就可以检查我哪里出错了。
  • 内部自定义程序如果没有详细描述,我们也无话可说。无论如何,我猜它模仿了标准检查,建议定义可翻译的文本文字(当这些文字可能被翻译时,否则使用 Pragma ##NOTEXT 标记它们),例如使用文本符号。搜索 ABAP 文档以获取更多信息。
  • FWIW 破折号 (-) 用于 ABAP 中的组件访问,例如user-name 访问 user 结构的 name 组件。同理,text-001 访问文本结构的 001 组件(通过 Text Elements 预定义)
  • 这个基本的 ABAP 语法应该是你课程的一部分之前给你这样的练习......

标签: abap


【解决方案1】:

我认为您可能误解了说明。我相信您应该对常量字符串使用文本符号,对变量字符串使用变量。

Text symbols 是一种存储静态文本字符串的技术,这些字符串出现在您的程序中,与您的 ABAP 代码分开。这样做的主要原因是 i18n。这些文本稍后可以由不知道如何编程 ABAP 的人翻译。当最终用户使用与您创建程序时不同的登录语言时,程序将自动使用翻译后的文本。

您可以通过转到菜单栏中的“转到”->“文本元素”,然后选择“文本符号”选项卡,在 SE80 中创建文本符号。

您可以通过右键单击源代码并在上下文菜单中选择“打开其他”->“文本元素”,在 Eclipse 中创建文本符号。 p>

每个文本符号都有一个 3 位数字。然后,您可以像这样引用数字:

WRITE: / text-001, gv_firstname.

【讨论】:

  • 最好不要使用格式TEXT-###,而是使用'textliteral'(###)。正如链接的帮助文本所解释的那样,如果文本元素未以登录语言维护,则使用后一种构造,您仍将获得一些有意义的文本。而且它使代码更容易阅读。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2023-03-26
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
相关资源
最近更新 更多