Vous êtes sur la page 1sur 178

Module Pool Programming

Topics to cover
Introduction
Overview on Screens
Menu Painter

Titlebar
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components

Module Pool Programming

ABAP Program Types


Report Programs
Conventional Report

Interactive Report

Module Pool Programming

Online Programs

Why is Module Pool Used For?

Used to Read , Insert,Update Data .


User interface is provided by various
types of screen fields such as : simple
field , table field , checkboxes ,
radiobuttons etc .

Module Pool Programming

Developing Online Programs


ABAP program
Titlebar

Menu

Screen

Module pool program can be executed by using transactions only !!!

Module Pool Programming

Topics to cover

Introduction
Overview on Screens

Menu Painter
Titlebar
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components
Module Pool Programming

Screen
User interface, contains various fields to interact with.

Normal screen : full screen view

Subscreen : Screen embedded in


another screen

Module Pool Programming

Modal Dialog Box : Popup small


screen

Creating Screens
Screens are created by
Screen Painter( Tcode :
SE51).
A screen always belongs
to a program.

Module Pool Programming

Screen Components

Screen Attributes

Screen Layout

Screen Element List

Screen Flow Logic

Module Pool Programming

Attributes of a Screen
Short Description Enter a short text
for the screen..
Screen type: There are three types of
screens basically:Normal screen : occupies a whole
GUI window.

Modal dialog box : only cover a part


of a GUI window.
Subscreen : Displayed in a subscreen
area on a different screen in the same
ABAP program.

Module Pool Programming

Attributes of a Screencontinued
Next screen : Enter the screen
number for the next screen in
navigation. If it is zero or blank , the
screen is the last in the screen
sequence . Can be changed at runtime.

Cursor position : Enter the screen


element on which the cursor will be
positioned first when control enters
into this screen. By default, this is the
first field of a screen. Can be
dynamically changed at runtime also.
Module Pool Programming

Attributes of Screencontinued
Screen group : Four-character ID,
placed in the system field SY-DYNGR
while the screen is being processed.
Allows to assign several screens to a
common screen group , for example, to
modify all of the screens in the group in
a uniform way. Screen groups are stored
in table TFAWT.

Hold data : If the user calls the


screen more than once during a terminal
session, he or she can retain changed
data as default values by choosing System
User profile Hold data.

Module Pool Programming

Screen Elements
Text field
I/O field
Listbox
Pushbutton
Text Fields

Display elements, cannot be changed

Input/ output fields

Used to display data /entering data

Dropdown List Boxes

User should choose from dropdown list only.

Pushbutton

Triggers the PAI event of the screen flow logic when clicked by
the user. There is a function code attached to each pushbutton,
which is passed to the ABAP program.

Module Pool Programming

Screen Elementscontinued
Box
Radiobutton

Checkbox

Box

Display element, used for visual grouping of related elements


on the screen

CheckBox

Special input/output fields which the user can select (value


X) or deselect (value SPACE).

Radiobutton

Only one field among more than one related fields can be
selected

Module Pool Programming

Screen Elementscontinued
Tabstrip Control
Subscreen
Table Control

Subscreens

Area on the screen in which you can place another screen.

Table Controls

Tabular input/output fields

Tabstrip
controls

Areas on the screen in which you can switch between


various pages.

Module Pool Programming

Screen Elementscontinued

Custom Control

Custom
Control
Status Icons

Container on the screen in which you can display another


control.
Display elements, indicating the status of the application
program

Module Pool Programming

Attributes Of Screen Elements


Each screen element has a set of attributes.
Attributes of screen elements can be set in the Screen Painter either for a single element, or using the element list.
Some of the attributes that you set statically in the Screen Painter
can be overwritten dynamically in the ABAP program.
Double-click on a screen element to go to its attributes page.

Module Pool Programming

Classification of the Element Attributes


General attributes
Dictionary attributes

Program attributes
Display attributes.
When you use table controls, tabstrip controls, or other
controls, there are some special sets of attributes:
Table control attributes
Tabstrip control attributes

Custom Control Attributes


Module Pool Programming

Dictionary Attributes
Format :

Data type.

From Dict.: Specifies the current ABAP


Dictionary reference. The system sets this
attribute if you created this field by
copying it from the Dictionary.
Modify : The system sets this attribute if it
detects a difference between the
Dictionary definition for the field and the
way it is used in the screen

Module Pool Programming

Dictionary Attributes continued


Conv.Exit : If you want the system to use a
non-standard conversion routine for the
conversion of field input, specify a fourcharacter code here. There are two supported
conversion routines:
CONVERSION_EXIT_ <name> _INPUT
CONVERSION_EXIT_ <name> _OUTPUT
Search help : Allows the user to specify a
search help as input to the element. Enter a
four-character search help file name or the
name of a field that contains the search help
name. In the latter case, prefix your input
with a : (colon).
Module Pool Programming

Dictionary Attributes continued


Reference Field : For tabstrip
controls: Establishes the link between a
tab title and a subscreen area.For
currencies and quantities: Specifies a
currency or unit key.
Parameter ID : ID for a SET/GET
parameter (up to 20 characters long).
This attribute is used with either the
SET parameter or GET parameter
attribute.

Module Pool Programming

Dictionary Attributes continued


SET parameter and GET parameter

If Set Parameter is chosen , the system


stores the value entered by the user in the
relevant Parameter ID parameter. If Get
Parameter is chosen , the system displays
the value in Parameter ID in the element
instead of the initial value.
Foreign key check : Determines whether
the system performs a foreign-key check
for the field from the ABAP Dictionary .
Upper/Lower case : Check this to
preserve case as is entered by the user.
Module Pool Programming

Program Attributes
Input field : Defines an element as an input
field. If the output field attribute is not set, the
data in this element is processed during the
transaction, but not displayed.
Output field : Defines an element as an
output field. Choose this attribute for text
templates that the program can use to display
output. You cannot input data in these
elements unless the input field attribute has
also been set
Output field only : Puts the field input
disabled.
Module Pool Programming

Program Attributescontinued
Required field : The field with this attribute
on is mandatory for an entry .
Right-justified : Right justifies numerical
fields in an element.

With leading zeros : Left justifies values in


numerical fields with leading zeroes.
*-entry : Allows the user to enter an *
(asterisk) in the first position of the element.
The first-character asterisk triggers a flow
logic module you declare with:
FIELD... MODULE... ON *-INPUT .
Module Pool Programming

Program Attributescontinued
Poss Entr. Button : Specifies whether a
possible entries pushbutton should appear
beside the element.

Details will be discussed while discussing


about the Listbox.

Module Pool Programming

Program Attributescontinued

Without reset : Prevents the reset character


(!) from being used to delete input from an
SAP field.
Without template : Prevents special
characters from being treated differently. If
the user enters special characters as part of
the input, they are transferred to the screen
as regular text. If you set this attribute, you
cannot set the Req.entry attribute.

Module Pool Programming

Program Attributescontinued
PossEntry : Relevant for Dropdown
listbox. There are two possible entries:
Space : System provides standard help from
domain fixed values,value table,check
table,search help etc. If the input/output field is
linked to a PROCESS ON VALUE REQUEST
module, this takes priority over the automatic
process described above.

A : Application itself determines the values in a


PBO module and passes the table and ValueID
(Name attribute) to the Value Request Manager
using the function module
VRM_SET_VALUES.
Module Pool Programming

Display Attributes
Fixed font : Displays input/output fields
and text fields in a non proportional) font.
To use Fixed font for output templates, you
must also have defined the element as an
output only field.
Bright : Highlights an element.
Invisible : Set this attribute if you want the
element to be invisible.

2-dimensional : Displays elements without


the three-dimensional shading that
normally appears around the element
border. This field is automatically set when
you use an icon.
Module Pool Programming

Display Attributescontinued
As label left/right : Used for input
disabled fields. If this attribute is set, the
text field is linked to the screen element on
its left/right in the same line. At runtime,
the text field appears as a label for that
screen element, that is, it appears to the
left/right of the screen element.
Double-Click sensitive : Makes a screen
element double-click sensitive (hotspot).
You can only set this attribute for text
fields and input/output fields.
If you set this attribute, double-clicking
the element at runtime triggers an action.
Module Pool Programming

Processing I/O Fields


Can be either conventional fields in which the user can enter values
using the keyboard or by selecting from a value list, or checkboxes or
radio buttons, for which the mouse is required.

All input/output fields have a name linking them to a screen field. The
data type of the screen field determines the input format. The ABAP
program must contain identically-named data objects that correspond to
the screen fields, otherwise data may be lost.

Module Pool Programming

Types of I/O Fields


Local Program Fields

To use local program fields from ABAP program in screen , create


them in the ABAP program, activate the program, and then copy the
fields from the ABAP program to the screen. Afterwards, however,
you must avoid changing the fields in the ABAP program.
Screen Fields with Dictionary Reference
To use information from the ABAP Dictionary, such as field labels,
field help, and input help, copy fields from the ABAP
Dictionary(structures or tables) . Then declare identically-named
fields as an interface work area in the ABAP program using the
TABLES statement.
Module Pool Programming

Import Fields from Dictionary/Program


One can create screen fields in Layout Editor from the program variables
or from ABAP Dictionary fields.
In the Layout Editor of a module Pool program, click on the pushbutton
Dictionary/Program fields-window (F6) from the Application
Toolbar.

Module Pool Programming

Import Fields from Dictionary/Program


You can get the fields from
Dictionary /program , select
the ones to be imported as
fields in the screen and press
Enter to create those fields in
the screen.

Module Pool Programming

Checking Function Code Triggered

** MZA05TOP - Top Include **


PROGRAM SAPMZA05 MESSAGE-ID ZA.
TABLES YMOVIE.

DATA

OKCODE(4).

Module Pool Programming

To check the OK Code of an


online program, you must define
this field in both the screen
(Field List) and the program work
area (Top Include). Remember
that these fields must be given
the same name.

Screen Flow Logic


Created by screen flow logic editor.
Language used to program screen
flow logic has a similar syntax to
ABAP, but is not part of ABAP itself.
Contains no explicit data declarations.
Serves as a container for processing
blocks. Four processing blocks are
present , all of which starts with the
word PROCESS
PROCESS BEFORE OUTPUT(PBO).
PROCESS AFTER INPUT(PAI).
PROCESS ON HELP-REQUEST(POH).
PROCESS ON VALUE-REQUEST(POV)
You capture your code in various modules
and attach them in various event blocks .

Module Pool Programming

PBO and PAI


PBO

User views screen for the


first time

User enters something in


the screen and finally
presses Enter or some
pushbutton in the screen
PAI
Program logic
validates user
entry and take
necessary steps

Module Pool Programming

PBO

Control returns to the


screen again with
change in
screen/fields

Dialog Step
Dialog modules are called from the screen
flow logic (screen command MODULE). A
dialog module is written in an ABAP program
for each state (PBO, PAI; POH,POV) of any
of the screens belonging to it. The PAI
modules of a screen together with the PBO
modules of the subsequent screen form a
dialog step. The interaction between the flow
logic and the screen is controlled by a dialog
processor.

Dialog modules are introduced with the


MODULE statement and concluded with the
ENDMODULE statement.
Module Pool Programming

Topics to cover

Introduction
Overview on Screens

Menu Painter
Titlebar
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components
Module Pool Programming

Menu Painter

Menu Painter

Using the Menu Painter, we can add pushbuttons to the


Application Toolbar and Screen Menu.
Created for a particular program from transaction SE41, or from
the program itself.

Module Pool Programming

Menu Painter

Menu Painter

Menubar

Module Pool Programming

Create function codes


with a 20-character
(maximum) identifier.

Application
Toolbar

Function Key
Assignments

Set GUI Status/Title in PBO Module


Screen 9000

** MZA05O01 - PBO Modules **

MODULE INITIALIZE OUTPUT.

PROCESS BEFORE OUTPUT.


MODULE INITIALIZE.

IF SY-DYNNR = 9000.
SET PF-STATUS FIRST.
SET TITLEBAR ONE.

Screen 9001
PROCESS BEFORE OUTPUT.
MODULE INITIALIZE.

ELSE.
SET PF-STATUS SECOND.
SET TITLEBAR TWO.
ENDIF.

ENDMODULE.

Notice that the call to module


INITIALIZE in the PBO of
each screen refers to the
same ABAP module.

Module Pool Programming

current
SY-DYNNR = screen
number

GUI Status Type

Screen Type

GUI Status Type

Normal

Online Status

Screen Type

GUI Status Type

Modal Dialog Box

Dialog Box

Screen type defined in


the Screen Attributes of
the Screen Painter.

Module Pool Programming

GUI status type defined


in the Menu Painter.

Checking Function Code


Triggered

** MZA05TOP - Top Include **


PROGRAM SAPMZA05 MESSAGE-ID ZA.

TABLES YMOVIE.
DATA

OKCODE(4).

Module Pool Programming

To check the OK Code of an


online program, you must define
this field in both the screen
(Field List) and the program work
area (Top Include). Remember
that these fields must be given
the same name.

Using the OKCODE


** MZA05O01 - PBO Modules **

Exit

Edit

Loop

Academy Awards
Year

1994

MODULE INITIALIZE OUTPUT.


* code to set GUI status/title
CLEAR OKCODE.

ENDMODULE.

Category

PIC

We only want to select a


record from YMOVIE if the
user has invoked the EDIT
function code (e.g., clicked
on the Edit pushbutton).

You should clear out the


OKCODE before a screen is
displayed so an old value
does not remain if the user
presses Enter.

** MZA05I01 - PAI Modules **


MODULE SELECT_LISTING INPUT.
IF OKCODE = EDIT.
*

code to select record from YMOVIE


ENDIF.

ENDMODULE.

Module Pool Programming

Function Types

Function Code

Type

Type E

Module Pool Programming

Type S

Type P

Type T

Letting the System Create the


GUI Status for You

Choose YES

Module Pool Programming

Entering Administrative Information

Module Pool Programming

Menu Painter Initial Display

Module Pool Programming

Expanding Menu Painter Display

Application Toolbar
in the Menu Painter

Standard Toolbar in
the Menu Painter
Standard Toolbar
of your program
Application Toolbar
of your program

Module Pool Programming

Assigning Function Codes to


Function Keys
To create a function code
with an icon associated to it,
double-click on the function
code, then choose an icon.

2nd.

1st.
Click once here. This is where we will
define our first function code.

Module Pool Programming

Adding an Icon to a Function Code

Choose any icon.

Module Pool Programming

Function Code Attributes

Module Pool Programming

Creating Pushbuttons on the


Application Toolbar

Type the function codes


(RUNX and RUNY) of your
buttons into the next
available white text boxes
on the application toolbar.
Click SAVE to see the
icons appear below the
white boxes.

Module Pool Programming

Adding a Menu

Select the first available


white text box for the
menu bar, now populated
with <List> and type Test
Menu. Double-click on
this menu title to open it
up (see next slide).

Module Pool Programming

Adding a Menu Path

TIP: If you wish to create a menu item with a


breakout (submenu), leave the entry in the Func.
column blank, and type a menu item name in the
Name column. Then type a function code in the
breakout menu which appears.

Type RUNX and


RUNY here.
Module Pool Programming

Automatic Recognition of Function


Codes

Module Pool Programming

Topics to cover
Introduction
Overview on Screens
Menu Painter

Title Painter
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components

Module Pool Programming

Title of a Program
Sets the title of a program in
the titlebar.

Created from transaction


SE41, or from the program
itself.
To create it from the program,
write :
SET TITLEBAR <name>
in the PBO module and and
then double-click on the name..

Module Pool Programming

Topics to cover
Introduction
Overview on Screens
Menu Painter

Title Painter
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components

Module Pool Programming

ABAP Program Components

Top Include

ABAP

PBO Modules

PAI Modules
Subroutines
Module Pool Programming

Online Program Processing Control


DYNPRO PROCESSOR
** SCREEN 9000 **
PROCESS BEFORE OUTPUT.
MODULE CLEAR.
PROCESS AFTER INPUT.
MODULE CHECK.
MODULE SELECT.

** SCREEN 9001 **
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
MODULE UPDATE.

Module Pool Programming

ABAP PROCESSOR
** INCLUDE MZAVGO01
MODULE CLEAR OUTPUT.
...
ENDMODULE.

** INCLUDE MZAVGI01
MODULE CHECK INPUT.
...
ENDMODULE.
MODULE SELECT INPUT.
...
ENDMODULE.
MODULE UPDATE INPUT.
...
ENDMODULE.

Online Program Processing Control

Module Pool Programming

Online Program Work Areas


PBO
Program Work Area

Screen Work Area


name
Aaron

phone
215-387-3232

DATA name(10).

Identical
Names

city

DATA num(12).

DATA city(20).
Philadelphia

Philadelphia

PAI
Module Pool Programming

Aaron

First Demo Online Program


1. Go to SE38.
2. Enter the name of a new
program, starting with
SAPM followed by
Y or Z.
3. Press Create.

Module Pool Programming

First Online programcontinued


4. Fill in the attribute
sheet of the program.
5. Enter Module Pool
as program type.

6. Save the program as


Local object.

Module Pool Programming

First Online programcontinued


7. Create separate includes
for :Global variables
Modules
Subroutines

8. Save and activate the


includes and this program.
9. Double-click on the
include for global variables.

Module Pool Programming

First Online programcontinued


10. Create a variable
(w_okcode) like SYUCOMM and a text
variable.
11. Activate this include
and come out.

Module Pool Programming

First Online programcontinued


12. Go to Screen
Painter (Tcode: SE51).
13. Enter the name of
the program that you
have created.
14. Enter screen number
( preferably start from
9000 onwards).

15. Click Create.

Module Pool Programming

First Online programcontinued


16. Enter a short
description for the screen.
17. Do not change any
other attributes.
18. Activate the screen
attributes.
19. Click on Layout.

Module Pool Programming

First Online programcontinued

20. In the blank screen, click


on the icon for
Input/Output field and
then bring your cursor in the
screen.
21. Left click your mouse and
pressing it, drag it in your
screen to create an I/O field.

Module Pool Programming

First Online programcontinued


22. Double-click on the field
to bring the Attribute window
for the field.
23. Enter the name of the field
as w_textfield the same
name with which you created
one text variable in the top
include.

24. Save and activate the


screen. Then, click Flow
Logic to come to the screen
flow logic editor.
Module Pool Programming

First Online programcontinued


25. This will bring you to the
screen flow logic editor.
Uncomment the PBO module
and double-click on it to
create it.

26. Select the include for


modules to create the module
under it.

Module Pool Programming

First Online programcontinued


27. Write code in the PBO
module.
28. Activate the code after
checking it and then go back
to the screen flow editor.

Module Pool Programming

First Online programcontinued


29. Now, uncomment the
module for PAI and then
double-click on it to create it.
30. Place the module in the
include for modules.

Module Pool Programming

First Online programcontinued


29. Write the code in the PAI
module.
30. Check and Activate the
program and come out to the
screen flow editor.

Module Pool Programming

First Online programcontinued


31. Activate the screen flow
logic in the Screen Flow
Logic Editor.

Module Pool Programming

First Online programcontinued


Dialog Programs cannot be
executed without a
transaction.
32. Go to SE93 and create a
transaction.
33. Enter a short text. Choose
it as Dialog transaction
and press Enter.

Module Pool Programming

First Online programcontinued


34. Enter the module pool
program name and screen
number.
35. Press Save.
37. Come out of the
transaction SE93 by pressing
Back key.

Module Pool Programming

First Online programcontinued


38. Access transaction YABC. The screen will come with the
field (w_textfield) populated as per PBO

PBO module

Module Pool Programming

First Online programcontinued


38. Enter Hello in the field and press Enter. You will get an
error message as per the PAI.

PAI module

Module Pool Programming

Topics to cover
Introduction
Overview on Screens
Menu Painter

Title Painter
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components

Module Pool Programming

Automatic Checks
Values in all
input/output
templates are
checked for

Values in
input/output
templates painted
from the ABAP
Dictionary are
checked for

Module Pool Programming

Required Field Entered ?

Proper Format ?

Foreign Key Value ?

Valid Value ?

Timing of Automatic Checks


SCREEN

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

Enter

MODULE ONE.
MODULE TWO.

NO

Automatic
Screen Field
Checks OK?

Module ONE
executed.

Module Pool Programming

YES

Module
TWO
executed.

Data transport from


screen fields to
program fields with the
same names.

Go to PBO of
next screen

Required Field Check


Fields can be marked as
required two ways: (1) use
a question mark ? as the
first character of an
input/output template or
(2) check on the field
attribute for required entry.

Enter
If a required field is not
entered, the system will
display the error message:
Required entry not made.

Module Pool Programming

Field Format Check


The AAYEAR field in the
YMOVIE table has the
NUMC (numeric character)
data type. The system will
automatically check that
the user has entered all
numbers in this field.

Enter

If a field format is incorrect,


the system will display an
appropriate error message.

Module Pool Programming

Foreign Key Check

Enter

This customer number field


painted from the ABAP
Dictionary has a foreign key
relationship maintained. Because
of this relationship, you will see a
drop-down arrow to get a list of
possible values (F4).

If the value entered does not exist in the foreign key (check)
table, the system will display the error message: Entry <x>
does not exist (please check your entry).

Module Pool Programming

Valid Value Check


The CATEGORY field in the
YMOVIE table points to a
domain with a set of valid
values. Because of this set of
valid values, you will see a
drop-down arrow to get a list
of possible values (F4).

Enter
If a valid value is not
entered, the system will
display the error message:
Please enter a valid value.

Module Pool Programming

User-Defined Checks
Method #1

Issue error or warning message


in PAI Module

Method #2

Issue error or warning


message with Flow Logic
SELECT statement

Method #3

Define valid values with Flow


Logic VALUES statement

Module Pool Programming

Flow Logic FIELD Statement


Flow Logic FIELD statement
keeps a single screen field
open for input on an error or
warning message.
Issue error or warning
message in PAI Module
Issue error or warning
message with Flow Logic
SELECT statement

Define valid values


with Flow Logic
VALUES statement

Module Pool Programming

PROCESS AFTER INPUT.


FIELD <screen field>
MODULE <module name>.
PROCESS AFTER INPUT.
FIELD <screen field>
SELECT * FROM <table> . . . .
PROCESS AFTER INPUT.
FIELD <screen field>
VALUES (<value1>, <value2>).

PAI Module Check


** MZA03I01 - PAI Modules **

PROCESS AFTER INPUT.


FIELD YMOVIE-AAYEAR
MODULE SELECT_LISTING.

MODULE SELECT_LISTING INPUT.


* code to select record from YMOVIE
IF SY-SUBRC <> 0.

This Flow Logic FIELD


statement will leave the
YMOVIE-AAYEAR screen field
open for input if an error or
warning message is issued in
the SELECT_LISTING module.

MESSAGE E001.
ENDIF.
ENDMODULE.

Enter

Module Pool Programming

Flow Logic SELECT Check


Flow
Logic
Command

PROCESS AFTER INPUT.


FIELD YMOVIE-AAYEAR
SELECT * FROM YMOVIE
WHERE AAYEAR = YMOVIE-AAYEAR
AND CATEGORY = YMOVIE-CATEGORY
INTO YMOVIE
WHENEVER NOT FOUND
SEND ERRORMESSAGE 001.

This Flow Logic SELECT statement will retrieve one record. If no record matches,
an error message is issued. The Flow Logic FIELD statement will leave the
YMOVIE-AAYEAR screen field open for input if this error message is issued.

Enter
Module Pool Programming

Flow Logic VALUES Check


Flow
Logic
Command

PROCESS AFTER INPUT.


FIELD YMOVIE-AAYEAR
VALUES (BETWEEN 1927 AND 1996).
This Flow Logic VALUES statement defines a set of valid values
for the screen field specified in the FIELD statement. If the value
entered in this field is not in the valid set, an error message will be
issued by the system. The Flow Logic FIELD statement will leave
the YMOVIE-AAYEAR screen field open for input if this error
message is issued.

Enter

Module Pool Programming

Multiple Fields Open for Input


Flow
Logic
Command

PROCESS AFTER INPUT.


CHAIN.
FIELD: YMOVIE-AAYEAR,
YMOVIE-CATEGORY.
MODULE SELECT_LISTING.
ENDCHAIN.

This Flow Logic CHAIN and ENDCHAIN group the FIELD statements and the
MODULE statement together. The Flow Logic FIELD statements will leave both
the YMOVIE-AAYEAR and YMOVIE-CATEGORY screen fields open for input if
an error or warning message is issued in the SELECT_LISTING module.

Enter
Module Pool Programming

Conditional Module Calls


Screen language also allows you to make PAI module calls dependent
on certain conditions by using the MODULE statement together with
the FIELD statement. You can apply conditions to both single fields
and groups of fields. Conditional module calls can help you to reduce
the runtime of your program, particularly with modules that
communicate with database tables.

Module Pool Programming

Conditional Module CallsContinued

Module Pool Programming

AT EXIT-COMMAND

PROCESS AFTER INPUT.

MODULE END AT EXIT-COMMAND.

Module END will be executed only if


the user invoked a function code with
the E function type.

Module Pool Programming

Timing of AT EXIT-COMMAND
Type E
Function Code

PROCESS AFTER INPUT.


MODULE CHECK.

SCREEN

MODULE END AT EXIT-COMMAND.

NO
Module END
executed.

Data transport from screen


fields to program fields with
the same names.

Module Pool Programming

Automatic
Screen Field
Checks
OK?

YES

Module CHECK
executed.

Go to PBO of
next screen

AT EXIT-COMMAND Example

PROCESS AFTER INPUT.


FIELD YMOVIE-AAYEAR
VALUES (BETWEEN 1927 AND 1996).
CHAIN.
FIELD: YMOVIE-AAYEAR, YMOVIE-CATEGORY.
MODULE SELECT_LISTING.
ENDCHAIN.

MODULE END AT EXIT-COMMAND.

If the user invokes the EXIT function code (e.g., clicking


on Exit), we will terminate the transaction. Because this
function code is type E, we can use AT EXIT-COMMAND
to have the module END executed immediately (even
before the automatic field checks).

Module Pool Programming

F1 Field Help
If the user chooses the F1 key ,
a help text appears for the field
in which the cursor is currently
positioned.
Data element documentation of a
Dictionary field automatically
comes in the screen .To change
that or to add documentation to
that , choose the screen field and
then do as is directed by this
diagram.

Module Pool Programming

Maintaining Supplementary Documentation


Enter the supplementary documentation
number.

Enter the modification name. This can


be viewed by tcode : CMOD later.

Module Pool Programming

Continued
Enter the documentation in the
SAPScript opened. Save and
activate it.

Module Pool Programming

Viewing Supplementary Documentation


Go to the transaction code. Select
the field and press F1 followed by
F7.
Check the radiobutton for DE
Supplement and press F4 to choose
your supplementary documentation
number from the dropdown box.
Press Enter.
Next time when you press F1 in the
field again, your documentation will
be shown along with the standard
documentation.
Such screen-specific documentation
is stored in table THLPF.

Module Pool Programming

Selecting Supplementary Documentation


from Program
Instead of specifying the
supplementary documentation
number in the screen, you can also
specify it in the screen-flow logic
under POH event.

Then, press F1 in the screen


field. You will see your own
documentation.

Module Pool Programming

Showing other SAP Standard Data Element


Documentation

Screen Flow Logic for the field

This is useful when you want to


show SAP Standard documentation
for a field in the screen, which is
originally not referenced from Data
Dictionary.
Function module :
HELP_OBJECT_SHOW_FOR_FIE
LD is used in the POH module for
the screen field.

ABAP Logic to show


Documentation

Module Pool Programming

Input Help(F4 Help)

Input Help from the ABAP Dictionary


Input Help on the Screen
Input Help in Dialog Modules

Module Pool Programming

Input Help from ABAP Dictionary


F4 Help from DDIC can be achieved by any one of the following:-

1. By using a Dictionary field to which a search help is attached .


2. Key fields of the check table can provide input help if Dictionary
Check is on .
3. The domain of the field can contain fixed values or value ranges .
4. There can be a value table for the domain of the field .
(A check is not implemented by simply entering a value table! The
check against the value table only takes effect when a foreign key
has been defined.)
5. Fields with the types DATS and TIMS have their own predefined
calendar and clock help that can be used as input help.
Module Pool Programming

Input Help on the Screen


Within the Screen Painter, you can
define two types of input help:
1. The FIELD statement with
one of the additions VALUES
or SELECT. F4 help in such
cases will be displayed only
if it is not earlier available by
any other means.
2. Linking a search help directly
to a screen field.

Module Pool Programming

Input Help in Dialog Modules


Dialog modules can be called in the POV events as :PROCESS ON VALUE-REQUEST .
FIELD <F1> MODULE <MOD1> .

When the user presses F4 on field <f1> , the module <MOD1> is called
.In the module, U call some relevant function modules that provides the
list of values .

Module Pool Programming

POPUP_WITH_TABLE_DISPLAY
Declare any internal table and
populate it with values which you
want to display on F4 help.
Pass it to this function module.It
returns the index of the row of the
internal table record selected.
Use it to get the selected
information in your screen field.

Module Pool Programming

F4IF_INT_TABLE_VALUE_REQUEST
Declare any internal table and populate it
with values which you want to display on
F4 help.
Pass values to interface parameters as
follows:-

Retfield = Internal table field name whose


value is to be returned
Dynprofield = Screen Field name where
value is to be populated by F4 help .

Value_org = S
Value_tab = Internal table containing
records.
Also,populate DYNPROG and DYNPR
with current program name and screen
number.

Module Pool Programming

Dropdown Listbox
Basically an I/O field in which the user can
choose value from a list , but cant enter
anything . Input help button cannot be used
for it .
To convert an I/O field in a screen to listbox,
set the value L or LISTBOX for the
Dropdown field in its attribute window in
the Screen Painter.

Module Pool Programming

Values from Dictionary


If there is an automatic F4 help
available for the I/O field from ABAP
Dictionary, just do the following :Select Listbox in the Dropdown
field.
Keep the Value List field empty.

Module Pool Programming

Values from Program

Module Pool Programming

1.

In the attributes window for the I/O field,


maintain Dropdown = Listbox , Value list =
A in the screen painter.

2.

Include type-pools VRM in the Global area of


the program. Declare an internal table ITAB
of type vrm_values and a header area for it.

3.

In the POV module for the listbox, populate


the internal table ITAB with key = key value,
text = descriptive text.

4.

Call function module VRM_SET_VALUES ,


pass the internal table ITAB and technical
name of the listbox screen field.

Example

Screen Flow Logic

Effect : Listbox in Screen

ABAP Logic in POV module

Module Pool Programming

Defaulting Field Values

Method #1

PBO Module

Method #2

Parameter IDs

Method #3

Hold Data

Module Pool Programming

PBO Module
Screen 9000
PROCESS BEFORE OUTPUT.
MODULE INITIALIZE.

PBO Module
Execute
transaction

Module Pool Programming

** MZA04O01 - PBO Modules **


MODULE INITIALIZE OUTPUT.
CLEAR YMOVIE.
YMOVIE-AAYEAR = 1994.
YMOVIE-CATEGORY = PIC.
ENDMODULE.

Parameter IDs
AAYEAR Data Element

Parameter ID Memory

Parameter
ID YYR

YYR = <value>

YCT = <value>
CATEGORY Data Element

Paramete
r
ID YCT

Module Pool Programming

This memory is
user and logon
specific

Using Parameter IDs

SET/GET
PARAMETER ID
ABAP Statement
OR

SPA/GPA
Field Attributes

Module Pool Programming

SET/GET PARAMETER ID Statement


** MZA04O01 - PBO Modules **
MODULE INITIALIZE OUTPUT.
YMOVIE-AAYEAR = 1994.
YMOVIE-CATEGORY = PIC.

ENDMODULE.

SET

GET PARAMETER ID YCT FIELD YMOVIE-CATEGORY.

GET

GET PARAMETER ID YYR FIELD YMOVIE-AAYEAR.

** MZA04I01 - PAI Modules **

MODULE SELECT_LISTING INPUT.

YYR = 1994

* code to select record from YMOVIE


SET PARAMETER ID YYR FIELD YMOVIE-AAYEAR.

YCT = PIC

SET PARAMETER ID YCT FIELD YMOVIE-CATEGORY.

ENDMODULE.

Module Pool Programming

Parameter ID Memory

SPA/GPA Field Attributes


You can check the
GPA field attribute
instead of coding the
GET PARAMETER ID
statement in a
PBO module.

You can check the SPA


field attribute instead of
coding the SET
PARAMETER ID statement
in a PAI module.

Module Pool Programming

Notice the
parameter
ID name

Hold Data
System > User profile > Hold data
menu path

Screen Attributes
Short Description
Screen Type

Hold Data

If the user selects the System > User profile > Hold data menu path on a
screen and the screen has been set up for Hold data in the screen
attributes, the values on the screen will be saved by the system for the
next time the user comes to the screen during the current logon.

Module Pool Programming

Finding out the Cursor Position


GET CURSOR FIELD <f> [OFFSET <off>]
[LINE <lin>] [VALUE <val>] [LENGTH <len>].

<f> : Variable name on which the name of the current cursor field is
received
<off> : Cursor position within the screen element .
<lin> : Line number of the table to the variable if the cursor is positioned
in a table control( If not in a table control, <lin> is set to zero)
<val> : Contents of the screen field in display format, with all of its
formatting characters, as a string to the variable <val>.

<len> : Display length of the field to the variable <len>.

Module Pool Programming

Cursor Position

Upon entering a screen, the cursor will


automatically be positioned in the first
input/output template open for input unless
you position the cursor in a different field
using the screen attributes or a PBO module.

Module Pool Programming

Positioning the Cursor


Screen Attributes
Short Description
Screen Type
Cursor position

YMOVIE-NOTES

** PBO Module **

OR

MODULE INITIALIZE OUTPUT.


SET CURSOR FIELD
YMOVIE-NOTES.
ENDMODULE.

New Cursor
Position

Module Pool Programming

LEAVE SCREEN Statement


Next Screen
attribute is 9001.

** PAI Modules **

MODULE ONE INPUT.


...

Screen 9000

LEAVE SCREEN.
...

PROCESS BEFORE OUTPUT.

MODULE INITIALIZE.

ENDMODULE.
MODULE TWO INPUT.
...

PROCESS AFTER INPUT.

ENDMODULE.

MODULE ONE.
MODULE TWO.

When LEAVE SCREEN is encountered, the system


immediately terminates the current screens PAI
event and goes to the PBO event of the screen
specified in the Next Screen attribute.

Module Pool Programming

SET SCREEN Statement


** MZA06I01 - PAI Modules **

Next Screen
attribute is 9000.

MODULE SELECT_LISTING INPUT.


IF OKCODE = EDIT.
SET SCREEN 9001.

Screen 9000
PROCESS AFTER INPUT.

code to select record from YMOVIE


ENDIF.

ENDMODULE.

FIELD YMOVIE-AAYEAR
VALUES (BETWEEN 1927 AND 1996).
CHAIN.
When SET SCREEN is encountered,
FIELD: YMOVIE-AAYEAR,
the system temporarily ignores the
YMOVIE-CATEGORY.
value in the Next Screen attribute
MODULE SELECT_LISTING.
and uses the value specified
ENDCHAIN.
instead. The current screens PAI
processing is not terminated.

Module Pool Programming

LEAVE TO SCREEN Statement


** MZA06I01 - PAI Modules **

Next Screen
attribute is 9000.

MODULE SELECT_LISTING INPUT.


IF OKCODE = EDIT.
*

Screen 9000
PROCESS AFTER INPUT.

code to select record from YMOVIE


LEAVE TO SCREEN 9001.
ENDIF.

ENDMODULE.

FIELD YMOVIE-AAYEAR
VALUES (BETWEEN 1927 AND 1996).
CHAIN.
When LEAVE TO SCREEN is
FIELD: YMOVIE-AAYEAR,
encountered, the system
YMOVIE-CATEGORY.
terminates the current screens
MODULE SELECT_LISTING.
PAI event and immediately goes
ENDCHAIN.
to the PBO event of the screen
specified in the statement.

Module Pool Programming

CALL SCREEN Statement


Exit

Update

Academy Awards
Titlebar

Year
Category

Enter critics name

Screen 9002 is a
Modal dialog box
type screen with a
dialog box type
GUI status.

Dean

Winner
Notes
Critic

Exit

should have won.

Enter Name

CALL SCREEN 9002 STARTING AT 30 5 ENDING AT 60 10.


This ABAP code would be in a PAI
module for screen 9001.
Module Pool Programming

Leaving a Called Screen


Next Screen
attribute is 9002.
** MZA06O01 - PBO Modules **

Screen 9002
PROCESS BEFORE OUTPUT.
MODULE INITIALIZE.

MODULE INITIALIZE OUTPUT.


* set GUI status and titlebar
* depending on screen number
* and clear okcode
ENDMODULE.

PROCESS AFTER INPUT.


MODULE END.

** MZA06I01 - PAI Modules **


MODULE END INPUT.
LEAVE TO SCREEN 0.

Because screen 9002 was


called, SCREEN 0 refers to
the calling screen (9001).
Module Pool Programming

ENDMODULE.

Modifying Screen Fields Dynamically


Attributes of screen elements are set
statically in the screen painter , some of
which can be changed dynamically at
runtime by ABAP programs .
Almost all screen elements have four screen
groups in their Attribute modal window.
Values in the screen-groups helps to control
the attributes of the screen elements
dynamically.
To modify the attributes of screen elements ,
system table SCREEN is used , which
represents the screen the user is using .

Module Pool Programming

Significance of SCREEN
SCREEN can be viewed as an internal table, with one record corresponding to
each screen elements in the screen. Different fields of SCREEN describes
various attributes of the screen fields. Some of the significant fields are
described below:Field Name

Significance

Name

Screen Field Name

Group1,2,3 and
4

Various modification screen-groups- as appears in attribute


window

Required

1 = Mandatory for Entry/ 0 = Optional

Input

1= Ready for Input/ 0 = Input Disabled

Output

1=Output field / 0= Field not for output

Invisible

1=Field is invisible / 0 = Field is visible

Intensified

1=Field is intensified/ 0 = Field is not intensified

Active

1=Field is active/ 0 = Field is not active

Module Pool Programming

Code to manipulate the attributes


In the PBO module for the screen,
the attributes for the screen
elements are modified
dynamically.
SCREEN is treated as an internal
table and its various field contents
are modified, which gets reflected
in their screen behaviors.

Module Pool Programming

Table Control

Table Control is a screen control for editing and displaying tabular data.
Table controls can be created in a program from two ways:From Data Dictionary
From Internal Table

Module Pool Programming

Topics to cover
Introduction
Overview on Screens
Menu Painter

Title Painter
ABAP program for Module Pools - overview
Screen Control with ABAP
Advanced Module Pool Components

Module Pool Programming

Table Control from Internal Table


Create a module Pool program from
SE38. Declare an internal table in the
program. Save, activate and come out.
Go to SE51. Create a screen for the
program.

From the left hand side toolbar in


the screen, click the icon for table
control and draw a table-control in
the screen. Name the table
control in the attributes window.

Module Pool Programming

Get Fields for Table Control


1. Click this pushbutton
when a screen shown
below will appear

3.Select fields of the


internal table for table
control.Press Enter

Module Pool Programming

2. Check this pushbutton when the


screen will be populated with
information from program

Insert the Selected Fields into Table


Control

You will get the two fields in the


screen.Drag and drop them inside
table control

Module Pool Programming

Add Column Texts for the Fields inside


Table Control

Click the icon for Textbox and


create two textboxes as field
label. Drag and drop them in the
table control header area

Module Pool Programming

Add horizontal and Vertical Seperators

Check for the horizontal and vertical seperators


For the table control. Save the Screen. Come out.

Module Pool Programming

Add LoopEndloop Statements in the


PBO and PAI
In the screen flow logic editor, add
LOOPENDLOOP on the internal table
in PBO and PAI as shown in the diagram.

Check and Activate.

Module Pool Programming

Declare the Table Control in the Program


Go inside the ABAP program and
declare a control for the table
control.
This creates a table control
tabctrl of the type TABLEVIEW.
The reference screen for the
initialization is the screen 9000.

Check and activate the


program.

Module Pool Programming

Add one PAI loop


In the screen flow editor, add one
module with the LOOPENDLOOP
statement. Create that module and
add lines of ABAP code to ensure
that the internal table content gets
modified/appended as per the user
entry in the table control.
Now, you will be able to
insert/update records into the
table control.

Module Pool Programming

Table Control from Database Table


1.

Create a module pool program. Use the structure of the database table to
be used using the TABLES addition. Also, use an internal table of similar
structure to handle the records in the table control.

2.

Create a table control in the screen from the database table( take it from
Dictionary, and not from the program).

3.

Create appropriate PBO and PAI modules

Module Pool Programming

PBO

PBO and PAI

PAI

Screen Flow Logic

Module Pool Programming

Retrieving Records into Table Control


One can retrieve information into table
control at appropriate place using SQL.
Selecting into the internal table will
suffice. One must set the table control
variable LINES to total number of
records retrieved in the table control
after that. This will ensure vertical
scrolling of the information in the table
control.

Module Pool Programming

Inserting/Deleting New Records in Table


Control
Demand:There will be records inside the table control.
User will select one/more than one records in table control.
Then, on pressing a pushbutton Delete, the selected records will get
deleted from the table control.
If the user selects a single record, and presses a pushbutton Append, a
blank line will open up before the selected row for user input.
To-do:To implement the request specified above, following needs to be done:1.

Add one column of single character into the internal table.

2.

Modify the attributes of the table control.

3.

Change the PAI code to accommodate for the change.

Module Pool Programming

Change Table Control Attributes


One new single character field is
added to the internal table. This new
field will be used to identify records
which are selected by the user in the
screen.
In the attributes window for the table control,
choose for Multiple Line selection .
Tick the w/Selcolumn and enter the name of
the single character column.
This means that whenever the user will select
a record in the table control, the value for the
field STAT for that record in internal table
ITAB will be X.

Module Pool Programming

Add code in PAI module


Records selected by the user in
the table control have their field
STAT = X. This value is
tracked for the records and
appropriate action is taken.

Module Pool Programming

Search for Records in a Table Control


Demand:There is a table control populated with records.
User will press Find pushbutton and enter the search criteria in a field and
press Enter.

Program will search for that string in the Description field for all records and
will stop at the first search. The record where the search ends becomes the
first line in the table control.
To-do:1.

In the PAI module, search for the function code of Search pushbutton.

2.

Accept input from user.

3.

Loop through the internal table to find the search criteria in the second field
for all the records.

4.

Stop on first match and make it the first record of the table control.

Module Pool Programming

Adjust the PAI module for Search in Table


Control
All the records of the underlying
internal table is searched.
The index of the records for the
first match is preserved and the
loop is terminated.
Top line of the table control is
set as the index of the record
where the first match is found.

Module Pool Programming

Structure of the Table Control Variable

Cols is an internal table with total records = total fields in the internal table.
Each field of cols describe the attribute of the fields in the table control.

Module Pool Programming

Structure of Internal Table COLS


Following lines of code makes the first
field in the table control mandatory.

Module Pool Programming

Subscreens
Main Screen

Allows to embed one screen within


another at runtime . A subscreen
screen is embedded in subscreen area
of main screen .
Using subscreen is similar to using
includes in ABAP programs . The
flow logic of the embedded screen is
also embedded into the flow logic of
the main screen .

Subscreen

Module Pool Programming

Subscreens are used by screen exits ,


tabstrip controls etc .

Steps to follow

1.

Define subscreen area in the


main screen.

2.

Define a subscreen and develop


its PBO and PAI in the same
program or another.

3.

Include the subscreen in the


subscreen area of the main
program by writing code in the
Screen Flow Logic of the main
program.

Module Pool Programming

Drawing Subscreen area

Draw a subscreen area in the screen


using the appropriate icon

Module Pool Programming

Name the area

Create a Subscreen
Create one subscreen in the same
or different program.

Enter Description, Screen type as


Subscreen and Next Screen as
Same subscreen number.
If subscreen is created in a
different program, then same
interface work areas (here
MARA) or variables through
which one will communicate to
other should exist in both the
programs.
Module Pool Programming

Insert Components in Screen Painter for


the Subscreen
Design the subscreen in the Screen
Painter. Ensure that the screen will fit
in the subscreen area of the main
painter.

Module Pool Programming

Write PBO and PAI codes for the


subscreen.
PBO module of the
subscreen in the same
program retrieving
information for its I/O
fields based on the user
input for material in the
main program.
PAI module validating
user input in the subscreen
fields.

Module Pool Programming

Call the Subscreen in the Subscreen


area of the main Program
In the PBO event of the
screen flow logic editor for
the main program, call the
subscreen 9001 of the same
program in the subscreen
area SUB1.
In the PAI event of the
main program, call the
subscreen area.
At runtime, when the CALL SUBSCREEN statement is encountered,
control goes through the PBO or PAI modules of the subscreen at
that time.

Module Pool Programming

Tabstrip Control
Screen object consisting of two or
more pages.
Each tab page consists of a tab title
and a page area. If the area
occupied by the tabstrip control is
too narrow to display all of the tab
titles, a scrollbar appears, allowing
you to reach the titles that are not
displayed.
There is also a pushbutton that
allows you to display a list of all
tab titles.
Module Pool Programming

Structure of a Tab Page

1. Define the tab area on a


screen and the tab titles.
2. Assign a subscreen area to
each tab title.
3. Program the screen flow logic.
4. Program the ABAP processing
logic.

Module Pool Programming

Paging through the Tabstrip Control


Paging through the tabstrip control can be done:

At the SAPGui

On the application server.

In the first case, each tab page has its own subscreen. In the second, there
is a single subscreen area that is shared by all tab pages.
Paging in SAPGUI :Separate subscreen areas are assigned to separate tab pages and function
codes of the tab titles are defined with type P(local GUI function) . In
screen flow logic , the subscreens are called in the PBO event. All the tab
pages reside locally at SAPGUI . PAI event is not triggered when the
user selects a tab page . All the input checks for all the subscreens are
performed at same time .
Module Pool Programming

Scrolling in the SAPGui


Create a tabstrip control
TABS from the tabstrip icon in
the left-hand toolbar.

Icon to create tabstrip


control

Module Pool Programming

Creating more than one tab pages


By default, there are two tab pages. Set
the tab title = desired number of pages
if you want to have more number of tab
pages.

Module Pool Programming

Create subscreen area for each of the tab


pages
Create subscreen area
SUB1,SUB2 and SUB3 for
tabpages Tab1,Tab2 and Tab3
respectively.

Module Pool Programming

Adjust the attributes of three tab


pages

Set function
type = P for
paging in
local Gui

Module Pool Programming

The screen looks like this

Save and activate the screen.

Module Pool Programming

Create three subscreens


9001,9002 and 9003
9001-Screen and
PBO

9002-Screen and
PBO

9003-Screen and
PBO

Module Pool Programming

Include the Subscreens in the PBO


and PAI of the Main program
Include the subscreens in
different subscreen areas by
CALL SUBSCREEN in the
screen flow editor of the main
program .

CALL SUBSCREEN at PBO


calls the PBO modules of the
subscreens and CALL
SUBSCREEN at PAI calls the
PAI modules of the subscreens at
the main screen PAI.

Module Pool Programming

Declare the tabstrip control and set


the activetab
Declare the tabstrip control at the
global area of the main program.

Set the active tab page for the


tabstrip control for once only by
assigning the function code of the
tab page in the attribute
ACTIVETAB of the tabstrip
control in the PBO module of the
main program.
Module Pool Programming

Your program is ready

Module Pool Programming

Paging in Application Server


1.Create tabstrip
control with
tabpages.
2.Function type
field should
be blank.
3.All the tab
pages should
contain same
subscreen
area

Module Pool Programming

Adjust Screen Flow Logic of


Main Program
PBO of main program should adjust
the active tab for the first time and
each time the user pages from one
tabpage to another. The screen
number to be shown is decided by
it.
CALL SUBSCREEN should occur
only once in PBO and once in PAI.

Module Pool Programming

PBO module of the main


program
PBO of main program decides
the active tab page as per the
user desire for pagination. It
sets a variable w_number with
correct screen number, which
is used in the CALL
SUBSCREEN statement at
PBO in the screen flow logic.
The function code of the tab
page to be navigated is set in
the ACTIVETAB attribute of
the tabstrip control.
Module Pool Programming

Your program is ready

Module Pool Programming

Status Icon

Display Elements , used to represent the


state of a program graphically .
Created in screen painter . A name and
screen field(status field) is assigned to it
.Text and quickinfo texts can also be
attached to the icon in PBO event of
ABAP program .

Module Pool Programming

Instructions for Status Icon


Create a status icon in the screen and give it a name .

Module Pool Programming

Instructions for Status Icon


DATA:
STATUS_ICON TYPE ICONS-TEXT,
ICON_NAME(20),
ICON_TEXT(10).

In ABAP program , create a field of type


icons-text with the same name as
the status field .
Then call the function module
ICON_CREATE in PBO event to
define the icon . Maintain the
following interface parameters:NAME : Name of the required icon
TEXT : Text that will appear after the
icon in the screen .
INFO : Quickinfo text , which appears
whenever the mouse pointer is
positioned over the icon .

Module Pool Programming

Vous aimerez peut-être aussi