Академический Документы
Профессиональный Документы
Культура Документы
Module-pool programming is defined as set of screen sequence flow. Here we enter, add data,
change data, view the data. Here we will design the screens and their coding called as flow
logic. Flow logic defines coding and triggering of each screen.
In the flow logic, you will define when to trigger the screen. Triggering of screens is done through
events. They are PBO, PAI, POH, and POV.
If we call through SE80, u have to check the top include program check box.
If we call through SE51, you will design screen and flow logic in ABAP editor
If we call through SE38, you will call the statement CALL SCREEN 100.
Go to SE80, Right click on PACKAGE name, click on CREATE and click on PROGRAM.
O01 include: PBO Module, where we output of programs. It is triggered before executing
program.
I01 Include: PAI Module, here we input operations after output. It is triggered after program is
executed. Like we can add, delete, view data.
It will show some errors, ignore them and activate all include programs.
Finally activate the whole program. Then right click on program name, click on SCREEN.
In the first screen we input the values and see the output in the second screen.
* MODULE USER_COMMAND_0100.
CHAIN.
FIELD: SDYN_CONN-CARRID,
SDYN_CONN-CONNID MODULE CHECK_SPLFI.
ENDCHAIN.
MODULE TRANS_FROM_100.
Same as above as we retrieved from data dictionary, define the fields on click middle icon. Select
the fields.
*&---------------------------------------------------------------------*
PROGRAM SAPMZSAMPLEMODULE.
TABLES: SDYN_CONN.
MODULE TRANS_TO_200.
*&---------------------------------------------------------------------*
*& Module CHECK_SPLFI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_SPLFI INPUT.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZSTATUS100'.
SET TITLEBAR 'ZTITLE100'.
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
.
Then double-click on MODULE STATUS_0200 OUTPUT. Define coding.
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZSTATUS200'.
SET TITLEBAR 'ZTITLE200'.
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
Define transaction name, package name, program name and screen no.
Output:-
OPERATIONS CODING:
MODULE CHECK_INPUT.
MODULE CHECK_INPUT.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0200.
* MODULE CHECK_INPUT.
MODULE CHECK_IN.
&---------------------------------------------------------------------*
PROGRAM SAPMYOPERATIONS.
*&---------------------------------------------------------------------*
*& Module CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_INPUT INPUT.
CASE SY-UCOMM.
WHEN 'ADD'.
RES = NUMBER1 + NUMBER2.
MESSAGE I001(ZSAMPLE).
WHEN 'SUBT'.
RES = NUMBER1 - NUMBER2.
MESSAGE I002(ZSAMPLE).
WHEN 'MULT'.
RES = NUMBER1 * NUMBER2.
MESSAGE I003(ZSAMPLE).
WHEN 'DIV'.
RES = NUMBER1 / NUMBER2.
MESSAGE I004(ZSAMPLE).
ENDCASE.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 100.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " CHECK_IN INPUT
Then right click on program name, create screen. Define attributes of screen.
CHAIN.
ENDCHAIN.
MODULE TRANS_FROM_100.
MODULE TRANS_TO_200.
PROGRAM SAPMYPOOL3.
*&---------------------------------------------------------------------*
*& Module CHECK_KNA1 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
Double click on MODULE STATUS_0000 in PBO for screen 100 & 200.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZSTATUS-100'.
SET TITLEBAR 'CUSTOMER DETAILS'.
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZSTATUS-200'.
SET TITLEBAR 'CUSTOMER DATA'.
*&---------------------------------------------------------------------*
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 0.
WHEN 'DISPLAY'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 100.
ENDCASE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'DISPLAY'.
LEAVE PROGRAM.
WHEN 'EXIT'.
*SET SCREEN 0.
leave program.
ENDCASE.
Then right click on program name, create screen. Define attributes of screen.
MODULE TRANS_FROM_100.
MODULE TRANS_TO_200.
MODULE CHECK_OUTPUT.
*&---------------------------------------------------------------------*
*& Include MYUSINGCHECKBOXTOP Module Pool SAPMYUSINGCHECKBOX
*&
*&---------------------------------------------------------------------*
PROGRAM SAPMYUSINGCHECKBOX.
TABLES: EKKO.
*&---------------------------------------------------------------------*
*& Module CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_INPUT INPUT.
SELECT SINGLE * FROM EKKO INTO CORRESPONDING FIELDS OF ITAB WHERE EBELN = EKKO-EBELN.
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 100.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
" USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& Include MYUSINGCHECKBOXO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
MOVE-CORRESPONDING WA TO EKKO.
*&---------------------------------------------------------------------*
*& Module CHECK_OUTPUT OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_OUTPUT OUTPUT.
LOOP AT SCREEN.
IF CUSTOMER IS INITIAL AND SCREEN-GROUP1 = 'COM'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Then right click on program name, create screen. Define attributes of screen.
PROGRAM SAPMYUSINGRADIOBUTTON.
TABLES: EKKO.
*
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
CHAIN.
FIELD: EKKO-BUKRS MODULE CHECK_INPUT.
ENDCHAIN.
MODULE TRANS_FROM_100.
MODULE CHECK_CODING.
MODULE TRANS_TO_200.
MODULE CHECK_OUTPUT.
*&---------------------------------------------------------------------*
*& Module CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_INPUT INPUT.
SELECT SINGLE * FROM EKKO INTO CORRESPONDING FIELDS OF ITAB WHERE BUKRS = EKKO-BUKRS.
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
MOVE-CORRESPONDING WA TO EKKO.
ENDMODULE. " TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
CASE OK_CODE.
WHEN 'RADIO'.
*LOOP AT SCREEN.
*
*IF CUSTOMER EQ 'X' AND SCREEN-GROUP1 = 'CUS'.
*SELECT SINGLE * FROM EKKO WHERE BUKRS = EKKO-BUKRS.
*ENDIF.
*
*IF PURCHASE EQ 'X' AND SCREEN-GROUP1 = 'PUR'.
*SELECT SINGLE * FROM EKKO WHERE BUKRS = EKKO-BUKRS.
*ENDIF.
*
*IF EXIT EQ 'X'.
*LEAVE PROGRAM.
*ENDIF.
SCREEN-INPUT = 1.
SCREEN-ACTIVE = 1.
MODIFY SCREEN.
*ENDIF.
*ENDLOOP.
ENDCASE.
ENDMODULE. " CHECK_OUTPUT OUTPUT
Then right click on program name, create screen. Define attributes of screen.
Click on continue.
Click on continue.
Then design subscreens in each tabstrip, drag the fields from dictionary fields. Click on flow logic. It
generate auto code for tabstrip and subscreen screen.
MODULE TRANS_FROM_100.
MODULE TRANS_TO_200.
Defined by programmer
*&---------------------------------------------------------------------*
*& Include MZDEMOTABSTRIPTOP Module Pool SAPMZDEMOTABSTRIP
*&
*&---------------------------------------------------------------------*
PROGRAM SAPMZDEMOTABSTRIP.
*&---------------------------------------------------------------------*
*& Include MZDEMOTABSTRIPO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Include MZDEMOTABSTRIPI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_INPUT INPUT.
SELECT SINGLE * FROM KNA1 INTO CORRESPONDING FIELDS OF ITAB WHERE KUNNR = KNA1-KUNNR.
ENDMODULE. " CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
*&---------------------------------------------------------------------*
*& Module GET_BANK OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_BANK OUTPUT.
SELECT SINGLE * FROM KNB1 WHERE KUNNR = KNA1-KUNNR.
Then right click on program name, create screen. Define attributes of screen.
Then design other screen for output. Select table control wizard. Drag and paste it.
Click on continue
Then give name of table control.
Then click on continue. Provide from where u have to fetch data either from data dictionary r internal table
*&---------------------------------------------------------------------*
*& Include MYTABLECONTROLTOP Module Pool SAPMYTABLECONTROL
*&
*&---------------------------------------------------------------------*
PROGRAM SAPMYTABLECONTROL.
CHAIN.
FIELD: EKKO-EBELN MODULE CHECK_EKKO.
ENDCHAIN.
*MODULE TRANS_FROM_100.
MODULE MYTABLECONTROL_MOVE.
ENDLOOP.
MODULE STATUS_0200.
MODULE GET_EKKO.
MODULE TRANS_TO_200.
MODULE USER_COMMAND_0200.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZSTATUS100'.
SET TITLEBAR 'ZTITLE100'.
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZSTATUS200'.
SET TITLEBAR 'ZTITLE200'.
*&---------------------------------------------------------------------*
*& Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
**----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
*&---------------------------------------------------------------------*
*& Module GET_EKKO OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_EKKO OUTPUT.
*&---------------------------------------------------------------------*
*& Include MYTABLECONTROLI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 100.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE TO SCREEN 0.
ENDCASE.
*&---------------------------------------------------------------------*
*& Module CHECK_EKKO INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_EKKO INPUT.
*&---------------------------------------------------------------------*
*& Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*MODULE TRANS_FROM_100 INPUT.
*
*MOVE-CORRESPONDING ITAB TO G_MYTABLECONTROL_WA.
*
*ENDMODULE. " TRANS_FROM_100 INPUT