The name of modification group key should be a three-character variable name without quotation marks.
The MODIF ID addition always assigns key to the screen-group1 column of internal table screen.
Parameters assigned to a modification group can be processed as an entire group with the LOOP AT SCREEN and MODIFY SCREEN statements during the AT SELECTION-SCREEN OUTPUT event.
컴포넌트 | 설명 |
---|---|
NAME | 제어 대상의 이름. SO~ 또는 PA~ |
GROUP1 | MODIFY ID 가 저장된다 |
INPUT | T/F : 0(False) → 입력 불가 |
ACTIVE | T/F : 0(False) → 필드 칸 자체가 사라진다 |
SE11 -> SCREEN 스트럭처를 검색하면 볼 수 있다.
INITIALIZATION.
과 START-OF-SELECTION.
사이에 위치
AT SELECTION-SCREEN OUTPUT.
PERFORM modity_screen.
FORM modify_screen .
LOOP AT screen.
CASE screen-name.
WHEN 'PA_BUKRS' OR 'PA_GJAH'
OR 'SO_BELN-HIGH' OR 'SO_BELN-LOW'. <"셀렉트옵션즈는 ITAB이므로 LOW, HIGH가 있다.>
screen-input = '0'. <"값이 거짓이다. -> 입력 불가>
MODIFY SCREEN. <"해당 스크린이 변경되면 바로 modify 한다.>
ENDCASE.
ENDLOOP.
ENDFORM.
MODIF ID 아이디
를 입력한다.screen-group1
= <아이디>
인 경우를 찾아 CASE문으로 분기한다.screen-action = '0'
을 입력한다.MODIFY ID GJR
를 입력해 그룹을 지정한 필드는 숨김 처리 된다.특정 라디오버튼을 선택했을 때만 스크린에 보이거나 입력 활성화되도록 만들어보자.
DEFAULT 'X'
지정USER-COMMAND 3글자이름
MODIF ID 3글자이름
REPORT zc525lr0001 MESSAGE-ID zc5m25.
TABLES : mara, marc.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE TEXT-t01.
PARAMETERS : pa_rb1 RADIOBUTTON GROUP rg1 DEFAULT 'X' USER-COMMAND btn,
pa_rb2 RADIOBUTTON GROUP rg1.
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE TEXT-t02.
SELECT-OPTIONS : so_matn FOR mara-matnr MODIF ID mar,
so_mtar FOR mara-mtart MODIF ID mar,
so_matk FOR mara-matkl MODIF ID mar,
so_ekgr FOR marc-ekgrp MODIF ID mac.
PARAMETERS : pa_disp TYPE marc-dispo MODIF ID mac,
pa_dism TYPE marc-dismm MODIF ID mac.
SELECTION-SCREEN END OF BLOCK bl2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE 'X'. <" ------------- 첫번째(라디오버튼) CASE문 >
WHEN PA_RB1.
CASE screen-group1. <" ---- 두번째(MODIFY그룹) CASE문 >
WHEN 'MAC'.
screen-active = '0'.
MODIFY SCREEN.
ENDCASE.
WHEN PA_RB2.
CASE screen-group1. <" ---- 두번째(그룹) CASE문 >
WHEN 'MAR'.
screen-active = '0'.
MODIFY SCREEN.
ENDCASE.
ENDCASE.
ENDLOOP.
LOOP AT SCREEN
으로 스크린에 루프 설정CASE
구문CASE
구문screen-input = '0'
: 입력 불가screen-active = '0'
: 숨기기MODIFY SCREEN.
:스크린에 적용