OOALV 動態傳參使用

 總體

FORM CREAT_ALV .
  PERFORM INIT_ALV USING GS_DOCKING
                         GS_ALV .
  PERFORM BUILD_FIFLDCAT .
  PERFORM BUILD_LAYOUT.
  PERFORM BUILD_EXCLUDE.
  PERFORM SETEDIT_CELL .
  PERFORM BUILD_HANDLER USING GS_ALV.
  PERFORM BUILD_ALV TABLES GT_FIELDCAT[]
                           GT_STATUSJL[]
                     USING GS_LAYOUT
                           GT_EXCLUDE
                   CHANGING GS_ALV  .

ENDFORM.

一、初始化ALV

FORM INIT_ALV USING PS_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER
                    PS_ALV TYPE REF TO CL_GUI_ALV_GRID.
  ...

ENDFORM.

二、構建ALV 

FORM BUILD_ALV  TABLES PPT_FIELDCAT LIKE GT_FIELDCAT
                        PT_MAIN  TYPE STANDARD TABLE
                 USING PS_LAYOUT TYPE LVC_S_LAYO
                       PT_EXCLUDE LIKE GT_EXCLUDE
                CHANGING PS_ALV TYPE REF TO CL_GUI_ALV_GRID .
  DATA PT_FIELDCAT TYPE LVC_T_FCAT .
  MOVE-CORRESPONDING PPT_FIELDCAT[] TO PT_FIELDCAT[].
  CALL METHOD PS_ALV->SET_READY_FOR_INPUT
    EXPORTING
      I_READY_FOR_INPUT = 1.
  FIELD-SYMBOLS <F_TAB> TYPE ANY TABLE .
  IF <F_TAB> IS ASSIGNED.
    UNASSIGN <F_TAB>.
    ASSIGN PT_MAIN[] TO <F_TAB> .
  ELSE.
    ASSIGN PT_MAIN[] TO <F_TAB> .

  ENDIF.

  CALL METHOD PS_ALV->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
*     I_BUFFER_ACTIVE               =
*     I_BYPASSING_BUFFER            =
*     I_CONSISTENCY_CHECK           =
*     I_STRUCTURE_NAME              =
*     IS_VARIANT                    =
*     I_SAVE                        =
*     I_DEFAULT                     = GC_X
      IS_LAYOUT                     = PS_LAYOUT
*     IS_PRINT                      =
*     IT_SPECIAL_GROUPS             =
      IT_TOOLBAR_EXCLUDING          = PT_EXCLUDE
*     IT_HYPERLINK                  =
*     IT_ALV_GRAPHICS               =
*     IT_EXCEPT_QINFO               =
*     IR_SALV_ADAPTER               =
    CHANGING
      IT_OUTTAB                     = <F_TAB>
      IT_FIELDCATALOG               = PT_FIELDCAT
*     IT_SORT                       =
*     IT_FILTER                     =
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC <> 0.
*   Implement suitable error handling here
  ENDIF.


ENDFORM.

 

發佈了25 篇原創文章 · 獲贊 0 · 訪問量 788
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章