2017-09-01 52 views
0
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>如何追加结构类型的表中的任何

+0

请给我们一些背景资料。你的目标是什么? – 2017-09-02 11:14:31

+0

我有一个参考(在上面的例子中,lr_ref)可以指向一个结构或表。在它的表格的情况下,我将它分配给类型表的字段符号。但是,如果它的结构,将它分配给任何类型的字段符号(如上面的例子中所做的)。如果通过某种方式,我可以将这个结构附加到一个表中,那么在这两种情况下(结构/表格),我将有一张数据表,然后我可以在同一段代码中处理。 – Codiyapa

回答

3

您需要创建数据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>. 

它会工作。希望能帮助到你。

0

对于像ANY这样的泛型,似乎存在误解。

ANY,CLIKE和其他泛型类型有些类似于抽象类,因为它们不能被实例化。你不能声明类型为ANY的实际变量,当你这样想时它是非常明智的:DATA foo TYPE i在内存的某个地方为你的整数保留了一个4字节的空间,但DATA bar TYPE any应该保留什么? (在这里只是简单的说明,但我希望能够明白)

您只能在参数,引用和字段符号中使用通用类型,以确保某种数据对象可以被传递或引用至。您可以让您的字段符号TYPE STANDARD TABLE指向任何标准表格,但您必须通过其他方式提供该标准表格。你将不得不确保实际的混凝土类型适合你的需求,即兼容任何你想追加到桌子上。

相关问题