본문 바로가기
ABAP

Module-pool 2 (조회)

by clode 2023. 2. 14.
728x90
반응형

[실행화면]

항공사코드를 입력후 항공편 조회를 누르면 화면 200으로 넘어간다.

항공사 코드에 해당하는 값들을 가져온다.

[프로그램 로직]

<TOP>

TABLES SPFLI.

DATA: OK_CODE TYPE SY-UCOMM,
          GS_TAB TYPE SPFLI,
          GT_TAB TYPE TABLE OF SPFLI.


CONTROLS CONT1 TYPE TABLEVIEW USING SCREEN 0200.

<화면 100>

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0100.

PROCESS AFTER INPUT.
MODULE EXIT AT  EXIT-COMMAND.
 MODULE USER_COMMAND_0100.

<화면 200>

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0200.
 LOOP AT gt_tab INTO SPFLI WITH CONTROL CONT1.
 ENDLOOP.


PROCESS AFTER INPUT.
MODULE EXIT AT  EXIT-COMMAND.
 MODULE USER_COMMAND_0200.

LOOP AT gt_tab. 
ENDLOOP.

테이블컨트롤은 여러라인을 읽는거기 때문에 PBO와 PAI에 LOOP가 꼭 필요하다. 없으면 티코드 실행시 덤프가 발생한다.

Dictionary에서 얻기로 그렸기때문에 into spfli이고 프로그램에서 얻기로 구조로부터 참조해 그렸다면 into gs_tab이 될거다.


<PBO>

MODULE status_0100 OUTPUT.
 SET PF-STATUS 'S100'.
 SET TITLEBAR 'S100'.
ENDMODULE.


MODULE status_0200 OUTPUT.
 SET PF-STATUS 'S200'.
 SET TITLEBAR 'S100'.

 SELECT * FROM SPFLI
   INTO CORRESPONDING FIELDS OF TABLE GT_TAB
   WHERE CARRID = SPFLI-CARRID.


ENDMODULE.

<PAI>

MODULE user_command_0100 INPUT.
   CASE ok_code.
     WHEN 'BACK'.
    LEAVE TO SCREEN 0.
  WHEN 'DIS'.
    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 0.

 ENDCASE.
ENDMODULE.
728x90
반응형

댓글