下面简单介绍一下如何在abap语言中定义一个嵌套内表(nested internal table),也就是内表中的一个字段也是内表。
1, SE11中定义一个表类型
这里找了一个SAP标准的表类型EKKO_TTY
<img class="alignnone size-full wp-image-5915" src="http://www.baidusap.com/wp-content/uploads/2018-05-14_13-27-29.jpg" alt="" width="548" height="372" /> <img class="alignnone size-full wp-image-5916" src="http://www.baidusap.com/wp-content/uploads/2018-05-14_13-28-02.jpg" alt="" width="684" height="207" />2, 定义内表时使用table type
例子代码如下,其中字段podata就是嵌套的另外一个表。
REPORT ztest_deep_it. TYPES: BEGIN OF ty_po, bukrs TYPE bukrs, "Company Code podata TYPE ekko_tty, "PO Data END OF ty_po. DATA:git_po TYPE STANDARD TABLE OF ty_po WITH HEADER LINE. DATA:gwa_podata TYPE ekko. git_po-bukrs = '0001'. SELECT * INTO TABLE git_po-podata FROM ekko UP TO 10 ROWS. APPEND git_po. LOOP AT git_po. WRITE:git_po-bukrs. LOOP AT git_po-podata INTO gwa_podata. WRITE:/ gwa_podata-ebeln. ENDLOOP. ENDLOOP.
3, 运行结果
<img class="alignnone size-full wp-image-5917" src="http://www.baidusap.com/wp-content/uploads/2018-05-14_13-31-35.jpg" alt="" width="349" height="301" />Debug截图:
<img class="alignnone size-full wp-image-5918" src="http://www.baidusap.com/wp-content/uploads/2018-05-14_13-32-12.jpg" alt="" width="598" height="225" />以上。