Top Banner
ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character Data Report Driven : Page Report (List Header)
68
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1582627

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

Header)

Page 2: 1582627

List Processing

Report Header

Report Listing (Body)

Page 3: 1582627

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: 1582627

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: 1582627

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: 1582627

List BufferList Buffer

Dialog WP

TaskHandler

Dynpro Processor

ABAP Processor

Local Memory

Memory Space

DB Interface

List BufferWRITE,SKI

P,ULINE

Page 7: 1582627

WRITE StatementWRITE Statement

*Write data

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

WRITE / 20 ‘Test data’.

Page 8: 1582627

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: 1582627

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: 1582627

Text Symbol

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

Page 11: 1582627

Column PositionColumn Position

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

Page 12: 1582627

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: 1582627

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

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

Page 14: 1582627

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

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

Page 15: 1582627

NO-GROUPINGNO-GROUPING

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

Page 16: 1582627

NO-GAPNO-GAP

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

Page 17: 1582627

DECIMALSDECIMALS

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

Page 18: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

Exercise I

sy-datum

sy-uzeit

Page 23: 1582627

FORMAT StatementFORMAT Statement

FORMAT [INTENSIFIED]

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

Page 24: 1582627

FORMAT StatementFORMAT Statement

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

FORMAT COLOR OFF.

Page 25: 1582627

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: 1582627

Exercise I

Page 27: 1582627

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: 1582627

*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: 1582627

Flow Control in ABAP

Page 30: 1582627

Flow Control in ABAP Flow Control in ABAP

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

Page 31: 1582627

IF StatementIF Statement

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

Page 32: 1582627

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: 1582627

CASE StatementCASE Statement

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

Page 34: 1582627

CASE StatementCASE Statement

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

Page 35: 1582627

DO StatementDO Statement

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

Page 36: 1582627

CONTINUE StatementCONTINUE Statement

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

Page 37: 1582627

CHECK StatementCHECK Statement

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

Page 38: 1582627

WHILE StatementWHILE Statement

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

Page 39: 1582627

Logical ExpressionsLogical Expressions

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

Page 40: 1582627

Arithmetic OperatorsArithmetic Operators

+ , - , * , / , ** DIVMOD

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

Page 41: 1582627

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: 1582627

Manipulating Character Data

Page 43: 1582627

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: 1582627

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: 1582627

SHIFTSHIFT

* Shift sssssssss( 30) ‘ ’ .

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

Bill Charles

Page 46: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

SplitSplit

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

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

Page 52: 1582627

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: 1582627

WRITE … TO …WRITE … 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: 1582627

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: 1582627

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: 1582627

STRLEN Built-in FunctionSTRLEN Built-in Function

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

Page 57: 1582627

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: 1582627

WRITE ‘WRITE ‘

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

Page 59: 1582627

Exercise Create program to display

current month in text for example October

Page 60: 1582627

Report Driven : Page Report

Page 61: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

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: 1582627

ABAP Practice

Page 68: 1582627

Exercise II

sy-datum

sy-uzeit

sy-repid

sy-unam

e