본문 바로가기
ABAP

Module-pool 5 (변경/생성)

by clode 2023. 2. 14.
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

댓글