程序有submit時不顯示ALV問題注意事項


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 "要不要顯示選擇屏幕 -這一句可以顯示調用屏幕,看傳的屏幕參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM