Вы находитесь на странице: 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

Вам также может понравиться