实现成果:同一个屏幕显示两个 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.