Professional Documents
Culture Documents
10 - Interactive Reporting Exercise Solutions
10 - Interactive Reporting Exercise Solutions
0
Solutions: Interactive Reporting SAP Development ABAP Training
Chapter 3, Exercise 1
Program name YIRxx03_1
REPORT YIRxx03_1.
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
REPORT YIRxx03_2.
top-of-page.
write: ' Vendor ID', 20 'City' ,50 'Vendor Name.'.
Skip.
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
REPORT YIRxx05_1 .
START-OF-SELECTION.
TOP-OF-PAGE.
WRITE: / 'VENDOR ID VENDOR NAME CITY'.
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
REPORT YIRxx07_1 .
START-OF-SELECTION.
TOP-OF-PAGE.
WRITE: / 'VENDOR ID VENDOR NAME CITY'.
ULINE.
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.
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
REPORT YIRxx07_2.
NODES : LFA1.
TOP-OF-PAGE.
WRITE: / 'VENDOR NAME' COLOR 3, 40 'VENDOR ID' COLOR 3,
/ 'VENDOR CITY' COLOR 3, 40 'VENDOR COUNTRY' COLOR 3.
ULINE.
SKIP.
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
REPORT YIRxx08_1.
NODES: LFA1.
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
Dec-2008
Page 11
ECC 6.0
Solutions: Interactive Reporting SAP Development ABAP Training
Chapter 9, Exercise 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.
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
REPORT YIRxx09_2 .
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.
IF SY-SUBRC NE 0.
SKIP 5.
WRITE: / 'No Documents'.
ENDIF.
ENDCASE.
CLEAR LFA1-LIFNR.
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
NODES:LFA1.
GET LFA1.
WRITE: LFA1-LIFNR, (20) LFA1-NAME1, (20) LFA1-ORT01.
HIDE: LFA1-LIFNR.
END-OF-SELECTION.
SET PF-STATUS 'BASE'.
SET TITLEBAR 'BAS'.
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