REPORT demo_loop_at_itab_group_by.
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DATA(out) = cl_demo_output=>new( ).
DATA:
wa TYPE spfli,
member TYPE spfli,
members TYPE STANDARD TABLE OF spfli WITH EMPTY KEY.
SELECT *
FROM spfli
INTO TABLE @DATA(spfli_tab).
out->begin_section( `Representative Binding` ).
out->begin_section(
`Grouping by one column` ).
LOOP AT spfli_tab INTO wa
GROUP BY wa-carrid.
out->write( wa-carrid ).
ENDLOOP.
out->next_section(
`Members of one column groups` ).
LOOP AT spfli_tab INTO wa
GROUP BY wa-carrid.
CLEAR members.
LOOP AT GROUP wa INTO member.
members = VALUE #( BASE members ( member ) ).
ENDLOOP.
out->write( members ).
ENDLOOP.
out->next_section(
`Grouping by two columns` ).
LOOP AT spfli_tab INTO wa
GROUP BY ( key1 = wa-carrid key2 = wa-airpfrom ).
out->write( |{ wa-carrid } { wa-airpfrom }| ).
ENDLOOP.
out->next_section(
`Members of two column groups` ).
LOOP AT spfli_tab INTO wa
GROUP BY ( key1 = wa-carrid key2 = wa-airpfrom ).
CLEAR members.
LOOP AT GROUP wa INTO member.
members = VALUE #( BASE members ( member ) ).
ENDLOOP.
out->write( members ).
ENDLOOP.
out->end_section( )->next_section( `Group Key Binding` ).
out->next_section(
`Grouping by one column` ).
LOOP AT spfli_tab INTO wa
GROUP BY wa-carrid
INTO DATA(key).
out->write( key ).
ENDLOOP.
out->next_section(
`Members of one column groups` ).
LOOP AT spfli_tab INTO wa
GROUP BY wa-carrid
INTO key.
CLEAR members.
LOOP AT GROUP key INTO member.
members = VALUE #( BASE members ( member ) ).
ENDLOOP.
out->write( members ).
ENDLOOP.
out->next_section(
`Grouping by two columns` ).
LOOP AT spfli_tab INTO wa
GROUP BY ( key1 = wa-carrid key2 = wa-airpfrom )
INTO DATA(keys).
out->write( keys ).
ENDLOOP.
out->next_section(
`Members of two column groups` ).
LOOP AT spfli_tab INTO wa
GROUP BY ( key1 = wa-carrid key2 = wa-airpfrom )
INTO keys.
CLEAR members.
LOOP AT GROUP keys INTO member.
members = VALUE #( BASE members ( member ) ).
ENDLOOP.
out->write( members ).
ENDLOOP.
out->next_section(
`Two column groups without members` ).
LOOP AT spfli_tab INTO wa
GROUP BY ( key1 = wa-carrid key2 = wa-airpfrom
index = GROUP INDEX size = GROUP SIZE )
WITHOUT MEMBERS
INTO DATA(keysplus).
out->write( keysplus ).
ENDLOOP.
out->display( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).
abap,LOop at 新语法 ( 一)
最新推荐文章于 2024-07-26 20:46:33 发布