Sei sulla pagina 1di 37

5THFEB Introduction to MPP

MPP :
ARCHITECTURE OF MPP.

SE51 : SCREEN PAINTER


TYPE OF PROGRAMS

EXECUTABLE PROGRAMS ( REPORTS )


F8

MPP TYPE ( M ) PROGRAMS


CAN'T BE EXECUTED DIRECTLY , SHOULD BE EXECUTED WITH HELP
OF TCODE.

STEP 1

SE80 -> SELECT PROGRAM TYPE OBJECT -> NAME THE OBJECT
( SAPMZMPP9301 ) -> preses enter -> create -> prompts message to be created with top
include file -> select the check box -> OPENS INTERFACE WITH NAME OF TOP
INCLUDE FILE ( NAME SHOULD BE ENDED WITH "TOP") -> SAVE BOTH FILES
( MAIN PROGRAM AND TOP INCLUDE FILE ).

STEP 2 ( CREATE SCREEN UNDER MPP )

RIGHT CLICK ON MAIN PROGRAM -> CREATE -> SCREEN -> NUMBER THE
SCREEN ( 100 ) -> OK -> OPENS SE51 TCODE.

OPTIONS OF SE51 SCREENS:

1) ATTRIBUTES
I) SPECIFIES SHORT TEXT FOR THE SCREEN
II) TYPE OF SCREEN
a) Normal Screen
Main screen in sap can be assed for tcodes to be executed , has window
properties and component features.

b) SubScreen : is a component has ability to attach other component , can be


called by main screen from PBO and PAI events.

c) Model dialog: is a dialog based screen, this can be called from main screen , can't
be acted as main screen , tcodes can't be created for dialog screens.

2) Layout :
is used to add components on the screen using toolbox. Designing the screen is
very easy using this option.

3) Element list:
displays the list of components which are added from layout editor and also with a
component field type with "ok" type. Abaper must declare the variable in the OK field
used to identify the type of action is performed on the screen.

4) Flow logic editor :


Is the Event defined editor used to perform action for the screen based on type of event
functionality.
This editor basically has 4 type of events
i) PBO ( Process before output) :
this event is raise when ever the screen loading.
ii) PAI ( Process After Input ):
This event is raised when ever action is performed on the screen
iii) Process on value-request:
this event is raised based on value request from input field to fetch data from data
base into the field using Search help functionality.

iv) Process on help-request:


this event used to provide help functionality for the input fields.

Note :
Flow logic editor can't understand ABAP programming code. But invokes the
ABAP code using "Module" statement.

ABAP'er has to activate module statements in flow logic editor by removing comments ,
and invoke abap editor using double click, generate code in abap editor , declare okcode
in main top include file so it can be accssed from other programs.

7th FEB

MESSAGE I000(ZMSG930)

CREATE SAMPLE PROGRAM TO ACCEPT DATA OF INTEGER TYPE AND


DISPLAY RESULTS IN ANOTHER INPUT FIELD.

CREATE AN INTERFACE TO PERFORM DML OPERATIONS FROM MPP.


INSERT INTO <DB_TAB> VALUES <WA/ITAB>.

WA STRUCTURE SIZE SHOULD BE SAME AS <DB_TAB> STRUCTURE SIZE.

TO DO THIS USE FOLLOWING NAVIGATIONS

1) CREATE MPP.
2) OPEN TOP INCLUDE FILE AND CREATE A STRUCTURE AS "WA" AND
ACTIVTE THE CODE.
3) CREATE A SCREEN .
4) FROM MPP GRAPHICAL PAINTER USE DICTIONARY/PROGRAM FIELDS TO
ADD FIELDS FROM DATA BASE TABLES OR PROGRAM WORK AREA OR
INTERNAL TABLES.
CLICK ON DICTIONARY FILES -> OPENS AN INTERFACE -> ENTER NAME OF
STRUCTURE ( WA ) -> SELECT FROM PROGRAM -> DISPLAYS ALL FIELDS OF
STRUCTURE -> SELECT THE REQUIRED FIELDS ANC CLICK ON OK -> PLACE
THE COMPONENTS ON THE SCREEN -> IF REQUIRED ADD OTHER
COMPONENTS -> SAVE THE ENTRIES -> CLICK ON ELEMENT LIST.

5) DECALRE OKCODE IN ELEMENT LIST.


6) GENEATE PAI CODE USING MODULE STATEMENT FROM FLOW LOGIC
EDITOR.
7) DECALRE OKCODE IN TOP INCLUDE AND ACTIVATE ALL PROGRAMS
UNDER MPP -> CREATE TCODE -> AND EXECUTE.

PROGRAM CODING
1) TOP INCLUDE FILE.
DATA WA LIKE MARA.
DATA OKCODE LIKE SY-UCOMM.

2) PAI CODE.
MODULE USER_COMMAND_1234 INPUT.
CASE OKCODE.
WHEN 'INSERT'.
INSERT INTO MARA VALUES WA.

IF SY-SUBRC = 0.
MESSAGE I089(ZMSGCLS) WITH 'RECORD IS INSERTED'.
ELSE.
MESSAGE I987(ZMSGCLS) WITH 'UNABLE TO INSERT RECORD'.
ENDIF.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.

WRITE : STATEMENT GENERATES OUTPUT TO LPS, BUT MPP'S CANT CALL


LPS DIRECTLY.

WE NEED TO CALL LPS MANUALLY USING "LEAVE" STATEMENT.

SYNTAX:

LEAVE TO LIST-PROCESSING.
THIS STATEMENT CAN BE USED IN MPP TO CALL LPS BY
TERMINATING CURRENT SCREEN, SO WE CAN'T COMEBACK FROM LPS TO
SCREEN, ONLY THE WAY TO TERMINATE APPLICATION IS "/N".

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN <SC_NUM>


USING THIS STATEMENT WE GENERATE REPORT AND ALSO CAN
COME BACK TO PREVIOUS SCREEN.

1) TOP INCLUDE FILE

DATA : ITAB LIKE KNA1 OCCURS 0 WITH HEADER LINE.


DATA : OKCODE LIKE SY-UCOMM.
DATA: NUM TYPE I.

2) PAI CODE
MODULE USER_COMMAND_0100 INPUT.

CASE OKCODE.
WHEN 'FETCH'.
SELECT * FROM KNA1 INTO TABLE ITAB.
NUM = 1.
READ TABLE ITAB INDEX NUM.
WHEN 'NEXT'.
NUM = NUM + 1.
DESCRIBE TABLE ITAB.
IF NUM > SY-TFILL.
MESSAGE I876(ZMSGCLS) WITH 'CAN NOT BEYOND LAST RECORD '.

ELSE.
READ TABLE ITAB INDEX NUM.
ENDIF.
WHEN 'PREV'.
NUM = NUM - 1.
IF NUM < 0.
MESSAGE I973(ZMSGCLS) WITH 'UR IN FIRST RECORD'.
ELSE.
READ TABLE ITAB INDEX NUM.
ENDIF.
WHEN 'FIRST'.
NUM = 1.
READ TABLE ITAB INDEX NUM.
WHEN 'LAST'.
DESCRIBE TABLE ITAB.
NUM = SY-TFILL.
READ TABLE ITAB INDEX NUM.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.

8th FEB

PBO FUNCTIONALITY IN ABAP.

PBO IS RAISE WHEN EVER THE SCREEN IS LOADING FOR THE FIRST TIME
AND ALSO RAISED WHEN EVER ACTION IS PERFORMED ON PAI.

FOR EVERY ACTION ON PAI THE SCREEN IS RELOADED, HENCE PBO IS


RELOADED AUTOMATICALLY.

WHILE GENERATING CODE IN PBO, CHECK SELECT STATEMENTS MUST BE


EXECUTED ONLY FOR ONCE.

PBO IS USED TO SET MENUS AND FUNCTION KEYS FOR THE MODULE
POOL PROGRAMMING.

ADDING MENUS IN MPP SCREENS.

AS WE ACTIVATE MODULE STATEMENT IN PBO, SAP CREATES THE MODULE


CODE WITH TWO STATEMENTS.

INVOKES THE MENU


1) MENUBARS
2) APPLICATION TOOLBARS
3) FUNCTION KEYS
NOTE : IF THE ACTION IS RAISE IN LPS FROM MENU'S RAISES THE ACTION
IN "AT USER-COMMAND" EVENT.

WHERE AS IN MPP, MENUS CAN RAISE ACTION ON PAI.

EXAMPLE CODE FOR MENUS AND TITLEBAR IN MPP SCREENS.


1) TOP INCLUDE FILE.
*DATA : OKCODE TYPE OK.
*DATA : OKCODE LIKE SY-UCOMM.
DATA OKCODE(5) TYPE C.
2) FLOW LOGIC EDITOR.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0123.

PROCESS AFTER INPUT.


MODULE USER_COMMAND_0123.
3) PBO AND PAI CODE.
MODULE STATUS_0123 OUTPUT.
SET PF-STATUS 'MYMENU'.
SET TITLEBAR 'MYTIT'.
ENDMODULE.

MODULE USER_COMMAND_0123 INPUT.


CASE OKCODE.
WHEN 'MI1'.
MESSAGE I098(ZMSG930) WITH 'ACTION ON OPEN'.
WHEN 'MI2' OR 'ATCEX'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.

BOX is the component in MPP to perform similer action as Selection-screen begin of


block and end of block. IN Mpp Box size is in the hands of ABAP'er.

IF A SCREEN IS CREATED IN MPP , CAN BE CALLED USING STATEMENT

CALL SCREEN <NUM> [STARTING AT X1 Y1]


[ENDING AT X2 Y2].

Create a simple Application in MPP FOR FLIGHT RESERVATIONS.

9TH FEB
TABSTRIPS : IS A CONTROL IN ABAP TO ATTACH OTHER SUBSCREENS

MM01 :
MASTERDATA INFO :
23 SUB SCREEN INFO

TO DEFINE TABSTRIPS IN ABAP CODE USE FOLLOWING SYNTAX.

CONTROLS <COMP_NAME> TYPE TABSTRIP.

TYPES : OWN DATA TYPES


DATA : TO DECLARE VARIABLES.

PARAMETETERS : GUI VARIABLES.

CONTROLS STATEMENT IS USED TO DEFINE TABSTRIPS AND TABLE


CONTROL.

CALL SUBSCREEN <SUB_AREA> INCLUDING <PRG_NAME> <SCR_NUM>.

TABSTRIP IS A COMPONENT IN ABAP SCREEN, WITH DIFFERENT TAB TITLES


, UNDER ONE TABSTRIP CONTROL 999 TAB TITLES CAN BE ADDED.

ABAPER CAN ATTACH SUBSCREENS FOR EACH TAB BUTTON ( TITLE ).

CALL SUBSCREEN SUB1 INCLUDING <PRG_NAME>

123: MAIN SCREEN


10 : SUBSCREEN
20 : "
30 : "

CALL SUBSCREEN : IS NOT ABAP STATEMENT.

IN SE38 ABOVE STATEMENT IS INVALID, THIS STATEMENT MUST BE USED


IN FLOW LOGIC EDITOR.

1) TOP INCLUDE FILE


DATA : OKCODE LIKE SY-UCOMM,
DYNNR LIKE SY-DYNNR VALUE 10.
CONTROLS TBSTR TYPE TABSTRIP.
2) FLOW LOGIC EDITOR CODE.
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SUB1 INCLUDING 'SAPMZTABSTR930' DYNNR.
MODULE STATUS_0123.

PROCESS AFTER INPUT.


MODULE USER_COMMAND_0123.
3) PBO AND PAI MODULE CODE
MODULE STATUS_0123 OUTPUT.
SET PF-STATUS 'MYGUI'.
SET TITLEBAR 'MYTIT'.
ENDMODULE.
MODULE USER_COMMAND_0123 INPUT.
CASE OKCODE.
WHEN 'TAB1'.
TBSTR-ACTIVETAB = 'TAB1'.
DYNNR = '10'.
WHEN 'TAB2'.
TBSTR-ACTIVETAB = 'TAB2'.
DYNNR = '20'.
WHEN 'TAB3'.
TBSTR-ACTIVETAB = 'TAB3'.
DYNNR = '30'.
WHEN 'EXT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.

REQUIREMENTS FOR THE TABSTRIPS


1) TABSTRIP CONTROL
2) SUBSCREEN AREA
3) SUBSCREENS
4) CONTROLS STATEMENT , DYNNR VARIABLE AND CALL SUBSCREEN
STATEMENT.

TABSTRIP CONTROL IS CONTAINER OF SUBSCREEN AREA AND TAB


BUTTONS, IS USED TO ATTACH OTHE SUBSCREENS IN THE MAIN SCREEN ,
IT HAS CAPACITY OF 999 SUBSCREENS UNDER ONE COMPONENT.

SUBSCREEN AREA: IS ONLY THE COMPONENT CAN BE ATTACHED ON TOP


OF TABSTRIP CONTROLS, USING THIS SCREEN AREA ABAPER CAN CALL
SUBSCREENS DYNAMICALLY.

SUBSCREENS : IS A TYPE OF SCREEN WITH SUBSCREEN PROPERTY , ACTS


AS A CONTAINER OF SCREEN COMPONENTS BUT CAN BE CALLED USING
CALL SUBSCREEN STATEMENT ONLY
CONTROLS STATEMENT : IS USED IN ABAP TO DEFINE TABSTRIP CONTROL
OR TABLE CONTROL.

SYNTAX:
CONTROLS <TB_STR> TYPE TABSTRIP.

DYNNR : IS A VARIABLE DEFINED FOR SY-DYNNR TO INDICATE SCREEN


NUMBER , THIS MUST BE INITILIZED WITH INITIAL SUBSCREEN NUMBER.

CALL SUBSCREEN : IS A STATEMENT OF FLOW LOGIC EDITOR TO CALL


REQUIRED SUBSCREENS ON TOP OF MAIN SCREEN.

NAVIGATIONS TO CREATE MPP WITH TABSTRIPS CONTROL.

1) CREATE MPP.
2) CREATE MAIN SCREEN ATTACH TABSTRIP CONTROL, NAME THE
COMPONENT ( TBSTR ) AND NUMBER OF TABS REQUIRED ON TABSTRIP.
3) ON TOP OF TABSTRIP ATTACH SUBSCREEN AREA COMPONENT AND NAME
THE SUBSCREEN AREA( SUB1 )
4) SET TABSTRIP BUTTON PROPERTY ( NAME , LABEL , FCT CODE AND REF
FIELD [ NAME OF SUBSCREEN AREA ] , IF REQUIRED ADD OTHER
COMPOMENTS
5) DEFINE OKCODE IN ELEMENT LIST.
6) BASED ON NUMBER OF TAB BUTTON ON TABSTRIP CREATE SUBSCREENS
,
RIGHT CLICK ON SCREEN -> CREATE -> ENTER SCREEN NUMBER -> SET
SUBSCREEN PROPERTY -> SHORT TEXT -> ADD SCREEN COMPONENTS.
7) DECLARE THE FIELDS IN TOP INCLUDE FILE
8) DECLARE CALL SUBSCREEN IN PBO EVENT AND ALSO GENERATE PAI
CODE.
9) SAVE AND ACTIVATE ALL PROGRAMS -> CREATE TCODE -> EXECUTE.

1) TYPE-POOLS
2) LOV'S ( LIST OF VALUES ) : ADDING DROP DOWN FACILITY
3) TABLE CONTROL

10TH FEB
TABLE CONTROL IS A COMPONENT USED IN MPP'S TO DIPLAY THE DATA
OF INTERNAL TABLE ON SCREEN IT SELECT. IT IS USED TO FETCH DATA
FROM DATA BASE TABLES AND ALSO ALLOWS MODIFICATION ON THE
CONTROL TO PERFORM DML OPERATIONS.

SAPMZTBCL930 : MPP PROGRAM.


1) TABLE CONTROL IS CONTAINER OF ITAB FIELDS.2) WHEN EVER A TABLE
CONTROL IS ADDED ON THE SCREEN THEN IN PBO AND PAI ABAMER MUST
USE "LOOP AT ITAB".
LOOP AT ITAB IN PBO USED TO FETCH DATA FROM INTERNAL TABLE TO
THE SCREEN COMPONENTS.

LOOP AT ITAB IN PAI ALLOWS MODIFICATION TO BE PERFORMED ON ITAB


OR DATA BASE TABLE.

SYNTAX OF LOOP AT ITAB IN PBO.

LOOP AT ITAB CURSOR <CUR> WITH CONTROL <TBCL>.


ENDLOOP.

WHERE <CUR> IS INTEGER TYPE FIELD

AND <TBCL> IS NAME OF TABLE CONTROL.

CONTROLS <TBSTR> TYPE TABSTRIP.

CONTROLS <TBCL> TYPE TABLEVIEW USING SCREEN <NUM>.

TBCL-LINES : LINES IS THE PROPERTY OF THE TABLE CONTROL SPECIFIES


NUMBER OF LINES REQUIRED IN TABLE CONTROL. BY DEFULT NUMBER OF
LINES ARE NUMBER ROWS WHICH ARE VISIBLE ON THE SCREEN.

CODING :
1) TOP INCLUDE FILE
DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA : CUR TYPE I.
CONTROLS TBCL TYPE TABLEVIEW USING SCREEN 100.
DATA : OKCODE LIKE SY-UCOMM.

2) FLOW LOGIC EDITOR

PROCESS BEFORE OUTPUT.


LOOP AT ITAB CURSOR CUR WITH CONTROL TBCL.
ENDLOOP.
* MODULE STATUS_0100.

PROCESS AFTER INPUT.


LOOP AT ITAB.
ENDLOOP.
MODULE USER_COMMAND_0100.

3) PAI CODE.
MODULE USER_COMMAND_0100 INPUT.
CASE OKCODE.
WHEN 'FETCH'.
SELECT * FROM MARA INTO TABLE ITAB.
DESCRIBE TABLE ITAB.
TBCL-LINES = SY-TFILL.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.

PAI LOOP AT ITAB IS USED TO ALLOW THE MODIFICATION ON TABLE


CONTROL.

ITAB DATA IS DIFFERENT FROM SCREEN MODIFIED DATA.


ON THE SCREEN IF USER ENTRY IS MODIFIED THEN ABAPER HAS MAKE
CHANGES MANUALLY.

TO ALLOW MODIFICATIONS USE FOLLOWING STEPS.

1) USE SECOND INTERNAL TABLE.

DATA : ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE.

2) MOVE THE DATA FROM SCREEN TABLE CONTROL TO SECOND ITAB.

3) THEN USE MODIFY STATEMENT OR UPDATE STATEMENT TO ALLOW


MODIFICATION ON DATA BASE TABLE BASED ON SECOND ITAB.

PAI CODE.

PROCESS AFTER INPUT.


MODULE CLEARITAB1.

LOOP AT ITAB.
MODULE MOVEDATA.
ENDLOOP.

MODULE USER_COMMAND_0100.

MODULE MOVEDATA INPUT.


APPEND ITAB TO ITAB1.
ENDMODULE.

PAI :
WHEN 'MODI'.
LOOP AT ITAB1.
MODIFY MARA FROM ITAB1.
ENDLOOP.

SELECT * FROM MARA INTO TABLE ITAB.

MODIFICATION ON TABLE CONROL.

1) TOP INCLUDE FILE.


DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA : ITAB1 LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA : CUR TYPE I.
CONTROLS TBCL TYPE TABLEVIEW USING SCREEN 100.

DATA : OKCODE LIKE SY-UCOMM.


2) FLOW LOGIC EDITOR.
PROCESS BEFORE OUTPUT.
LOOP AT ITAB CURSOR CUR WITH CONTROL TBCL.
ENDLOOP.
* MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
MODULE CLEARITAB1.

LOOP AT ITAB.
MODULE MOVEDATA.
ENDLOOP.
MODULE USER_COMMAND_0100.
3) PAI CODE.

MODULE USER_COMMAND_0100 INPUT.

CASE OKCODE.
WHEN 'FETCH'.
SELECT * FROM MARA INTO TABLE ITAB.
DESCRIBE TABLE ITAB.
TBCL-LINES = SY-TFILL.
WHEN 'EXIT'.
LEAVE PROGRAM.

WHEN 'MODI'.
* LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
* LOOP AT ITAB1.
*WRITE : / ITAB1-MATNR , ITAB1-MBRSH , ITAB1-MTART, ITAB1-MEINS.
* ENDLOOP.

LOOP AT ITAB1.
MODIFY MARA FROM ITAB1.
ENDLOOP.
SELECT * FROM MARA INTO TABLE ITAB.
ENDCASE.
ENDMODULE.

MODULE CLEARITAB1 INPUT.


CLEAR ITAB1.
REFRESH ITAB1.
ENDMODULE.

MODULE MOVEDATA INPUT.


APPEND ITAB TO ITAB1.
ENDMODULE.

12TH FEB

LOV's ( List of values )

Adding Dropdown facility in abap screens is the concept of LOV.

Use following navigation to add LOV's.

1) CREATE MPP ( SAPMZLOV930)


2) ADD A SCREEN ( 100)
3) ADD THE INPUT FILES, NAME THE COMPONENT AND SET LISTBOX
PROPERTY IN DROPDOWN OPTION.

WHEN EVER THE LIST BOX IS ADDED FOR INPUT FIELDS, ABAPER HAS TO
ADD THE VALUES IN TO THE LISTBOX FIELD FROM PBO CODE.

TYPE-POOL IS A DICTIONARY OBJECT IN SAP AS COLLECTION USER


DEFINED DATA TYPES CAN BE ACCESSED FROM ALL PROGAMS USING
"TYPE-POOLS" STATEMENT.

IN THE VRM TYPE SAP IS DEFINED A STRUCTURE AS VRM_VALUE AND


VRM_VALUES AS INTERNAL TABLE.

TYPES:
BEGIN OF VRM_VALUE,
KEY(40) TYPE C,
TEXT(80) TYPE C,
END OF VRM_VALUE,
VRM_VALUES TYPE VRM_VALUE OCCURS 0.
VRM_SET_VALUES
EXPORING
ID = '
VALUES = ITAB.

TOP INCLUDE FILE.

1) DATA : ITAB TYPE TABLE OF VRM_VALUES.

ITAB'S :
INDEXED INTERNAL TABLES NON -INDEX ITAB

1) STRUCTURED INTERNAL TABLES


2) SORTED INTER TABLES
3) STANDARD INTERNAL TABLES

DATA : ITAB LIKE MARA OCCURS 0 WITH HEADER.

DATA : ITAB LIKE STANDARD TABLE OF MARA


WITH NON-UNIQUE KEY MBRSH
WITH HEADER LINE
INITIAL SIZE 0.

NON-INDEX.
HASHED INTERNAL TABLES.

VRM_VALUE
KEY(40)
TEXT(80)

DATA : ITAB TYPE TABLE OF VRM_VALUES.

DATA : WA LIKE LINE OF ITAB.

WA-KEY=''.
WA-TEXT= ''.
APPEND WA TO ITAB.
1) TOP INCLUDE .
TYPE-POOLS VRM.

DATA : ITAB TYPE TABLE OF VRM_VALUES.


DATA : WA LIKE LINE OF ITAB.
DATA : OKCODE LIKE SY-UCOMM.

DATA : BEGIN OF CC OCCURS 0,


BUKRS LIKE T001-BUKRS,
END OF CC.
DATA : CNT TYPE I.

2) flow logic editor


PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100
3) PBo AND PAI code.
MODULE STATUS_0100 OUTPUT.

IF CNT = 0.
SELECT BUKRS INTO TABLE CC FROM T001.
CNT = 10.

LOOP AT CC.
WA-KEY = CC-BUKRS
WA-TEXT = CC-BUKRS.
APPEND WA TO ITAB.
ENDLOOP.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = 'IO1'
VALUES = ITAB.
ENDIF.
ENDMODULE.
MODULE USER_COMMAND_0100 INPUT.
LEAVE PROGRAM.
ENDMODULE.

DATA : CNT TYPE I.

IF CNT = 0.
SELECT * FROM <> INTO
CNT = 10.
ENDIF.

DATA : BEGIN OF CC OCCURS 0,


BUKRS LIKE T001-BUKRS,
END OF CC.
15TH FEB
ABAP OBJECT ORIENTED

WHAT IS OBJECT?
1) THINGS WE CAN SEE AND TOUCH
2) AN ENTITY WHICH IDENTIFIES ENVIRONEMENT

PHYSICAL INSTANCE (MEMORY) IN THE WORLD IS CALLED AS AN OBJECT.

TECH DEF:
INSTANCE OF A CLASS IS CALLED AS AN OBJECT.

VARIABLE : OBJECT

MEMORY ALLOCATED FOR A DATA TYPE IS CALLED AS VARIABLE.

OBJECT IS THE MEMORY ALLOCATED FOR A CLASS, WHICH HAS


BEHAVIOUR AND FUNCTIONLITY.

class <name>
{
public:
private:
protected:
};

class is a user defined data type , in any language where programmer has to set
class behaviour.

class is a collection of attributes and methods in c++ and java.

where as class is collection of attributes , methods and events in abap.

classes in abap must be defined with two block of statements.

1)CLASS class DEFINITION.


...
ENDCLASS.

2) CLASS class IMPLEMENTATION.


...
ENDCLASS.

class DEFINITION , DEFINES THE ATTRIBUTES METHODS OR EVENTS USED


FOR THE CLASS.
But at the time of declaring the atributes we need to define access specifiers.
Person1:
private section.
which gives complete security for the data, denies the accessbility from other
persons.
protected section.
is also denies the accessbility for all others but can be accessed by related
members.
public section.
data in this section can be accessed by all others.

EXAMPLE

class ABC DEFINITION.


PUBLIC SECTION.
METHODS SAYHELLO.
ENDCLASS.

class ABC IMPLEMENTATION.


METHOD SAYHELLO.
WRITE : / 'WELCOME TO ABAP OBJECT ORINTED'.
ENDMETHOD.
ENDCLASS.

DATA <OBJ> TYPE REF TO ABC.

IF AN OBJECT IS DEFINED, THE NO MEMORY IS ALLOCATED FOR THE


OBJECT.

FOR THE OBJECT DEFINED, MEMORY SHOULD BE ALLOCATED BY ABAPER


USING "CREATE OBJECT" STATEMENT.

OBJ = NEW ABC(); " SYNTAX IN JAVA

CREATE OBJECT OBJ. " SYNTAX IN ABAP.

IS THE STATEMENT ALLOCATES THE MEMORY FOR OBJECT BASED


ON CLASS ASSIGNED.

FOR THE <OBJ> MEMORY IS ALLOCATED THEN TO ACCESS THE METHODS


USE FOLLOWING SYNTAX.

CALL METHOD OBJ->SAYHELLO.

DEMO EXAMPLE FOR CLASSES USED IN ABAP.


REPORT ZOOABAP_930 .
class ABC DEFINITION.
PUBLIC SECTION.
METHODS SAYHELLO.
ENDCLASS.
class ABC IMPLEMENTATION.
METHOD SAYHELLO.
WRITE : / 'WELCOME TO ABAP OBJECT ORINTED'.
ENDMETHOD.
ENDCLASS.
DATA:OBJ TYPE REF TO ABC.
START-OF-SELECTION.
CREATE OBJECT OBJ.
CALL METHOD OBJ->SAYHELLO.

CONTROLS TBSTR TYPE TABSTRIP.


CONTROLS TBCL TYPE TABLEVIEW USING SCREEN <NUM>.

CUSTOM CONTAINER IS A TYPE OF OBJECT IN MPP SCREEN TO ATTACH


OTHER ENVIRONMENT OBJECT INTO SAP , VB GRID CONTROLS , IMAGE
CONTROLS ETC.

This programming deals with Object orinted concepts.

1) what is name of class


2) how to declate object
3) how to allocate memory
4) how to call methods... of a class.

ABS( SUM )
IF SUM < 0.
DATA STR(10) TYPE C.
MOVE SUM TO STR.
CONCATENEATE '-' STR TO STR.
ELSE.
MOVE SUM TO STR.
ENDIF.

1) Generate a report to display number of Sales organization existing under a company.


what is the table used for company....?

what is the name of table used to store sales organization details for a company code.
query return number of org details for the requirements.

fields
XD01: IS THE TCODE FOR CUSTOMER MASTER CRETION.

SALES ORGANIZATION:
SALES GROUPS
SELES PERONS

CUSTOMERS

CUSTOMER MASTER INFO TO BE ADDED FOR ALL DEPARTMENTS.

XD01 : 17 MANDATORY FIELDS.

KNA1 : ( FIELDS )

HOW MANY PARENT TABLES ?


HOW MANY CHILD TABLES?

who is vendor? how sap identifies vendor?

1) Implementation Times
Company Requirements

2) Documentation
Maintainace : what is the table,

WHAT IS MOVEMEN TYPE? IN SAP

ABAPER: ( FENNER INDIA LTD )


BOLT, GEARS
TECHNICAL CONSULTANT ( MADHUSUDHAN )
HR:
CLIENT ( 30 HR )

WHAT IS PROJECT IN SAP ABAP?


CUSTOMIZING THE SCREEN OF SAP WHICH ARE CREATED ALREADY, FOR
THE COMPANY REQUIREMENTS.

THIS CAN BE PERFORMED BY ABAER HAS 2+ EXP.

COMPANY ASKED TO CREATE A NEW SCREEN FOR CUSTOMER INQUIRY


RELATED TO MATERIALS OF ORGANIZTIONS.

AS THIS NOT EXISTING IN SAP, THEN CREATED AS SCREE USING MPP ....
PROJECT :

IF THE SCREEN ARE CREATED FOR TRANSACTIONAL DATA THEN ABAPER


HAS TO CREATE THREE TCODES
1) CREATE 2) CHANGE 3) DISPLAY.
IF THE SAME SCREEN IS CREATED FOR MASTER DATA ONLY ONE SCREEN
WITH TABLE CONTROL WITH ALL CHANGE ,INSERT AND DELETE OPTIONS.

CREATED A REPORT FOR SLAES ORDERS FROM R/3 DATA BASE.

IF THE DATA IS INSERTED FROM "VA01" IDENTIFY THE WHERE DATA IS


FLOWING

SAP HAS BUILT IN REPORTS, BUT THESE ARE NOT MATCHING FOR MY
REQUIREMENTS SO , MY TECHNICAL CONSTULTENT ASKED TO
DEVELOPME THE CODE

1) REPORTS
2) BDC
3) SAPSCRIPT AND SMARTFORMS
4) MPP'S
5) CROSS APPLICATIONS.

16TH FEB

Demo example for Grid control

PROGRAM TEST.
DATA: OK_CODE LIKE SY-UCOMM,
GT_SFLIGHT TYPE TABLE OF SFLIGHT,
G_CONTAINER TYPE SCRFNAME VALUE
'BCALV_GRID_DEMO_0100_CONT1',
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
*---------------------------------------------------------------------*
* MAIN *
*---------------------------------------------------------------------*

SELECT * FROM SFLIGHT INTO TABLE GT_SFLIGHT.

CALL SCREEN 100.

*---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*
MODULE PBO OUTPUT.
SET PF-STATUS 'MAIN100'.
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING IT_OUTTAB = GT_SFLIGHT.
ENDIF.
ENDMODULE.
*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*
MODULE PAI INPUT.
* to react on oi_custom_events:
call method cl_gui_cfw=>dispatch.
CASE OK_CODE.
WHEN 'EXIT'.
PERFORM EXIT_PROGRAM.
WHEN OTHERS.
* do nothing
ENDCASE.
CLEAR OK_CODE.
ENDMODULE.
*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
FORM EXIT_PROGRAM.
* CALL METHOD G_CUSTOM_CONTAINER->FREE.
* CALL METHOD CL_GUI_CFW=>FLUSH.
LEAVE PROGRAM.
ENDFORM.

Grid controls : IS SIMILER TO TABLE CONTROL OF MPP'S.

Requirements:
classes
1) CL_GUI_CUSTOM_CONTAINER
2) CL_GUI_ALV_GRID

TOP INCLUDE

DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER ,


MYGRID TYPE REF TO CL_GUI_ALV_GRID.

1) CREATE MPP AND A SCREEN


2) ADD A CONTROL ON THE SCREEN AS CUSTOM CONTROL AND NAME THE
CUSTOM CONTROL ( CUSTCTRL ).

3)
CREATE OBJECT MYCTRL
EXPORTING
CONTAINER_NAME = 'CUSTCTRL'.

USING THIS STAEMENT MEMORY IS ALLOCATED FOR MYCTRL, HAS A


REFERENCE TO SCREEN CONTROL "CUSTCTRL".

4) CREATE MEMORY FOR GRID CONTROL ALSO USING

CREATE OBJECT MYGRID


EXPORTING
I_PARENT = MYCTRL.

GRID CONTROL IS A CONTAINER OF INTERNAL TABLE FIELDS.


FOR THE GRID CONTROL ADD INTERNAL DATA FOR A DATA BASE TABLE.

5) SELECT THE DATA FROM DATA BASE TABLE INTO INTERNAL TABLE TO
POPULATE DATA TO GRID CONTROL.

SELECT * FROM SFLIGHT INTO TABLE ITAB.

6) POPULATE ITAB DATA INTO GRID CONTROL USING

CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY


EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
IT_OUTTAB = ITAB.

1) OBJECT FOR CUSTOM CONTROL AND GRID CONTROL


2) CREATE INSTANCE FOR BOTH OBJECT IN PBO.
3) SELECT THE DATA FROM DATABASE TABLE INTO ITAB
4) POPULATE THE DATA FROM ITAB INTO GRID CONTROL.
EXPORTING OPTION IN CALL METHOD OR CALL FUNCTION STATEMENT
SENDS ARGUMENTS FROM CURRRENT PROGRAM TO THE CLASS METHODS
OR FUNCTION MODULES.

IN A SIMPLE WAY USED TO SEND ARGS TO METHOD OR FUNCTION


MODULES.

IMPORTING IS TO RECEIVE ARGS FROM METHOD OR FUNCTION MODULE.

CHANGING ANOTHER OPTION FOR ARGUMENT TYPE USED FOR FLAG


VARIBLES, DEFAULT THESE ARE PASS BY REFERENCE ARGS.

HELP NUMBER FOR GRID CONTROL :


2857.chm
EXAMPLE CODE
1) TOP INCLUDE FILE
DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
MYGRID TYPE REF TO CL_GUI_ALV_GRID.
DATA ITAB TYPE TABLE OF SFLIGHT.

2)FLOW LOGIC EDITOR


PROCESS BEFORE OUTPUT.
MODULE STATUS_0123.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0123.
3) PAI AND PBO CODE.

MODULE USER_COMMAND_0123 INPUT.


LEAVE PROGRAM.
ENDMODULE.
MODULE STATUS_0123 OUTPUT.
CREATE OBJECT MYCTRL
EXPORTING
CONTAINER_NAME = 'CUSTCTRL'.

CREATE OBJECT MYGRID


EXPORTING
I_PARENT = MYCTRL.

SELECT * FROM SFLIGHT INTO TABLE ITAB.


CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
IT_OUTTAB = ITAB.
ENDMODULE.
16TH FEB
\\project-2

demo example for image control


program sap_picture_demo.
set screen 200.

TYPE-POOLS cndp.

***********************************************************************
*
* CLASS c_event_receiver
* DEFINITION
***********************************************************************
*
class c_event_receiver definition.
* The class is used to test the events raised by the cl_gui_picture
* class
public section.
methods event_handler_picture_dblclick
for event picture_dblclick of cl_gui_picture
importing mouse_pos_x mouse_pos_y sender.
methods event_handler_context_menu
for event context_menu of cl_gui_picture
importing sender.
methods event_handler_context_menu_sel
for event context_menu_selected of cl_gui_picture
importing fcode sender.
endclass.

***********************************************************************
*
* DATA
***********************************************************************
*
data function like sy-ucomm. " OK-Code field in screen 200
data url type cndp_url. " URL-field in screen 200
data url2 type cndp_url. " URL-field in screen 200
data picture_control_1 type ref to cl_gui_picture.
data picture_control_2 type ref to cl_gui_picture.
data container_1 type ref to cl_gui_custom_container.
data container_2 type ref to cl_gui_custom_container.
data event_receiver type ref to c_event_receiver.
data event_tab type cntl_simple_events.
data event_tab_line type cntl_simple_event.
data return type i.

***********************************************************************
*
* PBO
* before_output
***********************************************************************
*
module before_output output.
set pf-status 'MAIN0001'.
IF PICTURE_CONTROL_1 IS INITIAL.

* Create controls
create object container_1
exporting container_name = 'PICTURE_CONTROL_1'.
create object container_2
exporting container_name = 'PICTURE_CONTROL_2'.

CREATE OBJECT PICTURE_CONTROL_1 exporting parent = container_1.


CREATE OBJECT PICTURE_CONTROL_2 exporting parent = container_2.

* Register the events


EVENT_TAB_LINE-EVENTID =
CL_GUI_PICTURE=>EVENTID_PICTURE_DBLCLICK.
append EVENT_TAB_LINE to EVENT_TAB.
EVENT_TAB_LINE-EVENTID =
CL_GUI_PICTURE=>EVENTID_CONTEXT_MENU.
append EVENT_TAB_LINE to EVENT_TAB.
EVENT_TAB_LINE-EVENTID =
CL_GUI_PICTURE=>EVENTID_CONTEXT_MENU_SELECTED.
append EVENT_TAB_LINE to EVENT_TAB.

CALL METHOD PICTURE_CONTROL_1->SET_REGISTERED_EVENTS


exporting
EVENTS = event_tab.

CALL METHOD PICTURE_CONTROL_2->SET_REGISTERED_EVENTS


exporting
EVENTS = event_tab.

* Create the event_receiver object and set the handlers for the events
* of the picture controls
create object event_receiver.
set handler event_receiver->event_handler_picture_dblclick
FOR PICTURE_CONTROL_1.
set handler event_receiver->event_handler_context_menu
FOR PICTURE_CONTROL_1.
set handler event_receiver->event_handler_context_menu_sel
FOR PICTURE_CONTROL_1.
set handler event_receiver->event_handler_picture_dblclick
FOR PICTURE_CONTROL_2.
set handler event_receiver->event_handler_context_menu
FOR PICTURE_CONTROL_2.
set handler event_receiver->event_handler_context_menu_sel
FOR PICTURE_CONTROL_2.

* Set the display mode to 'normal' (0)


CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.

* Set 3D Border
CALL METHOD PICTURE_CONTROL_1->SET_3D_BORDER
exporting border = 1.
CALL METHOD PICTURE_CONTROL_2->SET_3D_BORDER
exporting border = 1.

* new async implementation since 4.6C


CALL FUNCTION 'DP_PUBLISH_WWW_URL'
EXPORTING
OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG'
LIFETIME = cndp_lifetime_transaction
IMPORTING
URL = url
EXCEPTIONS
OTHERS = 1.

* Load the picture by using the url generated by the data provider.
if sy-subrc = 0.
CALL METHOD PICTURE_CONTROL_1-
>LOAD_PICTURE_FROM_URL_ASYNC
exporting url = url.
endif.

CALL FUNCTION 'DP_PUBLISH_WWW_URL'


EXPORTING
OBJID = 'DEMOWORD97SAPLOGO'
LIFETIME = cndp_lifetime_transaction
IMPORTING
URL = url2
EXCEPTIONS
OTHERS = 1.

* load image
if sy-subrc = 0.
CALL METHOD PICTURE_CONTROL_2-
>LOAD_PICTURE_FROM_URL_async
exporting url = url2.
endif.

endif.
endmodule.
***********************************************************************
*
* PAI
* after_input
***********************************************************************
*
module after_input input.
case function.
* At the end of the program destroy the control
when 'BACK'.
CALL METHOD container_1->FREE.
CALL METHOD container_2->FREE.
leave to screen 0.

* Change the display mode


when 'NORMAL'.
CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.
when 'STRETCH'.
CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH.
when 'FIT'.
CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_FIT.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_FIT.
when 'NORMAL_CTR'.
CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER.
when 'FIT_CTR'.
CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER.
CALL METHOD PICTURE_CONTROL_2->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER.

* Clear the picture


when 'CLEAR'.
CALL METHOD PICTURE_CONTROL_1->CLEAR_PICTURE.

* Load a new picture


when space.
CALL METHOD PICTURE_CONTROL_1->LOAD_PICTURE_FROM_URL
exporting url = url
importing result = return.
call method cl_gui_cfw=>flush.
if return = 0.
url = text-000.
endif.
endcase.
clear function.
endmodule.
***********************************************************************
*
* CLASS c_event_receiver
* IMPLEMENTATION
***********************************************************************
*
CLASS C_event_receiver implementation.

***********************************************************************
*
* CLASS c_event_receiver
* METHOD event_handler_picture_dblclick
***********************************************************************
*
METHOD EVENT_HANDLER_PICTURE_DBLCLICK.
* for event picture_dblclick of c_picture_control
* importing mouse_pos_x mouse_pos_y.
DATA pos_x(5) type c.
DATA pos_y(5) type c.
pos_x = mouse_pos_x.
pos_y = mouse_pos_y.

IF SENDER = PICTURE_CONTROL_1.
MESSAGE I000(0K) WITH
'DoubleClick' 'Upper Picture' POS_X POS_Y. "#EC NOTEXT
else.
MESSAGE I000(0K) WITH
'DoubleClick' 'Lower Picture' POS_X POS_Y. "#EC NOTEXT
endif.
endmethod.

***********************************************************************
*
* CLASS c_event_receiver
* METHOD event_handler_context_menu
***********************************************************************
*
METHOD EVENT_HANDLER_CONTEXT_MENU.
data menu type ref to cl_ctmenu.
create object menu.
call method menu->ADD_FUNCTION exporting
fcode = text-001
TEXT = TEXT-001.
call method menu->ADD_FUNCTION exporting
FCODE = TEXT-002
TEXT = TEXT-002.
call method menu->ADD_FUNCTION exporting
FCODE = TEXT-003
TEXT = TEXT-003.
call method menu->ADD_FUNCTION exporting
FCODE = TEXT-004
TEXT = TEXT-004.
call method menu->ADD_FUNCTION exporting
FCODE = TEXT-005
TEXT = TEXT-005.

CALL METHOD SENDER->DISPLAY_CONTEXT_MENU


EXPORTING CONTEXT_MENU = MENU.
endmethod.

***********************************************************************
*
* CLASS c_event_receiver
* METHOD event_handler_context_menu_sel
***********************************************************************
*
METHOD EVENT_HANDLER_CONTEXT_MENU_sel.
DATA DISPLAY_MODE TYPE I.
IF FCODE = TEXT-001.
DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL.
ENDIF.
IF FCODE = TEXT-002.
DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH.
ENDIF.
IF FCODE = TEXT-003.
DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT.
ENDIF.
IF FCODE = TEXT-004.
DISPLAY_MODE =
CL_GUI_PICTURE=>DISPLAY_MODE_NORMAL_CENTER.
ENDIF.
IF FCODE = TEXT-005.
DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER.
ENDIF.
CALL METHOD SENDER->SET_DISPLAY_MODE
EXPORTING DISPLAY_MODE = DISPLAY_MODE.
endmethod.
endclass.

17TH FEB

FUNCTION MODULE OPTIONS ( SE37 )


IMPORT ( ARGUMENTS TAKEN BY THE FUNCTION MODULE IN THE FORM
OF PASS BY VALUE AND PASS BY REFERECE )
EXPORT
RETURN VALUES FROM THE FUNCTION MODULE USING PASS BY
VALUE OR PASS BY REFERENCE.
TABLES
IS USED FOR STRUCTURES OR INTERNAL TABLE ARGUMENTS THESE
ARE BY DEFAULT PASS BY REFERECE.
CHANGING
USED FOR FLAG VARIABLES, BY DEFAULT THESE ARE PASS BY
REFERENCE, IF ANY CHANGES IN FUNCTION MODULE WILL EFFECT THE
PROGRAM VARIABLE ALSO.
EXCEPTIONS
SOURCE CODE.
CLASS MODULES

DATA : ITAB TYPE TABLE OF KNA1.


ITAB SIZE IS THE SIZE DB TABLE.

DATA : BEGIN OF WA OCCURS 0,


KUNNR LIKE KNA1-KUNNR,
LAND1 LIKE KNA1-LAND1,
MATNR LIKE MARA-MATNR,
MBRSH LIKE MARA-MBRSH,
LIFNR LIKE LFA1-LIFNR,
END OF ITAB.

IF THE MPP ARE GETTING CREATED FROM SE38 THEN OPENS ABAP
EDITOR, IT SELF IS THE TOP INCLUDE AND MAIN CODING AREA.

SAVE_OKCODE IS THE NAME OF VARIABLE DEFINED IN ELEMENT LIST BY


SAP.

WHEN EVER THE ACTION IS RAISED ON COMPONENT, FCT ARGUMENT IS


SAVED UNDER OKCODE VAIRABLE, SO THE NAME IS PROVIDED AS
SAVE_OKCODE.

CLEAR SAVE_OKCODE.

IS THE STATEMENT USED IN PAI TO RELEASE SAVED DATA IN


SAVE_OKCODE VARIABLE.
SCROLLING

FETCH , EXIT , MODIFY ( MODI )


PAI
LEAVE TO LIST-PROCESSING AND RETURN TO 100.
WRITE 'WELCOME'.

1) CREATED INSTANCE FOR CUSTOM CONTAINER


2) CREATE INSTACE FOR GRID CONTROL
3) FETCHED DATA FROM DB INTO ITAB.
4) ADDED ITAB DATA INTO GRID CONTROL.

required classes for adding images.


1) data myctrl type ref to CL_GUI_CUSTOM_CONTAINER.
2)data mypicture type ref to cl_gui_picture.
1) CREATE INSTANCE FOR CUSTOM CONTAINER
create object myctrl
exporting
Container_name = 'custctrl'.
2) CREATE INSTANCE FOR PICTURE CONTROL.
CREATE OBJECT mypicture
exporting
parent = myctrl.
3) GET THE IMAGE FROM DATA BASE TABLE "WWWDATA" INTO URL
VARIABLE.

CALL FUNCTION 'DP_PUBLISH_WWW_URL'


EXPORTING
OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG'
LIFETIME = cndp_lifetime_transaction
IMPORTING
URL = url
EXCEPTIONS
OTHERS = 1.

4) ADD THE IMAGE ON TOP OF IMAGE CONTROL.


CALL METHOD mypicture->LOAD_PICTURE_FROM_URL_ASYNC
exporting url = url.

CNDP :

TYPES : CNDP_URL(256) TYPE C.

CNDP_LIFETIME_VOLATILE ( SESSION TIME)


CNDP_LIFETIME_TRANSACTION ( TRANSACTION TIME)
CNDP_LIFETIME_ALL ( TILL APPLICATION IS DOWN )

EXAMPLE CODE.

TYPE-POOLS CNDP.
DATA : OKCODE LIKE SY-UCOMM.
DATA : MYURL TYPE CNDP_URL.
DATA : MYCTRL TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
MYPICTURE TYPE REF TO CL_GUI_PICTURE.

CALL SCREEN 100.

MODULE STATUS_0100 OUTPUT.

create object myctrl


exporting
Container_name = 'CUSTCTRL'.
CREATE OBJECT mypicture
exporting
parent = myctrl.

CALL FUNCTION 'DP_PUBLISH_WWW_URL'


EXPORTING
OBJID = 'HTMLCNTL_TESTHTM2_SAP_AG'
LIFETIME = cndp_lifetime_transaction
IMPORTING
URL = MYURL
EXCEPTIONS
OTHERS = 1.

CALL METHOD mypicture->LOAD_PICTURE_FROM_URL_ASYNC


exporting url = MYurl.

ENDMODULE.

MODULE USER_COMMAND_0100 INPUT.

CASE OKCODE.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.

ENDMODULE.

18TH FEB

MAKING INPUT FIELD AS MANDATORY FROM SELECTION SCREEN USING


"OBLIGATORY" OPTION.

REPORT ZDEMO_SCR_VALIDATIONS.
PARAMETERS : NAME(20) TYPE C OBLIGATORY.
WRITE : NAME.

USING THIS STATEMENT FROM SELECTION-SCREEN SAP WILL NOT ACCEPT


NULL VALUES.

TO APPLY THESE OPTIONS IN MPP SCREEN USE FOLLOWING


NAVIGATIONS.

SCREEN-GROUP1 = 'G1'

SCREEN-REQUIRED = 1. ( MANDATORY )
SCREEN-REQUIRED = 0. ( OPTIONAL )

LOOP AT SCREEN.
ENDLOOP.

IS A LOOP USED IN ABAP MODULE POOL PROGRAMMING TO SET SCREEN


PROPERTIES, USE THIS LOOP IN PBO EVENT. THIS LOOP IS USED TO SET
DYNAMIC PROPERTIES FOR THE SCREENS.
MOSTLY FOR COMPANY REQUIREMENTS PROPERTIES REQUIRED ARE
1) REQUIRED : SETS MANDATORY OPTION FOR INPUT FIELDS BY
ASSIGNING VALUE AS 1.
2) INPUT : SET ENABLE OR DISABLE PROPERTY FOR THE INPUT FIELDS.
EXAMPLE 1 FOR REQUIRED OPTION.
PBO AND PAI CODE.
MODULE USER_COMMAND_1234 INPUT.
CASE OKCODE.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'MODIFY'.
IF FLAG = 'X'.
FLAG = ' '.
ELSE.
FLAG = 'X'.
ENDIF.
ENDCASE.
ENDMODULE.
MODULE STATUS_1234 OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'MOD'.
IF FLAG = 'X'.
SCREEN-REQUIRED = 1.
ELSE.
SCREEN-REQUIRED = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.

FOR ENABLE OR DISABLE MODE

MODULE STATUS_1234 OUTPUT.


LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'MOD'.
IF FLAG = 'X'.
SCREEN-INPUT = 1.
ELSE.
SCREEN-INPUT = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.

IF SCREEN-INPUT = 1, THE COMPONENT IS IN DISABLE MODE, ELSE IF


SCREEN-INPUT VALUE IS 0 THEN IS IN ENABLE MODE.

SCREEN-INVISIBLE = 1. ( PASSWORD FIELD )


SCREEN=INVISINLE = 0. ( NORMAL FIELD)

SCREEN-ACTIVE = 1. ( HIDE )
SCREEN=ACTIVE = 0. ( SHOW )

MODULE STATUS_1234 OUTPUT.


LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'MOD'.
IF FLAG = 'X'.
SCREEN-ACTIVE = 1.
ELSE.
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.

MPP'S
PROCESS ON VALUE-REQUEST. ( F4)
PROCESS ON HELP-REQUEST. (F1)

TABLE CONTROL :

IS COLLECTION OF ITAB FIELDS.


SINGLE INPUT FIELD.

SELECT-OPTIONS : RANGE OF INPUT


1) SCREEN 1 : SELECT-OPTIONS
2) TABLE CONTROL : ITAB DATA.
22ND FEB

Search Helps in abap:


Adding F4 Functionality for Input fields is called as Search Helps.

SEARCH HELP IS A DICTIONARY OBJECT IN SAP, CAN BE CREATED FROM


"SE11" TCODE.
SEARCH HELP OBJECT CAN BE CREATED FOR THE FIELDS WHICH
ARE ASSIGNED TO DATA ELEMENT.

CREATION OF THE SEARCH HELPS

SE11 -> SELECT SEARCH HELP OBJECT -> NAME THE SEARCH HELP ->
CREATE -> SELECT ELEMENTORY SEARCH HELP -> OK -> SHORT TEXT ->
NAME THE TABLE -> SPECIFY THE COLUMN -> SPECIFY IMP, EXP, LPOS AND
SPOS FIELD VALUES -> SAVE -> ACTIVATE THE SEARCH HELP.

USAGE OF THE SEARCH HELP.


1) FOR SELECTION SCREEN PARAMETERS

PARAMETERS : NAME1 LIKE KNA1-NAME1 MATCHCODE OBJECT ZSHLP930.

PARAMETERS : NAME(15) TYPE C MATCHCODE OBJECT ZSHLP930.

2)USING SEARCH HELPS FOR DATA ELEMENTS.


ADDING SEARCH HELPS FOR DATA ELEMENTS

CHANGE THE PROPERTIES OF DATA ELEMENTS FROM "SE11" -> WHILE


CHANGING
ABAPER CAN ASSIGN DOMAIN NAME IN TABSTRIP "DATA TYPE" -> TO
ASSIGN SEARCH HELP FOR THE DATAMENT CLICK ON FURTHER
CHARACTERISTICS -> ASSIGN SEARCH HELP NAME CREATED FROM SE11 ->
AND ASSIGN FIELD NAME IN PARAMETERS -> SAVE -> ACTIVATE.

THE DATA ELEMENTS ASSIGNED WITH SEARCH HELPS CAN ASSIGN "F4"
FUNCTIONALITY TO I/O FIELDS AUTOMATICALLY FROM SE38 REPORTS.

NOTE : THIS FUNCTIONALITY CAN'T BE APPLIED


FOR MPP SCREENS.
PARAMETERS : SALEID LIKE ZCNTSALES-SALEID.

3) ADDING SEARCH HELPS FOR MPP SCREENS.


OPEN I/O PARAMETERS FROM SCREEN PAINTER LAYOUT MANAGER ->
SEARCH HELP IS ONE OF THE OPTION -> NAME THE SEARCH HELP FOR
WHICH ARE EXISTING IN SE11 TO THE IO FIELD -> ADDS THE F4
FUNCTIONLITY.
P ON HELP-REQUEST(ADDING F1 FUNCTIONALITY).
P ON VALUE-REQUEST. ( F4 )

Potrebbero piacerti anche