본문 바로가기

ABAP

[ABAP] 클래스로 간단하게 ALV 생성하기

 

DATA : GT_DATA   TYPE TABLE OF ZSES0010,
       GS_DATA   LIKE LINE OF GT_DATA.

DATA : GI_DOCKING   TYPE REF TO CL_GUI_DOCKING_CONTAINER,
       GI_GRID      TYPE REF TO CL_GUI_ALV_GRID.



GI_DOCKING  =  NEW #( EXTENSION = CL_GUI_DOCKING_CONTAINER=>WS_MAXIMIZEBOX ).
GI_GRID     =  NEW #( I_PARENT = GI_DOCKING ).


DATA(LS_LAYO)  =  VALUE LVC_S_LAYO( ZEBRA       =  ABAP_ON
                                    CWIDTH_OPT  =  ABAP_ON ).



CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE  =  DATA(LS_SALV)
                        CHANGING  T_TABLE       =  GT_DATA ).



DATA(LT_FCAT) = CL_SALV_CONTROLLER_METADATA=>GET_LVC_FIELDCATALOG(
                                         EXPORTING
                                               R_COLUMNS       =  LO_SALV->GET_COLUMNS( )
                                               R_AGGREGATIONS  =  LO_SALV->GET_AGGREGATIONS( ) ).



LOOP AT LT_FCAT ASSIGNING FIELD-SYMBOL(<LS_FCAT>).

     CASE <LS_FCAT>-FIELDNAME.
        WHEN 'BUKRS'.
              <LS_FCAT>-SCRTEXT_M = TEXT-T01.
     ENDCASE.

ENDLOOP.



GI_GRID->SET_TABLE_FOR_FIRST_DISPLAY(
     EXPORTING
          IS_LAYOUT        =  LS_LAYO
     CHANGING
          IT_OUTTAB        =  GT_DATA

          IT_FIELDCATALOG  =  LT_FCAT ).

 

반응형

'ABAP' 카테고리의 다른 글

[ABAP] GET TIME STAMP  (0) 2023.03.30
[ABAP] 간단하게 ALV SPLIT 생성하기  (0) 2023.03.30
[ABAP] Excel Download 예제  (0) 2023.03.27
[ABAP] Top-of-Page 예제  (0) 2023.03.24
[ABAP] 핸드폰 번호 오류검증(FIND REGEX 구문)  (0) 2023.03.09