4. Event-Driven Programming
Data tmp type i.
Start-of-Selection.
Write: / ‘This is ’.
Write: / ‘Basic List’.
At line-selection.
Write: / ‘This is ’.
Write: ‘Detail List’.
5. Events
START-OF-SELECTION.
END-OF-SELECTION.
TOP-OF-PAGE.
TOP-OF-PAGE DURING LINE-
SELECTION.
END-OF-PAGE.
AT LINE-SELECTION.
AT USER-COMMAND.
INITIALIZATION.
AT SELECTION-SCREEN.
8. Navigating Between Lists
Exit Detail list 20
ABAP Editor
Detail list 2
Cancel
Detail list 1
Basic list Back
9. Detail List and SY-LSIND
Detail list 2
Start-of-selection. SY-LSIND = 2
write: ‘Basic List’.
AT Line-selection.
CASE sy-lsind. Detail list 1
SY-LSIND = 1
WHEN 1.
write: ‘Detail List #1’.
WHEN 2.
write: ‘Detail List #2’. Basic list
ENDCASE.
10. At Line Selection
Tables customers.
Start-of-Selection.
Select * from customers.
write : / customers-name .
Endselect.
At line-selection.
Write: ‘You Choose :’ , customers-
name.
11. At Line Selection(Hide Statement)
Tables customers. List Buffer
Start-of-Selection. John
Peter
Select * from customers. David
write : / customers-name.
Hide customers-name.
Endselect. HIDE area of list level 1
At line-selection. line Field name Value
Write: ‘You Choose :’ , 1
2
customers-name
customers-name
John
Peter
customers-name. 3 customers-name David
12. Hide Area in List
Application Server Dialog WP Local Memory
Memory Space
TaskHandler
Customers Structure
3 | David | ....
ABAP Processor
List buffer
DYNPRO Processor Basic List
John
Peter HIDE area of list level 1
line Field name Value
David
DB Interface 1
2
customers-name
customers-name
John
Peter
Result Set Memory 3 customers-name David
Database Server
Database
13. At Line Selection(Hide Statement)
Detail List
Basic List
John You choose : Peter
Peter 5
David
At Line-selection
1
SY-LILLI = 2
4
HIDE area of list level 1 Customers Structure
2
line Field name Value
3 | Peter | ....
1 customers-name John
2 customers-name Peter 3
3 customers-name David
14. At Line Selection(Hide Statement)
Tables customers. List Buffer
Start-of-Selection. 00000001 John
00000002 Peter
Select * from customers. 00000003 David
write : / customers-id,customers-
name.
Hide: customers-id,customers-name. 1
HIDE area of list level
line Field name Value
Endselect. 1 customers-id 00000001
1 customers-name John
At line-selection. 2 customers-id 00000002
2 customers-name Peter
Write: ‘You Choose :’ , customers-id,
…
15. At Line Selection(Hide Statement)
Basic List Detail List
You choose : 00000002 Peter
00000001 John
00000002 Peter 5
00000003 David
At Line-selection
1
SY-LILLI = 2
4
HIDE area of list level 1 Customers Structure
2
line Field name Value 2 | Peter | ....
… … …
2
2
customers-id
customers-name
00000002
Peter
3
3 customers-id 00000003
…
16. At Line Selection
Tables: spfli,sflight. Basic List (SPFLI)
Start-of-selection.
Select * from spfli.
write : / spfli-carrid, spfli-
connid, spfli-cityto.
Hide : spfli-carrid, spfli-
connid.
Endselect. Detail List (SFLIGHT)
At Line-selection.
select * from sflight where
carrid = spfli-carrid
and connid =
17. Exercise
Basic List
Detail List
zcustomers-id
zcustomers
zcustomers-name
zsales-cust_id
zsales-qty
zsales-prod_id
zsales
18. Hide Statement (Report Heading)
List Buffer
Tables customers.
Customers Name
Top-of-page. -----------------------------
write: / ‘Customers Name’. John
Peter
uline. David
Start-of-Selection.
Select * from customers.
write : / customers-name.
Hide customers-name.
HIDE area of list level 1
Endselect.
At line-selection. line Field name Value
3 customers-name John
Write: ‘You Choose :’ , customers-name. customers-name
4 Peter
5 customers-name David
19. At Line Selection(Hide Statement)
Detail List
Basic List
Customers Name
-----------------------------
You choose : Peter
John 5
Peter
David
At Line-selection
1
SY-LILLI = 4
4
HIDE area of list level 1 Customers Structure
2
line Field name Value
3 | Peter | ....
3 customers-name John
4 customers-name Peter 3
5 customers-name David
20. Invalid Line Selection
…
TOP-OF-PAGE.
…
Hide: spfli-carrid, spfli-connid.
…
Endselect.
Clear: spfli-carrid,spfli-connid.
At Line-selection.
Select * From sflight
Where carrid = spfli-carrid and
connid = spfli-connid.
Write: / spfli-carrid, spfli-connid
,sflight-fldate.
Endselect.
Clear: spfli-carrid,spfli-connid.
22. Detail List Page Heading
...
top-of-page during line-selection.
case sy-lsind.
when 1.
write: / ‘Detail List Header #1’.
when 2.
write: / ‘Detail List Header #2’.
endcase.
.....
.....
23. ...
Column Selection
data: fieldname(30).
...
start-of-selection.
select * from spfli.
write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto.
hide: spfli-carrid,spfli-connid.
endselect.
at line-selection.
case sy-lsind.
when 1.
get cursor field fieldname.
case fieldname.
when 'SPFLI-CARRID'.
select single * from scarr where carrid = spfli-carrid.
if sy-subrc = 0.
write: / spfli-carrid,scarr-carrname.
endif.
when 'SPFLI-CONNID'.
select * from sflight where carrid = spfli-carrid and
connid = spfli-connid.
24. Column Selection : Value
...
data: fieldname(30),fieldvalue(30).
...
start-of-selection.
select * from spfli.
write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto.
hide: spfli-carrid,spfli-connid.
endselect.
at line-selection.
case sy-lsind.
when 1.
get cursor field fieldname value fieldvalue.
case fieldname.
when 'SPFLI-CARRID'.
select single * from scarr where carrid = spfli-carrid.
if sy-subrc = 0.
write: / spfli-carrid,scarr-carrname.
endif.
when 'SPFLI-CONNID'.
...
25. Creating List in Modal Dialog Box
...
at line-selection.
window starting at 10 10
ending at 65 20.
select * from sflight
where carrid = spfli-carrid and
connid = spfli-connid.
write: / sflight-carrid,sflight-connid,sfligh
fldate.
endselect.
...
26. Exercise
Basic List
zsales
zsales-qty
zsales-cust_id zsales-prod_id
zsales-sale_id
zproducts
Detail List zsalereps
zproducts-on_hand
zproducts-p_id
zsalereps-sale_id zsalereps-name
27. Drill-Down 2 Levels Example
Detail list level 2 (ZPRODUCTS)
Basic list (ZCUSTOMERS) 2
1
Detail list level 1 (ZSALES)
28. Program Example
START-OF-SELECTION.
SELECT * FROM zcustomers.
WRITE: / zcustomers-id COLOR 4 HOTSPOT, 15 zcustomers-name.
HIDE: zcustomers-id,zcustomers-name.
ENDSELECT.
CLEAR zcustomers-id. Hide Level 1
AT LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
GET CURSOR FIELD fieldname.
IF fieldname = 'ZCUSTOMERS-ID'.
SELECT * FROM zsales WHERE cust_id = zcustomers-id.
IF sy-dbcnt = 1.
WRITE: / zcustomers-id,15 zcustomers-name,30 zsales-prod_id HOTSPOT, 45 zsales-qty.
Drill Down Level 1 HIDE: zsales-prod_id.
ELSE.
WRITE: /30 zsales-prod_id HOTSPOT, 45 zsales-qty.
HIDE: zsales-prod_id.
ENDIF. Hide Level 2
ENDSELECT.
CLEAR: zcustomers-id,zsales-prod_id.
ENDIF.
WHEN 2.
GET CURSOR FIELD fieldname.
IF fieldname = 'ZSALES-PROD_ID'.
SELECT SINGLE * FROM zproducts WHERE p_id = zsales-prod_id.
Drill Down Level 2 IF sy-subrc = 0.
WRITE: / zproducts-p_id,15 zproducts-prod_name,38 zproducts-on_hand.
ENDIF.
CLEAR zsales-prod_id.
ENDIF.
ENDCASE.
31. GUI Interface
SET PF-STATUS …. => GUI
Status
SET TITLEBAR …. => GUI
Title
32. AT USER-COMMAND Event
SET PF-STATUS ‘TEST’.
...
AT USER-COMMAND.
CASE sy-ucomm.
WHEN ‘CODE1’.
.
WHEN ‘CODE2’.
.
ENDCASE.
33. Standard Toolbar : System Function
System function do not trigger event AT USER-COMMAND
%EX = Exit
%PC = Save to file
%SC = Find
%SC+ = Find next
%ST = Save in report tree
BACK = Back
RW = Cancel
PRI = Print
P- = Scroll to previous page
P-- = Scroll to first page
P+ = Scroll to next page
P++ = Scroll to last page
34. Alternative with AT USER-COMMAND
REPORT ZRSDEM002.
.
START-OF-SELECTION
SET PF-STATUS ‘BASE’.
.
.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN ‘CARR’.
SET PF_STATUS SPACE. “Set to standard
GUI interface
.
WHEN ‘FLIG’.
SET PF-STATUS ‘FLIG’.
WRITE …
35. GUI Status Excluding Function Code
REPORT ztest.
...
SET PF-STATUS ‘0100’.
...
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN ‘LIST’.
SET PF-STATUS ‘0100’ excluding ‘LIST’.
.
WHEN ‘DISP’.
SET PF-STATUS ‘0100’ excluding ‘DISP’.
WRITE …
. ....
36. GUI Status Excluding Function Code
REPORT ztest.
DATA exctab(10) occurs 0 with header line.
....
START-OF-SELECTION.
SET PF-STATUS ‘0100’.
...
exctab = ‘LIST’. APPEND exctab.
exctab = ‘TEST’. APPEND exctab.
...
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN ‘LIST’.
SET PF-STATUS ‘0100’ excluding exctab.
42. Parameters
PARAMETERS: tmp1(10) TYPE C,
tmp2(10) TYPE C lower
case,
tmp3 LIKE sy-datum
default sy-datum,
tmp4 TYPE D default
‘19991231’,
tmp5 TYPE i,
43. Parameters Example
Tables customers.
Parameters pid like customers-id.
START-OF-SELECTION.
select single * from customers where id =
pid.
if sy-subrc = 0.
write: / customers-name.
else.
write: / ‘No data found’.
endif.
44. Selection-Text
By default , the System displays the
name of the selection as text on the
Selection Screen
You Should use the Text
element/Selection texts function to store
a text line for each Selection Criterion.
54. Internal Structure of Select-options
Field Value .
Sign I = Include
E = Exclude
Option BT = Between
CP = Contains Pattern
EQ = Equal
GT = Greater Than
LT = Less Than
GE = Grater Than or Equal
LE = Less Than or Equal
NE = Not Equal
55. Internal Structure of Select-options
sname
Sn
ig Ot n
pio Lw
o Hh
ig
I CP M*
I EQ S it
mh
I BT A John
56. SELECT-OPTIONS
sname
Sign O tion
p Low Hh
ig Select * from customers
Transform
where (name like ‘M%’) or
I CP M* (name = ‘Smith’) or
I EQ Smith (name between ‘A’ and ‘Jo
I BT A John
Select * from
customers
where name
in sname.
57. INITIALIZATION Event
Tables Customers.
Select-options sname for customers-name.
Initialization.
sname-sign = ‘I’.
sname-option = ‘EQ’.
sname-low = ‘Smith’.
append sname.
Start-of-Selection.
Select * from customers
Where name in sname.
58. Select-options Options
Select-options sname for customers-
name obligatory.
Select-options sname for customers-
name no-extension.
Select-options sname for customers-
name no intervals.
59. Designing Selection Screen
Selection-screen begin of block test
with frame Title text-001.
.
Selection-screen uline.
Selection-screen skip 3.
Selection-screen comment 3(10)
text-001.
Parameters month(2) type n.
.
Selection-screen end of block test.
60. Designing Selection Screen
selection-screen begin of line.
selection-screen comment 1(7) text-001.
selection-screen position 9.
parameters month(2) type n.
selection-screen comment 16(6) text-002.
parameters year(4) type n.
selection-screen end of line.
61. Designing Selection Screen
Selection-screen begin of block name1 with frame title text-001.
Selection-screen begin of line.
Parameters test1 radiobutton group test default ‘X’.
Selection-screen comment 4(10) text-002.
Selection-screen position 35.
Parameters tcheck as checkbox.
Selection-screen comment 37(15) text-003.
Selection-screen end of line.
Selection-screen begin of line.
Parameters test2 radiobutton group test.
Selection-screen comment 4(10) text-004.
Selection-screen end of line.
Selection-screen end of block name1.
63. Checking User Input
Tables customers.
Data pcode_len type i.
Parameters pcode like customers-postcode.
At selection-screen.
pcode_len = strlen( pcode ).
if pcode_len <> 5.
message e000(38) with ‘Please enter
postcode 5 characters’.
endif.
Start-of-Selection.
select * from customers where postcode =
65. ABAP Program Processing Steps
TABLES sflight.
PARAMETERS nextday LIKE sy-datum.
INITIALIZATION.
nextday = sy-datum + 1.
AT SELECTION-SCREEN.
IF nextday < sy-datum.
MESSAGE e000(38) WITH ‘Please enter da
>= today’.
ENDIF.
START-OF-SELECTION.
SELECT * FROM sflight WHERE ... fldate =
nextday…
…