Upload
candice-williams
View
232
Download
0
Tags:
Embed Size (px)
Citation preview
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