SlideShare a Scribd company logo
ABAP Advanced List
 Control Break Report
 ALV Report
Types of ABAP Report
1. Report Listing
2. Drill-down Report
3. Control-break Report
4. ALV Report
1
3
4
Internal Table Processing Technique
Control-Break Report
Control Break Report Technique
 AT FIRST
 AT NEW <Control Break field>
 AT END OF <Control Break field>
 AT LAST
ENDAT
 SUM
Program Structure
…
LOOP AT tab.
*Print Header
AT FIRST.
…
ENDAT.
*Print Control Break Field
AT NEW name.
…
ENDAT.
*Print Normal Data
WRITE: / …
*Sub Total
AT END OF name.
…
ENDAT.
*Report Total
AT LAST.
…
ENDAT.
ENDLOOP.
name qty
tab
Example I
name qty
A 10
A 20
A 30
B 5
B 10
sales
Example I
…
LOOP AT SALES.
*Print Header
AT FIRST.
FORMAT COLOR 1.
WRITE: / 'Name', 23 'Qty', 35 ' '.
ULINE: /(35).
FORMAT COLOR OFF.
ENDAT.
*Print Control Break Field
AT NEW NAME.
WRITE: / SALES-NAME.
ULINE: /(5).
ENDAT.
*Print Normal Data
WRITE: /15 SALES-QTY.
Example I
*Print Total for each group data
AT END OF NAME.
ULINE: /(35).
SUM.
WRITE: /5 'Total' ,15 SALES-QTY COLOR 3.
ENDAT.
*Print Grand Total for the report
AT LAST.
ULINE: /(35).
SUM.
WRITE: /2 'Grand Total', 15 SALES-QTY COLOR 7.
ULINE: /(35).
ENDAT.
ENDLOOP.
Example II
name qty
A 10
A 20
A 30
B 5
B 10
sales
Example II
…
LOOP AT SALES.
AT FIRST.
FORMAT COLOR 1.
WRITE: / 'Name', 23 'Qty', 35 ' '.
ULINE: /(35).
FORMAT COLOR OFF.
ENDAT.
AT END OF NAME.
SUM.
WRITE: / SALES-NAME, 15 SALES-QTY.
ULINE: /(35).
ENDAT.
AT LAST.
SUM.
WRITE: /5 'Total', 15 SALES-QTY.
ULINE: /(35).
ENDAT.
ENDLOOP.
Exercise I
ZSALES
cust_id prod_id sale_date qty
1 A1 20020318 10
1 A1 20020319 100
1 A1 20020329 50
1 A2 20020318 50
1 A2 20020329 200
3 X1 20020321 90
Exercise I
ID
Product ID Quantity
1
A1 10
A1 100
A1 50
A2 50
A2 200
------------------------------
Total 410
3
X1 90
------------------------------
Total 90
------------------------------
Grand Total 500
----------------------------------
Example Data for Example III
Carrid Connid Cityfrom cityto distance
LH 0400 NY BK 100
LH 0402 BK NY 540
SQ 0110 SQ BK 250
spfli
Example III
Data flight like spfli occurs 0 with Header line.
Select * from spfli into table flight.
loop at flight.
at new carrid.
write : / flight-carrid.
endat.
write flight-connid.
at end of carrid.
uline / (25).
endat.
endloop.
LH 0400 0402
___________
SQ 0110
___________
Internal Table Processing Example
ID Name prodno Month YTD Accum
1 A 01 100.00 400.00 1,000.00
1 A 02 50.00 100.00 100.00
1 A 03 100.00 100.00 100.00
2 B 02 100.00 1,000.00 2,000.00
2 B 03 100.00 100.00 100.00
tab(internal table)
ID Name Month Y-T-D Accumulated
Product No.
------------------------------------------------------------------------------------
1 A
-----------------
01 100.00 400.00 1,000.00
02 50.00 100.00 100.00
03 100.00 100.00 100.00
----------------------------------------------------
250.00 600.00 1,200.00
2 B
-----------------
02 100.00 1,000.00 2,000.00
03 100.00 100.00 100.00
----------------------------------------------------
200.00 1,100.00 2,100.00
----------------------------------------------------
Total 450.00 1,340.00 3,200.00
----------------------------------------------------
...
loop at tab.
at first.
write: / ‘ID’ , 10 ‘Name’, 30 ‘Month’, 50 ‘Y-T-D’ ,
70 ‘Accumulated’.
write: /5 ‘Product No’.
uline /.
endat.
on change of tab-id.
write: / tab-id, 10 tab-name.
uline: /(20).
endon.
write: /5 tab-prodno, 30 tab-month, 50 tab-ytd,
70 tab-accum.
ABAP Program
at end of id.
uline /30(60).
sum.
write: /30 tab-month, 50 tab-ytd, 70 tab-accum.
skip.
endat.
at last.
sum.
uline /30(60).
write: /10 ‘Total’, 30 tab-month, 50 tab-ytd, 70 tab-accum.
uline /30(60).
endat.
endloop.
ABAP Program
Exercise II
id name city
1 John New York
2 Peter London
3 David Singapore
cust_id prod_id sale_date qty
1 A1 20020318 10
1 A1 20020319 100
1 A1 20020329 50
1 A2 20020318 50
1 A2 20020329 200
3 X1 20020321 90
ZSALES
ZCUSTOMERS
Exercise II
ID Name
____Product ID Quantity
1 John
A1 10
A1 100
A1 50
A2 50
A2 200
----------------------------
Total 410
3 Peter
X1 90
----------------------------
Total 90
----------------------------
Grand Total 500
-------------------------------
Control Break Report > 1 Level
f1 f2 f3
A 1 1
A 1 2
A 2 1
B 2 1
B 2 2
B 3 3
C 3 4
tab
Loop at tab.
…
at new f1.
…
endat.
at new f2.
…
endat.
write: / … “normal data
at end of f2.
…
endat.
at end of f1.
…
endat.
…
Endloop.
sort tab by f1 f2. Group Header Level
1
Group Header Level 2
Sub Total Level 2
Sub Total Level 1
Example IV (Control-break 2 Levels)
name date qty
A 20070126 10
A 20070126 20
A 20070128 30
B 20070126 5
B 20070126 10
sales
Example IV (Control-break 2 Levels)
…
AT NEW NAME.
WRITE: / SALES-NAME.
ULINE: /(5).
ENDAT.
AT NEW DATE.
WRITE: /10 SALES-DATE.
ULINE: /10(10).
ENDAT.
WRITE: /30 SALES-QTY.
AT END OF DATE.
ULINE: /(50).
SUM.
WRITE: /15 'Sub Total(Date)' ,30 SALES-QTY COLOR COL_TOTAL.
ENDAT.
AT END OF NAME.
ULINE: /(50).
SUM.
WRITE: /5 'Sub Total(Name)' ,30 SALES-QTY COLOR COL_TOTAL.
ENDAT.
…
Exercise III
cust_id prod_id sale_date qty
1 A1 20020318 10
1 A1 20020319 100
1 A1 20020329 50
1 A2 20020318 50
1 A2 20020329 200
3 X1 20020321 90
ZSALES
Exercise III
ALV ReportALV Report
ALV Report
 ALV Report Listing using Function
Module
 ALV Report using Control (ABAP Object)
ALV Grid Listing
 Call function ‘REUSE_ALV_GRID_DISPLAY’
ALV Grid Listing Example
REPORT ZALV01 NO STANDARD PAGE HEADING.
* Internal table
DATA: GT_TAB LIKE SFLIGHT OCCURS 0 WITH HEADER LINE.
* Load Data from DB into internal table
SELECT * FROM SFLIGHT INTO TABLE GT_TAB.
* Call ABAP List Viewer function
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
TABLES
T_OUTTAB = GT_TAB.
ALV Example I
List/Grid Display
ALV List/Grid Display
REPORT ZALV02 NO STANDARD PAGE HEADING.
PARAMETERS: list radiobutton group grp1,
grid radiobutton group grp1.
DATA: gt_tab LIKE sflight OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
SELECT * FROM sflight INTO TABLE gt_tab.
IF list = 'X'.
* Call ALV List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
TABLES
T_OUTTAB = GT_TAB.
ELSE.
* Call ALV Grid Viewer
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
TABLES
T_OUTTAB = GT_TAB.
ENDIF..
ALV Report : Exercise I
ALV Example II
Using Field Catalog
ALV Field Catalog
REPORT ZALV03 NO STANDARD PAGE HEADING.
type-pools slis.
types: begin of i_structure,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
end of i_structure.
data: gt_fieldcat type slis_t_fieldcat_alv,
gt_outtab type i_structure occurs 0 with header line.
initialization.
perform field_cat_init using gt_fieldcat[].
ALV Field Catalog
FORM field_cat_init using rt_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv,
pos type i value 1.
clear LS_FIELDCAT.
*Column 1
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-ref_fieldname = 'CARRID'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
ALV Field Catalog
*Column 2
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-ref_fieldname = 'CONNID'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
*Column 3
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'FLDATE'.
ls_fieldcat-ref_fieldname = 'FLDATE'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
ALV Field Catalog
*Column 4
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'PRICE'.
ls_fieldcat-ref_fieldname = 'PRICE'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
endform.
ALV Field Catalog
START-OF-SELECTION.
SELECT carrid connid fldate price
FROM SFLIGHT
INTO TABLE GT_OUTTAB.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'I_STRUCTURE'
IT_FIELDCAT = gt_fieldcat[]
TABLES
T_OUTTAB = gt_outtab.
ALV Field Catalog
ALV Report : Exercise II
ALV Example III
Using Field Catalog
(Add Derived Column)
ALV Field Catalog – Add
Field
…
types: begin of i_structure,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
avail_seat like SFLIGHT-SEATSOCC,
end of i_structure.
…
START-OF-SELECTION.
select * from sflight.
move-corresponding sflight to gt_outtab.
gt_outtab-avail_seat = sflight-seatsmax - sflight-seatsocc.
append gt_outtab.
endselect.
ALV Field Catalog – Add Field
form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv.
…
*Column 4
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'PRICE'.
ls_fieldcat-ref_fieldname = 'PRICE'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
*Column 5
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'AVAIL_SEAT'.
ls_fieldcat-SELTEXT_L = 'Available Seat'.
ls_fieldcat-DDICTXT = 'L'.
*ls_fieldcat-ref_fieldname = 'SEATSOCC'.
*ls_fieldcat-ref_tabname = 'SFLIGHT'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
pos = pos + 1.
endform.
ALV Field Catalog – Add Field
ALV Report : Exercise III
ALV Example IV
Using Field Catalog
(SELECT … INNER JOIN…)
ALV Field Catalog – Select … Inner Join …
…
types: begin of i_structure,
carrid LIKE spfli-carrid,
connid LIKE spfli-connid,
fldate LIKE sflight-fldate,
cityto LIKE spfli-cityto,
price LIKE sflight-price,
end of i_structure.
…
START-OF-SELECTION.
SELECT spfli~carrid spfli~connid sflight~fldate
spfli~cityto sflight~price
INTO TABLE gt_outtab
FROM spfli INNER JOIN sflight
ON spfli~carrid = sflight~carrid AND
spfli~connid = sflight~connid.
ALV Field Catalog
form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv.
…
*Column 4
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'CITYTO'.
ls_fieldcat-ref_fieldname = 'CITYTO'.
ls_fieldcat-ref_tabname = 'SPFLI'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
*Column 5
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'PRICE'.
ls_fieldcat-ref_fieldname = 'PRICE'.
ls_fieldcat-ref_tabname = 'SFLIGHT'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ENDFORM. "field_cat_init
ALV Report : Example IV
Exercise IV
id name city
1 John New York
2 Peter London
3 David Singapore
cust_id prod_id sale_date qty
1 A1 20020318 10
1 A1 20020319 100
1 A1 20020329 50
1 A2 20020318 50
1 A2 20020329 200
3 X1 20020321 90
ZSALES
ZCUSTOMERS
p_id prod_name on_hand
A1 Pen 100
A2 Pencil 125
B1 Ruler 80
X1 Tape 120
ZPRODUCTS
ALV Report : Exercise IV
zcustomers-id
zcustomers-name zproducts-
prod_name
zsales-sale_date
zsales-qty
ALV Technique
ALV : Variant
ALV : Variant
REPORT ZALV06 NO STANDARD PAGE HEADING.
type-pools slis.
types: begin of i_structure,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
end of i_structure.
data: gt_fieldcat type slis_t_fieldcat_alv,
isvariant like DISVARIANT. "ADD
gt_outtab type i_structure occurs 0 with header line.
initialization.
perform field_cat_init using gt_fieldcat[].
isvariant-report = 'ZALV06'. "ADD
ALV : Variant
START-OF-SELECTION.
SELECT carrid connid fldate price
FROM SFLIGHT
INTO TABLE GT_OUTTAB.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'I_STRUCTURE'
IT_FIELDCAT = gt_fieldcat[]
IS_VARIANT = isvariant "ADD
I_SAVE = 'A' "ADD
“ A = user&Global,U = user,X = globa
TABLES
T_OUTTAB = gt_outtab.
ALV : Zebra
ALV : Zebra
REPORT ZALV2 NO STANDARD PAGE HEADING.
type-pools slis.
types: begin of i_structure,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
end of i_structure.
data: gt_fieldcat type slis_t_fieldcat_alv,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV, "ADD
gt_outtab type i_structure occurs 0 with header line.
initialization.
perform field_cat_init using gt_fieldcat[].
GT_LAYOUT-ZEBRA = 'X'. "ADD
ALV : Zebra
START-OF-SELECTION.
SELECT carrid connid fldate price
FROM SFLIGHT
INTO TABLE GT_OUTTAB.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'I_STRUCTURE'
IT_FIELDCAT = gt_fieldcat[]
IS_LAYOUT = GT_LAYOUT "ADD
TABLES
T_OUTTAB = gt_outtab.
ALV : Title
ALV : Title
REPORT ZALV2 NO STANDARD PAGE HEADING.
type-pools slis.
types: begin of i_structure,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
end of i_structure.
data: gt_fieldcat type slis_t_fieldcat_alv,
GT_GID_TITLE TYPE LVC_TITLE, "ADD
gt_outtab type i_structure occurs 0 with header line.
initialization.
perform field_cat_init using gt_fieldcat[].
concatenate 'Flight Information' ' for ALV Report' into GT_GID_TITLE. "ADD
ALV : Title
START-OF-SELECTION.
SELECT carrid connid fldate price
FROM SFLIGHT
INTO TABLE GT_OUTTAB.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'I_STRUCTURE'
IT_FIELDCAT = gt_fieldcat[]
I_GRID_TITLE = GT_GID_TITLE "ADD
TABLES
T_OUTTAB = gt_outtab.
Exercise
Exercise : Sale Order
VBAK
KNA1
VBAP
Exercise : Control-break Report
vbak-vbeln
vbak-audat
vbak-kunnr kna1-name1
vbap-matnr
vbap-netwr
Exercise : ALV Report
vbak-vbeln
vbak-audat
vbak-kunnr kna1-name1
vbap-matnr vbap-netwr

More Related Content

PPT
07.Advanced Abap
PPT
ABAP Advanced List
PPT
Open SQL & Internal Table
DOCX
Example syntax alv grid list
PPT
Modularization & Catch Statement
PPT
List Processing in ABAP
DOCX
Alv interactive ABAPreport
PPT
Dialog Programming Overview
07.Advanced Abap
ABAP Advanced List
Open SQL & Internal Table
Example syntax alv grid list
Modularization & Catch Statement
List Processing in ABAP
Alv interactive ABAPreport
Dialog Programming Overview

What's hot (20)

PPT
List Processing in ABAP
PPTX
Basic programming
PPTX
Reports
DOCX
Sql lab experiments
PPT
Message, Debugging, File Transfer and Type Group
TXT
Alvedit programs
PDF
To excel or not?
DOC
Program For Parsing2
PPT
Sql query [select, sub] 4
DOC
Zmalv output type_v1.1
DOC
Alv Block
PDF
Common SQL Programming Mistakes
PPTX
Stack using Linked List
PPTX
Stack using Array
PPT
StackArray stack3
DOCX
SQL-RDBMS Queries and Question Bank
PDF
Tablas, Codigos Base De Datos Excelsa
PDF
Sql cheat sheet
PDF
Data structures stacks
PDF
[APJ] Common Table Expressions (CTEs) in SQL
 
List Processing in ABAP
Basic programming
Reports
Sql lab experiments
Message, Debugging, File Transfer and Type Group
Alvedit programs
To excel or not?
Program For Parsing2
Sql query [select, sub] 4
Zmalv output type_v1.1
Alv Block
Common SQL Programming Mistakes
Stack using Linked List
Stack using Array
StackArray stack3
SQL-RDBMS Queries and Question Bank
Tablas, Codigos Base De Datos Excelsa
Sql cheat sheet
Data structures stacks
[APJ] Common Table Expressions (CTEs) in SQL
 
Ad

Similar to 07.advanced abap (20)

PPT
Alv theory
DOC
Technical specification : SD(Logistics)_Order_Processing
DOCX
Report zalv
PPT
1582627
PDF
Cobol Error Its states that my patron-line wasnt defined as a data .pdf
PDF
ZFINDALLZPROGAM
PPT
Sort presentation
DOC
Report zcomprasreporte abap
DOCX
Classical report
PDF
DBMS Lab
PPTX
OpenWorld Sep14 12c for_developers
DOCX
Alv a otro alv
PDF
StarPort_Capabilities_List_Rev_6
PDF
The Ring programming language version 1.7 book - Part 10 of 196
PDF
kscope2013vst-130627142814-phpapp02.pdf
DOCX
PDF
DOC
Module Prog
DOC
Zi fi final prog
DOCX
Alv theory
Technical specification : SD(Logistics)_Order_Processing
Report zalv
1582627
Cobol Error Its states that my patron-line wasnt defined as a data .pdf
ZFINDALLZPROGAM
Sort presentation
Report zcomprasreporte abap
Classical report
DBMS Lab
OpenWorld Sep14 12c for_developers
Alv a otro alv
StarPort_Capabilities_List_Rev_6
The Ring programming language version 1.7 book - Part 10 of 196
kscope2013vst-130627142814-phpapp02.pdf
Module Prog
Zi fi final prog
Ad

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Approach and Philosophy of On baking technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Approach and Philosophy of On baking technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation

07.advanced abap

  • 1. ABAP Advanced List  Control Break Report  ALV Report
  • 2. Types of ABAP Report 1. Report Listing 2. Drill-down Report 3. Control-break Report 4. ALV Report 1 3 4
  • 3. Internal Table Processing Technique Control-Break Report
  • 4. Control Break Report Technique  AT FIRST  AT NEW <Control Break field>  AT END OF <Control Break field>  AT LAST ENDAT  SUM
  • 5. Program Structure … LOOP AT tab. *Print Header AT FIRST. … ENDAT. *Print Control Break Field AT NEW name. … ENDAT. *Print Normal Data WRITE: / … *Sub Total AT END OF name. … ENDAT. *Report Total AT LAST. … ENDAT. ENDLOOP. name qty tab
  • 6. Example I name qty A 10 A 20 A 30 B 5 B 10 sales
  • 7. Example I … LOOP AT SALES. *Print Header AT FIRST. FORMAT COLOR 1. WRITE: / 'Name', 23 'Qty', 35 ' '. ULINE: /(35). FORMAT COLOR OFF. ENDAT. *Print Control Break Field AT NEW NAME. WRITE: / SALES-NAME. ULINE: /(5). ENDAT. *Print Normal Data WRITE: /15 SALES-QTY.
  • 8. Example I *Print Total for each group data AT END OF NAME. ULINE: /(35). SUM. WRITE: /5 'Total' ,15 SALES-QTY COLOR 3. ENDAT. *Print Grand Total for the report AT LAST. ULINE: /(35). SUM. WRITE: /2 'Grand Total', 15 SALES-QTY COLOR 7. ULINE: /(35). ENDAT. ENDLOOP.
  • 9. Example II name qty A 10 A 20 A 30 B 5 B 10 sales
  • 10. Example II … LOOP AT SALES. AT FIRST. FORMAT COLOR 1. WRITE: / 'Name', 23 'Qty', 35 ' '. ULINE: /(35). FORMAT COLOR OFF. ENDAT. AT END OF NAME. SUM. WRITE: / SALES-NAME, 15 SALES-QTY. ULINE: /(35). ENDAT. AT LAST. SUM. WRITE: /5 'Total', 15 SALES-QTY. ULINE: /(35). ENDAT. ENDLOOP.
  • 11. Exercise I ZSALES cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90
  • 12. Exercise I ID Product ID Quantity 1 A1 10 A1 100 A1 50 A2 50 A2 200 ------------------------------ Total 410 3 X1 90 ------------------------------ Total 90 ------------------------------ Grand Total 500 ----------------------------------
  • 13. Example Data for Example III Carrid Connid Cityfrom cityto distance LH 0400 NY BK 100 LH 0402 BK NY 540 SQ 0110 SQ BK 250 spfli
  • 14. Example III Data flight like spfli occurs 0 with Header line. Select * from spfli into table flight. loop at flight. at new carrid. write : / flight-carrid. endat. write flight-connid. at end of carrid. uline / (25). endat. endloop. LH 0400 0402 ___________ SQ 0110 ___________
  • 15. Internal Table Processing Example ID Name prodno Month YTD Accum 1 A 01 100.00 400.00 1,000.00 1 A 02 50.00 100.00 100.00 1 A 03 100.00 100.00 100.00 2 B 02 100.00 1,000.00 2,000.00 2 B 03 100.00 100.00 100.00 tab(internal table)
  • 16. ID Name Month Y-T-D Accumulated Product No. ------------------------------------------------------------------------------------ 1 A ----------------- 01 100.00 400.00 1,000.00 02 50.00 100.00 100.00 03 100.00 100.00 100.00 ---------------------------------------------------- 250.00 600.00 1,200.00 2 B ----------------- 02 100.00 1,000.00 2,000.00 03 100.00 100.00 100.00 ---------------------------------------------------- 200.00 1,100.00 2,100.00 ---------------------------------------------------- Total 450.00 1,340.00 3,200.00 ----------------------------------------------------
  • 17. ... loop at tab. at first. write: / ‘ID’ , 10 ‘Name’, 30 ‘Month’, 50 ‘Y-T-D’ , 70 ‘Accumulated’. write: /5 ‘Product No’. uline /. endat. on change of tab-id. write: / tab-id, 10 tab-name. uline: /(20). endon. write: /5 tab-prodno, 30 tab-month, 50 tab-ytd, 70 tab-accum. ABAP Program
  • 18. at end of id. uline /30(60). sum. write: /30 tab-month, 50 tab-ytd, 70 tab-accum. skip. endat. at last. sum. uline /30(60). write: /10 ‘Total’, 30 tab-month, 50 tab-ytd, 70 tab-accum. uline /30(60). endat. endloop. ABAP Program
  • 19. Exercise II id name city 1 John New York 2 Peter London 3 David Singapore cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90 ZSALES ZCUSTOMERS
  • 20. Exercise II ID Name ____Product ID Quantity 1 John A1 10 A1 100 A1 50 A2 50 A2 200 ---------------------------- Total 410 3 Peter X1 90 ---------------------------- Total 90 ---------------------------- Grand Total 500 -------------------------------
  • 21. Control Break Report > 1 Level f1 f2 f3 A 1 1 A 1 2 A 2 1 B 2 1 B 2 2 B 3 3 C 3 4 tab Loop at tab. … at new f1. … endat. at new f2. … endat. write: / … “normal data at end of f2. … endat. at end of f1. … endat. … Endloop. sort tab by f1 f2. Group Header Level 1 Group Header Level 2 Sub Total Level 2 Sub Total Level 1
  • 22. Example IV (Control-break 2 Levels) name date qty A 20070126 10 A 20070126 20 A 20070128 30 B 20070126 5 B 20070126 10 sales
  • 23. Example IV (Control-break 2 Levels) … AT NEW NAME. WRITE: / SALES-NAME. ULINE: /(5). ENDAT. AT NEW DATE. WRITE: /10 SALES-DATE. ULINE: /10(10). ENDAT. WRITE: /30 SALES-QTY. AT END OF DATE. ULINE: /(50). SUM. WRITE: /15 'Sub Total(Date)' ,30 SALES-QTY COLOR COL_TOTAL. ENDAT. AT END OF NAME. ULINE: /(50). SUM. WRITE: /5 'Sub Total(Name)' ,30 SALES-QTY COLOR COL_TOTAL. ENDAT. …
  • 24. Exercise III cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90 ZSALES
  • 27. ALV Report  ALV Report Listing using Function Module  ALV Report using Control (ABAP Object)
  • 28. ALV Grid Listing  Call function ‘REUSE_ALV_GRID_DISPLAY’
  • 29. ALV Grid Listing Example REPORT ZALV01 NO STANDARD PAGE HEADING. * Internal table DATA: GT_TAB LIKE SFLIGHT OCCURS 0 WITH HEADER LINE. * Load Data from DB into internal table SELECT * FROM SFLIGHT INTO TABLE GT_TAB. * Call ABAP List Viewer function CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB.
  • 31. ALV List/Grid Display REPORT ZALV02 NO STANDARD PAGE HEADING. PARAMETERS: list radiobutton group grp1, grid radiobutton group grp1. DATA: gt_tab LIKE sflight OCCURS 0 WITH HEADER LINE. START-OF-SELECTION. SELECT * FROM sflight INTO TABLE gt_tab. IF list = 'X'. * Call ALV List Viewer CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB. ELSE. * Call ALV Grid Viewer CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB. ENDIF..
  • 32. ALV Report : Exercise I
  • 33. ALV Example II Using Field Catalog
  • 34. ALV Field Catalog REPORT ZALV03 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[].
  • 35. ALV Field Catalog FORM field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. data: ls_fieldcat type slis_fieldcat_alv, pos type i value 1. clear LS_FIELDCAT. *Column 1 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CARRID'. ls_fieldcat-ref_fieldname = 'CARRID'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1.
  • 36. ALV Field Catalog *Column 2 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CONNID'. ls_fieldcat-ref_fieldname = 'CONNID'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. *Column 3 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'FLDATE'. ls_fieldcat-ref_fieldname = 'FLDATE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1.
  • 37. ALV Field Catalog *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. endform.
  • 38. ALV Field Catalog START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] TABLES T_OUTTAB = gt_outtab.
  • 40. ALV Report : Exercise II
  • 41. ALV Example III Using Field Catalog (Add Derived Column)
  • 42. ALV Field Catalog – Add Field … types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, avail_seat like SFLIGHT-SEATSOCC, end of i_structure. … START-OF-SELECTION. select * from sflight. move-corresponding sflight to gt_outtab. gt_outtab-avail_seat = sflight-seatsmax - sflight-seatsocc. append gt_outtab. endselect.
  • 43. ALV Field Catalog – Add Field form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. … *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. *Column 5 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'AVAIL_SEAT'. ls_fieldcat-SELTEXT_L = 'Available Seat'. ls_fieldcat-DDICTXT = 'L'. *ls_fieldcat-ref_fieldname = 'SEATSOCC'. *ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. endform.
  • 44. ALV Field Catalog – Add Field
  • 45. ALV Report : Exercise III
  • 46. ALV Example IV Using Field Catalog (SELECT … INNER JOIN…)
  • 47. ALV Field Catalog – Select … Inner Join … … types: begin of i_structure, carrid LIKE spfli-carrid, connid LIKE spfli-connid, fldate LIKE sflight-fldate, cityto LIKE spfli-cityto, price LIKE sflight-price, end of i_structure. … START-OF-SELECTION. SELECT spfli~carrid spfli~connid sflight~fldate spfli~cityto sflight~price INTO TABLE gt_outtab FROM spfli INNER JOIN sflight ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid.
  • 48. ALV Field Catalog form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. … *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CITYTO'. ls_fieldcat-ref_fieldname = 'CITYTO'. ls_fieldcat-ref_tabname = 'SPFLI'. APPEND ls_fieldcat TO rt_fieldcat. CLEAR ls_fieldcat. pos = pos + 1. *Column 5 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. APPEND ls_fieldcat TO rt_fieldcat. CLEAR ls_fieldcat. pos = pos + 1. ENDFORM. "field_cat_init
  • 49. ALV Report : Example IV
  • 50. Exercise IV id name city 1 John New York 2 Peter London 3 David Singapore cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90 ZSALES ZCUSTOMERS p_id prod_name on_hand A1 Pen 100 A2 Pencil 125 B1 Ruler 80 X1 Tape 120 ZPRODUCTS
  • 51. ALV Report : Exercise IV zcustomers-id zcustomers-name zproducts- prod_name zsales-sale_date zsales-qty
  • 54. ALV : Variant REPORT ZALV06 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, isvariant like DISVARIANT. "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. isvariant-report = 'ZALV06'. "ADD
  • 55. ALV : Variant START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] IS_VARIANT = isvariant "ADD I_SAVE = 'A' "ADD “ A = user&Global,U = user,X = globa TABLES T_OUTTAB = gt_outtab.
  • 57. ALV : Zebra REPORT ZALV2 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, GT_LAYOUT TYPE SLIS_LAYOUT_ALV, "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. GT_LAYOUT-ZEBRA = 'X'. "ADD
  • 58. ALV : Zebra START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] IS_LAYOUT = GT_LAYOUT "ADD TABLES T_OUTTAB = gt_outtab.
  • 60. ALV : Title REPORT ZALV2 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, GT_GID_TITLE TYPE LVC_TITLE, "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. concatenate 'Flight Information' ' for ALV Report' into GT_GID_TITLE. "ADD
  • 61. ALV : Title START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] I_GRID_TITLE = GT_GID_TITLE "ADD TABLES T_OUTTAB = gt_outtab.
  • 63. Exercise : Sale Order VBAK KNA1 VBAP
  • 64. Exercise : Control-break Report vbak-vbeln vbak-audat vbak-kunnr kna1-name1 vbap-matnr vbap-netwr
  • 65. Exercise : ALV Report vbak-vbeln vbak-audat vbak-kunnr kna1-name1 vbap-matnr vbap-netwr