sy-uname написал(а):
Long написал(а):
В моем случае, хотелось просто попробовать сделать матрицу - таблицу таблиц.
Для таблицы таблиц достаточно более простой конструкции:
Code:
types: t1 type standard table of ddtype
, t2 type standard table of t1.
t2 - таблица таблиц.
Я с Вами полностью согласен. Тут еще поигрался с динамическим созданием таблиц, и вот что вышло:
Code:
DATA: BEGIN OF gt_data_ref OCCURS 0,
row_ref TYPE REF TO data,
END OF gt_data_ref.
DATA : BEGIN OF gt_data_key_ref OCCURS 0,
tbl_ref TYPE REF TO data,
key(20),
END OF gt_data_key_ref.
DATA:
lt_row_ref LIKE TABLE OF gt_data_ref WITH HEADER LINE,
lt_tbl_ref LIKE TABLE OF gt_data_key_ref WITH HEADER LINE,
ls_row_ref LIKE LINE OF gt_data_ref.
DATA: BEGIN OF lt_data OCCURS 0,
xxx TYPE i,
yyyy(5),
END OF lt_data.
FIELD-SYMBOLS: <fs_row> LIKE LINE OF lt_data,
<fs_ref> LIKE gt_data_ref,
<fs_tbl> TYPE STANDARD TABLE.
......
......
......
LOOP AT lt_data ASSIGNING <fs_row> .
READ TABLE lt_tbl_ref WITH KEY key = <fs_row>-yyyy.
CLEAR ls_row_ref.
IF sy-subrc <> 0.
CREATE DATA lt_tbl_ref-tbl_ref LIKE TABLE OF gt_data_ref.
lt_tbl_ref-key = <fs_row>-yyyy.
APPEND lt_tbl_ref.
ENDIF.
ASSIGN lt_tbl_ref-tbl_ref->* TO <fs_tbl>.
GET REFERENCE OF <fs_row> INTO ls_row_ref-row_ref.
APPEND ls_row_ref TO <fs_tbl>.
ENDLOOP.
Создание MAP, где по ключу YYYY можно вытащить указатели на строки в таблице lt_data.
Буду очень рад конструктивной критике.