2013-04-22 27 views
4

如何将颜色值插入变量?ABAP:在写入语句中使用颜色作为变量

例如

这个工作对我来说:

write:/10 'test' COLOR COL_HEADING. 

我thoght那颜色是整数,所以我尝试:

data: 
gv_mycolor type I. 
gv_mycolor = 5. 
write:/10 'test' COLOR gv_mycolor. 

第二个代码给我一个错误: “颜色gv_mycolor不是预期的;仅允许1到7或相关的颜色ID是允许的。

使用说明

FORMAT COLOR = gv_mycolor. 

适合我。我只是用写声明来解决问题。 任何人都可以帮忙吗? 感谢 托马斯

+0

只是出于好奇 - 你真的还在使用旧列出了新的方案,而不是新技术? – vwegert 2013-04-22 13:49:58

+0

是的,我只是初学者,只是在学习ABAP。什么是新技术? – 2013-04-22 17:24:00

+0

这取决于你想要做什么:-) – vwegert 2013-04-22 18:19:11

回答

1

编辑:答案的第一部分是隐藏的,因为它是不正确 - 看到弗拉德的评论&答案

Short answer to your question: The syntax does not allow you to do this as per the compiler message. The best you can do is to combine the FORMAT and WRITE statements in a macro, but this is very old-school, and will probably not teach you too much that is relevant.

看一看包装特别输入劳工计划,其中有多少实例(BCALV_GRID*)实现ALV列表和网格。这些使用频率更高,即使在Web Dynpro中也是如此。 CL_SALV*类还提供了一个很好的简化(和支持)接口来实现ALV网格。 (完整的例子见this answer)。

+0

为什么不去所有记录和支持的SALV类? ;-) – vwegert 2013-04-22 21:05:32

+0

嗯,我试图和没有引用SALV,一个单一的S使世界的差异。 – Esti 2013-04-24 02:45:48

+0

其实语法确实允许它:)它只是必须添加一个'='符号,如'... COLOR = inv_value.' – 2013-04-24 05:58:05

6
DATA colour TYPE i VALUE 2. 

WRITE:/10 'test' COLOR = colour . 

您必须使用等号,而这一切就是这么简单...... ABAP和很有趣的语句:P

+0

我真的很想评价这-1而不是+1,只是因为它可以帮助人们创造更多不可维护的清单代码:-) – vwegert 2013-04-24 06:06:22

+0

哈哈,请放开我:PI promiss我尝试尽可能地使用新东西。我来自Java世界,'WRITE'语句仍令我感到震惊。 – 2013-04-24 06:21:39

+0

你有我的不情愿的投票:),因为你已经回答了实际问题。无论如何,过去两周花费在HRFORMS上,它已经成为了死亡缓慢而可怕的事情的头把交椅。所以我现在要给ABAP清单一个缓存:) – Esti 2013-04-24 07:31:39