+ All Categories
Home > Documents > 02.ABAP2

02.ABAP2

Date post: 17-Jan-2016
Category:
Upload: emanuelpredescu
View: 212 times
Download: 0 times
Share this document with a friend
Description:
test
Popular Tags:
68
ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character Data Report Driven : Page Report (List Header)
Transcript
Page 1: 02.ABAP2

ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character Data Report Driven : Page Report (List

Header)

Page 2: 02.ABAP2

List Processing

Report Header

Report Listing (Body)

Page 3: 02.ABAP2

Report StatementReport Statement

* SyntaxREPORT <report name> [NO STANDARD PAGE HEADING] [LINE-SIZE no of columns] [LINE-COUNT no of lines[(no of footer)]].

REPORT ztest1 NO STANDARD PAGE HEADING.REPORT ztest LINE-SIZE 132 LINE-COUNT 65(2).

sy-linsz

Page 4: 02.ABAP2

Text Element : Title&HeadersText Element : Title&Headers

Text Element Title and Headers

List Header

Column Header

This is test program by Prapoj

Column Column #1 #2

Report ztest.

Write ‘Hello World’.

Page 5: 02.ABAP2

Creating Lists ABAP statement that create list

WRITE SKIP ULINE

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

Page 6: 02.ABAP2

List BufferList Buffer

Dialog WP

TaskHandler

Dynpro Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List BufferWRITE,SKI

P,ULINE

Page 7: 02.ABAP2

WRITE StatementWRITE Statement

*Write data

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

WRITE / 20 ‘Test data’.

Page 8: 02.ABAP2

Breaking to a New LineBreaking to a New Line

* Write data WRITE: / ‘First Line’, ‘Data 1’,

2/ ‘Second Line’, ‘Data ’, /(2 0 ) ‘ ’ , ‘ 3 ’ , /3 5 ‘ ’ , ‘ 4 ’ .Fourth Line Data

sy-coln

o

Page 9: 02.ABAP2

Text SymbolText Symbol

Text Element Text Symbols Text Symbol Text

Text 2

Text 1

Report ztest.

Write: Text-001,

Text-002.

001

002

Page 10: 02.ABAP2

Text Symbol

write: / Text-001.write: / Text-001.write: / Text-001.write: / Text-001.write: / Text-001.

Page 11: 02.ABAP2

Column PositionColumn Position

DATA colno type I value 10.write: /5 ‘Hello’, at colno ‘World’.write: at /colno ‘OK’.

Page 12: 02.ABAP2

Options of the WRITE StatementOptions of the WRITE Statement

* Write SyntaxWRITE var [NO-ZERO]

[NO-SIGN]

[NO-GROUPING]

[NO-GAP]

[DECIMALS no of decimals]

Page 13: 02.ABAP2

Suppressing Blanks(NO-ZERO)Suppressing Blanks(NO-ZERO)

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

Page 14: 02.ABAP2

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

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

Page 15: 02.ABAP2

NO-GROUPINGNO-GROUPING

* No groupingDATA: v_integer TYPE I VALUE 120000.WRITE: v_integer, v_integer NO-GROUPING.

Page 16: 02.ABAP2

NO-GAPNO-GAP

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

Page 17: 02.ABAP2

DECIMALSDECIMALS

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

Page 18: 02.ABAP2

Formatting OptionsFormatting Options

* Format options of WRITE statement* LEFT-JUSTIFIED for Integer data* RIGHT-JUSTIFIED for Character data* CENTEREDData tmp1(20) value ‘test’. WRITE: tmp1 CENTERED.

test

Page 19: 02.ABAP2

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

Page 20: 02.ABAP2

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

* Uline : ‘ ’.

WRITE: / - ss -ssssss5(35) ,.ULINE /5(35).ULINE.

WRITE: / ‘This is an underline’. 18ULINE /( ).

Page 21: 02.ABAP2

FrameFrame

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

Page 22: 02.ABAP2

Exercise I

sy-datum

sy-uzeit

Page 23: 02.ABAP2

FORMAT StatementFORMAT Statement

FORMAT [INTENSIFIED]

[INTENSIFIED OFF] [COLOR <color>] [COLOR OFF] [HOTSPOT ON] [HOTSPOT OFF] [RESET]

Page 24: 02.ABAP2

FORMAT StatementFORMAT Statement

ss1. 7WRITE: / ‘Hello World’, ‘Test’ COLOR .

FORMAT COLOR OFF.

Page 25: 02.ABAP2

FORMAT COLORFORMAT COLOR

ssssssssssss _. “ 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 off

Page 26: 02.ABAP2

Exercise I

Page 27: 02.ABAP2

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

Page 28: 02.ABAP2

*Display Icon or Symbol in List INCLUDE <LIST>.

WRITE: / ‘Phone :’ , SYM_PHONE AS SYMBOL. WRITE: / ‘Alarm :’, ICON_ALARM AS ICON. WRITE: / ‘Green Light :’,

ICON_GREEN_LIGHT AS ICON HOTSPOT. FORMAT HOTSPOT ON.

WRITE: / ‘Hello ABAP’, ’Hi!’. FORMAT HOTSPOT OFF.

Symbols and Icons Symbols and Icons

Page 29: 02.ABAP2

Flow Control in ABAP

Page 30: 02.ABAP2

Flow Control in ABAP Flow Control in ABAP

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

Page 31: 02.ABAP2

IF StatementIF Statement

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

Page 32: 02.ABAP2

IF StatementIF Statement

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

- ELSEIF sy mandt = ‘800’. WRITE: / ‘This is Development Client’.ELSE. WRITE: / ‘This is Test Client’.ENDIF.

Page 33: 02.ABAP2

CASE StatementCASE Statement

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

Page 34: 02.ABAP2

CASE StatementCASE Statement

-CASE sy mandt. WHEN ‘100’. WRITE: / ‘Production Client’ . WHEN ‘800’. WRITE: / ‘Development Client’. WHEN OTHERS. WRITE: / ‘Test Client ’ . ENDCASE.

Page 35: 02.ABAP2

DO StatementDO Statement

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

Page 36: 02.ABAP2

CONTINUE StatementCONTINUE Statement

DO 5 TIMES. IF sy-index = 3. CONTINUE. ENDIF. WRITE: sy-index.ENDDO.

Page 37: 02.ABAP2

CHECK StatementCHECK Statement

DO 4 TIMES. CHECK sy-index BETWEEN 2 AND 3. WRITE: sy-index.ENDDO.

Page 38: 02.ABAP2

WHILE StatementWHILE Statement

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

Page 39: 02.ABAP2

Logical ExpressionsLogical Expressions

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

Page 40: 02.ABAP2

Arithmetic OperatorsArithmetic Operators

+ , - , * , / , ** DIVMOD

Example :9 / 2 = 4.59 DIV 2 = 4.09 MOD 2 = 1SQRT( 2 ) = 1.412 ** 4 = 16

Page 41: 02.ABAP2

Character String OperatorCharacter String Operator

if ‘AABB’ co ‘AB’.if ‘ABCD’ co ‘ABC’.if ‘AXCZ’ ca ‘AB’.if ‘ABCD’ ca ‘XYZ’.if ‘ABCD’ cp ‘+B*’.

T

F

T

F

T

Page 42: 02.ABAP2

Manipulating Character Data

Page 43: 02.ABAP2

Manipulating Character DataManipulating Character Data

* Substrings with offsets 10DATA tmp( ) VALUE ‘ABCDEFGHIJ’. 1 2DATA tmp ( ).

WRITE: tmp+3(7), tmp+1(4), 08 73tmp+ ( ).

MOVE tmp+4(2) TO tmp1.

DEFGHIJ

BCDE

ABCDEFGH

HIJ

Page 44: 02.ABAP2

SHIFT StatementSHIFT Statement

* SHIFT Statement ( 5) ‘ 12345’. ssss.

2SHIFT tmp BY PLACEs . 2SHIFT tmp BY PLACEs . 3SHIFT tmp UP TO ‘ ’. 3SHIFT tmp UP TO ‘ ’ RIGHT. 3SHIFT tmp UP TO ‘ ’ RIGHT CIRCULAR. SHIFT tmp RIGHT DELETING TRAs ssssss. SHIFT tmp LEFT DELETING LEADING SPACE.

2345_345__

34512

__123

345__

45123

Page 45: 02.ABAP2

SHIFTSHIFT

* Shift sssssssss( 30) ‘ ’ .

SHIFT name UP TO ‘Bill’. WRITE: / name.

Bill Charles

Page 46: 02.ABAP2

SEARCHSEARCH(Non -Case sensitive)

* Search 5DATA tmp( ) VALUE ‘ABCDE’.

SEARCH tmp FOR ‘C’.

1 10DATA tmp ( ) VALUE ‘Till Bill’. SEARCH tmp1 FOR ‘Bill’.

- IF SY SUBRC = 0. -WRITE: / SY FDPOS.

ENDIF.

Page 47: 02.ABAP2

TRANSLATETRANSLATE

* Translate 5DATA tmp( ) VALUE ‘abc ‘.

TRANSLATE tmp TO UPPER CASE. TRANSLATE tmp TO LOWER CASE. TRANSLATE tmp USING ‘ 0’. TRANSLATE tmp USING ‘ 0aA’.

Page 48: 02.ABAP2

REPLACEREPLACE

* Replace 20DATA tmp( ) VALUE ‘I was a boy’.

REPLACE ‘was’ WITH ‘am’ INTO tmp.IF sy-subrc = 0. write ‘Replace OK’.ELSE. write ‘Cannot find data to be replaced’.ENDIF.

Page 49: 02.ABAP2

Removing Spaces(CONDENSE)Removing Spaces(CONDENSE)

* Condense 20DATA: tmp( ) VALUE ‘I am a boy’.

CONDENSE tmp. -CONDENSE tmp NO GAPS.

I am a boy

Iamaboy

Page 50: 02.ABAP2

Concatenation String(CONCATENATE)Concatenation String(CONCATENATE)

* Concatenate 1 2DATA: tmp ( ) VALUE ‘AB’,

2 3tmp ( ) VALUE ‘CDE’, 310

CONCATENATE tmp1 tmp2 INTO tmp3. CONCATENATE tmp1 tmp2 INTO tmp3

SEPARATED BY ‘ ‘.

ABCDE

AB CDE

Page 51: 02.ABAP2

SplitSplit

* Split DATA: name(30) value ‘David, John, Peter’,

one(10), two(10), three(30).split name at ‘,’ into one two three.

Page 52: 02.ABAP2

Working with Date VariablesWorking with Date Variables

* Date DATA today TYPE D. -today = sy datum.

WRITE: today, ‘ : ’ , + 0 (4 ), ‘ Month :’, today+4(2), ‘ 62Day :’ , today+ ( ).

sy-datum+0(4)

Page 53: 02.ABAP2

WRITE WRITE …… TO TO ……

DATA: today TYPE D, tmp(10).today = sy-datum.tmp = today.WRITE tmp.WRITE today TO tmp.WRITE tmp.CLEAR today.WRITE today NO-ZERO TO tmp.WRITE tmp.

Page 54: 02.ABAP2

Invalid DateInvalid Date

DATA: today TYPE D.today = ‘20061321’.today = today + 0.if today is initial. write: / ‘invalid date’.else. write: / today.endif.

Page 55: 02.ABAP2

Built-in Functions ABAP provides a lot of built-in

functions A Built-in function calculates a return

value from an argument abs = Absolute value of argument sign = +/- sign of argument sqrt = Square root strlen = Number of characters in arg xstrlen = Number of bytes in arg

Page 56: 02.ABAP2

STRLEN Built-in FunctionSTRLEN Built-in Function

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

Page 57: 02.ABAP2

STRLEN Built-in Function ExampleSTRLEN Built-in Function Example

20DATA: tmp( ) VALUE ‘xxas’, cntlen TYPE I.cntlen = strlen( tmp ).cntlen = cntlen – 2.if tmp+cntlen(1) = ‘a’. “cntlen >= 0 write: / ‘OK’.endif.

Page 58: 02.ABAP2

WRITE WRITE ‘‘

*If we need the word like this I’m a boyssssss sI’’m a boy’.

Page 59: 02.ABAP2

Exercise Create program to display

current month in text for example October

Page 60: 02.ABAP2

Report Driven : Page Report

Page 61: 02.ABAP2

Application Driven Programming

REPORT ztest.DATA: today TYPE D.today = ‘20061321’.today = today + 0.IF today IS INITIAL. WRITE: / ‘invalid date’.ELSE. WRITE: / today.ENDIF.

Page 62: 02.ABAP2

Event Driven Programming

REPORT ztest.DATA today TYPE D.TOP-OF-PAGE. <ABAP statement>END-OF-PAGE. <ABAP statement>START-OF-SELECTION. <ABAP statement>

Page 63: 02.ABAP2

Report Driven List HeaderReport Driven List Header

REPORT ztest NO STANDARD PAGE HEADING.- -TOP OF PAGE.

FORMAT COLOR 1. WRITE: /5 ‘User Name’, 25 ‘Program Name’. ULINE.

- -START OF SELECTION. - -WRITE: /5 sy uname, 25 sy repid.

Page 64: 02.ABAP2

Report Driven Page FooterReport Driven Page Footer

REPORT ztest no standard page heading - LINE COUNT 10(2).- -TOP OF PAGE.

FORMAT COLOR 1. WRITE: / ‘Page : ’, sy-pagno. ULINE.

- -END OF PAGE. ULINE. WRITE: / ‘To be continue on n ext p age…’ .

- -START OF SELECTION. DO 20 TIMES. -WRITE: / sy index. ssssss

Page 65: 02.ABAP2

TOP-OF-PAGETOP-OF-PAGE

REPORT ztest no standard page heading.

TOP-OF-PAGE. FORMAT COLOR 1. WRITE: / 'Report Header'. ULINE.

START-OF-SELECTION. DO 100 TIMES. WRITE: / sy-index. ENDDO.

Page 66: 02.ABAP2

ABAP Program StructureReport ztest.*Data declarationdata ...data begin of ...

*Top-of-Page eventtop-of-page.

*End-of-Page eventend-of-page.

*Start-of-selectionStart-of-selection.

Page 67: 02.ABAP2

ABAP Practice

Page 68: 02.ABAP2

Exercise II

sy-datum

sy-uzeit

sy-repid

sy-unam

e


Recommended