0% found this document useful (0 votes)
128 views31 pages

GST Outward Report

This document defines a report called ZGST_SALES_REPORT that retrieves and displays sales data from various tables for a given set of selection criteria. It includes definitions for data structures, field catalogs, and procedures to retrieve the data, build an ALV grid, and display the results. The report allows filtering sales documents by attributes like company code, plant, material, and date range.

Uploaded by

DiptimayeeGupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
128 views31 pages

GST Outward Report

This document defines a report called ZGST_SALES_REPORT that retrieves and displays sales data from various tables for a given set of selection criteria. It includes definitions for data structures, field catalogs, and procedures to retrieve the data, build an ALV grid, and display the results. The report allows filtering sales documents by attributes like company code, plant, material, and date range.

Uploaded by

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

*&---------------------------------------------------------------------*

*& Report ZGST_SALES_REPORT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZGST_SALES_REPORT.
TABLES : vbrk , vbrp ,mara , knvv.
TYPE-POOLS : SLIS.
data : it_vbrk type TABLE OF vbrk,
wa_vbrk type vbrk,
it_vbrp type TABLE OF vbrp,
wa_vbrp type vbrp.
INCLUDE ZGST_OUT_TOP.

data : it_data type TABLE OF ty_data,


wa_DAta type ty_Data,
it_Data1 TYPE TABLE OF ty_Data,
wa_Data1 type ty_Data,
lv_cnt type i.

DATA : M_VBELN LIKE THEAD-TDNAME .

DATA : BEGIN OF T_LINE OCCURS 0.


INCLUDE STRUCTURE TLINE.
DATA : END OF T_LINE.

types : BEGIN OF ty_vbrk_vbrp,


bukrs type bukrs,
werks type werks_d,
vkorg type vkorg,
vtweg type vtweg,
SPART type SPART,
KUNAG type KUNAG,
KURRF type KURRF,
AUBEL type VBELN_VA,
VBELN type VBELN_VF,
SFAKN type SFAKN,
WAERK type WAERK,
POSNR type POSNR_VF,
Fkdat type fkdat,
BUPLA type BUPLA,
FKART type FKART,
KNUMV type KNUMV,
MATNR type MATNR,
ARKTX type ARKTX,
FKIMG type FKIMG,
VRKME type VRKME,
WKREG type WKREG,
"KURSK type KURSK,
netwr type NETWR_FP,
charg type CHARG_D,
VGBEL type VGBEL,
AUGRU_AUFT type AUGRU,
ZTERM type DZTERM,
tcsval TYPE kwert ,
END OF ty_vbrk_vbrp.
data : it_vbrk_vbrp type TABLE OF ty_vbrk_vbrp,
wa_vbrk_vbrp type ty_vbrk_vbrp.

data : it_knumv type TABLE OF konv,


wa_knumv type konv,
it_kna1 type TABLE OF kna1,
wa_kna1 type kna1,
it_t005u type TABLE OF t005u,
wa_t005u type t005u.
data : lv_Regio type regio.
data : it_fieldcat type slis_t_fieldcat_alv,
wa_fieldcat type slis_fieldcat_alv,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
data : ws_umrez type marm-umrez.
data : ws_umren type marm-umren.
data : lv_Rate type p DECIMALS 3.
DATA : IT_TVTWT LIKE TVTWT OCCURS 0 WITH HEADER LINE,
IT_TVTWT1 LIKE TVTWT OCCURS 0 WITH HEADER LINE,
It_TVKOT like TVKOT OCCURS 0 WITH HEADER LINE,
ST_MARA LIKE MARA,
W_TVTWT1 LIKE IT_TVTWT1,
lv_nd type KBETR.

DATA : BEGIN OF WA_MCH1 OCCURS 0,


CHARG LIKE MCH1-CHARG,
HSDAT LIKE MCH1-HSDAT,
VFDAT LIKE MCH1-VFDAT,
END OF WA_MCH1.
DATA : IT_TVFKT LIKE TVFKT OCCURS 0 WITH HEADER LINE,
G_SAVE(1) TYPE C,
G_VARIANT LIKE DISVARIANT,
GX_VARIANT LIKE DISVARIANT,
G_EXIT(1) TYPE C,
REPNAME LIKE SY-REPID,
LAYOUT TYPE SLIS_LAYOUT_ALV,
ALV_PRINT TYPE SLIS_PRINT_ALV,
ALV_DETAIL_FUNC(30)...

data : it_tvaut type TABLE OF tvaut ,


wa_tvaut type tvaut.
TYPES : BEGIN OF ITCOM,
BUKRS TYPE T001-BUKRS,
END OF ITCOM.

DATA : IT_COM TYPE TABLE OF ITCOM,


WA_COM TYPE ITCOM.

data : lv_knumv(20) type c,


lv_control type STEUC,
lv_KNUMH type KNUMH,
it_konp type TABLE OF konp,
wa_konp type konp,
it_t001w type TABLE OF t001w,
wa_t001w type t001w,
it_bp type TABLE OF j_1bbranch,
wa_bp type j_1bbranch,
it_konv type TABLE OF konv,
wa_konv type konv,
lv_KWERT1 type KWERT,
lv_KWERT2 type KWERT,
lv_KWERT3 type KWERT,
lv_kbetr1 type KBETR_KOND,
lv_kbetr2 type KBETR_KOND,
lv_kbetr3 type KBETR_KOND,
it_cond TYPE TABLE OF a794,
wa_cond type a794,
LV_EED type ZEED,
lv_HED type ZHED,
wa_vbpa type vbpa,
lv_frtval type ZFRT,
lv_tcsval type kwert,
lv_KWERT type KWERT,
lv_term(3) type c,
lv_BZIRK type bzirk.

DATA : BEGIN OF IT_T001W1 OCCURS 0,


WERKS LIKE T001W-WERKS,
NAME1 LIKE T001W-NAME1,
END OF IT_T001W1.

DATA : W_T001W1 LIKE IT_T001W1.

data : p_gjahr type BKPF-GJAHR.

SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-004.


PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant
SELECTION-SCREEN END OF BLOCK D.
SELECTION-SCREEN BEGIN OF block b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : p_bukrs for vbrk-Bukrs,
p_VBELN for vbrk-vbeln,
p_fkdat for vbrk-fkdat,
p_FKART for vbrk-FKART,
p_kunnr for vbrk-KUNAG.
SELECTION-SCREEN END OF block b1.
SELECTION-SCREEN BEGIN OF block b2 with FRAME TITLE text-002.
SELECT-OPTIONS : p_plant for vbrp-werks,
P_VKORG FOR VBRK-VKORG ,
P_VTWEG FOR VBRK-VTWEG ,
P_BUPLA FOR VBRK-BUPLA,
P_SBRNCH FOR KNVV-ZSUB_BRNCH.
"S_VKBUR FOR VBRP-VKBUR .
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: p_MATNR FOR VBRP-MATNR," MATCHCODE OBJECT MAT1 ,
p_MATKL FOR MARA-MATKL.
SELECTION-SCREEN END OF BLOCK B3 .
*SELECTION-SCREEN BEGIN OF block B4 WITH FRAME TITLE TEXT-005.
*PARAMETERS : P_chk type c AS CHECKBOX USER-COMMAND US .
*PARAMETERS : p_BSCHL type BSCHL MODIF ID M1.
*SELECTION-SCREEN END OF BLOCK B4.
INITIALIZATION.
REPNAME = SY-REPID.
PERFORM INITIALIZE_VARIANT.

AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
*AT SELECTION-SCREEN OUTPUT.
*if p_chk = 'X'.
* LOOP AT SCREEN.
* if screen-group1 = 'M1'.
* screen-active = 1.
* MODIFY SCREEN.
* endif.
* ENDLOOP.
*else.
* LOOP AT SCREEN.
* if screen-group1 = 'M1'.
* screen-active = 0.
* MODIFY SCREEN.
* endif.
* ENDLOOP.
*endif.

START-OF-SELECTION.

PERFORM get_Data.
PERFORM Fieldcatalog .
PERFORM display_alv.

*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form get_data .
if sy-tcode ne 'ZSD_CREDIT'.
PERFORM Check_authority.
endif.

SELECT * FROM TVFKT INTO CORRESPONDING FIELDS OF TABLE IT_TVFKT


WHERE SPRAS = SY-LANGU.

select a~bukrs b~werks a~vkorg a~vtweg a~SPART a~KUNAG a~VBELN a~KURRF b~AUBEL
a~Fkdat a~BUPLA a~FKART a~knumv a~SFAKN a~WAERK b~POSNR b~MATNR b~ARKTX b~FKIMG
b~VRKME b~WKREG b~netwr b~charg b~VGBEL b~AUGRU_AUFT a~ZTERM "b~KURSK
INTO CORRESPONDING FIELDS OF TABLE it_vbrk_vbrp
from vbrk as a INNER JOIN vbrp as b
on a~vbeln = b~vbeln
where a~bukrs in p_bukrs
and a~kunag in p_kunnr
and a~fkdat in p_fkdat
and a~fkart in p_fkart
and a~VKORG IN p_VKORG
AND A~VTWEG IN p_VTWEG
AND A~BUPLA IN P_BUPLA
and b~werks in p_plant
and b~vbeln in p_vbeln
AND b~MATNR IN p_MATNR.
if it_vbrk_vbrp[] IS NOT INITIAL .
select * from kna1 INTO TABLE it_kna1 .
select * from t001w INTO TABLE it_T001w.
select * from j_1bbranch INTO TABLE it_bp.
select * from t005u INTO TABLE it_t005u where SPRAS = sy-langu.
select * from TVKOT INTO CORRESPONDING FIELDS OF TABLE It_TVKOT
where SPRAS = SY-LANGU.
SELECT * FROM TVTWT INTO CORRESPONDING FIELDS OF TABLE IT_TVTWT
WHERE SPRAS EQ 'EN' AND VTWEG IN p_VTWEG.
select * from TVAUT INTO CORRESPONDING FIELDS OF TABLE it_tvaut where SPRAS = sy-
langu.

LOOP AT it_vbrk_vbrp INTO wa_vbrk_vbrp .

clear : lv_knumh , it_konp ,wa_konp , it_cond , wa_cond , it_konv , lv_eed ,


lv_hed, lv_KWERT,ST_MARA.
CONCATENATE wa_vbrk_vbrp-knumv wa_vbrk_vbrp-posnr INTO lv_knumv.
wa_data-bukrs = wa_vbrk_vbrp-bukrs.
wa_Data-werks = wa_vbrk_vbrp-werks.
wa_Data-vkorg = wa_vbrk_vbrp-vkorg.
READ TABLE IT_TVKOT WITH KEY VKORG = wa_Data-vkorg BINARY SEARCH.
IF SY-SUBRC = 0.
wa_Data-VTEXT = IT_TVKOT-VTEXT.
endif.
wa_Data-vtweg = wa_vbrk_vbrp-vtweg.
READ TABLE IT_TVTWT WITH KEY VTWEG = wa_Data-vtweg BINARY SEARCH.
IF SY-SUBRC = 0.
wa_Data-VTEXT_CH = IT_TVTWT-VTEXT.
ENDIF.

select SINGLE BZIRK INTO wa_Data-BZIRK from knvv where KUNNR = wa_vbrk_vbrp-
kunag and VKORG = wa_vbrk_vbrp-vkorg and VTWEG = wa_vbrk_vbrp-VTWEG and SPART =
wa_vbrk_vbrp-SPART.
if wa_Data-BZIRK IS NOT INITIAL .
select SINGLE ZSUB_BRNCH INTO wa_Data-zsub_brnch from ZTSD_PLANT_SUBRG
where WERKS = wa_vbrk_vbrp-werks and BZIRK = wa_Data-BZIRK.
endif.

READ TABLE it_t001w INTO wa_t001w with key werks = wa_Data-werks.


wa_data-werks_name1 = wa_t001w-name1.
if sy-subrc = 0.
READ TABLE it_bp INTO wa_bp with key BRANCH = wa_t001w-J_1BBRANCH.
if sy-subrc = 0 .
wa_data-GSTIN = wa_bp-GSTIN.
endif.
endif.
wa_data-KUNAG = wa_vbrk_vbrp-KUNAG .
select SINGLE b~name1 INTO wa_data-tm_name
from knvp as a INNER JOIN kna1 as b
on a~KUNN2 = b~kunnr
where a~PARVW = 'ZC'
and a~KUNNR = wa_data-kunag.

select SINGLE b~name1 INTO wa_data-zm_name


from knvp as a INNER JOIN kna1 as b
on a~KUNN2 = b~kunnr
where a~PARVW = 'ZM'
and a~KUNNR = wa_data-kunag.
clear : wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 with key kunnr = wa_data-KUNAG.
if sy-subrc = 0.
wa_Data-name1 = wa_kna1-name1.
wa_Data-STCD3 = wa_kna1-STCD3.
wa_data-ort01 = wa_kna1-ort01.

select SINGLE b~BZTXT INTO wa_Data-BZTXT


from knvv as a INNER JOIN T171T as b
on a~BZIRK = b~BZIRK
where a~kunnr = wa_data-kunag
and b~SPRAS = sy-langu.

select SINGLE gst_REgio INTO lv_Regio from zgst_REgio where regio = wa_kna1-
regio.
READ TABLE it_t005u INTO wa_t005u with key LAND1 = wa_kna1-LAND1 BLAND =
wa_kna1-regio.
if sy-subrc = 0 .
* CONCATENATE wa_t005u-BEZEI '-' lv_Regio INTO wa_Data-statename SEPARATED
BY space.
CONCATENATE lv_Regio '-' wa_t005u-BEZEI INTO wa_Data-statename ."SEPARATED
BY space. "" Changed by Pratiksha ...29.06.2019
endif.
endif.
select single * from vbpa INTO wa_vbpa where VBELN = wa_vbrk_vbrp-VBELN and
PARVW = 'WE'.
if sy-subrc = 0.
wa_Data-ship_p = wa_vbpa-kunnr.

clear : wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 with key kunnr = wa_vbpa-KUNNR.
if sy-subrc = 0.
wa_data-ship_pname = wa_kna1-name1.
wa_Data-COn_GSTNO = wa_kna1-STCD3.
select SINGLE gst_REgio INTO lv_Regio from zgst_REgio where regio =
wa_kna1-regio.
READ TABLE it_t005u INTO wa_t005u with key LAND1 = wa_kna1-LAND1 BLAND =
wa_kna1-regio.
if sy-subrc = 0 .
* CONCATENATE wa_t005u-BEZEI '-' lv_Regio INTO wa_Data-con_state SEPARATED
BY space.
CONCATENATE lv_Regio '-' wa_t005u-BEZEI INTO wa_Data-con_state. "
SEPARATED BY space."" Changed by Pratiksha ...29.06.2019
endif.
endif.
endif.

wa_data-VBELN = wa_vbrk_vbrp-VBELN .
wa_data-SFAKN = wa_vbrk_vbrp-SFAKN.
wa_data-POSNR = wa_vbrk_vbrp-POSNR .
wa_data-Fkdat = wa_vbrk_vbrp-Fkdat .
wa_data-FKART = wa_vbrk_vbrp-FKART .
READ TABLE IT_TVFKT WITH KEY FKART = wa_data-FKART
BINARY SEARCH.
IF SY-SUBRC = 0.
wa_Data-FKART_TEXT = IT_TVFKT-VTEXT.
ENDIF.
wa_data-MATNR = wa_vbrk_vbrp-MATNR .
SELECT SINGLE * FROM MARA INTO ST_MARA WHERE MATNR = wa_Data-MATNR.

wa_data-ARKTX = wa_vbrk_vbrp-ARKTX .
wa_Data-MATKL = ST_MARA-MATKL.
wa_Data-WRKST = ST_MARA-WRKST. "Added by Heli Patel 12.08.19

select single b~BEZEI INTO wa_Data-BEZEI


from mvke as a INNER JOIN TVM2T as b
on a~MVGR2 = b~MVGR2
where a~matnr = wa_data-matnr
and a~VKORG = wa_data-vkorg
and b~SPRAS = sy-langu.

select single b~BEZEI INTO wa_Data-BEZEI1


from mvke as a INNER JOIN TVM1T as b
on a~MVGR1 = b~MVGR1
where a~matnr = wa_data-matnr
and a~VKORG = wa_data-vkorg
and b~SPRAS = sy-langu.

select single b~BEZEI INTO wa_Data-BEZEI2


from mvke as a INNER JOIN TVM3T as b
on a~MVGR3 = b~MVGR3
where a~matnr = wa_data-matnr
and a~VKORG = wa_data-vkorg
and b~SPRAS = sy-langu.

select single b~BEZEI INTO wa_Data-BEZEI3


from mvke as a INNER JOIN TVM4T as b
on a~MVGR4 = b~MVGR4
where a~matnr = wa_data-matnr
and a~VKORG = wa_data-vkorg
and b~SPRAS = sy-langu.

select single b~BEZEI INTO wa_Data-BEZEI4


from mvke as a INNER JOIN TVM5T as b
on a~MVGR5 = b~MVGR5
where a~matnr = wa_data-matnr
and a~VKORG = wa_data-vkorg
and b~SPRAS = sy-langu.

select SINGLE STEUC INTO wa_Data-STEUC from marc


where matnr = wa_Data-matnr and werks = wa_Data-werks.
wa_Data-KURRF = wa_vbrk_vbrp-KURRF.
"wa_DAta-KURSK = wa_vbrk_vbrp-KURSK.
wa_Data-WAERK = wa_vbrk_vbrp-WAERK.
wa_DAta-BUPLA = wa_vbrk_vbrp-BUPLA.

select SINGLE NAME INTO wa_Data-NAME from J_1BBRANCH


where BUKRS = wa_Data-bukrs
and BRANCH = wa_Data-bupla.

if wa_data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.


wa_data-FKIMG = '-1' * wa_vbrk_vbrp-FKIMG .

else.
wa_data-FKIMG = wa_vbrk_vbrp-FKIMG .
endif.
wa_Data-netwr = wa_vbrk_vbrp-netwr .
wa_data-VRKME = wa_vbrk_vbrp-VRKME .

select * from konv INTO TABLE it_konv where "kschl in


('ZPR0','ZTRF','ZPRX','ZTRX','ZBST','ZBRT','ZTAX',) and
KNUMV = wa_vbrk_vbrp-knumv
and KPOSN = wa_vbrk_vbrp-posnr.

LOOP AT it_konv INTO wa_konv.


IF wa_data-FKART = 'ZIRE'.
wa_KONV-KWERT = wa_KONV-KWERT * -1.
wa_KONV-KBETR = wa_KONV-KBETR * -1.
ELSEIF wa_data-FKART = 'ZICR'.
wa_KONV-KWERT = wa_KONV-KWERT * -1.
wa_KONV-KBETR = wa_KONV-KBETR * -1.
ELSEIF wa_data-FKART = 'S1'.
wa_KONV-KWERT = wa_KONV-KWERT * -1.
wa_KONV-KBETR = wa_KONV-KBETR * -1.
* ADDEDE BY DIPTI*********

************ENDED**************

ELSEIF wa_data-FKART = 'ZIXP' or wa_data-FKART = 'ZIXD'.


if wa_data-waerk = 'USDN'.
wa_KONV-KWERT = ( wa_KONV-KWERT * wa_Data-KURRF ) / 100..
wa_KONV-KBETR = ( wa_KONV-KBETR * wa_Data-KURRF ) / 100.
* ELSE .
* wa_KONV-KWERT = wa_KONV-KWERT * wa_Data-KURRF.
* wa_KONV-KBETR = wa_KONV-KBETR * wa_Data-KURRF.
endif.
**************end of addition****************************
ENDIF.

if wa_konv-kschl = 'ZPR0' OR wa_konv-kschl = 'ZTRF' OR wa_konv-kschl = 'ZPRX'


OR wa_konv-kschl = 'ZTRX'
OR wa_konv-kschl = 'ZBST' OR wa_konv-kschl = 'ZBRT'
"ADDED BY DIPTI*****
or wa_konv-kschl = 'ZSSP'. "OR wa_konv-kschl = 'ZTCS' .

if wa_konv-kmein = 'TO' or wa_konv-kmein = 'TON'.


LV_nd = wa_konv-KUMZA / wa_konv-KUMNE.
if wa_data-VRKME = 'TO' or wa_data-VRKME = 'TON'.
wa_data-FKIMG = wa_data-FKIMG * lv_nd.
endif.
endif.

if wa_konv-KMEIN = 'TO' or wa_konv-kmein = 'TON'.


* lv_rate = wa_konv-KBETR / lv_nd.

wa_Data-rate = wa_konv-KBETR / lv_nd . " Add wa_konv-


KUMZA ..10.05.2018
lv_KWERT = wa_data-FKIMG * wa_data-rate. """ 10.06.2019
else.
* if wa_konv-KUMZA IS NOT INITIAL and wa_konv-KUMNE IS NOT INITIAL .
* LV_nd = wa_konv-KUMZA / wa_konv-KUMNE.
* wa_Data-rate = wa_konv-KBETR / lv_nd .
* else.
lv_KWERT = wa_konv-KWERT.
wa_Data-rate = wa_konv-KBETR.
* endif.
* lv_Rate = wa_konv-kbetr.
endif.
endif.

if wa_konv-kschl = 'JECS' or wa_konv-kschl = 'JEDT'.


IF wa_Data-VKORG = '1500' OR wa_Data-VKORG = '2500'.
lv_EED = wa_KONV-KWERT.
ELSEIF wa_konv-KSTAT NE 'X' .
lv_EED = wa_KONV-KWERT.
ENDIF.
endif.
if wa_konv-kschl = 'ZAIX' or wa_konv-kschl = 'JAIX'.
IF wa_data-VKORG = '1500' OR wa_Data-VKORG = '2500'.
lv_HED = wa_KONV-KWERT.
ELSEIF wa_KONV-KSTAT NE 'X' .
lv_HED = wa_KONV-KWERT.
ENDIF.
endif.
if wa_konv-kschl = 'ZTR2'.
" if wa_data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
" wa_Data-Trade_disc = '-1' * wa_konv-kwert.
"else.
wa_Data-Trade_disc = wa_konv-kwert.
"endif.
endif.
if wa_konv-kschl = 'ZCAD'.
wa_DAta-sp_cd = wa_konv-kwert.
endif.
if wa_konv-kschl = 'ZFR1'.
IF wa_KONV-KSTAT NE 'X'.
if wa_data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
lv_FRTVAL = wa_KONV-KWERT.
wa_data-frtval = wa_data-frtval + wa_konv-kwert.
* lv_FRTVAL = '-1' * wa_KONV-KWERT.
* wa_data-frtval = '-1' * wa_konv-kwert.
else.
lv_FRTVAL = wa_KONV-KWERT.
wa_data-frtval = wa_data-frtval + wa_konv-kwert.
endif.
endif.
endif.

if wa_konv-kschl = 'ZTCS'. "commented by dipti


IF wa_KONV-KSTAT NE 'X'.
*** if wa_data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'."COMMENTED BY DIPTI
**** if wa_data-fkart = 'ZSCR' or wa_Data-fkart = 'S1'.
*****
***** if lv_tcsVAL = wa_KONV-KWERT.
***** wa_data-tcsval = wa_data-tcsval + wa_konv-kwert.
***** wa_data-tcsval = wa_data-tcsval + wa_konv-kwert.
***** lv_FRTVAL = '-1' * wa_KONV-KWERT.
***** lv_FRTVAL = '-1' * wa_KONV-KWERT.
***** wa_data-frtval = '-1' * wa_konv-kwert.
***** wa_data-frtval = '-1' * wa_konv-kwert.
if lv_tcsVAL = wa_KONV-KWERT.
wa_data-tcsval = wa_data-tcsval + wa_konv-kwert.
endif.
endif.
endif.

if wa_konv-kschl = 'ZFRT'."commented by dipti


wa_Data-spl_disc = wa_konv-kwert.
** Commented by Pratiksha ..04.05.2019
* IF wa_KONV-KSTAT NE 'X'.
* if wa_data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
* wa_Data-spl_disc = '-1' * wa_konv-kwert.
* else.
* wa_Data-spl_disc = wa_konv-kwert.
* endif.
* endif. "commented by dipti
** endif.
ENDIF."added by dipti
ENDLOOP.

if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.


wa_Data-rate = '-1' * wa_Data-rate.
if wa_data-waerk = 'USDN'.
wa_Data-tax_kawrt = ( wa_data-rate * wa_data-fkimg ). " KURSK.
else.
wa_Data-tax_kawrt = lv_KWERT. " wa_data-rate * wa_data-fkimg .") *
wa_Data-KURRF . " KURSK. "wa_data-rate
wa_Data-tax_kawrt = wa_Data-tax_kawrt * wa_data-kurrf.
endif.
* wa_data-tax_kawrt = '-1' * wa_data-tax_kawrt .
else.
if wa_data-waerk = 'USDN'.
wa_Data-tax_kawrt = ( wa_data-rate * wa_data-fkimg ). " KURSK.
else.
wa_Data-tax_kawrt = lv_KWERT. " wa_data-rate * wa_data-fkimg .") *
wa_Data-KURRF . " KURSK. "wa_data-rate "lv_KWERT. "
wa_Data-tax_kawrt = wa_Data-tax_kawrt * wa_data-kurrf.
endif.
endif.
** wa_Data-final_tax = wa_Data-TAX_KAWRT + wa_Data-Trade_disc + wa_data-
spl_disc + wa_Data-sp_cd + wa_Data-tcsval."commented by dipti
wa_Data-final_tax = wa_Data-TAX_KAWRT + wa_Data-Trade_disc + wa_data-
spl_disc + wa_Data-sp_cd ."+ wa_Data-tcsval."Added by dipti
wa_Data-Cess_KAWRT = lv_eed + lv_hed.
wa_Data-BEFORE_GST = wa_Data-final_tax + wa_data-frtval .
clear : lv_kbetr1 , lv_kwert1.
READ TABLE it_konv INTO wa_konv with key kschl = 'JVAT'.
if sy-subrc = 0.
lv_KBETR1 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
lv_kwert1 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT1 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.

wa_data-VAT_PER = lv_KBETR1.
wa_Data-VAT_AMT = lv_kwert1.
endif.
clear : lv_kbetr1 , lv_kwert1.
READ TABLE it_konv INTO wa_konv with key kschl = 'JADD'.
if sy-subrc = 0.
lv_KBETR1 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert1 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT1 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.
wa_data-AVAT_PER = lv_KBETR1.
wa_Data-AVAT_AMT = lv_kwert1.
endif.
wa_Data-total_vat = wa_data-vat_amt + wa_Data-avat_amt.
clear : lv_kbetr1 , lv_kwert1.
READ TABLE it_konv INTO wa_konv with key kschl = 'JOCG'.
if sy-subrc = 0.
lv_KBETR1 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert1 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT1 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.

wa_data-CGST_KBETR = lv_KBETR1.
wa_Data-CGST_KAWRT = lv_kwert1.
endif.

READ TABLE it_konv INTO wa_konv with key kschl = 'JOSG'.


if sy-subrc = 0.
lv_KBETR3 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert3 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT3 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.

wa_data-SGST_KBETR = lv_kbetr3.
wa_data-SGST_KAWRT = lv_KWERT3.
endif.
READ TABLE it_konv INTO wa_konv with key kschl = 'JOIG'.
if sy-subrc = 0.
lv_KBETR2 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert2 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT2 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.

wa_Data-IGST_KBETR = lv_KBETR2 .
wa_data-IGST_KAWRT = lv_KWERT2.
endif.
READ TABLE it_konv INTO wa_konv with key kschl = 'YOIG'.
CLEAR : LV_KBETR2,LV_KWERT2 .
if sy-subrc = 0.
lv_KBETR2 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
lv_kwert2 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT2 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.

wa_Data-IGST_KBETR = lv_KBETR2 . "exchange rate added by heli patel


wa_data-IGST_KAWRT = lv_KWERT2 * wa_vbrk_vbrp-KURRF.
endif.

READ TABLE it_konv INTO wa_konv with key kschl = 'DIFF'.


if sy-subrc = 0.
wa_data-DIFF = wa_konv-kwert.
endif.

" wa_data-netwr_val = wa_Data-final_Tax + wa_data-CGST_KAWRT + wa_data-


IGST_KAWRT + wa_data-SGST_KAWRT + wa_Data-total_vat.
*** wa_data-netwr_val = wa_Data-before_gst + wa_data-CGST_KAWRT + wa_data-
IGST_KAWRT + wa_data-SGST_KAWRT + wa_Data-total_vat + wa_data-diff."commented by
dipti
wa_data-netwr_val = wa_Data-before_gst + wa_data-CGST_KAWRT + wa_data-
IGST_KAWRT + wa_data-SGST_KAWRT + wa_Data-total_vat." + wa_data-diff."Added by
dipti
wa_Data-charg = wa_vbrk_vbrp-charg.
""""""""""""""Added by dipti****************
READ TABLE it_konv INTO wa_konv with key kschl = 'ZTCS'.
if sy-subrc = 0.
wa_data-TCSVAL = wa_konv-kwert.
endif.

* *****************ended*********************
SELECT SINGLE * FROM MCH1 INTO CORRESPONDING FIELDS OF WA_MCH1
WHERE CHARG = wa_data-CHARG.
IF SY-SUBRC = 0.
IF WA_MCH1 IS NOT INITIAL.
wa_data-VFDAT = WA_MCH1-VFDAT.
wa_data-HSDAT = WA_MCH1-HSDAT.
ENDIF.
ENDIF.

select single umrez umren from marm into (ws_umrez,ws_umren)


where matnr = wa_Data-matnr and meinh = 'CS' .
if ws_umrez is not INITIAL and ws_umrez ne 0.
wa_Data-fkimg1 = wa_Data-fkimg / ws_umrez * ws_umren .
else.
wa_Data-fkimg1 = wa_Data-fkimg.
endif.

* select SINGLE vgbel INTO wa_Data-vgbel from vbak where VBELN = wa_vbrk_vbrp-
aubel.
"Code For Reverse Document
SELECT SINGLE VK~VGBEL FROM VBRP AS VP
INNER JOIN VBAP AS VK "VBAK
ON VP~AUBEL EQ VK~VBELN AND VP~POSNR EQ VK~POSNR
INNER JOIN VBRK AS VB
ON VB~VBELN EQ VK~VGBEL
INTO WA_DATA-VGBEL
WHERE VP~VBELN EQ WA_DATA-VBELN
AND VK~MATNR EQ WA_DATA-MATNR
AND VK~POSNR EQ WA_DATA-POSNR.

if wa_DAta-vgbel IS NOT INITIAL .


select SINGLE fkdat INTO wa_Data-rdate from vbrk where vbeln = wa_data-
vgbel.
endif.

select SINGLE BSTNK BSTDK INTO (wa_DAta-bstnk,wa_Data-bstdk)


from vbak where vbeln = wa_vbrk_vbrp-aubel AND AUART = 'ZORE'.

if wa_vbrk_vbrp-vbeln = '1815155940' or wa_vbrk_vbrp-vbeln = '1815155942' or


wa_vbrk_vbrp-vbeln = '1815155945' or wa_vbrk_vbrp-vbeln = '1815653669' or
wa_vbrk_vbrp-vbeln = '1815653670' or wa_vbrk_vbrp-vbeln = '1815653671' or
wa_vbrk_vbrp-vbeln = '1815653770' or wa_vbrk_vbrp-vbeln = '1816901736' or
wa_vbrk_vbrp-vbeln = '1816901737' or wa_vbrk_vbrp-vbeln = '1816901738'.

wa_vbrk_vbrp-augru_auft = 'Z23'.
READ TABLE it_tvaut INTO wa_tvaut with key augru = wa_vbrk_vbrp-augru_auft .
if sy-subrc = 0 .
wa_Data-zbeZei = wa_tvaut-bezei.
endif.
else.
READ TABLE it_tvaut INTO wa_tvaut with key augru = wa_vbrk_vbrp-augru_auft .
if sy-subrc = 0 .
wa_Data-zbeZei = wa_tvaut-bezei.
endif.
endif.

select SINGLE zzone INTO wa_data-zzone


FROM ZTSD_PLANT_SUBRG
where WERKS = wa_Data-werks.

if wa_Data-fkart = 'ZIRE'.
MOVE wa_data-VBELN TO M_VBELN .

CALL FUNCTION 'READ_TEXT'


EXPORTING
ID = 'Z007'
LANGUAGE = SY-LANGU
NAME = M_VBELN
OBJECT = 'VBBK'
TABLES
LINES = T_LINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
IF SY-SUBRC = 0 .
READ TABLE T_LINE INDEX 1.
MOVE T_LINE-TDLINE TO wa_Data-RMARK .
ENDIF.

CLEAR : T_LINE[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z008'
LANGUAGE = SY-LANGU
NAME = M_VBELN
OBJECT = 'VBBK'
TABLES
LINES = T_LINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
IF SY-SUBRC = 0 .
READ TABLE T_LINE INDEX 1.
MOVE T_LINE-TDLINE TO wa_Data-instru .
ENDIF.
endif.

select single ewb_no


ewb_date
ewb_time from zeway_info
into (wa_data-ewb_no,wa_data-ewb_date,wa_data-ewb_time)
where doc_no = wa_data-vbeln.

wa_Data-term = wa_vbrk_vbrp-zterm.
lv_term = wa_Data-term+1(3).
CONCATENATE lv_term 'Days Credit' INTO wa_data-term_desc SEPARATED BY space.

call function 'CONVERSION_EXIT_ALPHA_OUTPUT'


exporting
input = WA_DATA-KUNAG
IMPORTING
OUTPUT = WA_DATA-ZKUNAG
.

APPEND wa_data to it_data.


clear : wa_data , lv_kbetr1 , lv_kbetr2 , lv_kbetr3 , lv_kwert1 , lv_kwert2 ,
lv_kwert3 , t_line , lv_term.
* wa_data-Cess_KAWRT = Cess_KAWRT
ENDLOOP.
IF NOT p_MATKL[] IS INITIAL.
DELETE it_Data WHERE NOT MATKL IN p_MATKL.
ENDIF.

if P_SBRNCH[] IS NOT INITIAL .


delete it_data where ZSUB_BRNCH not in p_sbrnch.
endif.
else.
if sy-tcode ne 'ZSD_CREDIT' and sy-tcode ne 'ZCL_REP' and sy-tcode ne
'ZSD_ABP_REP' and sy-tcode ne 'ZSD_CL' and sy-tcode ne 'ZEST_RPT'.
MESSAGE 'No Invoice found with selected criteria ' TYPE 'S' DISPLAY LIKE 'E' .
LEAVE LIST-PROCESSING.
endif.
endif.

delete it_Data WHERE fkimg eq '0.00' and netwr eq '0.00'.


sort it_data by fkdat ASCENDING.
*break helpdesk.
*if p_chk = 'X'.
* if p_bschl = '50'.
* sort it_data by fkdat vbeln ASCENDING.
** LOOP AT it_data INTO wa_Data.
** select
** ENDLOOP.
* LOOP AT it_Data INTO wa_Data.
* on CHANGE OF wa_data-vbeln.
* clear : p_gjahr , lv_cnt.
* call function 'GET_CURRENT_YEAR'
* EXPORTING
* BUKRS = wa_Data-bukrs
* DATE = wa_data-fkdat
* IMPORTING
* CURRY = p_gjahr.
*
* select count(*) INTO lv_cnt FROM bseg
* where bukrs = wa_Data-bukrs
* and gjahr = p_gjahr
* and belnr = wa_Data-vbeln
* and KTOSL IN ('JOS','JOC','JOI')
* and bschl = '50'.
* endon.
*
* if lv_cnt gt 0.
* MOVE-CORRESPONDING wa_DAta to wa_DAta1.
* if wa_Data-IGST_KAWRT lt 0.
* wa_Data1-IGST_KAWRT = '-1' * wa_Data-IGST_KAWRT.
* else.
* wa_Data1-IGST_KAWRT = wa_Data-IGST_KAWRT.
* endif.
* if wa_Data-CGST_KAWRT lt 0.
* wa_Data1-CGST_KAWRT = '-1' * wa_Data-CGST_KAWRT.
* else.
* wa_Data1-CGST_KAWRT = wa_Data-CGST_KAWRT.
* endif.
* if wa_Data-SGST_KAWRT lt 0.
* wa_Data1-SGST_KAWRT = '-1' * wa_Data-SGST_KAWRT.
* else.
* wa_Data1-SGST_KAWRT = wa_Data-SGST_KAWRT.
* endif.
* APPEND wa_DAta1 to it_data1.
* clear : wa_Data1.
* endif.
*
* ENDLOOP.
* ELSEIF p_bschl = '40'.
* sort it_data by fkdat vbeln ASCENDING.
*
* LOOP AT it_Data INTO wa_Data.
* on CHANGE OF wa_data-vbeln.
* clear : p_gjahr , lv_cnt.
* call function 'GET_CURRENT_YEAR'
* EXPORTING
* BUKRS = wa_Data-bukrs
* DATE = wa_data-fkdat
* IMPORTING
* CURRY = p_gjahr.
*
* select count(*) INTO lv_cnt FROM bseg
* where bukrs = wa_Data-bukrs
* and gjahr = p_gjahr
* and belnr = wa_Data-vbeln
* and KTOSL IN ('JOS','JOC','JOI')
* and bschl = '40'.
* endon.
*
* if lv_cnt gt 0.
* MOVE-CORRESPONDING wa_DAta to wa_DAta1.
* if wa_Data-IGST_KAWRT gt 0.
* wa_Data1-IGST_KAWRT = '-1' * wa_Data-IGST_KAWRT.
* else.
* wa_Data1-IGST_KAWRT = wa_Data-IGST_KAWRT.
* endif.
* if wa_Data-CGST_KAWRT gt 0.
* wa_Data1-CGST_KAWRT = '-1' * wa_Data-CGST_KAWRT.
* else.
* wa_Data1-CGST_KAWRT = wa_Data-CGST_KAWRT.
* endif.
* if wa_Data-SGST_KAWRT gt 0.
* wa_Data1-SGST_KAWRT = '-1' * wa_Data-SGST_KAWRT.
* else.
* wa_Data1-SGST_KAWRT = wa_Data-SGST_KAWRT.
* endif.
* APPEND wa_DAta1 to it_data1.
* clear : wa_Data1.
* endif.
*
*
* ENDLOOP.
* endif.
*endif.

endform. " GET_DATA


*&---------------------------------------------------------------------*
*& Form FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form fieldcatalog .
data : lv_cnt type i.
clear : lv_cnt.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-seltext_m = 'Company Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WERKS_NAME1'.
wa_fieldcat-seltext_m = 'Plant Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZZONE'.
wa_fieldcat-seltext_m = 'Zone'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VKORG'.
wa_fieldcat-seltext_m = 'Sales Orgnization'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTEXT'.
wa_fieldcat-seltext_m = 'Sales Orgnization Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-seltext_m = 'Dist Channel'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTEXT_CH'.
wa_fieldcat-seltext_m = 'Distri.Channel Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TM_NAME'.
wa_fieldcat-seltext_m = 'Agent Disc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZM_NAME'.
wa_fieldcat-seltext_m = 'Zonal Manager Disc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'GSTIN'.
wa_fieldcat-seltext_m = 'Company GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'KUNAG'.
wa_fieldcat-seltext_m = 'Customer Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZKUNAG'.
wa_fieldcat-seltext_m = 'Customer Code(Without Leading Zero)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Customer Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STATENAME'.
wa_fieldcat-seltext_m = 'Customer State Name - Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STCD3'.
wa_fieldcat-seltext_m = 'Customer GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ORT01'.
wa_fieldcat-seltext_m = 'City'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BZTXT'.
wa_fieldcat-seltext_m = 'Territory Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BUPLA'.
wa_fieldcat-seltext_m = 'Business Place'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NAME'.
wa_fieldcat-seltext_m = 'Business Place Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SHIP_P'.
wa_fieldcat-seltext_m = 'Consignee Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SHIP_PNAME'.
wa_fieldcat-seltext_m = 'Consignee Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CON_STATE'.
wa_fieldcat-seltext_m = 'Consginee State Name - Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CON_GSTNO'.
wa_fieldcat-seltext_m = 'Consignee GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_m = 'Invoice No.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VGBEL'.
wa_fieldcat-seltext_m = 'Reverse Ref.Doc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RDATE'.
wa_fieldcat-seltext_m = 'Rev.Ref.Doc.Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SFAKN'.
wa_fieldcat-seltext_m = 'Cancelled Ref.Doc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'POSNR'.
wa_fieldcat-seltext_m = 'Item'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 7.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKDAT'.
wa_fieldcat-seltext_m = 'Invoice Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_NO'.
wa_fieldcat-seltext_m = 'Eway Bill No.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_DATE'.
wa_fieldcat-seltext_m = 'Eway Bill Creation Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_TIME'.
wa_fieldcat-seltext_m = 'Eway Bill Creation Time'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKART'.
wa_fieldcat-seltext_m = 'Type'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKART_TEXT'.
wa_fieldcat-seltext_m = 'Billing Type Text'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ARKTX'.
wa_fieldcat-seltext_m = 'Material Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WRKST'.
wa_fieldcat-seltext_m = 'Standard Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_m = 'Material Group'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI'.
wa_fieldcat-seltext_m = 'Brand Group'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI1'.
wa_fieldcat-seltext_m = 'Material Group1'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI2'.
wa_fieldcat-seltext_m = 'Material Group3'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI3'.
wa_fieldcat-seltext_m = 'Material Group4'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI4'.
wa_fieldcat-seltext_m = 'Material Group5'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STEUC'.
wa_fieldcat-seltext_m = 'HSN Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WAERK'.
wa_fieldcat-seltext_m = 'Curr.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKIMG'.
wa_fieldcat-seltext_m = 'Qty'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VRKME'.
wa_fieldcat-seltext_m = 'Unit'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RATE'.
wa_fieldcat-seltext_m = 'Rate'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TAX_KAWRT'.
wa_fieldcat-seltext_m = 'Taxable Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TRADE_DISC'.
wa_fieldcat-seltext_m = 'Trade Discount'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SPL_DISC'.
wa_fieldcat-seltext_m = 'Special Discount'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SP_CD'.
wa_fieldcat-seltext_m = 'Special CD'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FINAL_TAX'.
wa_fieldcat-seltext_m = 'Final Taxable Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'VAT_PER'.
*wa_fieldcat-seltext_m = 'VAT %'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 5.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'VAT_AMT'.
*wa_fieldcat-seltext_m = 'VAT Amount'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'AVAT_PER'.
*wa_fieldcat-seltext_m = 'Add.VAT %'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 5.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'AVAT_AMT'.
*wa_fieldcat-seltext_m = 'Add.VAT Amount'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'TOTAL_VAT'.
*wa_fieldcat-seltext_m = 'Total VAT+Add.VAT'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FRTVAL'.
wa_fieldcat-seltext_m = 'Freight Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TCSVAL'.
wa_fieldcat-seltext_m = 'TCS Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEFORE_GST'.
wa_fieldcat-seltext_m = 'Before GST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'IGST_KBETR'.
wa_fieldcat-seltext_m = 'IGST (%)'.
wa_fieldcat-col_pos = lv_cnt..
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'IGST_KAWRT'.
wa_fieldcat-seltext_m = 'IGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SGST_KBETR'.
wa_fieldcat-seltext_m = 'SGST (%)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SGST_KAWRT'.
wa_fieldcat-seltext_m = 'SGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CGST_KBETR'.
wa_fieldcat-seltext_m = 'CGST (%)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CGST_KAWRT'.
wa_fieldcat-seltext_m = 'CGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CESS_KAWRT'.
wa_fieldcat-seltext_m = 'Cess'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'DIFF'.
wa_fieldcat-seltext_m = 'Rounding Off'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NETWR_VAL'.
wa_fieldcat-seltext_m = 'Net Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CHARG'.
wa_fieldcat-seltext_m = 'Batch'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'HSDAT'.
wa_fieldcat-seltext_m = 'Manuf. Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VFDAT'.
wa_fieldcat-seltext_m = 'Mat.Expiry Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKIMG1'.
wa_fieldcat-seltext_m = 'Qty-Case'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZBEZEI'.
wa_fieldcat-seltext_m = 'Other Reason'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BSTNK'.
wa_fieldcat-seltext_m = 'PO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BSTDK'.
wa_fieldcat-seltext_m = 'PO Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RMARK'.
wa_fieldcat-seltext_m = 'Remark'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 50.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'INSTRU'.
wa_fieldcat-seltext_m = 'Instruction'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 50.
APPEND wa_fieldcat to it_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TERM'.
wa_fieldcat-seltext_m = 'Payment Terms'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TERM_DESC'.
wa_fieldcat-seltext_m = 'Pay.Terms Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 30.
APPEND wa_fieldcat to it_fieldcat.

lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZSUB_BRNCH'.
wa_fieldcat-seltext_m = 'Sub Region'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BZIRK'.
wa_fieldcat-seltext_m = 'Sales District'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.

wa_layout-colwidth_optimize = 'X'.
clear : wa_fieldcat.
endform. " FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form display_alv .
* if p_chk = 'X'.
* if p_bschl IS NOT INITIAL.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* I_CALLBACK_PROGRAM = SY-REPID
* " I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
* " i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
* " I_DEFAULT = 'X'
* i_save = 'A'
* IT_FIELDCAT = IT_FIELDCAT[]
** IT_SORT = IT_SORT "CAN SUM SUB TOTAL
* TABLES
* T_OUTTAB = IT_data1.
* else.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* I_CALLBACK_PROGRAM = SY-REPID
* " I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
* " i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
* " I_DEFAULT = 'X'
* i_save = 'A'
* IT_FIELDCAT = IT_FIELDCAT[]
** IT_SORT = IT_SORT "CAN SUM SUB TOTAL
* TABLES
* T_OUTTAB = IT_data.
* endif.
* else.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
" I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
" i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
" I_DEFAULT = 'X'
i_save = 'A'
IS_LAYOUT = WA_LAYOUT
IS_VARIANT = G_VARIANT
IT_FIELDCAT = IT_FIELDCAT[]
* IT_SORT = IT_SORT "CAN SUM SUB TOTAL
TABLES
T_OUTTAB = IT_data.
* endif.
endform. " DISPLAY_ALV
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*& Form CHECK_AUTHORITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form check_authority .
IF P_BUKRS IS NOT INITIAL.
SELECT BUKRS FROM T001 INTO CORRESPONDING FIELDS OF TABLE IT_COM
WHERE KTOPL EQ '9000' AND BUKRS IN P_BUKRS.
LOOP AT IT_COM INTO WA_COM.
AUTHORITY-CHECK OBJECT 'ZSD_BUKRS'
ID 'ACTVT' FIELD '03'
ID 'BUKRS' FIELD WA_COM-BUKRS.

IF SY-SUBRC <> 0.
MESSAGE 'No Authorization of Entered Company Code' TYPE 'S' DISPLAY
LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDLOOP.
ENDIF.
IF P_plant IS INITIAL.
MESSAGE 'Kindly specify the Plants requried' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.

*SELECT WERKS NAME1 FROM T001W


* INTO CORRESPONDING FIELDS OF TABLE IT_T001W.
SELECT DISTINCT A~WERKS A~NAME1 INTO CORRESPONDING FIELDS OF TABLE IT_T001W1
FROM T001W AS A INNER JOIN TVKWZ ON
A~WERKS = TVKWZ~WERKS
WHERE A~WERKS IN p_plant
AND TVKWZ~VKORG IN p_VKORG
AND A~EKORG IN p_BUKRS . "A~J_1BBRANCH IN S_BUKRS.
CLEAR p_plant[].
LOOP AT IT_T001W1 INTO W_T001W1.
AUTHORITY-CHECK OBJECT 'ZSD_WERKS'
ID 'ACTVT' FIELD '03'
ID 'WERKS' FIELD W_T001W1-WERKS.

IF SY-SUBRC EQ 0.
P_plant-SIGN = 'I'.
P_plant-OPTION = 'EQ'.
P_plant-LOW = W_T001W1-WERKS.
APPEND P_plant.
ENDIF.
ENDLOOP.

IF P_plant[] IS INITIAL.
MESSAGE 'You are not Authoised for Any of Selected Plant ' TYPE 'S' DISPLAY
LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.
IF P_VTWEG[] IS INITIAL.
MESSAGE 'No Distribution Channel Specified' TYPE 'S' DISPLAY LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.

SELECT * FROM TVTWT INTO CORRESPONDING FIELDS OF TABLE IT_TVTWT1


WHERE SPRAS EQ 'EN'
AND VTWEG IN P_VTWEG.
CLEAR P_VTWEG[].
LOOP AT IT_TVTWT1 INTO W_TVTWT1.
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
ID 'VTWEG' FIELD W_TVTWT1-VTWEG
ID 'ACTVT' FIELD '03'.

IF SY-SUBRC EQ 0.
P_VTWEG-SIGN = 'I'.
P_VTWEG-OPTION = 'EQ'.
P_VTWEG-LOW = W_TVTWT1-VTWEG.
APPEND P_VTWEG.
ENDIF.
ENDLOOP.
IF P_VTWEG[] IS INITIAL.
MESSAGE 'No Authorised Distribution channel found ' TYPE 'S' DISPLAY LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.
endform. " CHECK_AUTHORITY
FORM INITIALIZE_VARIANT.
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
LAYOUT-GET_SELINFOS = 'X'.
LAYOUT-GROUP_CHANGE_EDIT = 'X'.
* LAYout_lvc-get_selinfos = 'X'.
* Layout_lvc-group_change_edit = 'X'.
ALV_PRINT-NO_PRINT_SELINFOS = 'X'.
ALV_PRINT-NO_COVERPAGE = 'X'.
ALV_PRINT-NO_PRINT_LISTINFOS = 'X'.
ALV_DETAIL_FUNC = 'REUSE_ALV_LIST_DISPLAY'.
ENDFORM. " INITIALIZE_VARIANT
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN

You might also like