如何追加结构类型的表中的任何
问题描述:
DATA ls TYPE string.
DATA lr_ref TYPE REF TO data.
FIELD-SYMBOLS <'l_s> TYPE any.
FIELD-SYMBOLS <'l_t> TYPE STANDARD TABLE.
ls = 'test'.
GET REFERENCE OF ls INTO lr_ref.
ASSIGN lr_ref->* TO <'l_s>.
现在应该怎么追加<'l_s>
到<'l_t>
?如何追加结构类型的表中的任何
答
您需要创建数据like
标准表<l_s>
然后将其分配给<l_t>
。
create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.
append <l_s> to <l_t>.
它会工作。希望能帮助到你。
答
对于像ANY
这样的泛型,似乎存在误解。
ANY
,CLIKE
和其他泛型类型有些类似于抽象类,因为它们不能被实例化。你不能声明类型为ANY
的实际变量,当你这样想时它是非常明智的:DATA foo TYPE i
在内存的某个地方为你的整数保留了一个4字节的空间,但DATA bar TYPE any
应该保留什么? (在这里只是简单的说明,但我希望能够明白)
您只能在参数,引用和字段符号中使用通用类型,以确保某种数据对象可以被传递或引用至。您可以让您的字段符号TYPE STANDARD TABLE
指向任何标准表格,但您必须通过其他方式提供该标准表格。你将不得不确保实际的混凝土类型适合你的需求,即兼容任何你想追加到桌子上。
请给我们一些背景资料。你的目标是什么? – 2017-09-02 11:14:31
我有一个参考(在上面的例子中,lr_ref)可以指向一个结构或表。在它的表格的情况下,我将它分配给类型表的字段符号。但是,如果它的结构,将它分配给任何类型的字段符号(如上面的例子中所做的)。如果通过某种方式,我可以将这个结构附加到一个表中,那么在这两种情况下(结构/表格),我将有一张数据表,然后我可以在同一段代码中处理。 – Codiyapa