实现成果:同一个屏幕显示两个 list,依照垂直方向排列。

源代码:

report z.TYPE-POOLS: SLIS.DATA: T_SFLIGHT LIKE SFLIGHT OCCURS 0 WITH HEADER LINE.DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,      GT_EVENTS TYPE SLIS_T_EVENT,      GD_REPID LIKE SY-REPID,      TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.DATA LIST_TOP TYPE SLIS_T_LISTHEADER. " For LogoDATA WA_HEADER TYPE SLIS_LISTHEADER.DATA: ES_LAYOUT TYPE  SLIS_LAYOUT_ALV,      ES_LAYOUT1 TYPE  SLIS_LAYOUT_ALV,      I_TABNAME TYPE  SLIS_TABNAME,      I_TABNAME1 TYPE  SLIS_TABNAME,      L_PRINT   TYPE SLIS_PRINT_ALV,      I_TEXT TYPE  SLIS_TEXT40 ,      I_TEXT1 TYPE  SLIS_TEXT40.CONSTANTS:      C_FNAM_COS_USER_COMMAND           TYPE SLIS_FORMNAME  VALUE 'ALV_USER_COMMAND',      C_FNAM_COS_PF_STATUS           TYPE  SLIS_FORMNAME VALUE 'ALV_SET_PF_STATUS'.*Initialize program nameGD_REPID  = SY-REPID.SELECT CARRID       CONNID       FLDATE       PLANETYPE       PRICE       CURRENCY       SEATSOCC       SEATSOCC_F  FROM SFLIGHT  INTO CORRESPONDING FIELDS OF TABLE T_SFLIGHT WHERE SEATSMAX_B < 20.*Initialize values into ALVFCAT-COL_POS = 1.FCAT-FIELDNAME = 'CARRID'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_L = 'FLIGHT NAME'.FCAT-OUTPUTLEN = 11.APPEND FCAT.CLEAR FCAT.FCAT-COL_POS = 2.FCAT-FIELDNAME = 'CONNID'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_L = 'FLIGHT NUMBER'.FCAT-OUTPUTLEN = 14.APPEND FCAT.CLEAR FCAT.FCAT-COL_POS = 3.FCAT-FIELDNAME = 'FLDATE'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_L = 'FLIGHT DATE'.FCAT-OUTPUTLEN = 14.APPEND FCAT.CLEAR FCAT.FCAT-COL_POS = 4.FCAT-FIELDNAME = 'PLANETYPE'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_L = 'PLANE TYPE'.FCAT-OUTPUTLEN = 13.APPEND FCAT.CLEAR FCAT.FCAT-COL_POS = 5.FCAT-FIELDNAME = 'PRICE'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_L = 'PRICE'.FCAT-OUTPUTLEN = 10.APPEND FCAT.CLEAR FCAT.FCAT-COL_POS = 6.FCAT-FIELDNAME = 'CURRENCY'.FCAT-TABNAME = 'T_SFLIGHT'.FCAT-SELTEXT_S = 'CURRENCY'.FCAT-OUTPUTLEN = 17.APPEND FCAT.CLEAR FCAT.*Merging two Alv's in a list*-----Ist-Step------>CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'  EXPORTING    I_CALLBACK_PROGRAM       = GD_REPID    "ALV_COS_REPID    I_CALLBACK_PF_STATUS_SET = C_FNAM_COS_PF_STATUS    I_CALLBACK_USER_COMMAND  = C_FNAM_COS_USER_COMMAND.*-----IInd-Step------>*A_____CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'  EXPORTING    IS_LAYOUT                  = ES_LAYOUT    IT_FIELDCAT                = FCAT[]    I_TABNAME                  = I_TABNAME    IT_EVENTS                  = GT_EVENTS[]    I_TEXT                     = 'Ist ALV'  TABLES    T_OUTTAB                   = T_SFLIGHT  EXCEPTIONS    PROGRAM_ERROR              = 1    MAXIMUM_OF_APPENDS_REACHED = 2    OTHERS                     = 3.IF SY-SUBRC <> 0.  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.*B_______CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'  EXPORTING    IS_LAYOUT                  = ES_LAYOUT1    IT_FIELDCAT                = FCAT[]    I_TABNAME                  = 'Sanket'    IT_EVENTS                  = GT_EVENTS[]    I_TEXT                     = 'IInd ALV'  TABLES    T_OUTTAB                   = T_SFLIGHT  EXCEPTIONS    PROGRAM_ERROR              = 1    MAXIMUM_OF_APPENDS_REACHED = 2    OTHERS                     = 3.IF SY-SUBRC <> 0.  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.*-----IIIrd-Step------>CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'  EXPORTING    IS_PRINT      = L_PRINT  EXCEPTIONS    PROGRAM_ERROR = 1    OTHERS        = 2.IF SY-SUBRC <> 0.  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.