在 ABAP 中声明深度 table?
Declare deep table in ABAP?
我需要一个带有散列键的内部 table,但每个键需要多行。我认为深度 table 是解决我的问题的正确方法,但我该如何定义它?
你可以使用这样的东西:
TYPES: BEGIN OF ty_your_structure,
field1 TYPE c LENGTH 10,
field2 TYPE i,
END OF ty_your_structure.
TYPES: BEGIN OF ty_your_table_structure,
key TYPE string,
rows TYPE STANDARD TABLE OF ty_your_structure WITH EMPTY KEY,
END OF ty_your_table_structure.
TYPES tt_your_table TYPE HASHED TABLE OF ty_your_table_structure WITH UNIQUE KEY key.
DATA(lt_your_table) = VALUE tt_your_table(
( key = 'TEST' rows = VALUE #( ( field1 = 'X' field2 = 1 )
( field1 = 'Y' field2 = 2 ) ) )
( key = 'TES2T' rows = VALUE #( ( field1 = 'A' field2 = 1 )
( field1 = 'B' field2 = 2 ) ) )
).
DATA(lt_rows) = VALUE #( lt_your_table[ KEY = 'TEST' ]-rows OPTIONAL ).
我需要一个带有散列键的内部 table,但每个键需要多行。我认为深度 table 是解决我的问题的正确方法,但我该如何定义它?
你可以使用这样的东西:
TYPES: BEGIN OF ty_your_structure,
field1 TYPE c LENGTH 10,
field2 TYPE i,
END OF ty_your_structure.
TYPES: BEGIN OF ty_your_table_structure,
key TYPE string,
rows TYPE STANDARD TABLE OF ty_your_structure WITH EMPTY KEY,
END OF ty_your_table_structure.
TYPES tt_your_table TYPE HASHED TABLE OF ty_your_table_structure WITH UNIQUE KEY key.
DATA(lt_your_table) = VALUE tt_your_table(
( key = 'TEST' rows = VALUE #( ( field1 = 'X' field2 = 1 )
( field1 = 'Y' field2 = 2 ) ) )
( key = 'TES2T' rows = VALUE #( ( field1 = 'A' field2 = 1 )
( field1 = 'B' field2 = 2 ) ) )
).
DATA(lt_rows) = VALUE #( lt_your_table[ KEY = 'TEST' ]-rows OPTIONAL ).