report layout report heading report body column heading report title

Post on 13-Dec-2015

237 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Report Layout

Report Heading

Report Body

Column Heading

Report Title

Standard Page Heading

Standard Page Heading

Execute

Report Statement : Standard Report Statement : Standard HeadingHeading

REPORT <Report Name> [NO STANDARD PAGE HEADING].

REPORT ztest1 NO STANDARD PAGE HEADING.

No Standard Page Heading

Execute

WRITE …Column Number…

WRITE: 10 ‘Hello’, 50 ‘World’.

Report Statement : Line SizeReport Statement : Line Size

REPORT <Report Name> [LINE-SIZE no. of columns].

REPORT ztest LINE-SIZE 255 .

sy-linsz

Exercise

Column : 50

Column : 170

WRITE StatementWRITE Statement

*Write data WRITE ‘Hello World’.

WRITE : ‘OK’ , ‘Test data’.WRITE: /15(10) ‘ABCDEFGHIJKLMNOPQ’.WRITE /20 ‘Test data’.

Breaking to a New LineBreaking to a New Line

*Write dataWRITE: / ‘First Line ’, ‘Data 1’, / ‘Second Line’,‘Data 2 ’, /(20 ) ‘Third Line’,‘Data 3 ’, /35 ‘Fourth Line’,‘Data 4 ’.

sy-colno

Exercise

Column : 50Line : 1 Column :

170Line : 2

Creating Lists ABAP statement that create list

WRITE ULINE SKIP

The complete report list will appears automatically at the end of the processing block

List BufferList Buffer

Dialog WP

TaskHandler

Dynpro Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List Buffer

WRITE,SKIP,ULINE

User Context

Inserting Blank Lines(SKIP)Inserting Blank Lines(SKIP)

*Skip StatementSKIP.WRITE : ‘Hello World’, sy-linno.SKIP.WRITE: ‘Test 1’.SKIP 5.WRITE : ‘Test 2’.

SKIP TO LINE 20. WRITE ‘This is line 20’.

NEW-LINENEW-LINE

WRITE ‘Hello World’.NEW-LINE.WRITE ‘OK’.

WRITE ‘Hello World’.WRITE / ‘OK’.

=

Exercise

Column : 50Line : 5

Column : 170Line : 7

Inserting Horizontal Inserting Horizontal Lines(ULINE)Lines(ULINE)

* UlineWRITE: :::::: ::::: ’.ULINE /1(20).WRITE: /(20) sy-uline.WRITE: / sy-vline, 20 sy-vline.ULINE /(20).WRITE : / ‘This is an underlin:’.::::E.

Frame Example

FrameFrame

ULINE: /1(45).WRITE: /1 sy-vline, 'Column #1', 15 sy-vline, 'Column #2', 30 sy-vline, 'Column #3', 45 sy-vline.ULINE /(45).

Exercise I

sy-datum

sy-uzeit

8020 55 80

FORMAT StatementFORMAT Statement

FORMAT [COLOR <color>].

[COLOR OFF].

FORMAT StatementFORMAT Statement

1FORMAT COLOR . : / ‘ ’, ‘’ 7. ::::: ::::.

FORMAT COLORFORMAT COLOR

FORMAT COLOR col_heading. “ 1 FORMAT COLOR col_normal. 2“color FORMAT COLOR col_total. 3“color FORMAT COLOR col_key. 4“color FORMAT COLOR col_positive. 5“color FORMAT COLOR col_negative. 6“color FORMAT COLOR col_group. 7“color FORMAT COLOR col_background. “color 0

Color Using Example

Exercise I

Text SymbolText Symbol

Text Element Text Symbols Text Symbol Text

Text 2

Text 1

REPORT ztest.

WRITE: text-001,

text-002.

001

002

Text Symbol

WRITE: / text-001.WRITE: / text-001.WRITE: / text-001.WRITE: / text-001.WRITE: / text-001.

CONSTANTSCONSTANTS

* Constant variableCONSTANTS ctext TYPE string VALUE ‘Hello World’. WRITE / ctext.WRITE / ctext.WRITE / ctext.WRITE / ctext.WRITE / ctext.

Text Symbol : Language Translation

Text Symbol : Language Translation

Options of the WRITE StatementOptions of the WRITE Statement

* Write SyntaxWRITE var [NO-ZERO]

[NO-SIGN]

[NO-GROUPING]

[NO-GAP]

[DECIMALS no of decimals]

Suppressing Zero With Blanks (NO-ZERO)Suppressing Zero With Blanks (NO-ZERO)

* No ZeroDATA: number(10) TYPE N VALUE 23.WRITE: number, number NO-ZERO.

Suppressing Number(+ / -) SignSuppressing Number(+ / -) Sign

* No SignDATA: v_integer TYPE i VALUE -1.WRITE: v_integer, v_integer NO-SIGN.

NO-GROUPINGNO-GROUPING

* No groupingDATA: v_integer TYPE i VALUE 120000.

WRITE: v_integer, v_integer NO-GROUPING.

NO-GAPNO-GAP

* No gapWRITE: ‘Hello’ NO-GAP, ‘World’.

DECIMALSDECIMALS

* DecimalsDATA: v_pack TYPE P DECIMALS 4 VALUE ‘1234.5678’.WRITE: v_pack, v_pack DECIMALS 2.

Formatting OptionsFormatting Options

* Format options of WRITE statement* LEFT-JUSTIFIED for Numeric data* RIGHT-JUSTIFIED for Character data* CENTEREDDATA tmp1(20) VALUE ‘test’. WRITE: tmp1 CENTERED.

testtmp1

STRLEN Built-in FunctionSTRLEN Built-in Function

DATA: tmp(20) VALUE ‘Test String’, count TYPE :.count = strlen( tmp ).WRITE count.

Include Program You can create a program with program type include

program in the program attribute Include program do not have to have an introductory

statement During the syntax check and during program generation

by the ABAP compiler, the INCLUDE statement is replaced by the source text of the defined include program

DATA tmp(10).DATA tmp1 TYPE i. DATA tmp2 TYPE p.DATA tmp3.

Include Program : ZINCLUDE1

REPORT ztest1.INCLUDE zinclude1. …

REPORT ztest2.INCLUDE zinclude1. …

Flow Control in ABAP

Flow Control in ABAP Flow Control in ABAP

Branching ==> IF, CASE. Looping ==> DO, WHILE.

IF StatementIF Statement

IF <Condition>. <Statement Block>ELSEIF <Condition>. <Statement Block>ELSEIF <Condition>. <Statement Block>ELSE. <Statement Block>ENDIF.

IF StatementIF Statement

- IF sy mandt = ‘100’. WRITE: / ‘This is Production Client’.

-: :::: : := ‘ 800’ or sy-mandt = ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt.ELSE. WRITE: / ‘This is Test Client’.ENDIF.

CASE StatementCASE Statement

CASE <field>. WHEN <value1>. <Statement Block> WHEN <value2>. <Statement Block> ... WHEN OTHERS. <Statement Block> ENDCASE.

CASE StatementCASE Statement

-CASE sy mandt. WHEN ‘100’. WRITE: / ‘This is Production Client’. WHEN ‘800’ or ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt. WHEN OTHERS. WRITE: / ‘This is Test Client ’. ENDCASE.

DO StatementDO Statement

DO. WRITE sy-index. IF sy-index = 3. EXIT. ENDIF. WRITE: sy-index.ENDDO.

Loop Counter

DO StatementDO Statement

DO 10 TIMES. WRITE / sy-index.ENDDO.

Loop Counter

WHILE StatementWHILE Statement

DATA: count TYPE i value 1.WHILE count <> 4. WRITE: sy-index. count = count + 1.ENDWHILE.

Loop Counter

WHILE sy-index <> 4. WRITE: sy-index.ENDWHILE.

Logical ExpressionsLogical Expressions

>,GT<,LT>=, =>, GE<=, =<, LE=, EQ<>, ><, NEBETWEEN <value1> AND <value2>IS INITIAL

Arithmetic OperatorsArithmetic Operators

+ , - , * , / , ** DIVMOD

Example :9 / 2 = 4.59 DIV 2 = 4.09 MOD 2 = 12 ** 4 = 16

ABAP : Data Retrieval

Open SQL (SELECT)

SAP System : 3 Tier Client/ServerSAP System : 3 Tier Client/Server

DB Server

SAP Application Server

SAP GUI Presentation

Server

SAP GUISAP GUI

SAP SYSTEM (3 Tier Architecture)SAP SYSTEM (3 Tier Architecture)

Presentation Layer

(Windows based)

Application Layer

(Windows Server/UNIX)

Database Server

Database Layer

(Windows Server/UNIX)

M

SAP Instance

Oracle

Informix

DB2

MS SQL Server

MaxDB

G

Dispatcher

RequestQueue

D D B V S E

SAP Buffer(Shared Mem)

SAP GUI SAP GUI

Database Server

Application Server

Dispatcher

RequestQueue

D D D B…

SAP Buffer

Program

User ContextArea

1

3

46

79

10

11

Report zpsm1.

Tables customers.

Select single * from customers

where id = 1.

Write: / customers-name.

5

Execute ABAP statement

Check Program in Program Buffer

Roll in

8

Load&Generate Program

SQL Request

Send List

Generate Screen(List)Send Request

Request List

2 Search for free WP

Store request to queue

Send request to WP

SAP GUI

REPOSRC

Report zpsm1.

Tables customers.

Select single * from customers

where id = 1.

Write: / customers-name.

SAP System : Dialog Processing

customers

TaskHandler

DYNPRO Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List Buffer

Database Server

Dialog Work Process

User Context

Dialog Work Process Architecture

Result Set Memory

Open SQL SELECT ...

Data Objects : Tables Data Objects : Tables StructureStructure

Memory Space

Structure

Tables Structure

Internal Table

Variable

Constants<Field-symbols>

DB InterfaceDB Interface

Data

SAP Application Server

Local Memory

DataData

Dialog WP

TaskHandler

DB Interface

Result Set

DataData

Database Server

~ 32 KB in length

ABAP Processor

DYNPRO

Memory Space

List Buffer

Example Tables in DB

carrid connid cityfrom cityto distance

LH 0400 LA NY 100

LH 0402 BK NY 540

SQ 0110 SQ BK 250

id name city

1 John New York

2 Peter Singapore

3 David

London

customersspfli

Example Tables in DB

carrid connid fldate price

LH 0400 20010101

150

LH 0400 20010110

145

LH 0400 20010228

130

SQ 0110 20010226

75

sflight

SELECT Overview

SELECT <Column List> Which Columns?

FROM <table> Which Table?

INTO <destination> Where to place?

WHERE <condition> Which Lines?

SELECT Statement Select multiple records from database

Select single record from database

SELECT * FROM customers. …ENDSELECT.

SELECT SINGLE * FROM customers WHERE id = 1. …

SELECT Multiple Records : SPFLI

TABLES spfli.SELECT * FROM spfli. WRITE - -: / spfli carrid, spfli connid, spfli-cityfrom, spf -li cityto.ENDSELECT.

spfli-carrid spfli-connid spfli-cityfrom spfli-cityto

SELECT Multiple Records : SFLIGHT

TABLES sflight.SELECT * FROM sflight. WRITE : / sflight- carrid, sflight-connid, sflight-fldate, sflight-price.ENDSELECT.

sflight-carrid sflight-connid sflight-fldate sflight-price

Exercise

CUSTOMERS-ID CUSTOMERS-NAME CUSTOMERS-CITY

SELECT Multiple Records : CUSTOMERS

TABLES customers.SELECT * FROM customers. WRITE : / customers- id, customers-name, customers-city.ENDSELECT.

Dialog WPDialog WPDialog WP

TaskHandler

DYNPRO Processor

ABAP Processor

Database

Local Memory

DB InterfaceResult Set

Memory Space

List buffer

User Context

SELECT Statement Working Steps

1. Transform open SQL to DB SQL and return result set into result set work area

SELECT * FROM customers. …ENDSELECT.

SELECT * FROM customers;

2. Loop with data in result set and transfer each record to work area in memory space

SELECT * FROM customers. …ENDSELECT.

Table Structure in Memory Space

sy-subrc = 0

ABAP Processor

DB Interface

Select Multiple Records : SPFLI

TABLES spfli.SELECT * FROM spfli. WRITE : / - -spfli carrid, spfli connid,

spfli-cityfrom,spf -li cityto.ENDSELECT.

SELECT Statement Working Steps

1. Transform open SQL to DB SQL and return result set into result set work area

SELECT * FROM spfli. …ENDSELECT.

SELECT * FROM spfli;

2. Loop with data in result set and transfer each record to work area in memory space

SELECT * FROM spfli. …ENDSELECT.

Table Structure in Memory Space

sy-subrc = 0

ABAP Processor

DB Interface

SELECT Multiple Records : CUSTOMERS

TABLES customers.SELECT * FROM customers. WRITE : / customers- id, customers-name, customers-city.ENDSELECT.

SELECT INTO Table Structure

TABLES customers.SELECT * FROM customers INTO customers. WRITE : / customers- id, customers-name, customers-city.ENDSELECT.

SELECT … INTO Work Area

DATA wa LIKE customers.SELECT * FROM customers INTO wa. WRITE : / wa- id, wa-name, wa-city.ENDSELECT.

Table TRBAT

SELECT … FROM …

TABLES trbat.SELECT * FROM trbat . WRITE : / trbat-function.ENDSELECT.

SELECT Statement : No Data Found

1. Transform open SQL to DB SQL and return result set into result set work area (If no data found in DB table)

SELECT * FROM trbat. …ENDSELECT.

SELECT * FROM trbat;

2. Go to statement after ENDSELECT

SELECT * FROM trbat. …ENDSELECT.

sy-subrc > 0

ABAP Processor

DB Interface

SELECT … FROM …

TABLES trbat.SELECT * FROM trbat . WRITE : / trbat-function.ENDSELECT.IF sy-subrc <> 0. WRITE: / ‘No data found!!!’.ENDIF.

SELECT Multiple Records

TABLES customers.SELECT * FROM customers. WRITE : / customers- id, customers-name, customers-city.ENDSELECT.IF - sy subrc <> 0.

WRITE : / ‘No Data Found’.ENDIF.

Exercise I

customers-id customers-name

customers-city

SELECT with WHERE Clause

Loop Processing with Restriction

TABLES customers.SELECT * FROM customers WHERE city = ‘Bangkok’. WRITE : / customers- id, customers-name.ENDSELECT.IF - 0sy subrc <> . WRITE / ‘no data’.ENDIF.

Loop Processing with RestrictionTABLES spfli.SELECT * FROM sssss WHERE cityfrom = ‘FRANKFURT’. WRITE - -: / spfli carrid, spfli cityto.ENDSELECT.IF - 0sy subrc <> . WRITE / ‘no data’.ENDIF.

Select With Range

TABLES sflight.SELECT * FROM sflight WHERE price BETWEEN 100 AND

1000. WRITE: / sflight-carrid, sflight-connid, sflight-price.ENDSELECT.

SELECT … With IN List

TABLES sflight.SELECT * FROM sflight WHERE price IN ( 100, 1000 ). WRITE: / sflight-carrid, sflight-

connid, sflight-price.ENDSELECT.

SELECT … With TemplateTABLES customers.SELECT s* ROM customers WHERE name LIKE ‘_r%’. WRITE - -: / customers id,customers name.ENDSELECT.

Select Single Record

Select Single Record

TABLES customers.SELECT SINGLE * FROM customers

WHERE id = 1.IF -sssss s s s0

WRITE : / customers- id, customers-name, customers-ssss, customers-discount.

ELSE.WRITE : / ‘Data not found’.

ENDIF.

Select Column List

Select * : Example

SELECT *

bkpf-belnr bkpf-gjahr

Select Column : Using Structure

bkpf-belnr bkpf-gjahr

SELECT …* FROM …

TABLES customers.SELECT * FROM customers. WRITE : / customers-id, customers-name, customers-city.ENDSELECT.IF sy-subrc <> 0. WRITE: / ‘No data found’.ENDIF.

Reading Selected Column DATA: BEGIN OF wa, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF wa.

SELECT id name city INTO wa FROM customers. WRITE : / wa-id, wa-name , wa-city.ENDSELECT.IF - sy subrc <> 0. WRITE / ‘No Data found’.ENDIF.

customers-id customers-name customers-city

1

2

Exercise I

customers-id customers-name

customers-city

ห้�ามใช้� SELECT *

ABAP : Inner Join

Flight Data Model

Flight Data Model

Tables Join

Question: Select carrid, connid and cityto from spfli and fldate,price from sflight where carrid = ‘LH’

spfli-carrid spfli-connid sflight-fldate spfli-cityto sflight-price

เงื่� อนไข : ให้�แสดงื่ข�อม�ลเฉพาะสายการบิ�น ‘LH’ เท่ าน!"น

Open SQL – Inner JoinTABLES: spfli,sflight.SELECT spfli~carrid spfli~connid sflight~fldate spfli~cityto sflight~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli INNER JOIN sflight ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid WHERE spfli~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price.ENDSELECT.

Open SQL – Inner JoinTABLES: A,B.SELECT A~a B~b B~c INTO (A-a,B-b,B-c) FROM A INNER JOIN B ON A~b = B~b. WRITE: / A-a,B-b,B-c.ENDSELECT.

a ba1 b1

a2 b2

Table : A

b cb1 c1

b2 c2

b3 c3

Table : B

A-a B-b B-c

SELECT INNER JOIN Working Steps

1. Transform open SQL to DB SQL and return result set into result set work area

SELECT A~a B~b B~c ….FROM A INNER JOIN B …ENDSELECT.

SELECT A.a, B.b, B.c FROM A,B WHERE A.b = B.b;

2. Loop with data in result set and transfer each record to work area in memory space

SELECT A~a B~b B~c …ENDSELECT.

Tables Structure in Memory Space

sy-subrc = 0

ABAP Processor

DB Interface

Open SQL – Inner Join

a ba1 b1

a2 b2

Table : Ab cb1 c1

b2 c2

b3 c3

Table : B

A~a B~b B~ca1 b1 c1

a2 b2 c2

Single Result Table(Result set)

Select …

inner join..

Endselect.

Database

Server

Application Server

1

2

Open SQL – Alias Table Name

TABLES: spfli,sflight.SELECT a~carrid a~connid b~fldate a~cityto b~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli AS a INNER JOIN sflight AS b ON a~carrid = b~carrid and a~connid = b~connid WHERE a~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price.ENDSELECT.

Exercise : Sale Document

VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR

Document Number (VBAK-VBELN)‘0000004970’

Open SQL – Inner Join > 2 Tables

TABLES: A,B,C.SELECT A~a B~c C~y INTO (A-a,B-c,C-y) FROM A INNER JOIN B ON A~b = B~b INNER JOIN C ON C~x = B~c. WRITE: / A-a,B-c,C-y.ENDSELECT.

a b… …

Table : A

b c… ...

… ...

… …

Table : B

x y… ...

Table : CA-a B-c C-y

Flight Data Model

Open SQL – Inner Join > 2 Tables

REPORT ZINNERJOIN02 NO STANDARD PAGE HEADING.TABLES : sflight,sbook,scustom.SELECT a~carrid a~connid a~fldate b~bookid b~customid c~name b~luggweight INTO (sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight) FROM sflight AS a INNER JOIN sbook AS b ON a~carrid = b~carrid AND a~connid = b~connid AND a~fldate = b~fldate INNER JOIN scustom AS c ON c~id = b~customid. WRITE : / sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight.ENDSELECT.

SFLIGHT-CARRID SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT

Exercise : Sale Document

VBAK-VBELN VBAK-ERDAT KNA1-NAME1 VBAP-MATNR VBAP-NETWR

Document Number(VBAK-VBELN)

= ‘0000004970’

Flight Data Model

Flight Information : Inner Join

SFLIGHT-CARRID SCARR-CARRNAME SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT

Internal Table

Data Objects : Internal TableData Objects : Internal Table

Memory Space

Structure

Tables Structure

Internal Table

Variable

Constants<Field-symbols>

INTERNAL TABLEwa (Structure)

id name city

Internal Tabletab (Internal Table)

id name city

Header Line

Table Bodies

‘00000000’

‘00000000’

Structure

Structure

DATA: BEGIN OF wa,id LIKE customers-id,name LIKE customers-name,city LIKE customers-city,

END OF wa.

wa- id = 1.wa-name = ‘John’.wa-city = ‘Bangkok’.

WRITE: / wa-id, wa-name.

INTERNAL TABLE

DATA: BEGIN OF tab OCCURS 10,id LIKE customers-id,

name LIKE customers-name,city LIKE customers-city,

END OF tab.

INTERNAL TABLE

DATA: BEGIN OF tab OCCURS 0,id LIKE customers-id,

name LIKE customers-name,city LIKE customers-city,

END OF tab.

USING ABAP DICTIONARY STRUCTURE

DATA: BEGIN OF tab OCCURS 0.INCLUDE STRUCTURE customers.

DATA END OF tab.

INTERNAL TABLE USING LIKE

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.

id name city

Header Line

Table Bodies

8 KB

tab (Internal Table)

‘00000000’

Append And Read Data

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.tab-id = 1.tab-name = ‘John’.tab-city = ‘Bangkok’.APPEND tab.tab-id = 2.tab-name = ‘Peter’.tab-city = ‘London’.APPEND tab.LOOP AT tab. WRITE: / tab-id, tab-name, tab-city.ENDLOOP.

Reading Data From Internal Table

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.SELECT * FROM customers INTO TABLE tab.IF sy-subrc = 0. LOOP AT tab. WRITE : / tab-id , tab-name,tab-city. ENDLOOP.ELSE. WRITE : / ‘No Data’.ENDIF.

Access Database Without Internal Table

Access Database Using Internal Table

Access Database Using Internal Table

BKPF-BELNR BKPF-GJAHR

SELECT <Column>… ENDSELECTSELECT <Column>… ENDSELECT

Dialog WP

TaskHandler

DYNPRO Processor

ABAP Processor

Database

Local Memory

Memory Space

DB Interface

00000001 John00000002 Peter00000003 David

List buffer

Result Set

3 | David

WA Structure

1

2

SELECT …INTO TABLE …SELECT …INTO TABLE …Dialog WP

TaskHandler

DYNPRO Processor

ABAP Processor

Database

Local Memory

Memory Space

DB Interface

List buffer

Result Set

1

2

Internal Table

Reading Data From Internal TableDATA: BEGIN OF tab OCCURS 0, id LIKE customers-id, name LIKE customers-name, END OF tab.

SELECT id name FROM customers INTO TABLE tab.

IF sy-subrc = 0. LOOP AT tab. WRITE - : / tab id, tab-name. ENDLOOP.ELSE. WRITE: / ‘No Data’.ENDIF.

1

2

3

customers-id customers-name

Exercise I : Change

Using Internal Table

SORTING INTERNAL TABLE (SORT)

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.…SORT tab BY name.SORT tab BY name ASCENDING

city DESCENDING.

INTERNAL TABLE PROCESSING...LOOP AT tab. WRITE : / tab- d, tab-name.ENDLOOP. LOOP AT sab WHERE city = ‘Bangkok’. WRITE : / tab-id, tab-name.ENDLOOP. LOOP AT tab FROM 1 TO 10. WRITE : / -sy tabix ,tab-id, tab-name.ENDLOOP.

Record Pointer

Internal Table Template Condition

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.

...LOOP AT tab WHERE name CP ‘+r*’....

Reading Single Record

DATA tab LIKE customers OCCURS 0 WITH HEADER LINE....SORT tab BY name city.READ TABLE tab

WITH KEY name = ‘John’ city = ‘Bangkok’ BINARY SEARCH.IF - sy subrc = 0 . WRITE : / tab- id, tab-name, tab-city, tab-telephone.ENDIF.

Reading Single Record using Index

...READ TABLE tab INDEX 3.Is - sy subrc = 0. WRITE : / tab-id, tab-name.

ENDIF.

DELETING Data in INTERNAL TABLE

CLEAR tab.

REFRESH tab.

FREE tab.

DATA tab LIKE sflight OCCURS 0 WITH HEADER LINE.

SELECT … INNER JOIN

TABLES: scarr,spfli.SELECT spfli~carrid scarr~carrname spfli~connid INTO (spfli-carrid, scarr-carrname, spfli~connid) FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid. WRITE: / spfli-carrid, scarr-carrname , spfli~connid.ENDSELECT.

SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID

Inner Join using Internal Table

DATA: BEGIN OF tab OCCURS 0, carrid LIKE spfli-carrid, carrname LIKE scarr-carrname, connid LIKE spfli-connid, END OF tab. SELECT spfli~carrid scarr~carrname spfli~connid INTO TABLE tab FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid.…LOOP AT tab. WRITE: / tab-carrid,tab-carrname,tab-connid.ENDLOOP.

SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID

Exercise : Using Internal Table

VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR

Document Number(VBAK-VBELN)

= ‘0000004970’

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.AT LINE-SELECTION. WRITE: / ‘This is ’. WRITE : ‘Detail List’.START-OF-:ELECTION. WRITE: / ‘This is ’. WRITE: / ‘Basic List’.

Events

START-OF-SELECTION. AT LINE-SELECTION. INITIALIZATION. AT SELECTION-SCREEN.

AT LINE-SELECTION Event(Drill-down Report)

Database Server

Application Server

Dispatcher

RequestQueue

D D D B…

SAP Buffer

Program

User ContextArea

1

3

46

79

10

11

Report zpsm1.

Tables customers.

Select single * from

customers where id = 1.

Write: / customers-name.

5

Execute ABAP statement

Check Program in Program Buffer

Roll in

8

Load&Generate Program

SQL Request

Send List

Generate Screen(List)Send Request

Request List

2 Search for free WP

Store request to queue

Send request to WP

SAP GUI

..

D010S

Report zpsm1.

Tables customers.

Select single * from

customers where id = 1.

Write: / customers-name.

SAP System : Dialog Processing

customers

12Roll out

TaskHandler

DYNPRO Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List Buffer

Database Server

Dialog Work Process

User Context

Dialog Work Process Architecture

Result Set Memory

Server

Database Server

Application Server

Dispatcher

RequestQueue

D D D B…

SAP Buffer

Program

User Context Area

1

3

46

79

10

11

Report zpsm1.

Tables customers.

Select single * from

customers where id = 1.

Write: / customers-name.

5

Execute ABAP statement

Check Program in Program Buffer

Roll in

8

Load&Generate Program

SQL Request

Send List

Generate Screen(List)Send Request

Request List

2 Search for free WP

Store request to queue

Send request to WP

SAP GUI

..

D010S

Report zpsm1.

Tables customers.

Select single * from

customers where id = 1.

Write: / customers-name.

Dialog Processing : Roll Out

customers

12Roll out

AT LINE-SELECTION

START-OF-SELECTION. WRITE : ‘ ’ .AT LINE-SELECTION. WRITE : ‘Detail ’ .

(Basic list)

DoubleClickWRITE, ULINE

AT LINE-SELECTION

1. Double Click 2. Choose Button

3. Hotspot

Navigating Between Lists

Basic list

Detail list 20Exit

Detail list 1

Detail list 2

ABAP Editor

Back

Cancel

Runtime Error : Detail List > 20

Detail List and SY-LSIND

START-OF-SELECTION. WRITE : ‘Basic List’.

AT LINE-SELECTION. CASE -sy lsind. WHEN 1. WRITE : ‘Detail List :’,sy-lsind. WHEN2 . WRITE : ‘Detail List :’,sy-lsind. ENDCASE.

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 :’ , custom

-ers 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 n

ame.

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)

ZATLINE4

Exercise : Flight Information

Basic List

Drill-down Level 1

SCARR

SPFLI

Good ProgramDATA: BEGIN OF tab_spfli OCCURS 0, carrid LIKE spfli-carrid, connid LIKE spfli-connid, cityto LIKE spfli-cityto, END OF tab_spfli.DATA: BEGIN OF tab_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, END OF tab_sflight.

START-OF-SELECTION. SELECT carrid connid cityto FROM spfli INTO TABLE tab_spfli. IF sy-subrc = 0. LOOP AT tab_spfli. WRITE: / tab_spfli-carrid,tab_spfli-connid, tab_spfli-cityto. HIDE: tab_spfli-carrid,tab_spfli-connid. ENDLOOP. ELSE. WRITE: / 'No data found'. ENDIF.

AT LINE-SELECTION. CASE sy-lsind. WHEN 1. SELECT carrid connid fldate INTO TABLE tab_sflight FROM sflight WHERE carrid = tab_spfli-carrid AND connid = tab_spfli-connid. LOOP AT tab_sflight. WRITE: / tab_sflight-carrid,tab_sflight-connid, tab_sflight-fldate. ENDLOOP. ENDCASE.

Exercise : Sale DocumentBasic List

Drill-down Level 1

VBAK

VBAP

Selection Screen

Selection Screen

PARAMETERS Statement SELECT-OPTIONS

Statement

PARAMETERS

PARAMETERSPARAMETERS: 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, tmp6 TYPE p DECIMALS 2, tmp7(5) TYPE n,

airline1(3), airline2 LIKE spfli-carrid.DATA id LIKE customers-id.

START-OF-SELECTION. WRITE: / tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,airline1,airline2,id.

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.

PARAMETERS : Check box

PARAMETERS :: : AS CHECKBOX DEFAULT ‘X’.

PARAMETERS : Radio Button

PARAMETERS: test1 RADIOBUTTON GROUP grp1,

test2 RADIOBUTTON GROUP grp1.

RADIOBUTTON : SAP ECC 6.0

Required Field with PARAMETERS

PARAMETERS tmp LIKE sy-datum OBLIGATORY.

ABAP Exercise

top related