ABAP Chapter 4

66
ABAP Chapter 4 Event-driven Programming Selection Screen

description

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. - PowerPoint PPT Presentation

Transcript of ABAP Chapter 4

Page 1: ABAP Chapter 4

ABAP Chapter 4

Event-driven Programming Selection Screen

Page 2: ABAP Chapter 4

Event-driven Programming

Page 3: ABAP Chapter 4

Application Driven Programming

REPORT ztest.DATA: today TYPE D.today = ‘19991231’.today = today + 1.WRITE: / today.

Page 4: ABAP Chapter 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’.

Page 5: ABAP Chapter 4

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.

Page 6: ABAP Chapter 4

AT LINE-SELECTION Event(Drill-down Report)

Page 7: ABAP Chapter 4

AT LINE-SELECTION

- -Start of selection. Write : ‘Basic List’.

-At Line selection. Write : ‘Detail List’.

Basic list

DoubleClick

Page 8: ABAP Chapter 4

Navigating Between Lists

Basic list

Detail list 20Exit

Detail list 1

Detail list 2

ABAP Editor

Back

Cancel

Page 9: ABAP Chapter 4

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

Page 10: ABAP Chapter 4

At Line Selection

Tables customers.- -Start of Selection.

Select * from customers. - write : / customers name . Endselect.

-At line selection. Write: ‘You Choose :’ , custome

-rs name.

Page 11: ABAP Chapter 4

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

Page 12: ABAP Chapter 4

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

Page 13: ABAP Chapter 4

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

Page 14: ABAP Chapter 4

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

Page 15: ABAP Chapter 4

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

Page 16: ABAP Chapter 4

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)

Page 17: ABAP Chapter 4

Exercise

zcustomers

zsales

Basic List

Detail Listzcustomers-id

zcustomers-namezsales-cust_id

zsales-prod_id

zsales-qty

Page 18: ABAP Chapter 4

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

Page 19: ABAP Chapter 4

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

Page 20: ABAP Chapter 4

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 21: ABAP Chapter 4

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’.

Page 22: ABAP Chapter 4

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...........

Page 23: ABAP Chapter 4

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. ...

Page 24: ABAP Chapter 4

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'. ...

Page 25: ABAP Chapter 4

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. ...

Page 26: ABAP Chapter 4

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

Page 27: ABAP Chapter 4

Drill-Down 2 Levels Example

12

Detail list level 1 (ZSALES)

Detail list level 2 (ZPRODUCTS)

Basic list (ZCUSTOMERS)

Page 28: ABAP Chapter 4

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

Page 29: ABAP Chapter 4

ExerciseBasic List

Drill-down Level 1

Drill-down Level 2

Drill-down Level 3

SCARR

SPFLI

SFLIGHT

SBOOK

Page 30: ABAP Chapter 4

GUI Interface (User Interface)

Page 31: ABAP Chapter 4

GUI Interface - SET PF STATUS …. => GUI

Status SET TITLEBAR …. =>

GUI Title

Page 32: ABAP Chapter 4

AT USER-COMMAND Event

SET PF-STATUS ‘TEST’. ...AT USER-COMMAND. CASE -sy ucomm. WHEN ‘CODE1’. . WHEN ‘CODE2’. . ENDCASE.

Page 33: ABAP Chapter 4

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

Page 34: ABAP Chapter 4

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 … . .

Page 35: ABAP Chapter 4

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 … . ....

Page 36: ABAP Chapter 4

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.

Page 37: ABAP Chapter 4

GUI TITLE ... SET TITLEBAR ‘0100’.

Page 38: ABAP Chapter 4

ABAP Practice

Page 39: ABAP Chapter 4

Selection Screen

Page 40: ABAP Chapter 4

Selection Screen

PARAMETERS Statement SELECT-OPTIONS

Statement

Page 41: ABAP Chapter 4

parameters

Page 42: ABAP Chapter 4

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.

Page 43: ABAP Chapter 4

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.

Page 44: ABAP Chapter 4

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.

Page 45: ABAP Chapter 4

Check box

Parame ters tmp as checkbo x default ‘X’.

Page 46: ABAP Chapter 4

Radio Button

Parameters: test1 Radiobutton group grp1,

test2 Radiobutton group grp1.

Page 47: ABAP Chapter 4

Required field with Parameters

Parameters tmp like sy-datum obligatory.

Page 48: ABAP Chapter 4

ABAP Exercise

Page 49: ABAP Chapter 4

select-options

Page 50: ABAP Chapter 4

Complex Selection (Select-options)

Tables spfli.- Select options carrid for spfli-car

rid.START-OF-SELECTION.

Select * From spfli Where carrid in carrid. . . .Endselect.

Page 51: ABAP Chapter 4

Select-Options

“ต้�องการให้�แสดงข้�อมู�ล customers ข้องล�กค้�าที่��มู�ชื่��อ(ค้อล�มูน์� name ) ข้��น์ต้�น์ด�วยต้�ว ‘M’ และล�กค้�าที่��ชื่��อ ‘Smith’ และล�กค้�าที่��ชื่��ออย�"ระห้ว"าง ‘A’ ก�บ ‘John’ โดยใชื่�ค้%าส��ง SELECT”

*Select from customers 22( ‘ % ’ ) 22( = ‘’) 2( ‘ ’ ‘ John’).

Page 52: ABAP Chapter 4

Select-Options

Tables customers.Select-options sname for customers-name.START-OF-SELECTION.Select * from customers Where name in sname.

Page 53: ABAP Chapter 4

Internal Structure of Select-options

sname

Sign Option Low High

Page 54: ABAP Chapter 4

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

Page 55: ABAP Chapter 4

Internal Structure of Select-options

snameSign Option Low High

I CP M* I EQ Smith I BT A John

Page 56: ABAP Chapter 4

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

Page 57: ABAP Chapter 4

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.

Page 58: ABAP Chapter 4

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.

Page 59: ABAP Chapter 4

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.

Page 60: ABAP Chapter 4

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.

Page 61: ABAP Chapter 4

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.

Page 62: ABAP Chapter 4

ABAP Exercise

Page 63: ABAP Chapter 4

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. …

Page 64: ABAP Chapter 4

ABAP Exercise

Page 65: ABAP Chapter 4

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… …

Page 66: ABAP Chapter 4

ABAP Practice