100% found this document useful (1 vote)
310 views17 pages

ECC 6.0 Solutions: Interactive Reporting SAP Development ABAP Training

This document contains sample ABAP code for interactive reporting exercises. It includes code for selecting vendor data from tables and displaying it in different windows, sorting invoices by amount, and totaling invoice amounts. The code demonstrates how to handle user interactions by checking the PF status and user command to display related data in different windows.

Uploaded by

topankajsharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
310 views17 pages

ECC 6.0 Solutions: Interactive Reporting SAP Development ABAP Training

This document contains sample ABAP code for interactive reporting exercises. It includes code for selecting vendor data from tables and displaying it in different windows, sorting invoices by amount, and totaling invoice amounts. The code demonstrates how to handle user interactions by checking the PF status and user command to display related data in different windows.

Uploaded by

topankajsharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 17

ECC 6.

0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 3, Exercise 1
Program name YIRxx03_1

REPORT YIRxx03_1.

Data:wa_lfa1 type lfa1.

select lifnr ort01 name1


from lfa1
into (wa_lfa1-lifnr,wa_lfa1-ort01,wa_lfa1-name1).
write:/ wa_lfa1-lifnr,wa_lfa1-ort01,34 wa_lfa1-name1.
endselect.

at pf05.
window starting at 10 2 ending at 90 5.
write:/ 'THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR'.

at pf06.
window starting at 10 3 ending at 70 8.
write:/ 'THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR IN DESCENDING ORDER.'.

at pf07.
window starting at 10 3 ending at 70 8.
write:/ 'THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR IN ASCENDING ORDER.'.

at pf08.
window starting at 10 3 ending at 70 8.
write:/ 'THIS WINDOW WILL EVENTUALLY CONTAIN A TOTAL OF THE INVOICES
FOR THE SELECTED VENDOR .'.

Dec-2008
Page 1
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 3, Exercise 2

Program name YIRxx03_2

REPORT YIRxx03_2.

Data:wa_lfa1 type lfa1.

select lifnr ort01 name1


from lfa1
into (wa_lfa1-lifnr,wa_lfa1-ort01,wa_lfa1-name1).
write:/ wa_lfa1-lifnr,wa_lfa1-ort01,34 wa_lfa1-name1.
endselect.

top-of-page.
write: ' Vendor ID', 20 'City' ,50 'Vendor Name.'.

Skip.

top-of-page during line-selection.


write:/ 'SY-LSIND= ',sy-lsind.

at pf05.
check sy-lsind = 1.
window starting at 10 2 ending at 90 14.
write:/ ' THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR'.

at pf06.
check sy-lsind = 2.
window starting at 10 3 ending at 90 14.
write:/ 'F6 THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR IN DESCENDING ORDER.'.

at pf07.
check sy-lsind = 2.
window starting at 10 3 ending at 90 14.
write:/ 'F7 THIS WINDOW WILL EVENTUALLY CONTAIN INVOICES FOR THE
SELECTED VENDOR IN ASCENDING ORDER.'.

at pf08.
check sy-lsind = 2.
window starting at 10 3 ending at 90 14.
write:/ 'F8 THIS WINDOW WILL EVENTUALLY CONTAIN A TOTAL OF THE
INVOICES'.

Dec-2008
Page 2
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 5, Exercise 1

Program name YIRxx05_1

REPORT YIRxx05_1 .

Data:wa_lfa1 type lfa1.

START-OF-SELECTION.

SELECT lifnr name1 ort01


FROM lfa1 INTO CORRESPONDING FIELDS OF wa_lfa1.
WRITE : / wa_lfa1-lifnr, 20 wa_lfa1-name1,50 wa_lfa1-ort01.
ENDSELECT.
SET PF-STATUS 'BASE'.

TOP-OF-PAGE.
WRITE: / 'VENDOR ID VENDOR NAME CITY'.

TOP-OF-PAGE DURING LINE-SELECTION.


WRITE: 'sy-lsind.= ',SY-LSIND.

CASE SY-PFKEY.
WHEN 'INVOICES'.
WRITE 'INVOICES'.
WHEN 'SORTD'.
WRITE ' SORT IN DESCENDING ORDER'.
WHEN 'SORTA'.
WRITE ' SORT IN ASCENDING ORDER'.
WHEN 'TOTA'.
WRITE 'TOTAL'.
ENDCASE.

AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'INVO'.
SY-LSIND = 1.
SET PF-STATUS 'INVOICES'.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR'.
WHEN 'SORTD'.
SET PF-STATUS 'SORTD'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4

Dec-2008
Page 3
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR, IN DESCENDING ORDER'.

WHEN 'SORTA'.
SET PF-STATUS 'SORTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR, IN ASCENDING ORDER'.
WHEN 'TOTA'.
SET PF-STATUS 'TOTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' TOTAL OF THE INVOICES FOR SELECTED VENDOR.'.
ENDCASE.

Dec-2008
Page 4
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 7, Exercise 1

Program name YIRxx07_1

REPORT YIRxx07_1 .

DATA: WA_LFA1 TYPE LFA1,


WA_BSIK TYPE BSIK.

DATA: TOTAL_SALES TYPE P DECIMALS 2,


HOLD_LIFNR(10) TYPE C.

TYPES: BEGIN OF ITAB_RECORD,


LIFNR LIKE BSIK-LIFNR,
BELNR LIKE BSIK-BELNR,
DMBTR LIKE BSIK-DMBTR,
END OF ITAB_RECORD.

DATA: I_TAB TYPE STANDARD TABLE OF ITAB_RECORD INITIAL SIZE 10 ,


WA_ITAB TYPE ITAB_RECORD.

START-OF-SELECTION.

SELECT lifnr NAME1 ORT01


FROM LFA1 INTO CORRESPONDING FIELDS OF WA_LFA1.
WRITE : / wa_lfa1-lifnr, 20 wa_lfa1-name1,50 wa_lfa1-ort01.
HIDE WA_LFA1-LIFNR.
ENDSELECT.

SET PF-STATUS 'BASE'.

TOP-OF-PAGE.
WRITE: / 'VENDOR ID VENDOR NAME CITY'.
ULINE.

TOP-OF-PAGE DURING LINE-SELECTION.


WRITE: 'sy-lsind.= ',SY-LSIND.

CASE SY-PFKEY.

WHEN 'INVOICES'.
WRITE 'INVOICES'.
WHEN 'SORTD'.
WRITE ' SORT IN DESCENDING ORDER'.
WHEN 'SORTA'.
WRITE ' SORT IN ASCENDING ORDER'.

Dec-2008
Page 5
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

WHEN 'TOTA'.
WRITE 'TOTAL'.
ENDCASE.

AT LINE-SELECTION.

CHECK NOT WA_LFA1-LIFNR IS INITIAL.


MOVE WA_LFA1-LIFNR TO HOLD_LIFNR.
REFRESH I_TAB.
SY-LSIND = 1.
SET PF-STATUS 'INVOICES'.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
SELECT * FROM BSIK INTO WA_BSIK WHERE LIFNR = WA_LFA1-LIFNR.
WRITE : / WA_BSIK-BELNR, 25 WA_BSIK-DMBTR.

WA_ITAB-LIFNR = WA_BSIK-LIFNR.
WA_ITAB-BELNR = WA_BSIK-BELNR.
WA_ITAB-DMBTR =WA_BSIK-DMBTR.,
APPEND WA_ITAB TO I_TAB.
ENDSELECT.

IF SY-SUBRC <> 0.
WRITE 'NO INVOICES FOR THE SELECTED VENDOR'.
ENDIF.
CLEAR WA_LFA1-LIFNR.

AT USER-COMMAND.
CASE SY-UCOMM.

WHEN 'SORTD'.
SET PF-STATUS 'SORTD'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
SORT I_TAB BY DMBTR DESCENDING.
LOOP AT I_TAB INTO WA_ITAB .
WRITE : / WA_ITAB-BELNR, 25 WA_ITAB-DMBTR.
ENDLOOP.

WHEN 'SORTA'.
SET PF-STATUS 'SORTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
SORT I_TAB BY DMBTR ASCENDING.
LOOP AT I_TAB INTO WA_ITAB .
WRITE : / WA_ITAB-BELNR, 25 WA_ITAB-DMBTR.

Dec-2008
Page 6
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

ENDLOOP.

WHEN 'TOTA'.
SET PF-STATUS 'TOTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
SELECT SUM( DMBTR ) INTO TOTAL_SALES FROM BSIK WHERE LIFNR = HOLD_LIFNR.
WRITE : 'TOTAL FOR INVOICES', TOTAL_SALES.
ENDCASE.

Dec-2008
Page 7
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 7, Exercise 2

program name YIRxx07_2

REPORT YIRxx07_2.

NODES : LFA1.

DATA : WA_T005T TYPE T005T,


WA_LFBK TYPE LFBK,
WA_BSIK TYPE BSIK.

TOP-OF-PAGE.
WRITE: / 'VENDOR NAME' COLOR 3, 40 'VENDOR ID' COLOR 3,
/ 'VENDOR CITY' COLOR 3, 40 'VENDOR COUNTRY' COLOR 3.
ULINE.
SKIP.

TOP-OF-PAGE DURING LINE-SELECTION.

CASE SY-UCOMM.

WHEN 'PF14'.
WRITE: / 'VENDOR BANK INFORMATION'.
SKIP.
WRITE: / 'VENDOR NO.', 14 'BANK COUNTRY', 30 'BANK KEY',
43 'ACCOUNT NO.'.
ULINE.
SKIP.
WHEN 'PF16'.
WRITE: / 'VENDOR DOCUMENT INFORMATION'.
SKIP.
WRITE: / 'VEND. NO.', 14 'DOC. #', 30 'DOC. DATE',
45 'POSTING DATE', 68 'AMOUNT'.
ULINE.
SKIP.

ENDCASE.

GET LFA1.
SELECT SINGLE * FROM T005T INTO WA_T005T WHERE SPRAS = 'E'
AND LAND1 = LFA1-LAND1.
WRITE: / LFA1-NAME1, 40 LFA1-LIFNR.
HIDE: LFA1-LIFNR.
WRITE: / LFA1-ORT01, 40 WA_T005T-LANDX.
HIDE: LFA1-LIFNR.
ULINE.

Dec-2008
Page 8
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

SKIP.

END-OF-SELECTION.
CLEAR: LFA1-LIFNR.

AT PF14.
CHECK NOT LFA1-LIFNR IS INITIAL.
SY-LSIND = 1.
WINDOW STARTING AT 5 4
ENDING AT 85 12.
SELECT * FROM LFBK INTO WA_LFBK WHERE LIFNR = LFA1-LIFNR.
WRITE: / WA_LFBK-LIFNR, 14 WA_LFBK-BANKS, 30 WA_LFBK-BANKL,
43 WA_LFBK-BANKN.
HIDE: LFA1-LIFNR.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE: / 'NO BANK INFORMATION EXISTS'.
HIDE LFA1-LIFNR.
WRITE: / 'FOR VENDOR', LFA1-LIFNR.
HIDE LFA1-LIFNR.
ENDIF.
CLEAR LFA1-LIFNR.

AT PF16.
CHECK NOT LFA1-LIFNR IS INITIAL.
SY-LSIND = 1.
WINDOW STARTING AT 5 4
ENDING AT 85 12.
SELECT * FROM BSIK INTO WA_BSIK WHERE LIFNR = LFA1-LIFNR.
WRITE: / WA_BSIK-LIFNR, 14 WA_BSIK-BELNR, 30 WA_BSIK-BLDAT,
45 WA_BSIK-BUDAT, 60 WA_BSIK-DMBTR. HIDE LFA1-LIFNR.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE: / 'NO DOCUMENT INFORMATION EXISTS'.
HIDE LFA1-LIFNR.
WRITE: / 'FOR VENDOR:', LFA1-LIFNR.
HIDE LFA1-LIFNR.
ENDIF.

CLEAR LFA1-LIFNR.

Dec-2008
Page 9
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 8, Exercise 1

Program name YIRxx08_1

REPORT YIRxx08_1.

NODES: LFA1.

DATA: CHEKFLD1 TYPE C,


MARKFLD2 TYPE C.

GET LFA1.
WRITE: / CHEKFLD1 AS CHECKBOX,
MARKFLD2,
LFA1-LIFNR,
(20) LFA1-NAME1,
(20) LFA1-ORT01,
LFA1-LAND1.

HIDE: LFA1-LIFNR,
LFA1-ANRED,
LFA1-NAME1,
LFA1-STRAS,
LFA1-PSTLZ,
LFA1-ORT01.

END-OF-SELECTION.
SET PF-STATUS 'BASE'.
SET TITLEBAR 'BAS'.

AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'LIST'.
NEW-PAGE PRINT ON.
DO.
CLEAR CHEKFLD1.
READ LINE SY-INDEX FIELD VALUE CHEKFLD1.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
IF CHEKFLD1 NE SPACE.
WRITE: / LFA1-LIFNR, LFA1-ANRED, LFA1-NAME1,
/ LFA1-STRAS,
/ LFA1-PSTLZ, LFA1-ORT01.
ULINE.
SKIP.
MODIFY CURRENT LINE
FIELD VALUE CHEKFLD1 FROM SPACE

Dec-2008
Page 10
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

MARKFLD2 FROM '*'


FIELD FORMAT CHEKFLD1 INPUT OFF
MARKFLD2 INTENSIFIED OFF.
ENDIF.
ENDDO.
NEW-PAGE PRINT OFF.
WRITE: / 'List Generated'.
ENDCASE.

Dec-2008
Page 11
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 9, Exercise 1

Program name YIRxx09_1

REPORT YIRXX09_1 .

NODES: LFA1.
DATA: WA_LFBK TYPE LFBK,
WA_BNKA. TYPE BNKA.

GET LFA1.
WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.
HIDE: LFA1-LIFNR.

END-OF-SELECTION.
CLEAR LFA1-LIFNR.
SET PF-STATUS 'BASE'.
SET TITLEBAR 'BAS'.

AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'BANK'.
PERFORM BANK_DETAIL.
ENDCASE.

AT LINE-SELECTION.
PERFORM BANK_DETAIL.

*---------------------------------------------------------------------*
* FORM BANK_DETAIL *
*---------------------------------------------------------------------*
FORM BANK_DETAIL.
CHECK NOT LFA1-LIFNR IS INITIAL.
SET PF-STATUS 'BANK'.
SET TITLEBAR 'BAN'.
IF SY-CUROW LT 12.
WINDOW STARTING AT 10 14
ENDING AT 77 20.
ELSE.
WINDOW STARTING AT 10 02
ENDING AT 77 08.
ENDIF.

SELECT * FROM LFBK INTO WA_LFBK WHERE LIFNR EQ LFA1-LIFNR.


CLEAR WA_BNKA.
SELECT SINGLE * FROM BNKA INTO WA_BNKA
WHERE BANKS EQ WA_LFBK-BANKS
AND BANKL EQ WA_LFBK-BANKL.

Dec-2008
Page 12
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

WRITE SY-LISEL.
SKIP.
WRITE: / 'Bank Information: '.
SKIP.
WRITE: / 'Bank Name:', 22 WA_BNKA-BANKA,
/ 'Bank Account', WA_LFBK-BANKN UNDER WA_BNKA-BANKA,
/ 'Bank Number', WA_LFBK-BANKL UNDER WA_BNKA-BANKA,
/ 'Bank Country Code', WA_LFBK-BANKS UNDER WA_BNKA-BANKA.
ENDSELECT.

IF SY-SUBRC <> 0.
WRITE: / 'There is no bank information for the selected vendor'.
ENDIF.

CLEAR LFA1-LIFNR.

ENDFORM.

Dec-2008
Page 13
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 9, Exercise 2

Program name YIRxx09_2

REPORT YIRxx09_2 .

NODES: LFA1, LFB1.


DATA:WA_BSIK TYPE BSIK.

GET LFB1.
WRITE: LFA1-LIFNR, (20) LFA1-NAME1, LFB1-BUKRS.
HIDE: LFA1-LIFNR, LFB1-BUKRS.

END-OF-SELECTION.
CLEAR LFA1-LIFNR.
SET PF-STATUS 'BASE'.
SET TITLEBAR 'BAS'.

AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'DOC'.
CHECK NOT LFA1-LIFNR IS INITIAL.
SET PF-STATUS 'WIND'.
SET TITLEBAR 'WIN'.
WINDOW STARTING AT 50 01
ENDING AT 77 14.

SELECT * FROM BSIK INTO WA_BSIK WHERE LIFNR EQ LFA1-LIFNR


AND BUKRS EQ LFB1-BUKRS.
WRITE: / WA_BSIK-BELNR, 14 WA_BSIK-BUDAT DD/MM/YYYY.
ENDSELECT.

IF SY-SUBRC NE 0.
SKIP 5.
WRITE: / 'No Documents'.
ENDIF.

ENDCASE.

CLEAR LFA1-LIFNR.

TOP-OF-PAGE DURING LINE-SELECTION.


WRITE: / 'Account:', LFA1-LIFNR,
'CC:', LFB1-BUKRS.
SKIP.
WRITE / 'Doc. No. Post No.'.
ULINE.

Dec-2008
Page 14
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Dec-2008
Page 15
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

Chapter 9, Exercise 3

Program name Z90XX9_3

REPORT Z90XX9_3 MESSAGE-ID ZZ.

NODES:LFA1.

DATA: FNAME(30) TYPE C.

GET LFA1.
WRITE: LFA1-LIFNR, (20) LFA1-NAME1, (20) LFA1-ORT01.
HIDE: LFA1-LIFNR.

END-OF-SELECTION.
SET PF-STATUS 'BASE'.
SET TITLEBAR 'BAS'.

TOP-OF-PAGE DURING LINE-SELECTION.


WRITE: SY-LISEL.
ULINE.
SKIP.

AT LINE-SELECTION.
SET PF-STATUS 'MORE'.
SET TITLEBAR 'MOR'.
GET CURSOR FIELD FNAME.
WINDOW STARTING AT 25 04
ENDING AT 65 09.
CASE FNAME.
WHEN 'LFA1-NAME1'.
SELECT SINGLE * FROM LFA1 WHERE LIFNR EQ LFA1-LIFNR.
WRITE: / Name1:,, 20 LFA1-NAME1,
/ Name2:, LFA1-NAME2 UNDER LFA1-NAME1,
/ Sort Field:, LFA1-SORTL UNDER LFA1-NAME1.

Dec-2008
Page 16
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training

WHEN 'LFA1-ORT01'.
SELECT SINGLE * FROM LFA1 WHERE LIFNR EQ LFA1-LIFNR.
WRITE: / Postal Code:, 20 LFA1-PSTLZ,
/ City, LFA1-ORT01 UNDER LFA1-PSTLZ,
/ Country, LFA1-LAND1 UNDER LFA1-PSTLZ.
WHEN OTHERS.
MESSAGE I810.
ENDCASE.

Dec-2008
Page 17

You might also like