ABAP:在Write语句中使用颜色作为变量

tom*_*her 4 abap colors

如何将颜色值插入变量?

例如

这对我有用:

write:/10  'test' COLOR COL_HEADING.
Run Code Online (Sandbox Code Playgroud)

我认为颜色是整数所以我试过:

data:
gv_mycolor type I.
gv_mycolor = 5.
write:/10  'test' COLOR gv_mycolor.
Run Code Online (Sandbox Code Playgroud)

第二个代码给了我一个错误:"不期望颜色gv_mycolor;只允许1到7或相关的颜色ID.

使用声明

FORMAT COLOR = gv_mycolor.
Run Code Online (Sandbox Code Playgroud)

适合我.我只有写声明有问题.有人可以帮忙吗?谢谢托马斯

vla*_*ean 6

DATA colour TYPE i VALUE 2.

WRITE:/10  'test' COLOR = colour .
Run Code Online (Sandbox Code Playgroud)

你必须使用一个等号,这就是它的全部...... ABAP和它的有趣陈述:P


Est*_*sti 0

编辑:答案的第一部分被隐藏,因为它不正确 - 请参阅弗拉德的评论和答案

对您问题的简短回答: 语法不允许您按照编译器消息执行此操作。您能做的最好的事情就是将 FORMAT 和 WRITE 语句组合在一个宏中,但这是非常老派的,并且可能不会教给您太多相关的内容。

看一下 SLIS 包,其中有很多关于BCALV_GRID*如何实现 ALV 列表和网格的示例 ( )。它们的使用频率更高,甚至在 Web Dynpro 中也是如此。这些CL_SALV*类还提供了一个很好的简化(且受支持)接口来实现 ALV 网格。(有关完整示例,请参阅此答案)。