【发布时间】:2020-09-11 17:58:14
【问题描述】:
我的问题是将 if 语句集成到字符串模板中。
TYPES: BEGIN OF ty_field,
name TYPE string,
label TYPE string,
result TYPE string,
END OF ty_field.
DATA: mt_fields TYPE TABLE OF ty_field.
mt_fields = VALUE #(
( name = 'HI' label = 'Greeting' )
( name = 'PERSON' label = 'Who' )
( name = 'RESULT' label = 'Sentence' result = |Say \{HI\} to \{PERSON\}.| ) ).
不幸的是,mt_fields 的第 3 行将result 设置为Say {HI} to {PERSON},但我希望Say Greeting to Who。
更重要的是,我想得到什么:
有时PERSON 没有数据。在这种情况下,结果变量将获得字符串'Say hello to .'(如果'hello' 是HI 的值)。
我不想拥有这个。如果没有人,我想得到一个空字符串作为结果。所以我必须先过滤,PERSON 是否有一些价值。我需要在字符串赋值中加入一个 if 条件。
在 Python 中我会写类似的东西
( name = 'RESULT' label = 'Sentence' result = 'Say {HI} to {PERSON}.' IF PERSON != '' ELSE '' )
但是如何在 ABAP 中做到这一点?
非常感谢!
【问题讨论】:
-
我认为 COND 语句是你所需要的 help.sap.com/doc/abapdocu_752_index_htm/7.52/en-us/…
-
您的 ABAP 代码无法编译,因此不会生成
Say Greeting to Who。即使我理解您想要实现的目标,我也无法提供任何更正,因为没有有效的原始代码可以更正。请提供minimal reproducible example,请声明变量等。 -
@SandraRossi:我的问题不是关于那个例子。一般来说:如何将 if 条件集成到字符串赋值中?在 Python 中,我会写
variable = "abc" if condition else "xyz"。这就是我对 ABAP 所需要的。
标签: string list if-statement structure abap