728x90
반응형
저장한 레이아웃을 파라미터에 입력해 ALV에 적용하기.
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에서 레이아웃 저장, 관리 기능만 추가하고 싶다면
Variant 변수를 선언하고,
DATA: GS_VARI TYPE DISVARIANT.
ALV Display전에
GS_VARI = VALUE DISVARIANT( REPORT = SY-REPID USERNAME = SY-UNAME ).
ALV Display 할때
*IS_VARIANT, I_SAVE = 'A' *
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 저장/관리 불가능
728x90
반응형
'ABAP' 카테고리의 다른 글
ALV 특정 필드 폰트 변경 (0) | 2023.03.01 |
---|---|
Screen Dropdown List (0) | 2023.03.01 |
실행가능 프로그램에서 실행버튼 없애기 (0) | 2023.03.01 |
ON CHAIN-REQUEST (0) | 2023.03.01 |
프로그램 호출시 새창으로 호출하기 (ABAP4_CALL_TRANSACTION) (0) | 2023.03.01 |
댓글