英文:
cl_demo_output=>display data type not yet supported
问题
在ABAP 7.4或更高版本中,我们可以像在SELECT *中使用一样使用ASTERISK。以下内部连接是我们可以使用的新语法示例。
SELECT scarr~carrname, spfli~*, scarr~url
FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
INTO TABLE @DATA(t_result).
当尝试使用以下语句显示输出时,我遇到了错误。
cl_demo_output=>display( t_result ).
错误消息是“数据类型尚不受支持”。
有人能解释原因吗?
有什么更好的解决方案吗?
英文:
In ABAP 7.4 OR above, We can use ASTERISK as much the same way as we use in SELECT *.
Following inner join is an example of new syntax which we can use.
SELECT scarr~carrname, spfli~*, scarr~url
FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid
INTO TABLE @DATA(t_result).
I am facing error when trying to display output by using below statement.
cl_demo_output=>display( t_result ).
The error message is "data type not yet supported"
Can anyone explain the reason ?
what could be the better solution?
答案1
得分: 2
在版本7.40中,甚至在ABAP 7.52中,cl_demo_output=>display
只能显示一个具有基本组件(string
,i
,c
等)列表的内部表。
在您的情况下,内部表t_result
会自动声明为三个组件,第二个组件是一个结构,而不是基本类型。
这是一个结构,因为您使用了~*
。相反,声明每一列时应该显式指定(spfli~carrid, spfli~connid, ...
)
注:cl_demo_output
类不应该在生产环境中使用。如果您需要一个通用工具,可以创建自己的工具,例如基于cl_salv_table
类。
英文:
In release 7.40, or even in ABAP 7.52, cl_demo_output=>display
can only display an internal table with a list of elementary components (string
, i
, c
, etc.)
In your case, the internal table t_result
is automatically declared with three components, the second one being a structure, which is not an elementary type.
It's a structure because you used ~*
. Instead, declare each column explicitly (spfli~carrid, spfli~connid, ...
)
NB: the class cl_demo_output
should not be used productively. If you need a generic tool, create your own tool, for instance based on the class cl_salv_table
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论