0% found this document useful (0 votes)
81 views12 pages

Create A Report For Following Detail: Requirement

The document describes a report that: 1) Extracts data from various tables based on a selection screen input and populates internal tables. 2) Summarizes the extracted data and copies it to additional internal tables. 3) Loops through the copied data and summarizes quantities to populate a final internal table with sales document details, delivery details, and billing details. 4) Outputs the final internal table if records are found, or displays a message if no documents are available.

Uploaded by

dhivya
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
81 views12 pages

Create A Report For Following Detail: Requirement

The document describes a report that: 1) Extracts data from various tables based on a selection screen input and populates internal tables. 2) Summarizes the extracted data and copies it to additional internal tables. 3) Loops through the copied data and summarizes quantities to populate a final internal table with sales document details, delivery details, and billing details. 4) Outputs the final internal table if records are found, or displays a message if no documents are available.

Uploaded by

dhivya
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 12

CREATE A REPORT FOR FOLLOWING DETAIL:

REQUIREMENT:

1) Get Data from VBRK based on selection screen input Fields


Vbrk-vbeln populating Data into it_vbrk.
2) Get Fields Data VBELN POSNR FKIMG VGBEL VGPOS from VBRP
Where VBRP-VBELN = for all entries of it_vbrk-vbeln
From 2nd Step populate Data in IT_VBRP.
IT_VBRP is having Delivery Doc number in VGBEL and Del Item. No in VGPOS
IT_VBRPcopy (VBELN, TOTBILL qty, Corresponding Delivery number VGBEL)
3) Get Data From LIPS table for the fields VBELN POSNR LFIMG VGBEL
VGPOS
where LIPS-VBELN = for all entries IT_VBRP-vgbel and
LIPS-posnr = for all entries IT_VBRP-vgpos
From 3rd Step populate Data in IT_lips.

IT_lipscopy (VBELN, TOt del item qty, Corresponding Sales ord.no VGBEL)
4) Get Data From VBAP table for the fields VBELN POSNR kwmeng
where vbap-VBELN = for all entries IT_lips-vgbel and
vbap-posnr = for all entries IT_lips-vgpos
From 4th Step populate Data in IT_vbap.
IT_vbapcopy (VBELN, TOt sord item qty,)
1

5) Final Internal Table: it_final:


Sales Doc No, Tot Item qty for SORDno, Delidoc no, Tot Item qty for Del.NO,
Billing Doc no, Tot Item qty for Bill Doc.NO .
loop at it_vbapcopy.
it_final-sordno = it_vbapcopy-vbeln.
it_final-sordqty = it_vbapcopy-TOt sord item qty.
read IT_lipscopy with key vgbel = it_vbapcopy-vbeln.
if record found then populate

it_final-Delidocno = IT_lipscopy-vbeln
it_final-Tot Item qty for Del.NO = IT_lipscopy-TOt del item qty.
read it_vbrpcopy with key vgbel = IT_lipscopy-vbeln.
if record found then populate
it_final-Billdocno = it_vbrpcopy-vbeln
it_final-Tot Item qty for Bill Doc.NO = it_vbrpcopy-TOTBILL qty.
Add Record to it_final internal table

endloop.

CODING:
2

*&---------------------------------------------------------------------*
*& Report ZROUGH3
*& package name : zrproject
*&---------------------------------------------------------------------*
*&transport request number: e01k901774
*&
*&---------------------------------------------------------------------*
REPORT ZPROJECT_12 LINE-COUNT 20(2) LINE-SIZE 255.
TYPES: BEGIN OF TY_VBRK,
VBELN TYPE VBRK-VBELN,
"BILLING DOCUMENT NUMBER
END OF TY_VBRK.
DATA: TA_VBRK TYPE TABLE OF TY_VBRK,
WA_VBRK TYPE TY_VBRK.
TYPES: BEGIN OF TY_VBRP,
VBELN TYPE VBRP-VBELN,
POSNR TYPE VBRP-POSNR,
FKIMG TYPE VBRP-FKIMG,
VGBEL TYPE VBRP-VGBEL,
VGPOS TYPE VBRP-VGPOS,
END OF TY_VBRP.

"BILLING DOCUMENT NUMBER


"BILLING ITEM
"INVOICED QUANTITY
"DOC NUMB OF REF DOC
"ITEM NUMB OF REF ITEM

DATA: TA_VBRP TYPE TABLE OF TY_VBRP,


WA_VBRP TYPE TY_VBRP,
WA_VBRP_N TYPE TY_VBRP.
"DUMMY WORK AREA TO TRANSFER VALUES
TYPES: BEGIN OF TY_VBRPCOPY,
VBELN TYPE VBRP-VBELN,
TOT_BQ TYPE VBRP-fkimg,
VGBEL TYPE VBRP-VGBEL,
END OF TY_VBRPCOPY.

"TOTAL BILLING ITEM


"CORREPONDING DOC NUMBER

DATA: TA_VBRPCOPY TYPE TABLE OF TY_VBRPcopy,


WA_VBRPCOPY TYPE TY_VBRPcopy.
*data: sub_tot_bq type vbrp-fkimg,
*
tot_bq type vbrp-fkimg.
***declaration of delivery document table***
TYPES: BEGIN OF TY_LIPS,
VBELN TYPE LIPS-VBELN,
POSNR TYPE LIPS-POSNR,
LFIMG TYPE LIPS-LFIMG,
VGBEL TYPE LIPS-VGBEL,
VGPOS TYPE LIPS-VGPOS,
END OF TY_LIPS.

"DELIVERY NUMBER
"DELIVERY ITEM
"ACTUAL QUAN DELIVERED
"DOC NUMB OF REF DOC
"ITEM NUMB OF REF ITEM

DATA: TA_LIPS TYPE TABLE OF TY_LIPS,


WA_LIPS TYPE TY_LIPS,
wa_lips_n type ty_lips.
TYPES: BEGIN OF TY_LIPSCOPY,
VBELN TYPE LIPS-VBELN,
TOT_DIQ TYPE LIPS-lfimg,
VGBEL TYPE LIPS-VGBEL,
END OF TY_LIPSCOPY.

"TOTAL DELIVER ITEM QUANTITY

DATA: TA_LIPSCOPY TYPE TABLE OF TY_LIPSCOPY,


WA_LIPSCOPY TYPE TY_LIPSCOPY.
TYPES: BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
KWMENG TYPE VBAP-KWMENG,
END OF TY_VBAP.

"SALES DOC NO
"SALES DOC ITEM
"CUMULATIVE ORDER QUANTITY IN SALES

DATA: TA_VBAP TYPE TABLE OF TY_VBAP,


WA_VBAP TYPE TY_VBAP,
WA_VBAP_N TYPE TY_VBAP.
TYPES: BEGIN OF TY_VBAPCOPY,
VBELN TYPE VBAP-VBELN,
TOT_SIQ TYPE VBAP-KWMENG,

"TOTAL SALES ORDER ITEM QUANTITY

END OF TY_VBAPCOPY.
DATA: TA_VBAPCOPY TYPE TABLE OF TY_VBAPCOPY,
WA_VBAPCOPY TYPE TY_VBAPCOPY.
***DECLARATION OF FINAL TABLE***
TYPES: BEGIN OF TY_FINAL,
VBELN TYPE VBAP-VBELN,
TOT_SIQ TYPE VBAP-KWMENG,
P_VBELN TYPE LIPS-VBELN,
TOT_DIQ TYPE LIPS-LFIMG,
Q_VBELN TYPE VBRP-VBELN,
TOT_BQ TYPE VBRP-FKIMG,
END OF TY_FINAL.
DATA: TA_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
***DESIGNING SELECTION SCREEN***

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.


SELECT-OPTIONS: SO_VBELN FOR WA_VBRK-VBELN.
SELECTION-SCREEN END OF BLOCK B1.
***START-OF-SELECTION. ***
START-OF-SELECTION.
SELECT VBELN FROM VBRK INTO TABLE TA_VBRK WHERE VBELN IN SO_VBELN.
IF SY-SUBRC NE 0.
MESSAGE 'INVALID DOCUMENT NUMBER' TYPE 'E'.
ENDIF.
IF TA_VBRK IS NOT INITIAL.
SELECT VBELN POSNR FKIMG VGBEL VGPOS FROM VBRP INTO CORRESPONDING FIELDS
OF TABLE TA_VBRP
FOR ALL ENTRIES IN TA_VBRK
WHERE VBELN = TA_VBRK-VBELN.
ENDIF.
IF TA_VBRP IS NOT INITIAL.
SELECT vBELN POSNR LFIMG VGBEL VGPOS FROM LIPS INTO CORRESPONDING FIELDS O
F TABLE TA_LIPS
FOR ALL ENTRIES IN TA_VBRP
WHERE VBELN = TA_VBRP-VGBEL AND
POSNR = TA_VBRP-VGPOS.
ENDIF.
IF TA_LIPS IS NOT INITIAL.
SELECT VBELN POSNR KWMENG FROM VBAP INTO TABLE TA_VBAP FOR ALL ENTRIES I
N TA_LIPS
WHERE VBELN = TA_LIPS-VGBEL AND
POSNR = TA_LIPS-VGPOS.
ENDIF.
sort ta_vbrp by vbeln.
delete ADJACENT DUPLICATES FROM ta_vbrp COMPARING ALL FIELDS.
loop at ta_vbrp into wa_vbrp.
clear wa_vbrp_n.
wa_vbrp_n = wa_vbrp.
at new vbeln.

wa_vbrpcopy-vbeln = wa_vbrp-vbeln.

ENDAT.
wa_vbrpcopy-vgbel = wa_vbrp-vgbel.
wa_vbrpcopy-tot_bq = wa_vbrpcopy-tot_bq + wa_vbrp_n-fkimg.
*tot_bq = tot_bq + sub_tot_bq.

at END OF vbeln.
append wa_vbrpcopy to ta_vbrpcopy.
clear wa_vbrpcopy-tot_bq.
ENDAT.
ENDLOOP.
***FOR DELIVERY DOCUMENT***
sort ta_LIPS by vbeln.
delete ADJACENT DUPLICATES FROM ta_LIPS COMPARING ALL FIELDS.
loop at ta_LIPS into wa_LIPS.
clear wa_LIPS_n.
wa_LIPS_n = wa_LIPS.
at new vbeln.

wa_LIPScopy-vbeln = wa_LIPS-vbeln.

ENDAT.
wa_LIPScopy-vgbel = wa_LIPS-vgbel.
wa_LIPScopy-tot_DIq = wa_LIPScopy-tot_DIq + wa_LIPS-LFImg.
*tot_bq = tot_bq + sub_tot_bq.

at END OF vbeln.
append wa_LIPScopy to ta_LIPScopy.
clear wa_LIPScopy-tot_DIq.
ENDAT.
ENDLOOP.

***SALES DOCUMENT***
sort ta_VBAP by vbeln.
delete ADJACENT DUPLICATES FROM ta_VBAP COMPARING ALL FIELDS.
loop at ta_VBAP into wa_VBAP.
clear wa_VBAP_n.
wa_VBAP_n = wa_VBAP.
at new vbeln.

wa_VBAPcopy-vbeln = wa_VBAP-vbeln.

ENDAT.
wa_VBAPcopY-tot_SIq = wa_VBAPcopy-tot_SIq + wa_VBAP-KWMENG.
*tot_bq = tot_bq + sub_tot_bq.

at END OF vbeln.
append wa_VBAPcopy to ta_VBAPcopy.
clear wa_VBAPcopy-tot_SIq.
ENDAT.
ENDLOOP.
loop at ta_vbapcopy into wa_vbapcopy.
wa_final-vbeln = wa_vbapcopy-vbeln.
wa_final-tot_siq = wa_vbapcopy-tot_siq.
read TABLE ta_lipscopy into wa_lipscopy with key vgbel = wa_vbapcopy-vbeln.
if sy-subrc = 0.
wa_final-p_vbeln = wa_lipscopy-vbeln.
wa_final-tot_diq = wa_lipscopy-tot_diq.
endif.
read TABLE ta_vbrpcopy into wa_vbrpcopy with key vgbel = wa_lipscopy-vbeln.
if sy-subrc = 0.
wa_final-q_vbeln = wa_vbrpcopy-vbeln.
wa_final-tot_bq = wa_vbrpcopy-tot_bq.
ENDIF.

*modify ta_final FROM wa_final.


APPEND wa_final to ta_final.
clear wa_final.
endloop.
***end-of-SELECTION.***
end-of-SELECTION.
if ta_final is NOT INITIAL.
loop at ta_final INTO wa_final.
write:/ wa_final-vbeln , 20 wa_final-tot_siq , 40 wa_final-p_vbeln , 60 wa
_final-tot_diq,
80 wa_final-q_vbeln , 100 wa_final-tot_bq.
ENDLOOP.
ELSE.
MESSAGE 'NO DOCUMENT AVAILABLE' TYPE 'E'.
endif.
***TOP-OF-page***
TOP-OF-page.
write:/ 'sales document number' , 20 'saled item quantity', 40 'delivery doc.n
o' ,
60 'delivered quantity' ,80 'billing doc.no' ,100 'billed
quantity'.

OUTPUT:

NEGATIVE TESTING:

10

FOR WRONG DATA

11

NON AVAILABILITY OF DOCUMENT

12

You might also like