728x90
반응형
[실행화면]
변경
DB에 원래 있는 데이터는 가져온다.
생성
DB에 없는 데이터는 새로 생성한다. 없으니까 순번 텍스트는 뜨지 않는다.
이메일에 @가 없으면 오류메세지.
[프로그램 로직]
<TOP>
TABLES: ZS1D11T_01, ZS1D11T_02.
DATA: OK_CODE TYPE SY-UCOMM,
GT_TAB TYPE TABLE OF ZS1D11T_01,
GS_TAB TYPE ZS1D11T_01,
G_NAME TYPE ZS1D11T_02-NAME,
G_TNAME TYPE DD07T-DDTEXT.
<화면 100>
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
MODULE SELECT_0100.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
MODULE USER_COMMAND_0100.
<화면 200>
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
MODULE SELECT_0200.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
MODULE USER_COMMAND_0200.
<PBO>
MODULE status_0100 OUTPUT.
SET PF-STATUS 'S100'.
SET TITLEBAR 'S100'.
ENDMODULE.
"순번 텍스트
MODULE select_0100 OUTPUT.
SELECT SINGLE name FROM zs1d11t_02
INTO g_name
WHERE seqnr = zs1d11t_01-seqnr.
"조 텍스트
SELECT SINGLE ddtext FROM dd07t
INTO g_tname
WHERE domname = 'Z11D_TEAM'
AND domvalue_l = zs1d11t_01-team.
ENDMODULE.
MODULE status_0200 OUTPUT.
SET PF-STATUS 'S100'.
SET TITLEBAR 'S100'.
ENDMODULE.
MODULE select_0200 OUTPUT.
"화면 100에서 입력한 순번은 화면 200에서도 출력
SELECT SINGLE * FROM zs1d11t_02
WHERE seqnr = zs1d11t_01-seqnr.
zs1d11t_02-seqnr = zs1d11t_01-seqnr.
ENDMODULE.
<PAI>
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'SAVE'. "화면100의 확인버튼
CALL SCREEN 200.
ENDCASE.
ENDMODULE.
MODULE exit INPUT.
CASE ok_code.
WHEN 'EXIT' OR 'CANC'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
MODULE user_command_0200 INPUT.
CASE ok_code.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'CHANGE'. "화면200의 변경버튼
MODIFY zs1d11t_02.
"이메일에 @가 있으면 변경, 없으면 오류메세지
FIND '@' IN zs1d11t_02-email.
IF sy-subrc = 0.
MESSAGE s016(pn) WITH '저장되었습니다'.
COMMIT WORK.
ELSE.
MESSAGE s016(pn) WITH 'EMAIL에는 @가 존재해야 합니다.'
DISPLAY LIKE 'E'.
ROLLBACK WORK.
EXIT.
ENDIF.
ENDCASE.
ENDMODULE.
728x90
반응형
'ABAP' 카테고리의 다른 글
Table control (0) | 2023.02.14 |
---|---|
Module-pool 6 (Subscreen, table control) (0) | 2023.02.14 |
Module-pool 4 (Radio button) (0) | 2023.02.14 |
Module-pool 3 (Domain text) (0) | 2023.02.14 |
Module-pool 2 (조회) (0) | 2023.02.14 |
댓글