Professional Documents
Culture Documents
ABAP Control BRK Events
ABAP Control BRK Events
List
1. Report Listing
2. Drill-down Report
3. Control-break Report
4. ALV Report
AT
AT
AT
AT
FIRST
NEW <Control Break field>
END OF <Control Break field>ENDAT
LAST
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.
tab
nam
e
qty
Example I
name
sales
qty
10
20
30
10
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
sales
qty
10
20
30
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.
Exercise I
ZSALES
cust_id
prod_id
sale_date
qty
A1
20020318
10
A1
20020319
100
A1
20020329
50
A2
20020318
50
A2
20020329
200
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
----------------------------------
Connid
Cityfrom
cityto
distance
LH
0400
NY
BK
100
LH
0402
BK
NY
540
SQ
0110
SQ
BK
250
Example III
Data flight like spfli occurs 0 with Header line.
Select * from spfli into table flight.
loop at flight.
at new carrid.
LH 0400 0402
___________
write : / flight-carrid.
SQ 0110
endat.
___________
write flight-connid.
at end of carrid.
uline / (25).
endat.
endloop.
Name
prodno
Month
YTD
Accum
01
100.00
400.00
1,000.0
0
02
50.00
100.00
100.00
03
100.00
100.00
100.00
02
100.00
1,000.0 2,000.0
0
0
03
100.00
100.00
100.00
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
----------------------------------------------------
Total
200.00 1,100.00
2,100.00
---------------------------------------------------450.00
1,340.00
3,200.00
----------------------------------------------------
ABAP Program
...
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.
Exercise II
ZCUSTOMERS
i
d
name
city
John
New York
Peter
David
ZSALES
cust_id
prod_id
sale_date
qty
A1
2002031
8
10
London
A1
100
Singapor
e
2002031
9
A1
2002032
9
50
A2
2002031
8
50
A2
2002032
9
200
X1
2002032
1
90
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
-------------------------------
f
1
A
A
A
B
B
B
C
f
2
1
1
2
2
2
3
3
f
3
1
2
1
1
2
3
4
Loop at tab.
Group Header
Level 1
at new f1.
endat.
write: / normal data
at end of f2.
Sub Total Level 2
endat.
at end of f1.
Sub Total Level 1
endat.
Endloop.
Example IV (Control-break 2
Levels)
name
sales
date
qty
2007012
6
10
2007012
6
20
2007012
8
30
2007012
6
2007012
6
10
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
ZSALES
cust_id
prod_id
sale_date
qty
A1
2002031
8
10
A1
2002031
9
100
A1
2002032
9
50
A2
2002031
8
50
A2
2002032
9
200
X1
2002032
1
90
Exercise III
ALV Report
ALV Report
Call function
REUSE_ALV_GRID_DISPLAY
ALV Example I
List/Grid Display
ALV Example II
Using Field Catalog
START-OF-SELECTION.
select * from sflight.
move-corresponding sflight to gt_outtab.
gt_outtab-avail_seat = sflight-seatsmax - sflight-seatsocc.
append gt_outtab.
endselect.
*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 Example IV
Using Field Catalog
(SELECT INNER JOIN)
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.
*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
Exercise IV
ZCUSTOMERS
ZSALES
i
d
name
city
John
New York
Peter
David
ZPRODUCTS
cust_id
prod_id
sale_date
qty
A1
2002031
8
10
London
A1
100
Singapor
e
2002031
9
A1
2002032
9
50
A2
2002031
8
50
A2
2002032
9
200
X1
2002032
1
90
p_id
prod_nam
e
on_han
d
A1
Pen
100
A2
Pencil
125
B1
Ruler
80
X1
Tape
120
zsales-sale_date
zcustomers-id
zcustomersname
zproductsprod_name
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
TABLES
T_OUTTAB
= 'A'
"ADD
A = user&Global,U = user,X = g
= 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
TABLES
T_OUTTAB
= GT_LAYOUT "ADD
= 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. "AD
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
TABLES
T_OUTTAB
= GT_GID_TITLE "ADD
= gt_outtab.
Exercise
VBAP
Exercise : Control-break
Report
vbakvbeln
vbakaudat
vbakkunnr
kna1-name1
vbap-matnr
vbap-netwr
vbakkunnr
kna1-name1
vbap-matnr
vbap-netwr