调用报表程序获取alv数据操作

   FIELD-SYMBOLS : <LT_ALV_DATA> TYPE ANY TABLE .
  FIELD-SYMBOLS : <LT_DATA> TYPE ANY"LIKE LINE OF  it_tab .
  DATA:LR_ALV_DATA TYPE REF TO DATA.

   

 CL_SALV_BS_RUNTIME_INFO=>SET(
      DISPLAY  = ABAP_FALSE
      METADATA = ABAP_FALSE
      DATA     = ABAP_TRUE  ).

    SUBMIT ZFIR061 WITH S_DQ EQ LW_ZFM_ESB_MOBILE_ZJZY_RANGE-EJDQ
                   WITH P_BUDAT EQ LV_DATE
                   WITH P_RBFX  EQ 'X'
                   WITH P_RBHZ  EQ 'X'
                   WITH P_RBDQ  EQ ''
                   WITH P_RBMX  EQ ''
                   WITH P_RBSX  EQ ''
                   AND RETURN EXPORTING LIST TO MEMORY.
*
    TRY.
        CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REFIMPORTING R_DATA = LR_ALV_DATA ).

        ASSIGN LR_ALV_DATA->* TO <LT_ALV_DATA>.
      CATCH CX_SALV_BS_SC_RUNTIME_INFO.
    ENDTRY.

    CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL).

    IF <LT_ALV_DATA> IS ASSIGNED.
      UNASSIGN <LT_DATA>.
      LOOP AT <LT_ALV_DATA> ASSIGNING <LT_DATA>."即所需要内表数据
        MOVE-CORRESPONDING <LT_DATA> TO LW_DATA.
        APPEND LW_DATA TO LT_DATA.
        DELETE ADJACENT DUPLICATES FROM LT_DATA.
      ENDLOOP.
    ENDIF.

原文地址:https://www.cnblogs.com/lingxiaoj/p/11235906.html