728x90

# 시작하기 전 


# ALV에 대한 기능 중에 활용하면 좋은 Variant.. 

# 처음부터 잘만 하면 코드 수정 없이 데이터를 보였다 안 보였다 할 수 있기 때문에 효율적으로 사용하면 정말 좋다 

 

# 기본적으로는 Layout의 Parameter을 만들어서 ALV을 조회하기 전Search Help에서 선택하고 들어가는 게 일반적이기도 한다. 

 

 

# 하지만 여기서는 사용자 별자동으로 가져오는 방식을 선택하였다. 

 

 

# 기존 ALV에서 Variant을 설정하기 전 


# 다음과 같이 기본적으로 레이아웃 변경을 할 수 있지만, 저장 및 선택은 불가하다. 

 

 

# ALV Variant 선택 및 변경 설정


# 선택 및 변경만 하고 싶을 때는 [ IS_VARIANT ]만 넣어주면 된다. 

# 저장은 안 된다는 점 참고 바란다. 

 

 

Variant을 설정할 때 중요한 점은 필수 값선택 값으로 나뉜다. 

 

필수 값은 

# [ REPORT ] : 값을 넣어주어야 레이아웃 설정과 변경이 되기 때문이다.

 

선택 값은 해당 ALV이

# [ USERNAME ] : 사실 UserName 설정 안 해도 자동으로 이 들어가기 때문에 필요에 따라 써주면 될 것 같다. 

# [ HANDLE ] : 보통 ALV 개수에 따라서 변별력을 가질 때 사용되기도 한다. 

# [ LOG_GROUP ] : 보통 라디오 버튼에 따라서 Layout변경하고 싶을 때 사용한다. 

 

# 위에 처럼 설정하면 다음과 같이 레이아웃 선택 및 변경이 나오게 된다. 

 

 

# ALV Variant 저장 설정


# 레이아웃 설정하고 싶을 때는 [ I_SAVE ]을 넣어주면 된다. 

 

# I_SAVE 옵션 여러 개 있는데 밑에 사진을 참고해 보자. 

 

# 설정하게 되면 다음과 같이 레이아웃 저장하는 선택권이 생기게 된다. 

 

 

# 레이아웃 저장 할 때, 사용자 고유에 대해서 

## 조건) A - Z 문자 시작 


# 사용자 고유는 말 그대로 자신만의 레이아웃을 설정할 때 사용되는 옵션이다. 

( 다른 사용자는 다음과 같이 안 보이게 된다. )

 

# 레이아웃 저장 할 때, 사용자 전체에 대해서 

## 조건) "  " 시작 

 

# 사용자 전체모든 사용자가 다 볼 수 있게 설정하는 레이아웃이다. 

 

 

 

# 개인별로 설정했던 레이아웃 가져오고 싶을 때


# 01. [ LTDX ] Table에서 Layout을 설정했던 레이아웃 데이터가 있기 때문에 다음과 같이 가져오자.

    DATA:
      LS_VARIANT TYPE DISVARIANT, " 레이아웃 설정 "

      LV_VARIANT TYPE SLIS_VARI.  " 개인별 레이아웃 "

    SELECT SINGLE VARIANT
      FROM LTDX
      INTO LV_VARIANT
      WHERE
        REPORT   EQ SY-REPID AND
        USERNAME EQ SY-UNAME.

    IF SY-SUBRC EQ 0.
      LS_VARIANT-VARIANT = LV_VARIANT.
    ELSE.
      CLEAR
        LS_VARIANT-VARIANT.
    ENDIF.

    LS_VARIANT-REPORT   = SY-REPID.

 

# 02. 여기서는 다음과 같이 필수 값만 넣었기 때문에 가져왔지만, 상황에 맞게 선택 값을 넣어주면 된다. 

    DATA:
      LS_VARIANT TYPE DISVARIANT, " 레이아웃 설정 "

      LV_VARIANT TYPE SLIS_VARI.  " 개인별 레이아웃 "

    SELECT SINGLE VARIANT
      FROM LTDX
      INTO LV_VARIANT
      WHERE
        REPORT   EQ SY-REPID AND
        USERNAME EQ SY-UNAME.

    IF SY-SUBRC EQ 0.
      LS_VARIANT-VARIANT = LV_VARIANT.
    ELSE.
      CLEAR
        LS_VARIANT-VARIANT.
    ENDIF.

    LS_VARIANT-REPORT   = SY-REPID.


    CALL METHOD GO_ALV->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        IS_LAYOUT       = LS_LAYO
        IS_VARIANT      = LS_VARIANT
        I_SAVE          = 'A' " 'X' 'U' "
      CHANGING
        IT_OUTTAB       = GT_LIST[]    " Output Table "
        IT_FIELDCATALOG = LT_FCAT_T.    " Field Catalog "

 

 

 

끝....!!

 

 

도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!

 

728x90