CL_SALV_BS_RUNTIME_INFO=>SET( EXPORTING DISPLAY = ABAP_FALSE METADATA = ABAP_FALSE DATA = ABAP_TRUE ). SUBMIT ZMMRP070 WITH P_IMPORT = '' "radiobutton 傳參要用‘’ WITH P_QUERY = '' WITH P_DATA = 'X' WITH S_MATNR IN S_MATNR EXPORTING LIST TO MEMORY AND RETURN. IF SY-SUBRC = 0. TRY. CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF( IMPORTING R_DATA = LR_PAY_DATA ). ASSIGN LR_PAY_DATA->* TO <LT_PAY_DATA>. CATCH CX_SALV_BS_SC_RUNTIME_INFO. MESSAGE `Unable to retrieve ALV data` TYPE 'E'. ENDTRY. ENDIF. CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
CL_SALV_BS_RUNTIME_INFO與讀取ALV有關的方法:
SET() - 此方法初始化類(清除內存區域),然后允許標志的設置讓任何后續ALV對象如何工作。它應該在裝程序調用ALV報告程序之前被調用。
參數:
- DISPLAY - 將它設為abap_false強制所有后續ALV報告在“黑暗模式”下運行,也就是說,ALV不會被輸出到GUI。
- METADATA - 將它設為abap_false防止基本信息(布局,字段目錄等)被取到內存中......一般我們不需要。
- DATA - 將它設為abap_true迫使數據表導出到內存而不是顯示報表。
GET_DATA_REF() - 非常靈活的GET_DATA*方法,這種方法可以用來訪問該數據表變量的引用(動態而且易用),所以即使不知道ALV數據表的結構也沒關系。
參數:
- R_DATA - 輸出ALV數據表。
- R_DATA_LINE - 如果執行的ALV有HEADER的(可選)。
GET_DATA() - 如果知道需要調用的ALV數據表的結構,可以使用這個方法。
參數:
- T_DATA - 輸出參數數據表。
- T_DATA_LINE - 如果執行的ALV有HEADER(可選)。
CLEAR_ALL() - 此方法清除在set()方法設置的標志。如果之后本程序還需要顯示其他ALV 那么這個方法尤為重要。如果不清除設置,你的ALV就不會被顯示出來。
SUBMIT ZMMRP070
VIA SELECTION-SCREEN "要不要顯示選擇屏幕 -這一句可以顯示調用屏幕,看傳的屏幕參數
