0% found this document useful (0 votes)
80 views

Coding

The document contains definitions for database tables used in an SAP system. It defines the fields, data types and structures for tables related to accounting, purchasing, materials management and vendor information. It also contains code for selecting, filtering and displaying data from these tables for reporting and analysis.

Uploaded by

ritesh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views

Coding

The document contains definitions for database tables used in an SAP system. It defines the fields, data types and structures for tables related to accounting, purchasing, materials management and vendor information. It also contains code for selecting, filtering and displaying data from these tables for reporting and analysis.

Uploaded by

ritesh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 26

Pandra park c-91 india gate

172.17.54.33
255.255.255.0
172.17.54.1
172.17.54.1
8.8.8.8

TYPES : BEGIN OF ty_bkpf,


bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
bldat TYPE bldat,
budat TYPE budat,
xblnr TYPE xblnr1,
awkey TYPE awkey,
zmrno TYPE belnr_d,
zmryr TYPE gjahr,
END OF ty_bkpf,
BEGIN OF ty_bset,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
buzei TYPE buzei,
mwskz TYPE mwskz,
hkont TYPE hkont,
txgrp TYPE txgrp,
shkzg TYPE shkzg,
hwbas TYPE hwbas_bses,
hwste TYPE hwste,
ktosl TYPE ktosl,
kschl TYPE kschl,
kbetr TYPE kbetr_tax,
END OF ty_bset,
BEGIN OF ty_bseg,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
buzei TYPE buzei,
buzid TYPE buzid,
koart TYPE koart,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
hkont TYPE hkont,
lifnr TYPE lifnr,

mwskz TYPE mwskz,


txgrp TYPE txgrp,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
xref3 TYPE xref3,
werks TYPE werks_d,
zmgno TYPE lfbnr,
zmgyr TYPE lfgja,
END OF ty_bseg,
BEGIN OF ty_lfa1,
lifnr TYPE lifnr,
name1 TYPE name1_gp,
ort01 TYPE ort01_gp,
regio TYPE regio,
adrnr TYPE adrnr,
END OF ty_lfa1,
BEGIN OF ty_t005u,
spras TYPE spras,
land1 TYPE land1,
bland TYPE regio,
bezei TYPE bezei20,
END OF ty_t005u,
BEGIN OF ty_j_1imovend,
lifnr TYPE lifnr,
j_1iexcd TYPE j_1iexcd,
j_1iexrn TYPE j_1iexrn,
j_1iexrg TYPE j_1iexrg,
j_1icstno TYPE j_1icstno,
j_1ilstno TYPE j_1ilstno,
j_1ipanno TYPE j_1ipanno,
j_1ivtyp TYPE j_1ivtyp,
j_1isern TYPE j_1isern,
END OF ty_j_1imovend,
BEGIN OF ty_rseg,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
buzei TYPE rblgp,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
matnr TYPE matnr,
menge TYPE menge_d,
meins TYPE meins,
werks TYPE werks_d,
wrbtr TYPE wrbtr,
lfbnr TYPE lfbnr,
lfgja TYPE lfgja,
zbuzei TYPE rblgp,

END OF ty_rseg,
BEGIN OF ty_mara,
matnr TYPE matnr,
mtart TYPE mtart,
matkl TYPE matkl,
meins TYPE meins,
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE matnr,
spras TYPE spras,
maktx TYPE maktx,
END OF ty_makt,
BEGIN OF ty_t023t,
spras TYPE spras,
matkl TYPE matkl,
wgbez TYPE wgbez,
wgbez60 TYPE wgbez60,
END OF ty_t023t,
BEGIN OF ty_ekpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
txz01 TYPE txz01,
netpr TYPE bprei,
banfn TYPE banfn,
END OF ty_ekpo,
BEGIN OF ty_ekko,
ebeln TYPE ebeln,
bsart TYPE esart,
waers TYPE waers,
bedat TYPE bedat,
END OF ty_ekko,
BEGIN OF ty_eban,
banfn TYPE banfn,
bnfpo TYPE bnfpo,
afnam TYPE afnam,
END OF ty_eban,
BEGIN OF ty_zdept,
deptno TYPE zdeptno1,
deptname TYPE zdeptname,
END OF ty_zdept,
BEGIN OF ty_t007s,
spras TYPE spras,
kalsm TYPE kalsm_d,

mwskz TYPE mwskz,


text1 TYPE text1_007s,
END OF ty_t007s,
BEGIN OF ty_mkpf,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
bldat TYPE bldat,
xblnr TYPE XBLNR1,
END OF ty_mkpf,
BEGIN OF ty_t001w,
werks TYPE werks_d,
regio TYPE regio,
END OF ty_t001w,
BEGIN OF ty_rbkp,
belnr TYPE re_belnr,
gjahr TYPE gjahr,
bldat TYPE bldat,
budat TYPE budat,
xblnr TYPE xblnr1,
bukrs TYPE bukrs,
END OF ty_rbkp,
BEGIN OF ty_final,
bukrs TYPE bukrs,
werks TYPE werks_d,
xblnr TYPE xblnr1,
bldat TYPE bldat,
matnr TYPE matnr,
maktx TYPE maktx,
mtart TYPE mtart,
wgbez TYPE wgbez,
meins TYPE meins,
banfn TYPE banfn,
deptname TYPE zdeptname,
lifnr TYPE lifnr,
name1 TYPE name1_gp,
ort01 TYPE ort01_gp,
regio TYPE regio,
bezei TYPE bezei20,
j_1iexcd TYPE j_1iexcd,
j_1iexrn TYPE j_1iexrn,
j_1iexrg TYPE j_1iexrg,
j_1icstno TYPE j_1icstno,
j_1ilstno TYPE j_1ilstno,
j_1ipanno TYPE j_1ipanno,
j_1ivtyp TYPE j_1ivtyp,
j_1isern TYPE j_1isern,
lfbnr TYPE lfbnr,

lfgja TYPE lfgja,


bldat1 TYPE bldat,
catg TYPE char20,
bsart TYPE esart,
ebeln TYPE ebeln,
bedat TYPE bedat,
waers TYPE waers,
menge TYPE menge_d,
netpr TYPE netpr,
inv_rate TYPE bprei,
wrbtr TYPE wrbtr,
tot_excise TYPE hwste,
exdut TYPE hwste,
aed TYPE hwste,
eces TYPE hwste,
heces TYPE hwste,
taxamt TYPE hwste,
base_amt TYPE hwste,
vat TYPE hwste,
vatnc TYPE hwste,
schrg TYPE hwste,
cst TYPE hwste,
othr_chrg TYPE hwste,
tot_val TYPE hwste,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
budat TYPE budat,
mwskz TYPE mwskz,
text1 TYPE text1_007s,
belnr_miro TYPE belnr_d,
amort_amt TYPE wrbtr,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
END OF ty_final,
BEGIN OF ty_mseg,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
bwart TYPE bwart,
budat_mkpf type budat,
END OF ty_mseg.

DATA : it_bkpf TYPE STANDARD TABLE OF ty_bkpf,


wa_bkpf TYPE ty_bkpf,
it_mseg TYPE STANDARD TABLE OF ty_mseg,
wa_mseg TYPE ty_mseg,

it_bset TYPE STANDARD TABLE OF ty_bset,


wa_bset TYPE ty_bset,
wa_bset1 TYPE ty_bset,
it_bseg TYPE STANDARD TABLE OF ty_bseg,
wa_bseg TYPE ty_bseg,
it_bseg1 TYPE STANDARD TABLE OF ty_bseg,
wa_bseg1 TYPE ty_bseg,
it_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
wa_lfa1 TYPE ty_lfa1,
it_t005u TYPE STANDARD TABLE OF ty_t005u,
wa_t005u TYPE ty_t005u,
it_j_1imovend TYPE STANDARD TABLE OF ty_j_1imovend,
wa_j_1imovend TYPE ty_j_1imovend,
it_rseg TYPE STANDARD TABLE OF ty_rseg,
wa_rseg TYPE ty_rseg,
it_mara TYPE STANDARD TABLE OF ty_mara,
wa_mara TYPE ty_mara,
it_makt TYPE STANDARD TABLE OF ty_makt,
wa_makt TYPE ty_makt,
it_t023t TYPE STANDARD TABLE OF ty_t023t,
wa_t023t TYPE ty_t023t,
it_ekpo TYPE STANDARD TABLE OF ty_ekpo,
wa_ekpo TYPE ty_ekpo,
it_ekko TYPE STANDARD TABLE OF ty_ekko,
wa_ekko TYPE ty_ekko,
it_eban TYPE STANDARD TABLE OF ty_eban,
wa_eban TYPE ty_eban,
it_zdept TYPE STANDARD TABLE OF ty_zdept,
wa_zdept TYPE ty_zdept,
it_t007s TYPE STANDARD TABLE OF ty_t007s,
wa_t007s TYPE ty_t007s,
it_mkpf TYPE STANDARD TABLE OF ty_mkpf,
wa_mkpf TYPE ty_mkpf,
it_t001w TYPE STANDARD TABLE OF ty_t001w,
wa_t001w TYPE ty_t001w,

it_rbkp TYPE STANDARD TABLE OF ty_rbkp,


wa_rbkp TYPE ty_rbkp,
it_final1 TYPE STANDARD TABLE OF ty_final,
wa_final1 TYPE ty_final,
it_final TYPE STANDARD TABLE OF ty_final,
wa_final TYPE ty_final.
DATA: it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat LIKE LINE OF it_fcat,
it_top_of_page TYPE slis_t_listheader,
wa_top_of_page TYPE slis_listheader,
gt_events
TYPE slis_t_event,
wa_layout
TYPE slis_layout_alv.
DATA : g_werks TYPE t001w-werks,
g_lifnr TYPE lfa1-lifnr,
g_bldat TYPE bldat,
g_budat TYPE budat,
g_matnr TYPE mara-matnr,
g_mtart TYPE mara-mtart,
g_bsart TYPE ekko-bsart,
g_bukrs_text TYPE t001-butxt,
g_budat_text TYPE char50.
DATA : l_col TYPE i.

*&---------------------------------------------------------------------*
*& Selection screen
*&---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK b WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_werks FOR g_werks NO INTERVALS NO-EXTENSION OBLIGATORY,
s_lifnr FOR g_lifnr,
s_bldat FOR g_bldat,
s_budat FOR g_budat OBLIGATORY,
s_matnr FOR g_matnr,
s_mtart FOR g_mtart,
s_bsart FOR g_bsart.
SELECTION-SCREEN END OF BLOCK b.

AT SELECTION-SCREEN.
PERFORM valid_input.

START-OF-SELECTION.
PERFORM get_bkpf.
PERFORM get_bset.

PERFORM get_bseg.
PERFORM get_ven_dtl.
PERFORM get_t001w.
PERFORM get_miro_dtl.
PERFORM get_migo_dtl.
PERFORM get_po_pr_dtl.
PERFORM get_final.
PERFORM build_fieldcat.
* PERFORM get_mseg.
* PERFORM get_final1.

*&---------------------------------------------------------------------*
*&
Form VALID_INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM valid_input .
SELECT COUNT(*) FROM t001w WHERE werks IN s_werks.
IF sy-subrc NE 0.
MESSAGE 'Plese enter valid plant' TYPE 'E'.
ENDIF.
IF s_lifnr IS NOT INITIAL.
SELECT COUNT(*) FROM lfa1 WHERE lifnr IN s_lifnr.
IF sy-subrc NE 0.
MESSAGE 'Please enter valid vendor' TYPE 'E'.
ENDIF.
ENDIF.
IF s_matnr IS NOT INITIAL.
SELECT COUNT(*) FROM mara WHERE matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE 'Please enter valid material' TYPE 'E'.
ENDIF.
ENDIF.
ENDFORM.
" VALID_INPUT
*&---------------------------------------------------------------------*
*&
Form GET_BKPF
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text

*----------------------------------------------------------------------*
FORM get_bkpf .
FIELD-SYMBOLS: <ls_bkpf> LIKE LINE OF it_bkpf.
SELECT bukrs
belnr
gjahr
bldat
budat
xblnr
awkey
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs = '1000'
AND budat IN s_budat
AND blart = 'RE'.
LOOP AT it_bkpf ASSIGNING <ls_bkpf>.
<ls_bkpf>-zmrno = <ls_bkpf>-awkey+0(10).
<ls_bkpf>-zmryr = <ls_bkpf>-awkey+10(4).
ENDLOOP.
ENDFORM.
" GET_BKPF
*&---------------------------------------------------------------------*
*&
Form GET_BSET
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_bset .
IF it_bkpf IS NOT INITIAL.
SELECT bukrs
belnr
gjahr
buzei
mwskz
hkont
txgrp
shkzg
hwbas
hwste
ktosl
kschl
kbetr
FROM bset
INTO TABLE it_bset
FOR ALL ENTRIES IN it_bkpf

WHERE bukrs = it_bkpf-bukrs


AND belnr = it_bkpf-belnr
AND gjahr = it_bkpf-gjahr.
ELSE.
MESSAGE 'No data exist for given selection' TYPE 'I'.
LEAVE LIST-PROCESSING.
ENDIF.

ENDFORM.
" GET_BSET
*&---------------------------------------------------------------------*
*&
Form GET_BSEG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_bseg .
FIELD-SYMBOLS: <ls_bseg> LIKE LINE OF it_bseg.
IF it_bkpf IS NOT INITIAL.
SELECT bukrs
belnr
gjahr
buzei
buzid
koart
shkzg
dmbtr
hkont
lifnr
mwskz
txgrp
ebeln
ebelp
xref3
werks
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE bukrs = it_bkpf-bukrs
AND belnr = it_bkpf-belnr
AND gjahr = it_bkpf-gjahr
AND lifnr IN s_lifnr.
SORT it_bseg.
LOOP AT it_bseg ASSIGNING <ls_bseg> WHERE xref3 IS NOT INITIAL.
<ls_bseg>-zmgno = <ls_bseg>-xref3+4(10).

<ls_bseg>-zmgyr = <ls_bseg>-xref3+0(4).
ENDLOOP.
it_bseg1[] = it_bseg[].
DELETE it_bseg1 WHERE lifnr IS INITIAL.
IF sy-subrc = 0.
SELECT spras
kalsm
mwskz
text1
FROM t007s
INTO TABLE it_t007s
FOR ALL ENTRIES IN it_bseg
WHERE spras = 'E'
AND kalsm = 'ZTAXIN'
AND mwskz = it_bseg-mwskz.
ENDIF.
ENDIF.
ENDFORM.
" GET_BSEG
*&---------------------------------------------------------------------*
*&
Form GET_VEN_DTL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_ven_dtl .
IF it_bseg IS NOT INITIAL.
SELECT lifnr
name1
ort01
regio
adrnr
FROM lfa1
INTO TABLE it_lfa1
FOR ALL ENTRIES IN it_bseg1
WHERE lifnr = it_bseg1-lifnr.
IF it_lfa1 IS NOT INITIAL.
SELECT lifnr
j_1iexcd
j_1iexrn
j_1iexrg
j_1icstno
j_1ilstno
j_1ipanno
j_1ivtyp

j_1isern
FROM j_1imovend
INTO TABLE it_j_1imovend
FOR ALL ENTRIES IN it_lfa1
WHERE lifnr = it_lfa1-lifnr.
SELECT spras
land1
bland
bezei
FROM t005u
INTO TABLE it_t005u
FOR ALL ENTRIES IN it_lfa1
WHERE spras = 'EN'
AND land1 = 'IN'
AND bland = it_lfa1-regio.
ENDIF.
ENDIF.
ENDFORM.
" GET_VEN_DTL
*&---------------------------------------------------------------------*
*&
Form GET_T001W
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_t001w .
SELECT werks
regio
FROM t001w
INTO TABLE it_t001w
WHERE werks IN s_werks.
ENDFORM.
" GET_T001W
*&---------------------------------------------------------------------*
*&
Form GET_MIRO_DTL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_miro_dtl .
IF it_bkpf IS NOT INITIAL.
SELECT belnr
gjahr
buzei

ebeln
ebelp
matnr
menge
meins
werks
wrbtr
lfbnr
lfgja
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE it_rseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-zmrno
AND gjahr = it_bkpf-zmryr
AND werks IN s_werks.

IF it_rseg IS NOT INITIAL.


SELECT matnr
mtart
matkl
meins
FROM mara
INTO TABLE it_mara
FOR ALL ENTRIES IN it_rseg
WHERE matnr = it_rseg-matnr.
IF it_mara IS NOT INITIAL.
SELECT matnr
spras
maktx
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND spras = 'EN'.
SELECT spras
matkl
wgbez
wgbez60
FROM t023t
INTO TABLE it_t023t
FOR ALL ENTRIES IN it_mara
WHERE matkl = it_mara-matkl
AND spras = 'EN'.
ENDIF.
ENDIF.
ENDIF.

ENDFORM.
" GET_MIRO_DTL
*&---------------------------------------------------------------------*
*&
Form GET_MIGO_DTL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_migo_dtl .
IF it_rseg IS NOT INITIAL.
SELECT mblnr
mjahr
bldat
xblnr
FROM mkpf
INTO TABLE it_mkpf
FOR ALL ENTRIES IN it_bkpf
WHERE xblnr = it_bkpf-xblnr.
*
AND mjahr = it_rseg-lfgja.
SELECT mblnr
mjahr
bwart
budat_mkpf
FROM mseg
INTO TABLE it_mseg
FOR ALL ENTRIES IN it_mkpf
WHERE mblnr = it_mkpf-mblnr
AND mjahr = it_mkpf-mjahr
AND bwart = '122'.
IF it_mseg IS INITIAL.
MESSAGE 'No data exist for given selection' TYPE 'I'.
leave LIST-PROCESSING.
ENDIF.
ENDIF.
ENDFORM.
" GET_MIGO_DTL
*&---------------------------------------------------------------------*
*&
Form GET_PO_PR_DTL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_po_pr_dtl .
IF it_rseg IS NOT INITIAL.

SELECT ebeln
ebelp
txz01
netpr
banfn
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_rseg
WHERE ebeln = it_rseg-ebeln
AND ebelp = it_rseg-ebelp.
IF it_ekpo IS NOT INITIAL.
SELECT ebeln
bsart
waers
bedat
FROM ekko
INTO TABLE it_ekko
FOR ALL ENTRIES IN it_ekpo
WHERE ebeln = it_ekpo-ebeln.
SELECT banfn
bnfpo
afnam
FROM eban
INTO TABLE it_eban
FOR ALL ENTRIES IN it_ekpo
WHERE banfn = it_ekpo-banfn.
IF it_eban IS NOT INITIAL.
SELECT deptno
deptname
FROM zdept
INTO TABLE it_zdept
FOR ALL ENTRIES IN it_eban
WHERE deptno = it_eban-afnam.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
" GET_PO_PR_DTL
*&---------------------------------------------------------------------*
*&
Form GET_FINAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_final .

DATA: lv_index TYPE sy-tabix.


LOOP AT it_bseg INTO wa_bseg.
CLEAR: wa_bkpf, wa_bseg1, wa_lfa1, wa_t005u, wa_j_1imovend.
READ TABLE it_bkpf INTO wa_bkpf WITH KEY belnr = wa_bseg-belnr
gjahr = wa_bseg-gjahr.
IF sy-subrc = 0.
wa_final-xblnr = wa_bkpf-xblnr.
"Bill No.
wa_final-bldat = wa_bkpf-bldat.
"Bill date
wa_final-budat = wa_bkpf-budat.
"MIRO date
wa_final-belnr_miro = wa_bkpf-belnr.
"Accounting Doc No.
wa_final-belnr = wa_bkpf-zmrno.
"MIRO No
wa_final-bukrs = wa_bkpf-bukrs.
wa_final-gjahr = wa_bkpf-gjahr.
CLEAR wa_rseg.

READ TABLE it_rseg INTO wa_rseg WITH KEY belnr = wa_bkpf-zmrno


gjahr = wa_bkpf-zmryr
ebeln = wa_bseg-ebeln
ebelp = wa_bseg-ebelp
lfbnr = wa_bseg-zmgno
lfgja = wa_bseg-zmgyr.

IF wa_rseg-werks IS INITIAL.
CONTINUE.
ELSE.

"""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""
loop at it_rseg into wa_rseg.
"""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""

READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_rseg-lfbnr


mjahr = wa_rseg-lfgja.
IF sy-subrc = 0.
wa_final-bldat1 = wa_mseg-budat_mkpf.
"CODE ADDED BY AMAR
wa_final-mblnr = wa_mseg-mblnr.

wa_final-mjahr = wa_mseg-mjahr.
ELSE.
CONTINUE.
ENDIF.

"""""""""""""""""""""""""""
""""""""""""""""""""""""""
ENDLOOP.
"""""""""""""""""""""""
""""""""""""""""""""""

wa_final-werks = wa_rseg-werks.
wa_final-menge = wa_rseg-menge.
wa_final-inv_rate = wa_rseg-wrbtr / wa_rseg-menge.

"Plant
"Quantity
"Invoice Rate

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'


EXPORTING
input = wa_rseg-matnr
IMPORTING
output = wa_final-matnr.
CLEAR: wa_mara, wa_makt, wa_t023t.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_rseg-matnr.
IF sy-subrc = 0.
wa_final-mtart = wa_mara-mtart.
"Material Type
wa_final-meins = wa_mara-meins.
"Material UOM
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_mara-matnr.
IF sy-subrc = 0.
wa_final-maktx = wa_makt-maktx.
"Material Description
ENDIF.
READ TABLE it_t023t INTO wa_t023t WITH KEY matkl = wa_mara-matkl.
IF sy-subrc = 0.
wa_final-wgbez = wa_t023t-wgbez.
"Material Group Description
ENDIF.
ENDIF.

*
*
*
*
*
*
*
*
*

CLEAR wa_mkpf.
READ TABLE it_mkpf INTO wa_mkpf WITH KEY mblnr = wa_rseg-lfbnr
mjahr = wa_rseg-lfgja.
IF sy-subrc = 0.
wa_final-bldat1 = wa_mkpf-bldat.
"CODE ADDED BY AMAR
wa_final-mblnr = wa_mkpf-mblnr.
wa_final-mjahr = wa_mkpf-mjahr.
"CODE ADDED BY AMAR
"MRR date
ENDIF.

ENDIF.
READ TABLE it_bseg1 INTO wa_bseg1 WITH KEY belnr = wa_bseg-belnr
gjahr = wa_bseg-gjahr.
IF sy-subrc = 0.
READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_bseg1-lifnr.
IF sy-subrc = 0.
wa_final-lifnr = wa_lfa1-lifnr.
"Vendor No
wa_final-name1 = wa_lfa1-name1.
"Vendor Name
wa_final-ort01 = wa_lfa1-ort01.
"City
wa_final-regio = wa_lfa1-regio.
"Region
READ TABLE it_t001w INTO wa_t001w WITH KEY werks = s_werks-low.
IF sy-subrc = 0.
IF wa_final-regio = wa_t001w-regio.
"Category
wa_final-catg = 'STATE'.
ELSE.
wa_final-catg = 'EX-S'.
ENDIF.
ENDIF.
READ TABLE it_t005u INTO wa_t005u WITH KEY bland = wa_lfa1-regio.
IF sy-subrc = 0.
wa_final-bezei = wa_t005u-bezei.
"Region Description
ENDIF.
READ TABLE it_j_1imovend INTO wa_j_1imovend WITH KEY lifnr = wa_lfa1-lifnr.
IF sy-subrc = 0.
wa_final-j_1iexcd = wa_j_1imovend-j_1iexcd.
"ECC Number
wa_final-j_1iexrn = wa_j_1imovend-j_1iexrn.
"Excise Registration Number
wa_final-j_1iexrg = wa_j_1imovend-j_1iexrg.
"Excise Range
wa_final-j_1icstno = wa_j_1imovend-j_1icstno.
"Central Sales Tax Number
wa_final-j_1ilstno = wa_j_1imovend-j_1ilstno.
"Local Sales Tax Number
wa_final-j_1ipanno = wa_j_1imovend-j_1ipanno.
"Permanent Account Number
wa_final-j_1ivtyp = wa_j_1imovend-j_1ivtyp.
"Type of Vendor
wa_final-j_1isern = wa_j_1imovend-j_1isern.
"Service Tax Registration Number
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR: wa_ekpo, wa_ekko, wa_eban, wa_zdept.
READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_bseg-ebeln
ebelp = wa_bseg-ebelp.
IF sy-subrc = 0.
wa_final-ebeln = wa_ekpo-ebeln.
"PO Number
wa_final-netpr = wa_ekpo-netpr.
"Rate
IF wa_final-matnr IS INITIAL.
wa_final-maktx = wa_ekpo-txz01.
ENDIF.

"Material Description

READ TABLE it_ekko INTO wa_ekko WITH KEY ebeln = wa_ekpo-ebeln.


IF sy-subrc = 0.
wa_final-bsart = wa_ekko-bsart.
"PO Doc Type
wa_final-bedat = wa_ekko-bedat.
"PO date
wa_final-waers = wa_ekko-waers.
"PO Currency
ENDIF.
READ TABLE it_eban INTO wa_eban WITH KEY banfn = wa_ekpo-banfn.
IF sy-subrc = 0.
wa_final-banfn = wa_eban-banfn.
"PR Number
READ TABLE it_zdept INTO wa_zdept WITH KEY deptno = wa_eban-afnam.
IF sy-subrc = 0.
wa_final-deptname = wa_zdept-deptname.
"Department Name
ENDIF.
ENDIF.
ENDIF.
wa_final-mwskz = wa_bseg-mwskz.
wa_final-lfbnr = wa_bseg-zmgno.

"Tax code
"MIGO No.

CLEAR wa_t007s.
READ TABLE it_t007s INTO wa_t007s WITH KEY mwskz = wa_bseg-mwskz.
IF sy-subrc = 0.
wa_final-text1 = wa_t007s-text1.
"Tax code Description
ENDIF.
""""""""""""
CLEAR: lv_index, wa_bset1.
READ TABLE it_bset INTO wa_bset1 WITH KEY belnr = wa_bseg-belnr
gjahr = wa_bseg-gjahr
txgrp = wa_bseg-txgrp.
IF sy-subrc = 0.
lv_index = sy-tabix.

LOOP AT it_bset INTO wa_bset FROM lv_index.

"""""""""""""

IF wa_bset-shkzg = 'H'.
wa_bset-hwbas = wa_bset-hwbas * -1.
wa_bset-hwste = wa_bset-hwste * -1.
ENDIF.
CASE wa_bset-kschl.

WHEN 'JMOP' OR 'JMIP'.


wa_final-wrbtr = wa_bset-hwbas.
wa_final-exdut = wa_bset-hwste.
WHEN 'JAOP' OR 'JAOQ' OR 'JAIP'.
IF wa_final-wrbtr IS INITIAL.
IF wa_bset-kschl = 'JAOP' OR wa_bset-kschl = 'JAIP'.
wa_final-wrbtr = wa_bset-hwbas.
ENDIF.
ENDIF.

"Excise duty

IF wa_bset-kschl = 'JAOP' OR wa_bset-kschl = 'JAOQ'.


wa_final-aed = wa_bset-hwste.
"AED
ENDIF.
WHEN 'JEC1' OR 'JEC2'.
wa_final-eces = wa_bset-hwste.
"CESS
WHEN 'JSEP' OR 'JSEI'.
wa_final-heces = wa_bset-hwste.
"HCESS
WHEN 'JIPC' OR 'ZNCN' OR 'ZCGN' OR 'ZCBN'.
IF wa_final-wrbtr IS INITIAL.
wa_final-wrbtr = wa_bset-hwbas.
ENDIF.
wa_final-cst = wa_bset-hwste.
"CST
WHEN 'JVRD' OR 'JVCD'.
IF wa_final-wrbtr IS INITIAL.
wa_final-wrbtr = wa_bset-hwbas.
ENDIF.
wa_final-vat = wa_bset-hwste.
"VAT
WHEN 'JVRN'.
IF wa_final-wrbtr IS INITIAL.
wa_final-wrbtr = wa_bset-hwbas.
ENDIF.
wa_final-vatnc = wa_bset-hwste.
"Non creditable VAT
WHEN 'ZSCV' OR 'ZSVN'.
wa_final-schrg = wa_bset-hwste.
"Surcharge
WHEN 'JIPS'.
wa_final-wrbtr = wa_bset-hwbas.
"Basic amount
WHEN 'JSVD' OR 'JSVA' OR 'JSV2'.
IF wa_final-wrbtr IS INITIAL.
wa_final-wrbtr = wa_bset-hwbas.
"Basic amount
ENDIF.
ENDCASE.
CLEAR wa_bset.
ENDLOOP.
ENDIF.
wa_final-base_amt = wa_final-wrbtr + wa_final-cst + wa_final-base_amt + wa_final-othr_chrg.
wa_final-tot_excise = wa_final-exdut + wa_final-eces + wa_final-heces + wa_final-aed.
wa_final-taxamt = wa_final-wrbtr + wa_final-tot_excise.
wa_final-tot_val = wa_final-wrbtr + wa_final-tot_excise + wa_final-vat +
wa_final-vatnc + wa_final-schrg + wa_final-cst + wa_final-othr_chrg.

IF wa_final-werks IS INITIAL.
CLEAR: wa_bseg, wa_final.
CONTINUE.
ELSEIF wa_final-lifnr NOT IN s_lifnr.
CLEAR: wa_bseg, wa_final.
CONTINUE.
ELSE.
APPEND wa_final TO it_final.
CLEAR: wa_bseg, wa_final, wa_bset.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM it_final COMPARING ALL FIELDS.
ENDFORM.
" GET_FINAL
*&---------------------------------------------------------------------*
*&
Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM build_fieldcat .
DATA : lv_budat_low TYPE char10,
lv_budat_high TYPE char10.
PERFORM sub_fill_fieldcat USING : l_col 'WERKS'
'Plant'
''
l_col 'XBLNR'
'Bill No'
'' '' '10',
l_col 'BLDAT'
'Bill Date'
'' '' '10',
l_col 'MATNR'
'Item No.'
'' '' '12',
l_col 'MAKTX'
'Item Name'
'' '' '20',
l_col 'WGBEZ'
'Material Grp Des'
'' '' '10',
l_col 'MEINS'
'UOM'
'' '' '3',
l_col 'BANFN'
'PR Number'
'' '' '10',
l_col 'DEPTNAME' 'Department'
'' '' '10',
l_col 'LIFNR'
'Party'
'' '' '10',
l_col 'NAME1'
'Party Name'
'' '' '15',
l_col 'ORT01'
'City'
'' '' '8',
l_col 'REGIO'
'Region'
'' '' '5',
l_col 'BEZEI'
'Region Desc'
'' '' '8',
l_col 'J_1IEXCD' 'ECC Number'
'' '' '10',
l_col 'J_1IEXRN' 'Excise Reg No'
'' '' '10',
l_col 'J_1IEXRG' 'Excise Range'
'' '' '10',
l_col 'J_1ICSTNO' 'CST No'
'' '' '10',
l_col 'J_1ILSTNO' 'LST No'
'' '' '10',
l_col 'J_1IPANNO' 'PAN No'
'' '' '10',

''

'5',

l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col
l_col

'J_1IVTYP' 'Type of Vendor'


'' '' '10',
'J_1ISERN' 'Service Tax Reg No'
'' '' '10',
'LFBNR'
'MRR'
'X' '' '10',
'BLDAT1'
'MRR Date'
'' '' '10',
'CATG'
'Category'
'' '' '5',
'BSART'
'Po Doc Type'
'' '' '5',
'EBELN'
'Purchase Order No'
'X' '' '10',
'BEDAT'
'PO Date'
'' '' '10',
'WAERS'
'PO Currency'
'' '' '5',
'MENGE'
'Quantity'
'' '' '7',
'INV_RATE' 'Invoice Rate'
'' '' '8',
'WRBTR'
'Basic Amount'
'' '' '8',
'TOT_EXCISE' 'Total Duty'
'' '' '8',
'EXDUT'
'Excise Duty'
'' '' '8',
'AED'
'AED'
'' '' '8',
'ECES'
'Cess'
'' '' '8',
'HECES'
'HECS'
'' '' '8',
'TAXAMT'
'Taxable Amount'
'' '' '10',
'BASE_AMT' 'Base Amount'
'' '' '10',
'VAT'
'Vat'
'' '' '8',
'VATNC'
'Vat Non Creditable'
'' '' '10',
'SCHRG'
'Surcharge'
'' '' '8',
'CST'
'CST'
'' '' '8',
'OTHR_CHRG' 'Other charges'
'' '' '8',
'TOT_VAL' 'Total Val inc Tax'
'' '' '12',
'MTART'
'Item Category'
'' '' '5',
'BELNR'
'PV No.'
'X' '' '10',
'BUDAT'
'PV Date'
'' '' '10',
'MWSKZ'
'Tax Code'
'' '' '8',
'TEXT1'
'Tax Code Desc'
'' '' '10',
'BELNR_MIRO' 'Acc. Doc of MIRO'
'X' '' '10'.

SELECT SINGLE butxt FROM t001 INTO g_bukrs_text WHERE bukrs = '1000'.
IF s_budat-high IS NOT INITIAL.
CONCATENATE s_budat-low+6(2) '.' s_budat-low+4(2) '.' s_budat-low+0(4) INTO lv_budat_low.
CONCATENATE s_budat-high+6(2) '.' s_budat-high+4(2) '.' s_budat-high+0(4) INTO lv_budat_high.
CONCATENATE lv_budat_low 'to' lv_budat_high INTO g_budat_text SEPARATED BY space.
ELSE.
CONCATENATE s_budat-low+6(2) '.' s_budat-low+4(2) '.' s_budat-low+0(4) INTO g_budat_text.
ENDIF.
PERFORM build_list_header USING : 'H' ''
'PURCHASE REGISTER',
'S' g_bukrs_text
' ',
'S' 'Plant:'
s_werks-low,
'S' 'Posting date: ' g_budat_text.
PERFORM display_alv.

ENDFORM.
" BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form SUB_FILL_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_1209 text
*
-->P_1210 text
*
-->P_1211 text
*
-->P_1212 text
*
-->P_1213 text
*----------------------------------------------------------------------*
FORM sub_fill_fieldcat USING p_cpos TYPE i
p_fnam TYPE any
p_stx TYPE any
p_htspt TYPE c
p_key TYPE char1
p_len LIKE dd03p-outputlen.
wa_fcat-col_pos = p_cpos.
wa_fcat-fieldname = p_fnam.
wa_fcat-seltext_l = p_stx.
wa_fcat-hotspot = p_htspt.
wa_fcat-key
= p_key.
wa_fcat-outputlen = p_len.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM.
" SUB_FILL_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form BUILD_LIST_HEADER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_2080 text
*
-->P_2081 text
*
-->P_2082 text
*----------------------------------------------------------------------*
FORM build_list_header USING p1 TYPE any
p2 TYPE any
p3 TYPE any.
wa_top_of_page-typ = p1.
wa_top_of_page-key = p2.
wa_top_of_page-info = p3.
APPEND wa_top_of_page TO it_top_of_page.
CLEAR wa_top_of_page.
ENDFORM.

" BUILD_LIST_HEADER

*&---------------------------------------------------------------------*
*&
Form DISPLAY_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
=''
* I_BYPASSING_BUFFER
=''
* I_BUFFER_ACTIVE
=''
i_callback_program
= sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'SUB_USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout
= wa_layout
it_fieldcat
= it_fcat
i_save
= 'X'
it_events
= gt_events
TABLES
t_outtab
= it_final1
EXCEPTIONS
program_error
=1
OTHERS
= 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
" DISPLAY_ALV
*&---------------------------------------------------------------------*
*&
Form SUB_USER_COMMAND
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM sub_user_command USING r_ucomm TYPE sy-ucomm
r_selfield TYPE slis_selfield.
IF r_selfield-fieldname = 'BELNR'.
CLEAR wa_final .
READ TABLE it_final INTO wa_final INDEX r_selfield-tabindex .
IF sy-subrc = 0.
SET PARAMETER ID 'RBN' FIELD r_selfield-value.
SET PARAMETER ID 'GJR' FIELD wa_final-gjahr.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ENDIF.
ELSEIF r_selfield-fieldname = 'BELNR_MIRO'.

CLEAR wa_final .
READ TABLE it_final INTO wa_final INDEX r_selfield-tabindex .
IF sy-subrc = 0.
SET PARAMETER ID 'BLN' FIELD r_selfield-value.
SET PARAMETER ID 'BUK' FIELD wa_final-bukrs.
SET PARAMETER ID 'GJR' FIELD wa_final-gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ELSEIF r_selfield-fieldname = 'LFBNR'.
CLEAR wa_final .
READ TABLE it_final INTO wa_final INDEX r_selfield-tabindex .
IF sy-subrc = 0.
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
i_action = 'A04'
i_refdoc = 'R02'
i_mblnr = wa_final-lfbnr
i_mjahr = wa_final-lfgja.
IF sy-subrc <> 0.
*
Implement suitable error handling here
ENDIF.
ENDIF.
ELSEIF r_selfield-fieldname = 'EBELN'.
SET PARAMETER ID 'BES' FIELD r_selfield-value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM.
" SUB_USER_COMMAND
*&---------------------------------------------------------------------*
*&
Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
*
Top of page of ALV display
*----------------------------------------------------------------------*
FORM top_of_page .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_top_of_page.
ENDFORM.
" TOP_OF_PAGE
**&---------------------------------------------------------------------*
**&
Form GET_MSEG
**&---------------------------------------------------------------------*
**
text
**----------------------------------------------------------------------*
** --> p1
text
** <-- p2
text
**----------------------------------------------------------------------*

*FORM get_mseg .
*
* IF it_mkpf IS NOT INITIAL.
* SELECT mblnr
*
mjahr
*
bwart
*
FROM mseg
*
INTO TABLE it_mseg
*
FOR ALL ENTRIES IN it_mkpf
*
WHERE mblnr = it_mkpf-mblnr
*
AND mjahr = it_mkpf-mjahr
*
AND werks in s_werks
*
AND bwart = '122'
*
.
*
* ENDIF.
*
*ENDFORM.
" GET_MSEG
**&---------------------------------------------------------------------*
**&
Form GET_FINAL1
**&---------------------------------------------------------------------*
**
text
**----------------------------------------------------------------------*
** --> p1
text
** <-- p2
text
**----------------------------------------------------------------------*
*FORM get_final1 .
*
* loop at it_final into wa_final.
*
*
READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_final-mblnr
*
mjahr = wa_final-mjahr.
* IF sy-subrc = 0.
*
MOVE-CORRESPONDING wa_final to wa_final1.
"Material Description
*
ENDIF.
* append wa_final1 to it_final1.
*
*
* endloop.
*
*
*ENDFORM.
" GET_FINAL1

You might also like