ABAP Chapter 4
description
Transcript of ABAP Chapter 4
ABAP Chapter 4
Event-driven Programming Selection Screen
Event-driven Programming
Application Driven Programming
REPORT ztest.DATA: today TYPE D.today = ‘19991231’.today = today + 1.WRITE: / today.
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’.
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.
AT LINE-SELECTION Event(Drill-down Report)
AT LINE-SELECTION
- -Start of selection. Write : ‘Basic List’.
-At Line selection. Write : ‘Detail List’.
Basic list
DoubleClick
Navigating Between Lists
Basic list
Detail list 20Exit
Detail list 1
Detail list 2
ABAP Editor
Back
Cancel
Detail List and SY-LSIND
Start-of-selection. write: ‘Basic List’.
-AT Line selection. CASE -sy lsind. WHEN 1. write: ‘Detail List #1’. 2 22
write: ‘Detail List #2’. .
Detail list 2SY-LSIND = 2
Detail list 1SY-LSIND = 1
Basic list
At Line Selection
Tables customers.- -Start of Selection.
Select * from customers. - write : / customers name . Endselect.
-At line selection. Write: ‘You Choose :’ , custome
-rs name.
At Line Selection(Hide Statement)
Tables customers.- -Start of Selection.
Select * from customers. -write : / customers name.
-Hide customers name. Endselect.
-At line selection. Write: ‘You Choose :’ , -customers name.
HIDE area of list level 1
line Field name Value1 customers-name John 2 customers-name Peter
3 customers-name David
JohnPeterDavid
List Buffer
Hide Area in ListHide Area in ListDialog WP
TaskHandler
DYNPRO Processor
ABAP Processor
Database
Local Memory
Memory Space
DB Interface
List buffer
Result Set Memory
Database Server
Application Server
3 | David | ....
Customers Structure
JohnPeterDavid
Basic List
HIDE area of list level 1line Field name Value1 customers-name John 2 customers-name Peter3 customers-name David
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value1 customers-name John 2 customers-name Peter
3 customers-name David
JohnPeterPeterDavid
You choose : Peter
Basic List Detail List
SY-LILLI = 2
3 | Peter | ....
Customers Structure
1
2
3
4
At Line-selection
5
HIDE area of list level 1line Field name Value1 customers-id 00000001 1 customers-name John
2 customers-id 000000022 customers-name Peter
…
At Line Selection(Hide Statement)
Tables customers.- -Start of Selection.
Select * from customers. write : / customers-id, -customers name. Hide: customers-id, -customers name. Endselect.
-At line selection. Write: ‘You Choose :’ , customers-id, -customers name.
00000001 John00000002 Peter00000003 David
List Buffer
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value… … …2 customers-id 00000002 2 customers-name Peter
3 customers-id 00000003…
00000001 John00000002 Peter00000002 Peter00000003 David
You choose : 00000002 Peter
Basic List Detail List
SY-LILLI = 2
2 | Peter | ....
Customers Structure
1
2
3
4
At Line-selection
5
At Line Selection
Tables: spfli,sflight.Start-of-selection. Select * from spfli. write : / spfli-carrid, spfli-
connid, spfli-cityto. Hide : spfli-carrid, spfli-
connid. Endselect.At Line-selection. select * from sflight where carrid
= spfli-carrid and connid =
spfli-connid. write: / spfli-carrid, spfli-
connid,sflight-fldate. endselect.
Basic List (SPFLI)
Detail List (SFLIGHT)
Exercise
zcustomers
zsales
Basic List
Detail Listzcustomers-id
zcustomers-namezsales-cust_id
zsales-prod_id
zsales-qty
Hide Statement (Report Heading)
Tables customers.Top-of-page. write: / ‘Customers Name’. uline.
- -Start of Selection. Select * from customers. -write : / customers name.
-Hide customers name. Endselect.
-At line selection. -Write: ‘You Choose :’ , customers name.
HIDE area of list level 1
line Field name Value3 customers-name John 4 customers-name Peter
5 customers-name David
Customers Name-----------------------------JohnPeterDavid
List Buffer
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value3 customers-name John 4 customers-name Peter
5 customers-name David
Customers Name-----------------------------JohnPeterPeterDavid
You choose : Peter
Basic List Detail List
SY-LILLI = 4
3 | Peter | ....
Customers Structure
1
2
3
4
At Line-selection
5
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.
Page Heading
- -Start of selection. Write: ‘Basic List’.
-At Line selection. Write: ‘Detail List’.
- -Top of page. -Write: ‘Header Basic List’.
- - -Top of page During Line selection. -Write: ‘Header Detail List’.
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...........
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. ...
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'. ...
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,sflight-
fldate. endselect. ...
ExerciseBasic List
Detail List
zsales
zsalerepszproducts
zsales-cust_id
zsales-prod_id
zsales-qty
zsales-sale_id
zsalereps-sale_id
zsalereps-namezproducts-on_hand
zproducts-p_id
Drill-Down 2 Levels Example
12
Detail list level 1 (ZSALES)
Detail list level 2 (ZPRODUCTS)
Basic list (ZCUSTOMERS)
Program ExampleSTART-OF-SELECTION. SELECT * FROM zcustomers. WRITE: / zcustomers-id COLOR 4 HOTSPOT, 15 zcustomers-name. HIDE: zcustomers-id,zcustomers-name. ENDSELECT. CLEAR zcustomers-id.
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. HIDE: zsales-prod_id. ELSE. WRITE: /30 zsales-prod_id HOTSPOT, 45 zsales-qty. HIDE: zsales-prod_id. ENDIF. 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. IF sy-subrc = 0. WRITE: / zproducts-p_id,15 zproducts-prod_name,38 zproducts-on_hand. ENDIF. CLEAR zsales-prod_id. ENDIF. ENDCASE.
Hide Level 1
Hide Level 2
Drill Down Level 1
Drill Down Level 2
ExerciseBasic List
Drill-down Level 1
Drill-down Level 2
Drill-down Level 3
SCARR
SPFLI
SFLIGHT
SBOOK
GUI Interface (User Interface)
GUI Interface - SET PF STATUS …. => GUI
Status SET TITLEBAR …. =>
GUI Title
AT USER-COMMAND Event
SET PF-STATUS ‘TEST’. ...AT USER-COMMAND. CASE -sy ucomm. WHEN ‘CODE1’. . WHEN ‘CODE2’. . ENDCASE.
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
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 … . .
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 … . ....
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.
GUI TITLE ... SET TITLEBAR ‘0100’.
ABAP Practice
Selection Screen
Selection Screen
PARAMETERS Statement SELECT-OPTIONS
Statement
parameters
Parameters
PARAMETERS 1: tmp (10) TYPE C, 210tmp ( ) TYPE C lower case, 3tmp LIKE sy-datum default
sy-datum, 4tmp TYPE D 2222222 199912‘31’,
5tmp TYPE i, tmp6(5) TYPE N.
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.
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.
Check box
Parame ters tmp as checkbo x default ‘X’.
Radio Button
Parameters: test1 Radiobutton group grp1,
test2 Radiobutton group grp1.
Required field with Parameters
Parameters tmp like sy-datum obligatory.
ABAP Exercise
select-options
Complex Selection (Select-options)
Tables spfli.- Select options carrid for spfli-car
rid.START-OF-SELECTION.
Select * From spfli Where carrid in carrid. . . .Endselect.
Select-Options
“ต้�องการให้�แสดงข้�อมู�ล customers ข้องล�กค้�าที่��มู�ชื่��อ(ค้อล�มูน์� name ) ข้��น์ต้�น์ด�วยต้�ว ‘M’ และล�กค้�าที่��ชื่��อ ‘Smith’ และล�กค้�าที่��ชื่��ออย�"ระห้ว"าง ‘A’ ก�บ ‘John’ โดยใชื่�ค้%าส��ง SELECT”
*Select from customers 22( ‘ % ’ ) 22( = ‘’) 2( ‘ ’ ‘ John’).
Select-Options
Tables customers.Select-options sname for customers-name.START-OF-SELECTION.Select * from customers Where name in sname.
Internal Structure of Select-options
sname
Sign Option Low High
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 NB = Not Between
Internal Structure of Select-options
snameSign Option Low High
I CP M* I EQ Smith I BT A John
SELECT-OPTIONS
Sign Option Low High
I CP M* I EQ Smith I BT A John
sname
Select * from customers where name in sname.
*Select from customers 22( ‘ % ’ ) 22( = ‘ ’ ) 2( ‘ ’ ‘ John’).
Transform
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.
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.
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.
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.
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.
ABAP Exercise
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 = pcode. …
ABAP Exercise
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 date >= today’. ENDIF.START-OF-SELECTION. SELECT * FROM sflight WHERE ... fldate = nextday… …
ABAP Practice