ABAP

[ABPA] LAYOUT CHECKBOX

ABAPer. 2022. 11. 29. 12:12

[코드]

DATA : GS_FCAT     TYPE LVC_S_FCAT, "필드설정 할 FCAT 선언
            GS_LAY_HEAD TYPE LVC_S_LAYO. "LAYOUT 선언

DATA BEGIN OF GS_S_HEADER . "스트럭쳐 안에 체크박스 필드를 만들어 줍니다. 
            INCLUDE TYPE ZDBMMS_PRDLIST_H .
DATACHECKBOX TYPE C,
            END OF GS_S_HEADER,
            GT_S_HEADER LIKE TABLE OF GS_S_HEADER.

 

FORM HEADER_FCAT . "FORM문으로 FCAT설정 
  CLEARGS_FCAT.
  GS_FCAT-FIELDNAME 'CHECKBOX'. "스트럭쳐에서 만든 필드이름
  GS_FCAT-COLTEXT '선택'. "필드이름변경
  GS_FCAT-CHECKBOX 'X'. "체크박스설정
  GS_FCAT-EDIT 'X'. "EDIT가능
  GS_FCAT-OUTPUTLEN '3'. "길이조정
  APPEND GS_FCAT TO GT_FCAT.
  CLEARGS_FCAT.

ENDFORM.

 

FORM HEADER_LAY .
   GS_LAY_HEAD-BOX_FNAME 'CHECKBOX'. "체크박스설정
   GS_LAY_HEAD-ZEBRA 'X'. "줄별색상변경
  GS_LAY_HEAD-NO_ROWMARK  'X'. "기존ROW선택삭제
ENDFORM.

*&---------------------------------------------------------------------*
*& HEADER ALV 디스플레이
*&---------------------------------------------------------------------*

 

     PERFORM HEADER_FCAT.
     PERFORM HEADER_LAY.

    CALL METHOD GO_ALV->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        I_BYPASSING_BUFFER            'X'
        I_STRUCTURE_NAME              'ZDBMMS_PRDLIST_H' "데이터 디스플레이가 됩니다.
        I_SAVE                                       'A'
        IS_LAYOUT                                = GS_LAY_HEAD 
      CHANGING
        IT_OUTTAB                                = GT_S_HEADER
        IT_FIELDCATALOG                   = GT_FCAT
        IT_SORT                                     GT_SORT_HEAD[]
      EXCEPTIONS
        INVALID_PARAMETER_COMBINATION 1
        PROGRAM_ERROR                                2
        TOO_MANY_LINES                                 3
        OTHERS                                                  4.
    IF SY-SUBRC <> 0.
    ENDIF.