PARAMETERS: P_VARI TYPE DISVARIANT-VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_VARIANT.
FORM F4_VARIANT .
DATA: LS_VARIANT TYPE DISVARIANT,
ES_VARIANT TYPE DISVARIANT.
LS_VARIANT-REPORT = SY-REPID.
LS_VARIANT-HANDLE = GC_GO_DOC_CON. "컨테이너 이름
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = LS_VARIANT
I_SAVE = GC_A
IMPORTING
ES_VARIANT = ES_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
P_VARI = ES_VARIANT-VARIANT.
ENDIF.
ENDFORM.
ALV SET_TABLE_FOR_FIRST_DISPLAY
부분
LS_VARI-REPORT = SY-REPID.
LS_VARI-HANDLE = GC_GO_DOC_CON.
LS_VARI-VARIANT = P_VARI.
CALL METHOD PO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = PS_LAYOUT
I_SAVE = GC_A
IS_VARIANT = LS_VARI
IT_TOOLBAR_EXCLUDING = PT_EXCLUDE
CHANGING
IT_OUTTAB = PT_TABLE[]
IT_FIELDCATALOG = PT_FCAT[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
ALV에서 레이아웃 저장, 관리 기능만 추가하고 싶다면
DATA: GS_VARI TYPE DISVARIANT.
GS_VARI = VALUE DISVARIANT(
REPORT = SY-REPID
USERNAME = SY-UNAME
).
GO_GRID->SET_TABLE_FOR_FIRST_DISPLAY(
EXPORTING
I_BYPASSING_BUFFER = ABAP_TRUE
IS_VARIANT = GS_VARI
IS_LAYOUT = GS_LAYO
IT_TOOLBAR_EXCLUDING = GT_FUNCTIONS
I_SAVE = GC_A
CHANGING
IT_OUTTAB = GT_LIST
IT_FIELDCATALOG = GT_FCAT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1 " Wrong Parameter
PROGRAM_ERROR = 2 " Program Errors
TOO_MANY_LINES = 3 " Too many Rows in Ready for Input Grid
OTHERS = 4
).
Layout option
X Global 레이아웃 세팅만 가능함
U 특정 사용자에 한해서 레이아웃 세팅만 가능함
A X와 U 둘 다 가능함
SPACE 저장/관리 불가능