ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character...

Post on 15-Jan-2016

230 views 0 download

Tags:

Transcript of ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character...

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

Header)

List Processing

Report Header

Report Listing (Body)

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

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

Creating Lists ABAP statement that create list

WRITE SKIP ULINE

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 BufferWRITE,SKI

P,ULINE

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 data WRITE: / ‘First Line’, ‘Data 1’,

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

sy-coln

o

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.

Column PositionColumn Position

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

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 Blanks(NO-ZERO)Suppressing 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 Integer data* RIGHT-JUSTIFIED for Character data* CENTEREDData tmp1(20) value ‘test’. WRITE: tmp1 CENTERED.

test

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

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

* Uline : ‘ ’.

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

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

FrameFrame

uline: /(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

FORMAT StatementFORMAT Statement

FORMAT [INTENSIFIED]

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

FORMAT StatementFORMAT Statement

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

FORMAT COLOR OFF.

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

Exercise I

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

*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

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

- ELSEIF sy mandt = ‘800’. WRITE: / ‘This is Development Client’.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: / ‘Production Client’ . WHEN ‘800’. WRITE: / ‘Development Client’. WHEN OTHERS. WRITE: / ‘Test Client ’ . ENDCASE.

DO StatementDO Statement

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

CONTINUE StatementCONTINUE Statement

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

CHECK StatementCHECK Statement

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

WHILE StatementWHILE Statement

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

Logical ExpressionsLogical Expressions

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

Arithmetic OperatorsArithmetic Operators

+ , - , * , / , ** DIVMOD

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

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

Manipulating Character Data

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

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

SHIFTSHIFT

* Shift sssssssss( 30) ‘ ’ .

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

Bill Charles

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.

TRANSLATETRANSLATE

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

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

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.

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

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

SplitSplit

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

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

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)

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.

Invalid DateInvalid Date

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

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

STRLEN Built-in FunctionSTRLEN Built-in Function

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

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.

WRITE ‘WRITE ‘

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

Exercise Create program to display

current month in text for example October

Report Driven : Page Report

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.

Event Driven Programming

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

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.

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

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.

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.

ABAP Practice

Exercise II

sy-datum

sy-uzeit

sy-repid

sy-unam

e