Go on link..

link us with ...

Friday, December 31, 2010

PURChase BOOK

*&---------------------------------------------------------------------*
*& Report ZVVF_FR017_PURCBOOK *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZVVF_FR017_PURCBOOK_06042005 .


*Tables
TABLES : bkpf, bseg, mara, t007a, t007s, makt, lfa1,
konv, ekko, ekpo, lfb1.

TYPE-POOLS SLIS.


*Parameters : p_werks like bseg-werks. "Plant/Depot
*

**---------------------------------------------------------------------*
* Constants Begin with C_
**---------------------------------------------------------------------*

CONSTANTS: st_formname_top_of_page TYPE slis_formname
VALUE 'TOP_OF_PAGE-ALV'.





DATA : BEGIN OF itab OCCURS 0,
werks LIKE bseg-werks,
NAME2 LIKE T001W-NAME1,
belnr LIKE bkpf-belnr,
buzei LIKE bseg-buzei,
bldat LIKE bkpf-bldat,
budat like bkpf-budat,
lifnr LIKE bseg-lifnr,
name1 LIKE lfa1-name1,
ort01 LIKE lfa1-ort01,
xblnr LIKE bkpf-xblnr,
bktxt LIKE bkpf-bktxt,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
maktx LIKE makt-maktx,
mwskz LIKE bseg-mwskz,
text1 LIKE t007s-text1,
landl LIKE bseg-landl,
waers LIKE bkpf-waers,
ekorg LIKE ekko-ekorg,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
matkl LIKE ekpo-matkl,
meins LIKE ekpo-matkl,
menge LIKE ekpo-menge,
netwr LIKE ekpo-netwr,
mtart LIKE ekpo-mtart,
txjcd LIKE ekpo-txjcd,
emlif LIKE ekpo-emlif,
other_costs LIKE bseg-dmbtr,
totpr LIKE bseg-dmbtr,
dmbtr LIKE bseg-dmbtr,
FBILL LIKE bseg-dmbtr,
FBASE_AMT LIKE bseg-dmbtr,
FSALES_TAX LIKE bseg-dmbtr,
FEXC_ASS LIKE bseg-dmbtr,
FEXC LIKE bseg-dmbtr,
akont like lfb1-akont,
OTHER LIKE BSEG-DMBTR,
ecess1 like bseg-dmbtr,
date(10) type c,
date1(10) type c,
vendor(10) type c,
AKONT1(5) TYPE C,
matnr1(18) type c,
bill_amt LIKE BSEG-DMBTR,
meins1 like bseg-meins,
knumv like ekko-knumv,
basic like konv-KAWRT,
INSURANCE like konv-kbetr,
FREIGHT like konv-kbetr,
ASV like konv-kbetr,
BCD like konv-kbetr,
CVD like konv-kbetr,
ESSCVD like konv-kbetr,
ESSBCD like konv-kbetr,
SCD like konv-kbetr,

basic_u like konv-KAWRT,
INSURANCE_u like konv-kbetr,
FREIGHT_u like konv-kbetr,
ASV_u like konv-kbetr,
BCD_u like konv-kbetr,
CVD_u like konv-kbetr,
VAT LIKE KONV-KBETR,
ZWCT LIKE KONV-KBETR,
JIP2 LIKE KONV-KBETR,
ZSUR LIKE KONV-KBETR,
ZTOT LIKE KONV-KBETR,

ESSCVD_u like konv-kbetr,
ESSBCD_u like konv-kbetr,
SCD_u like konv-kbetr,
OTHER1_u LIKE bseg-dmbtr,


WKURS LIKE EKKO-WKURS,
OTHER1 LIKE bseg-dmbtr,
status(15) type c,
SERV_TAX LIKE konv-kbetr,
ECESS_TAX LIKE konv-kbetr,
TDS LIKE konv-kbetr,
W_CHK(1) TYPE C,
W_CHK1(1) TYPE C,
BSART LIKE EKKO-BSART,
aedat like ekko-aedat,
TYPE(5) TYPE C,
KTOSL LIKE BSEG-KTOSL,
END OF itab.
*
DATA : BEGIN OF ibkpf OCCURS 0,
bukrs LIKE bkpf-bukrs,
gjahr LIKE bkpf-gjahr,
belnr LIKE bkpf-belnr,
bldat LIKE bkpf-bldat,
budat like bkpf-budat,
xblnr LIKE bkpf-xblnr,
bktxt LIKE bkpf-bktxt,
waers LIKE bkpf-waers,
STGRD LIKE BKPF-STGRD,

END OF ibkpf.
*
DATA : W_LINES TYPE I.
DATA : BEGIN OF ibseg OCCURS 0,
werks LIKE bseg-werks,
buzei LIKE bseg-buzei,
lifnr LIKE bseg-lifnr,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
mwskz LIKE bseg-mwskz,
landl LIKE bseg-landl,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
menge LIKE bseg-menge,
other_costs LIKE bseg-dmbtr,
totpr LIKE bseg-dmbtr,
dmbtr LIKE bseg-dmbtr,
meins like bseg-meins,
belnr like bseg-belnr,
gjahr like bseg-gjahr,
wrbtr like bseg-wrbtr,
shkzg like bseg-shkzg,
erfmg like bseg-erfmg,
bldat LIKE bkpf-bldat,
budat like bkpf-budat,
xblnr LIKE bkpf-xblnr,
bktxt LIKE bkpf-bktxt,
waers LIKE bkpf-waers,
status(15) type c,

END OF ibseg.

DATA : BEGIN OF ibseg1 OCCURS 0,
werks LIKE bseg-werks,
buzei LIKE bseg-buzei,
lifnr LIKE bseg-lifnr,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
mwskz LIKE bseg-mwskz,
landl LIKE bseg-landl,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
menge LIKE bseg-menge,
other_costs LIKE bseg-dmbtr,
totpr LIKE bseg-dmbtr,
dmbtr LIKE bseg-dmbtr,
meins like bseg-meins,
belnr like bseg-belnr,
gjahr like bseg-gjahr,
wrbtr like bseg-wrbtr,
shkzg like bseg-shkzg,
erfmg like bseg-erfmg,
bldat LIKE bkpf-bldat,
budat like bkpf-budat,
xblnr LIKE bkpf-xblnr,
bktxt LIKE bkpf-bktxt,
waers LIKE bkpf-waers,
KTOSL LIKE BSEG-KTOSL,
status(15) type c,
TDS LIKE konv-kbetr,
W_CHK(1) TYPE C,
W_CHK1(1) TYPE C,
END OF ibseg1.


DATA : BEGIN OF ibseg2 OCCURS 0,
werks LIKE bseg-werks,
buzei LIKE bseg-buzei,
lifnr LIKE bseg-lifnr,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
mwskz LIKE bseg-mwskz,
landl LIKE bseg-landl,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
menge LIKE bseg-menge,
other_costs LIKE bseg-dmbtr,
totpr LIKE bseg-dmbtr,
dmbtr LIKE bseg-dmbtr,
meins like bseg-meins,
belnr like bseg-belnr,
gjahr like bseg-gjahr,
wrbtr like bseg-wrbtr,
shkzg like bseg-shkzg,
erfmg like bseg-erfmg,
bldat LIKE bkpf-bldat,
budat like bkpf-budat,
xblnr LIKE bkpf-xblnr,
bktxt LIKE bkpf-bktxt,
waers LIKE bkpf-waers,
status(15) type c,
KTOSL LIKE BSEG-KTOSL,

END OF ibseg2.


*
DATA : BEGIN OF inm_bseg OCCURS 0,
belnr LIKE bseg-belnr,
lifnr LIKE bseg-lifnr,
END OF inm_bseg.
*
DATA : BEGIN OF im_other_costs OCCURS 0,
shkzg LIKE bseg-shkzg,
dmbtr LIKE bseg-dmbtr,
END OF im_other_costs.
*
DATA : BEGIN OF im_bseg OCCURS 0,
werks LIKE bseg-werks,
buzei LIKE bseg-buzei,
lifnr LIKE bseg-lifnr,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
mwskz LIKE bseg-mwskz,
landl LIKE bseg-landl,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
menge LIKE bseg-menge,
erfmg LIKE bseg-erfmg,
dmbtr LIKE bseg-dmbtr,
shkzg LIKE bseg-shkzg,
meins like bseg-meins,
END OF im_bseg.
*
DATA : BEGIN OF im_bseg1 OCCURS 0,
werks LIKE bseg-werks,
buzei LIKE bseg-buzei,
lifnr LIKE bseg-lifnr,
matnr LIKE bseg-matnr,
bukrs LIKE bseg-bukrs,
mwskz LIKE bseg-mwskz,
landl LIKE bseg-landl,
ebeln LIKE bseg-ebeln,
ebelp LIKE bseg-ebelp,
menge LIKE bseg-menge,
erfmg LIKE bseg-erfmg,
dmbtr LIKE bseg-dmbtr,
shkzg LIKE bseg-shkzg,
END OF im_bseg1.

*
TYPES: BEGIN OF TY_KONV,
KNUMV LIKE KONV-KNUMV,
KBETR LIKE KONV-KBETR,
KSCHL LIKE KONV-KSCHL,
KWERT like VBRL-NETWR,
KAWRT LIKE KONV-KAWRT,
END OF TY_KONV.

DATA : IT_EKKO TYPE STANDARD TABLE OF EKKO WITH HEADER LINE.
DATA : IT_EKPO TYPE STANDARD TABLE OF EKPO WITH HEADER LINE.
DATA : IT_KONV TYPE STANDARD TABLE OF KONV WITH HEADER LINE.
DATA : W_BAMT LIKE KONV-KWERT.


DATA : BEGIN OF komk OCCURS 0.
INCLUDE STRUCTURE komk.
DATA : END OF komk.
*
DATA : BEGIN OF komp OCCURS 0.
INCLUDE STRUCTURE komp.
DATA : END OF komp.
*
*DATA BEGIN OF tkomv OCCURS 0.
* INCLUDE STRUCTURE komv.
*DATA END OF tkomv.
*
DATA excise_ass_amt LIKE komv-kwert.
DATA excise_amt LIKE komv-kwert.
DATA sales_tax_amt LIKE komv-kwert.
DATA : W_VAT LIKE komv-kwert.
DATA st_base_amt LIKE komv-kwert.
DATA netwr(13).
DATA menge(10).
DATA base_amt(13).
DATA tax_amt(13).
DATA ass_amt(13).
DATA excise(13).
DATA ecess(13).
data basic(13).
DATA SERV_TAX(13).
DATA ECESS_TAX(13).
DATA : W_ZWCT LIKE KONV-KBETR.
DATA bill_amt LIKE komv-kwert.
DATA : bill_amt1 LIKE BSEG-DMBTR.
DATA : W_WKURS LIKE EKKO-WKURS.
DATA flag(1) TYPE c VALUE 'N'.

DATA : final_bill_amt LIKE komv-kwert,
final_menge LIKE bseg-menge,
final_base_amt LIKE komv-kwert,
final_sales_tax LIKE komv-kwert,
final_excise_ass LIKE komv-kwert,
final_excise LIKE komv-kwert.

DATA: tot_bill_amt LIKE komv-kwert,
tot_menge LIKE bseg-menge,
tot_base_amt LIKE komv-kwert,
tot_sales_tax LIKE komv-kwert,
tot_excise_ass LIKE komv-kwert,
tot_excise LIKE komv-kwert,
tot_ecess LIKE komv-kwert.

DATA : char_bill_amt(13),
char_excise_ass(13),
char_excise(13),
char_base_amt(13),
char_sales_tax(13).
.
data : name1(30), lfa_name1(30).
* s_repid LIKE sy-repid,
* s_save(1) TYPE c.
*
data: date(10) type c.

*types: begin of slis_specialcol_alv,
* fieldname type slis_fieldname,
* color type slis_color,
* nokeycol(1) type c,
* end of slis_specialcol_alv.
DATA: IT_slis_t_specialcol_alv type slis_specialcol_alv.

DATA : IT_CAL_TAX LIKE TAXCOM OCCURS 0 WITH HEADER LINE.
DATA : WA_KONV TYPE table of TAXCOM with header line.
DATA : tkomv LIKE KOMV OCCURS 0 WITH HEADER LINE.
DATA : W_JIP2 LIKE KONV-KBETR.
DATA : W_ZSUR LIKE KONV-KBETR.
DATA : W_ZTOT LIKE KONV-KBETR.

DATA: it_st_list_top_of_page TYPE slis_t_listheader,
it_st_fieldcat TYPE slis_t_fieldcat_alv,
it_st_events TYPE slis_t_event,
st_layout TYPE slis_layout_alv,
s_status TYPE slis_formname VALUE 'STANDARD_ST01',
s_user_command TYPE slis_formname VALUE 'USER_COMMAND-ALV',
s_repid LIKE sy-repid,
s_save(1) TYPE c,
s_variant LIKE disvariant,
code LIKE disvariant-handle.
*DATA: G_VARIANT LIKE DISVARIANT.

SELECT-OPTIONS : s_werks FOR bseg-werks , "Plant/Depot
s_lifnr FOR bseg-lifnr , "Vendor
s_bukrs for bkpf-bukrs OBLIGATORY,
s_blart FOR bkpf-blart OBLIGATORY, "Doc type
s_matnr FOR bseg-matnr , "Material
* s_emlif FOR ekpo-emlif, "Receiving vendor.
s_date FOR sy-datum OBLIGATORY , "Doc posting Date
s_gjahr FOR bseg-gjahr . "Fiscal Year
*
*SELECTION-SCREEN: SKIP, BEGIN OF LINE, COMMENT (15) TEXT-001.
* parameters: p_all radiobutton group del default 'X'.
*
* selection-screen comment 25(9) for field p_all.
*
* parameters: p_sumtax radiobutton group del.
*
* selection-screen comment 45(12) for field p_sumtax.
*
* parameters: p_sumven radiobutton group del.
*
* selection-screen comment 65(14) for field p_sumven.
*
*
*selection-screen end of line.


INITIALIZATION.
s_repid = sy-repid.
s_save = 'A'.

PERFORM eventtab_build USING it_st_events[].
PERFORM variant_init.


START-OF-SELECTION.

*Extracting basic data.
PERFORM extract_data.


END-OF-SELECTION.


PERFORM data_validation.

PERFORM comment_build USING it_st_list_top_of_page[].

PERFORM FIELDCAT USING it_st_fieldcat[].

PERFORM layout_build USING st_layout.

PERFORM reuse_alv_list_display.


*---------------------------------------------------------------------*
* FORM extract_data_new *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM extract_data.


SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE ibkpf
WHERE bukrs in s_bukrs AND
budat IN s_date AND
blart IN s_blart AND
gjahr IN s_gjahr.


select * from bseg
into corresponding fields of table ibseg
for all entries in ibkpf
where bukrs = ibkpf-bukrs and
belnr = ibkpf-belnr and
gjahr = ibkpf-gjahr and
buzei = 001 and
lifnr in s_lifnr .


select * from bseg
into corresponding fields of table ibseg1
for all entries in ibseg
where bukrs = ibseg-bukrs and
belnr = ibseg-belnr and
gjahr = ibseg-gjahr and
buzei = 002 and
werks in s_werks.


select * from bseg
into corresponding fields of table ibseg2
for all entries in ibseg
where bukrs = ibseg-bukrs and
belnr = ibseg-belnr and
gjahr = ibseg-gjahr and
KOART NE 'K'.




sort ibseg by belnr.
sort ibseg1 by belnr.



loop at ibseg1.

READ TABLE IBKPF WITH KEY BELNR = IBSEG1-BELNR.
MOVE IBKPF-xblnr TO IBSEG1-xblnr.
MOVE IBKPF-BKTXT TO IBSEG1-bktxt.
MOVE IBKPF-WAERS TO IBSEG1-waers.
IF IBKPF-STGRD NE SPACE.
IBSEG1-STATUS = 'REVERSAL'.
ENDIF.
MOVE IBKPF-BUDAT TO IBSEG1-BUDAT.
MOVE IBKPF-BLDAT TO IBSEG1-BLDAT.

read table ibseg with key belnr = ibseg1-belnr.
move ibseg-lifnr to ibseg1-LIFNR.
move ibseg-wrbtr to ibseg1-wrbtr.
modify ibseg1.
endloop.
SORT IBSEG2 BY BELNR.

LOOP AT ibseg1.
CLEAR IBSEG1-MENGE.
LOOP AT IBSEG2 WHERE BELNR = IBSEG1-BELNR.
IF ibseg2-shkzg = 'H'.
ibseg1-totpr = ibseg1-totpr - ibseg2-DMBTR.
ELSEIF ibseg2-shkzg = 'S'.
ibseg1-totpr = ibseg1-totpr + ibseg2-DMBTR.
ENDIF.
IF IBSEG2-KTOSL EQ 'WIT'.
IBSEG1-TDS = IBSEG2-DMBTR.
ENDIF.
IF IBSEG2-KTOSL EQ 'WRX'.
IBSEG1-W_CHK = 'Y'.
ENDIF.
IF IBSEG2-KTOSL EQ 'FR1'.
IBSEG1-W_CHK1 = 'Y'.
ENDIF.
IF IBSEG2-KTOSL = 'WRX'.
IBSEG1-MENGE = IBSEG1-MENGE + IBSEG2-MENGE.
* ELSE.
* IBSEG1-MENGE = IBSEG1-MENGE.
ENDIF.
MODIFY IBSEG1.
ENDLOOP.
ENDLOOP.




SELECT * INTO TABLE IT_EKKO FROM EKKO
FOR ALL
ENTRIES IN IBSEG1
WHERE EBELN = IBSEG1-EBELN.

SELECT * INTO TABLE IT_EKPO FROM EKPO
FOR ALL
ENTRIES IN IT_EKKO
WHERE EBELN = IT_EKKO-EBELN.

SELECT * INTO TABLE IT_KONV FROM KONV
FOR ALL ENTRIES IN IT_EKKO
WHERE KNUMV = IT_EKKO-KNUMV.

LOOP AT ibseg1.

SELECT SINGLE * FROM ekko WHERE ebeln EQ ibseg1-ebeln.
CHECK sy-subrc EQ 0.

SELECT * FROM ekpo WHERE ebeln EQ ibseg1-ebeln AND
matnr = ibseg1-matnr AND ebelp EQ ibseg1-ebelp.

ENDSELECT.
READ TABLE IT_EKKO WITH KEY EBELN = IBSEG1-EBELN.
W_WKURS = IT_EKKO-WKURS.
PERFORM update_itab.

ENDLOOP.
ENDFORM.


*&---------------------------------------------------------------------*
*& Form DATA_VALIDATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM data_validation. CLEAR : itab. SORT itab BY werks matnr belnr. LOOP AT itab. CHECK itab-matnr IN s_matnr. * CHECK itab-emlif IN s_emlif. AT NEW werks. flag = 'Y'. ENDAT. IF flag = 'Y'. * SKIP. flag = 'N'. ENDIF. *To check if the material belong to 'ROH' type. * perform check_matnr. * check mara-mtart eq 'ROH'. *To check if input tax and to get taxcode desc. PERFORM tax_code_data. CHECK t007a-mwart EQ 'V'. *To get vendor address PERFORM get_vendor_data. PERFORM get_material_data. PERFORM modify_itab. PERFORM excise_data_calc. AT END OF werks. * PERFORM write_totals. NEW-PAGE WITH-HEADING. ENDAT. ENDLOOP. ENDFORM. " DATA_VALIDATION *&---------------------------------------------------------------------* *& Form CHECK_MATNR *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM check_matnr. SELECT SINGLE * FROM mara WHERE matnr EQ itab-matnr. CHECK sy-subrc EQ 0. ENDFORM. " CHECK_MATNR *&---------------------------------------------------------------------* *& Form GET_VENDOR_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM get_vendor_data. SELECT SINGLE * FROM lfa1 WHERE lifnr = itab-lifnr. CHECK sy-subrc EQ 0. MOVE lfa1-name1 TO itab-name1. MOVE lfa1-ort01 TO itab-ort01. select single * from lfb1 where lifnr = itab-lifnr. CHECK sy-subrc EQ 0. shift lfb1-akont left deleting leading '0'. MOVE lfb1-akont TO itab-akont1. ENDFORM. " GET_VENDOR_DATA *&---------------------------------------------------------------------* *& Form GET_MATERIAL_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM get_material_data. SELECT SINGLE * FROM makt WHERE matnr = itab-matnr AND spras = 'EN'. CHECK sy-subrc EQ 0. MOVE makt-maktx TO itab-maktx. * shift itab-matnr left deleting leading '0'. ENDFORM. " GET_MATERIAL_DATA *&---------------------------------------------------------------------* *& Form TAX_CODE_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM tax_code_data. SELECT SINGLE * FROM t007a WHERE mwskz EQ itab-mwskz. CHECK sy-subrc EQ 0. CHECK t007a-mwart EQ 'V'. SELECT SINGLE * FROM t007s WHERE spras = 'EN' AND kalsm = 'TAXINJ' AND mwskz = itab-mwskz. CHECK sy-subrc EQ 0. MOVE t007s-text1 TO itab-text1. ENDFORM. " TAX_CODE_DATA *&---------------------------------------------------------------------* *& Form EXCISE_DATA_CALC *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM excise_data_calc. *Fill fields of KOMK with data. PERFORM populate_komk. *Fill fields of KOMP with data. PERFORM populate_komp. *Call function PRICING to get TAX & Excise values PERFORM get_tax_data. *Writing the output PERFORM write_details. ENDFORM. " EXCISE_DATA_CALC *&---------------------------------------------------------------------* *& Form POPULATE_KOMK *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM populate_komk. refresh it_cal_tax. clear it_cal_tax. MOVE itab-bukrs TO IT_CAL_TAX-bukrs. "bseg move itab-waers to it_cal_tax-waers. MOVE itab-ebelp TO it_cal_tax-kposn. MOVE itab-lifnr TO IT_CAL_TAX-lifnr. "bseg MOVE itab-ekorg TO IT_CAL_TAX-ekorg. "ekko MOVE itab-mwskz TO IT_CAL_TAX-mwskz. "bseg MOVE itab-matnr TO IT_CAL_TAX-matnr. MOVE itab-werks TO IT_CAL_TAX-werks. MOVE itab-matkl TO IT_CAL_TAX-matkl. MOVE itab-meins TO IT_CAL_TAX-meins. move itab-menge to it_cal_tax-mglme. MOVE itab-mtart TO it_cal_tax-mtart. MOVE itab-landl TO IT_CAL_TAX-land1. "bseg MOVE itab-netwr TO it_cal_tax-wrbtr. move 'H' to it_cal_tax-shkzg. move itab-aedat to it_cal_tax-budat. move itab-aedat to it_cal_tax-bldat. MOVE itab-waers TO IT_CAL_TAX-hwaer. "bkpf it_cal_tax-XMWST = 'X'. move itab-ebeln to it_cal_tax-ebeln. move itab-ebelp to it_cal_tax-ebelp. append it_cal_tax. ENDFORM. " POPULATE_KOMK *&---------------------------------------------------------------------* *& Form POPULATE_KOMP *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM populate_komp. ENDFORM. " POPULATE_KOMP *&---------------------------------------------------------------------* *& Form MODIFY_ITAB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM modify_itab. MODIFY itab INDEX sy-tabix. ENDFORM. " MODIFY_ITAB *----------------* FORM update_itab. *----------------* select single knumv into itab-knumv from ekko where ebeln eq ibseg1-ebeln. READ TABLE IT_EKKO WITH KEY EBELN = IBSEG1-EBELN. move it_ekko-aedat to itab-aedat . READ TABLE IT_EKPO WITH KEY EBELN = IT_EKKO-EBELN Ebelp = ibseg1-ebelp. MOVE IT_EKKO-BSART TO ITAB-BSART. MOVE IBSEG1-KTOSL TO ITAB-KTOSL. MOVE iBSEG1-belnr TO itab-belnr. MOVE iBSEG1-bldat TO itab-bldat. MOVE iBSEG1-budat TO itab-budat. MOVE IBSEG1-TOTPR TO ITAB-BILL_AMT. IF IT_EKKO-BSART EQ 'ZI'. LOOP AT IT_KONV WHERE KNUMV = ITAB-KNUMV. IF ITAB-KTOSL NE 'FR1'. if IT_KONV-kschl = 'ZP00' or IT_konv-kschl = 'ZP01'. * itab-basic = ( IT_KONV-kWERT * W_WKURS ). * itab-basic_u = IT_KONV-kWERT. ITAB-BASIC = ( IT_KONV-KBETR * IBSEG1-MENGE ) * W_WKURS. itab-basic_u = ( IT_KONV-KBETR * IBSEG1-MENGE ). endif. IF ( IT_KONV-KSCHL = 'ZINS' ). itab-insurance = ( IT_KONV-KWERT * w_wkurs ). itab-insurance_u = IT_KONV-KWERT. ENDIF. IF ( IT_KONV-KSCHL = 'ZFA1' ) OR ( IT_KONV-KSCHL = 'ZFB1' ) OR ( IT_KONV-KSCHL = 'ZFC1' ). ITab-freight = ( IT_KONV-kWERT * W_WKURS ). ITab-freight_u = it_konv-kwert. ENDIF. if itab-ktosl EQ 'FR3'. IF ( IT_KONV-KSCHL = 'ZASV' ). ITAB-ASV = ( IT_KONV-kWERT * W_WKURS ). ITab-ASV_u = IT_KONV-kWERT. ENDIF. IF ( IT_KONV-KSCHL = 'JCDB' ). ITAB-BCD = ( IT_KONV-kWERT * W_WKURS ). ITab-bcd_u = IT_KONV-kWERT. ENDIF. IF ( IT_KONV-KSCHL = 'JCV1' ). ITAB-CVD = ( IT_KONV-kWERT * W_WKURS ). ITab-cvd_u = IT_KONV-kWERT. ENDIF. IF ( IT_KONV-KSCHL = 'JECV' ). ITAB-ESSCVD = ( IT_KONV-kWERT * W_WKURS ). ITab-ESSCVD_u = IT_KONV-kWERT. ENDIF. IF ( IT_KONV-KSCHL = 'JEDB' ). ITAB-ESSBCD = ( IT_KONV-kWERT * W_WKURS ). ITAB-ESSBCD_u = IT_KONV-kWERT. ENDIF. IF ( IT_KONV-KSCHL = 'JCDS' ). ITAB-SCD = ( IT_KONV-kWERT * W_WKURS ). ITAB-SCD_u = IT_KONV-kWERT. ENDIF. endif. *IF ( IT_KONV-KSCHL = 'ZICR' ) OR ( IT_KONV-KSCHL = 'ZSTD' ) OR ( *IT_KONV-KSCHL = 'ZADM' ) OR ( IT_KONV-KSCHL = 'ZDOR' ) OR *( IT_KONV-KSCHL = 'ZBAR' ) OR ( IT_KONV-KSCHL = 'ZBKR' ) OR ( *IT_KONV-KSCHL = 'ZOCM' ) OR ( IT_KONV-KSCHL = 'ZTRN' ) OR *( IT_KONV-KSCHL = 'ZBPT' ) OR ( IT_KONV-KSCHL = 'ZCLR' ) OR ( *IT_KONV-KSCHL = 'ZBEC' ) OR ( IT_KONV-KSCHL = 'ZDEM' ) OR *( IT_KONV-KSCHL = 'ZHAN' ) OR ( IT_KONV-KSCHL = 'ZBRC' ) OR ( *IT_KONV-KSCHL = 'ZMIS' ) OR ( IT_KONV-KSCHL = 'ZLCC' ) OR *( IT_KONV-KSCHL = 'ZCRN' ) OR ( IT_KONV-KSCHL = 'ZFLC' ) OR ( *IT_KONV-KSCHL = 'ZTHC' ) OR ( IT_KONV-KSCHL = 'ZDOC' ) OR * ( IT_KONV-KSCHL = 'ZDTN' ). * * ITAB-OTHER1 = ITAB-OTHER1 + ( IT_KONV-kWERT * W_WKURS ). * ITAB-OTHER1_u = ITAB-OTHER1_u + IT_KONV-kWERT. * ENDIF. ENDIF. ENDLOOP. IF ITAB-KTOSL = 'FR3' . ITAB-OTHER1 = ( ITAB-BILL_AMT ) - ( ITAB-BCD + ITAB-CVD + ITAB-ESSBCD + ITAB-ESSCVD + ITAB-SCD ). ENDIF. IF ITAB-KTOSL NE 'FR3'. "= 'WRX' OR ITAB-KTOSL = 'UPF' OR ITAB-KTOSL = 'FR1'. ITAB-OTHER1 = ITAB-BILL_AMT - ITAB-BASIC. ENDIF. * IF ITAB-KTOSL = 'FR1'. * ITAB-OTHER1 = ITAB-BILL_AMT . * ENDIF. ENDIF. concatenate itab-bldat+6(2) '-' itab-bldat+4(2) '-' itab-bldat(4) into itab-date. concatenate itab-budat+6(2) '-' itab-budat+4(2) '-' itab-budat(4) into itab-date1. * shift ekko-lifnr left deleting leading '0'. move itab-date1 to itab-date1. move itab-date to itab-date. MOVE IBSEG1-LIFNR TO itab-lifnr. MOVE IBSEG1-LIFNR TO itab-VENDOR. shift itab-VENDOR left deleting leading '0'. * MOVE ekko-lifnr TO itab-vendor. MOVE iBSEG1-xblnr TO itab-xblnr. MOVE iBSEG1-bktxt TO itab-bktxt. MOVE IBSEG1-bukrs TO itab-bukrs. MOVE IBSEG1-ebeln TO itab-ebeln. MOVE IBSEG1-ebelp TO itab-ebelp. MOVE IBSEG1-werks TO itab-werks. select single name1 into ITAB-NAME2 from t001w where werks = ITAB-WERKS. * MOVE ekpo-matnr TO itab-matnr. MOVE IBSEG1-matnr TO itab-matnr. MOVE IT_ekpo-matnr TO itab-matnr1. shift itab-matnr1 left deleting leading '0'. MOVE ibseg1-menge TO itab-menge. IF ITAB-BSART NE 'ZI'. ITAB-TYPE = 'DOM'. itab-netwr = ibseg1-menge * IT_ekpo-netpr / IT_ekpo-peinh * IT_ekpo-bpumz / IT_ekpo-bpumn. ELSE. ITAB-TYPE = 'IMP'. ENDIF. MOVE IT_ekpo-mwskz TO itab-mwskz. MOVE IT_ekko-lands TO itab-landl. MOVE IT_ekko-ekorg TO itab-ekorg. MOVE iBSEG1-waers TO itab-waers. MOVE IT_ekpo-matkl TO itab-matkl. MOVE IT_ekpo-meins TO itab-meins. MOVE IT_ekpo-mtart TO itab-mtart. MOVE IT_ekpo-txjcd TO itab-txjcd. MOVE IT_ekpo-emlif TO itab-emlif. MOVE ibseg1-lifnr TO itab-lifnr. * MOVE ibseg1-totpr TO itab-totpr. MOVE ibseg1-other_costs TO itab-other_costs. MOVE ibseg1-dmbtr TO itab-dmbtr. move ibseg1-meins to itab-meins1. MOVE ibseg1-W_CHK to itab-W_CHK. MOVE ibseg1-W_CHK1 to itab-W_CHK1. move ibseg1-status to itab-status. MOVE IBSEG1-TDS TO ITAB-TDS. APPEND itab. CLEAR itab. ENDFORM. " UPDATE_ITAB *----------------* *&---------------------------------------------------------------------* *& Form GET_TAX_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM get_tax_data. refresh wa_konv. clear wa_konv. refresh tkomv. clear tkomv. READ TABLE IT_CAL_TAX INTO WA_KONV INDEX 1. append wa_konv. IF ITAB-W_CHK = 'Y' AND ITAB-W_CHK1 = 'Y'. if itab-mwskz ne 'V0'. if it_cal_tax-mwskz ne space. CLEAR IT_CAL_TAX. CALL FUNCTION 'CALCULATE_TAX_ITEM' EXPORTING I_TAXCOM = WA_KONV TABLES T_XKOMV = tkomv. IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.
endif.
ELSEIF ITAB-W_CHK = 'Y'.
if itab-mwskz ne 'V0'.
if it_cal_tax-mwskz ne space.
CLEAR IT_CAL_TAX.
CALL FUNCTION 'CALCULATE_TAX_ITEM'
EXPORTING
I_TAXCOM = WA_KONV
TABLES
T_XKOMV = tkomv.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.
endif.

ENDIF.
CHECK sy-subrc EQ 0.

ENDFORM. " GET_TAX_DATA

*&---------------------------------------------------------------------*
*& Form WRITE_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM write_details. DATA : v_interim LIKE bseg-dmbtr. DATA INT TYPE I. IF ITAB-BSART NE 'ZI'. LOOP AT tkomv WHERE KPOSN = ITAB-EBELP. NEW-LINE. FORMAT COLOR COL_NORMAL. INT = SY-TABIX MOD 2. IF INT IS INITIAL. FORMAT INTENSIFIED OFF. ELSE. FORMAT INTENSIFIED ON. ENDIF. IF tkomv-kschl EQ 'BASB'. excise_ass_amt = tkomv-kwert. ENDIF. IF tkomv-kschl EQ 'JMO1'. excise_amt = excise_amt + tkomv-kwert. ENDIF. IF tkomv-kschl EQ 'JMO2'. excise_amt = excise_amt + tkomv-kwert. ENDIF. IF tkomv-kschl EQ 'JIP1' or tkomv-kschl EQ 'ZRST'. sales_tax_amt = sales_tax_amt + tkomv-kwert. ENDIF. * IF tkomv-kschl EQ 'JIP2'. * sales_tax_amt = sales_tax_amt + tkomv-kwert. * ENDIF. IF tkomv-kschl EQ 'JEC1'. Ecess = sales_tax_amt + tkomv-kwert. ENDIF. if tkomv-kschl eq 'JSRT'. SERV_TAX = SERV_TAX + tkomv-kwert. ENDIF. if tkomv-kschl eq 'JEC3'. ECESS_TAX = ECESS_TAX + tkomv-kwert. ENDIF. if tkomv-kschl EQ 'JIP6' or tkomv-kschl EQ 'JIP8'. W_VAT = W_VAT + tkomv-kwert. ENDIF. if tkomv-kschl EQ 'ZWCT'. W_ZWCT = W_ZWCT + tkomv-kwert. ENDIF. if tkomv-kschl EQ 'JIP2'. W_JIP2 = W_JIP2 + tkomv-kwert. ENDIF. if tkomv-kschl EQ 'ZSUR'. W_ZSUR = W_ZSUR + tkomv-kwert. ENDIF. if tkomv-kschl EQ 'ZTOT'. W_ZTOT = W_ZTOT + tkomv-kwert. ENDIF. ENDLOOP. ENDIF. st_base_amt = excise_ass_amt + excise_amt. bill_amt = excise_ass_amt + excise_amt + sales_tax_amt + ecess. * v_interim = ( itab-totpr + itab-other_costs ) . MOVE : v_interim TO netwr, "Total of the transaction itab-menge TO menge, st_base_amt TO base_amt, sales_tax_amt TO tax_amt, excise_ass_amt TO ass_amt, excise_amt TO excise, ecess to ecess. CONDENSE : itab-matnr, netwr, menge, base_amt, tax_amt, ass_amt, excise NO-GAPS. * v_interim = itab-totpr - itab-dmbtr. clear lfa_name1. select single name1 from lfa1 into (lfa_name1 ) where lifnr = itab-emlif. * tot_bill_amt = tot_bill_amt + ( itab-totpr + itab-other_costs ). tot_menge = tot_menge + itab-menge. tot_base_amt = tot_base_amt + st_base_amt. tot_sales_tax = tot_sales_tax + sales_tax_amt. tot_excise_ass = tot_excise_ass + excise_ass_amt. tot_excise = tot_excise + excise_amt. tot_ecess = tot_ecess + ecess. *-------- * final_bill_amt = final_bill_amt + ( itab-totpr + itab-other_costs ). final_menge = final_menge + itab-menge. final_base_amt = final_base_amt + st_base_amt + tot_ecess. final_sales_tax = final_sales_tax + sales_tax_amt. final_excise_ass = final_excise_ass + excise_ass_amt. final_excise = final_excise + excise_amt. * MOVE FINAL_BILL_AMT TO ITAB-FBILL. * MOVE FINAL_MENGE TO ITAB-MENGE. MOVE FINAL_BASE_AMT TO ITAB-FBASE_AMT. MOVE FINAL_SALES_TAX TO ITAB-FSALES_TAX. MOVE FINAL_EXCISE_ASS TO ITAB-FEXC_ASS. MOVE FINAL_EXCISE TO ITAB-FEXC. move v_interim to itab-other. MOVE SERV_TAX TO ITAB-SERV_TAX. MOVE ECESS_TAX TO ITAB-ECESS_TAX. MOVE W_VAT TO ITAB-VAT. move W_ZWCT to itab-zwct. move W_JIP2 to itab-JIP2. move W_ZSUR to itab-zsur. move w_ZTOT to itab-ztot. * bill_amt1 = FINAL_BASE_AMT + FINAL_SALES_TAX + v_interim. * MOVE BILL_AMT1 TO ITAB-BILL_AMT. * MOVE IBSEG1-TOTPR TO ITAB-BILL_AMT. move tot_ecess to itab-ecess1. IF ITAB-BSART NE 'ZI'. W_BAMT = ABS( ITAB-BILL_AMT ). ITAB-OTHER = ( W_BAMT + ITAB-TDS ) - ( ITAB-NETWR + ITAB-FEXC + ITAB-ECESS1 + ITAB-FSALES_TAX + ITAB-SERV_TAX + ITAB-ECESS_TAX + ITAB-VAT + ITAB-JIP2 + ITAB-ZWCT + ITAB-ZSUR + ITAB-ZTOT ). ENDIF. MODIFY ITAB TRANSPORTING FBILL MENGE FBASE_AMT FSALES_TAX FEXC_ASS FEXC BILL_AMT OTHER ecess1 SERV_TAX ECESS_TAX VAT JIP2 ZWCT ZSUR ZTOT. CLEAR ECESS. CLEAR BILL_AMT1. CLEAR FINAL_BILL_AMT. CLEAR FINAL_MENGE. CLEAR FINAL_BASE_AMT. CLEAR FINAL_SALES_TAX. CLEAR FINAL_EXCISE_ASS. CLEAR FINAL_EXCISE. CLEAR V_INTERIM. clear tot_ecess. CLEAR W_VAT. CLEAR SERV_TAX. CLEAR ECESS_TAX. CLEAR W_BAMT. CLEAR W_ZWCT. CLEAR W_JIP2. CLEAR W_ZSUR. CLEAR W_ZTOT. CLEAR : itab, tkomv, st_base_amt, sales_tax_amt, excise_ass_amt, excise_amt. CLEAR : base_amt, tax_amt, ass_amt, excise, netwr, menge. REFRESH KOMK. CLEAR KOMK. REFRESH KOMP. CLEAR KOMP. REFRESH TKOMV. CLEAR TKOMV. ENDFORM. " WRITE_DETAILS *&---------------------------------------------------------------------* *& Form COMMENT_BUILD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM comment_build USING p_it_st_list_top_of_page TYPE slis_t_listheader. DATA: ls_line TYPE slis_listheader. DATA: mix_date(130) type c, mix(130) type c, mix_ekorg(40) type c, mixekorg(40) type c, mix_werks(40) type c, mixwerks(40) type c, mix_ebeln(40) type c, mixebeln(40) type c, mix_aedat(40) type c, mixaedat(40) type c, mix_ekgrp(40) type c, mixekgrp(40) type c, mixbsart(40) type c, mix_bsart(40) type c, mixmatkl(40) type c, mix_matkl(40) type c, mixmatnr(40) type c, mix_matnr(40) type c, temp(40) type c. data : w_date_t(10) type c, w_date_f(10) type c, w_tdate(100) type c. REFRESH p_it_st_list_top_of_page. CLEAR ls_line. ls_line-typ = 'H'. ls_line-info = 'Details of Purchase Day Book'. APPEND ls_line TO p_it_st_list_top_of_page. *----- Display Company Code concatenate s_bukrs-low ' - ' s_bukrs-high into mix_ekorg SEPARATED BY SPACE. concatenate 'Company Code :' ' ' mix_ekorg into mixekorg SEPARATED BY SPACE . ls_line-typ = 'S'. ls_line-info = mixekorg. APPEND ls_line TO p_it_st_list_top_of_page. *----- Display Vendor concatenate s_lifnr-low ' - ' s_lifnr-high into mix_date SEPARATED BY SPACE. concatenate 'Vendor :' ' ' mix_date into mix SEPARATED BY SPACE. ls_line-typ = 'S'. ls_line-info = mix. APPEND ls_line TO p_it_st_list_top_of_page. *----- Display Plant concatenate s_werks-low ' - ' s_werks-high into mix_werks SEPARATED BY SPACE. concatenate 'Plant :' ' ' mix_werks into mixwerks SEPARATED BY SPACE . ls_line-typ = 'S'. ls_line-info = mixwerks. APPEND ls_line TO p_it_st_list_top_of_page. *----- Display Material concatenate s_matnr-low ' - ' s_matnr-high into mix_matnr SEPARATED BY SPACE. concatenate 'Material :' ' ' mix_matkl into mixmatnr SEPARATED BY SPACE. ls_line-typ = 'S'. ls_line-info = mixmatnr. APPEND ls_line TO p_it_st_list_top_of_page. *----- Display Document No. concatenate s_blart-low ' - ' s_blart-high into mix_ebeln SEPARATED BY SPACE. concatenate 'Doc. Type :' ' ' mix_ebeln into mixebeln SEPARATED BY SPACE . ls_line-typ = 'S'. ls_line-info = mixebeln. APPEND ls_line TO p_it_st_list_top_of_page. if s_date-low ne SPACE and s_date-low gt 0. concatenate S_date-LOW+6(2) '-' S_date-LOW+4(2) '-' S_DATe-LOW(4) into w_date_f. concatenate S_DATe-high+6(2) '-' S_DATe-high+4(2) '-' S_DATe-high(4) into w_date_t. concatenate 'Doc Date :' ' ' w_date_f '-' w_date_t into w_tdate SEPARATED BY SPACE. ls_line-typ = 'S'. ls_line-info = w_tdate. APPEND ls_line TO p_it_st_list_top_of_page. endif. clear mix_date. clear mix. endform. *&--------------------------------------------------------------------* *& Form TOP_OF_PAGE-ALV *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM top_of_page-alv. * CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = it_st_list_top_of_page. ENDFORM. "TOP_OF_PAGE-ALV *FORM specialcol_alv USING p_slis_t_specialcol_alv TYPE *slis_t_specialcol_alv. * CLEAR IT_slis_t_specialcol_alv. * IT_slis_t_specialcol_alv-fieldname = 'BASIC'. * IT_slis_t_specialcol_alv-color = 1. * IT_slis_t_specialcol_alv-nokeycol = '1'. * APPEND IT_slis_t_specialcol_alv TO P_slis_specialcol_alv. *ENDFORM. FORM fieldcat USING p_it_st_fieldcat TYPE slis_t_fieldcat_alv. DATA: ls_fieldcat TYPE slis_fieldcat_alv. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'WERKS'. ls_fieldcat-rollname = 'WERKS'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'Plant Code'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'NAME2'. * ls_fieldcat-rollname = 'NAME1' ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Plant Name'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'STATUS'. * ls_fieldcat-rollname = 'BELNR'. ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Reversal'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'TYPE'. * ls_fieldcat-rollname = 'BELNR'. ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Purch Doc Type'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BELNR'. ls_fieldcat-rollname = 'BELNR'. ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Doc No'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BUDAT'. ls_fieldcat-rollname = 'BUDAT'. ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Doc Date.'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'AKONT1'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'Party G/L Recon'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'VENDOR'. ls_fieldcat-outputlen = 6. ls_fieldcat-seltext_m = 'Party Code'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'NAME1'. ls_fieldcat-outputlen = 15. ls_fieldcat-seltext_m = 'Party Name'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'EBELN'. ls_fieldcat-outputlen = 15. ls_fieldcat-seltext_m = 'PO'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'XBLNR'. ls_fieldcat-outputlen = 15. ls_fieldcat-seltext_m = 'Bill No'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BLDAT'. ls_fieldcat-outputlen = 10. ls_fieldcat-seltext_m = 'Bill Date'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'MATNR1'. ls_fieldcat-outputlen = 6. ls_fieldcat-seltext_m = 'Item Code'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'MAKTX'. ls_fieldcat-outputlen = 15. ls_fieldcat-seltext_m = 'Item Desc'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * ls_fieldcat-EMPHASIZE = ''. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'MENGE'. ls_fieldcat-rollname = 'MENGE'. ls_fieldcat-seltext_m = 'Quantity'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-outputlen = 10. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'MEINS1'. * ls_fieldcat-rollname = 'MENGE'. ls_fieldcat-seltext_m = 'Unit'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-outputlen = 3. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'MWSKZ'. ls_fieldcat-outputlen = 2. ls_fieldcat-seltext_m = 'Tax Code'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-datatype = 'CHAR'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'TEXT1'. ls_fieldcat-outputlen = 15. ls_fieldcat-seltext_m = 'Sales Tax Desc'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'NETWR'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'Dom Basic Value'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'FEXC'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'Excise Duty'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ECESS1'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'Ecess Excise'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'FBASE_AMT'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'Sales Tax Base Amt'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'FSALES_TAX'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'CST'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'JIP2'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'LST'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ZSUR'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'SURC'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ZTOT'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'TOT'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ZWCT'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'WCT'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'VAT'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'VAT'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'SERV_TAX'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'Service Tax'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ECESS_TAX'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'Ecess Service Tax'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'TDS'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'TDS (incl Sur & Ecess)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'OTHER'. ls_fieldcat-outputlen = 5. ls_fieldcat-seltext_m = 'Dom-Other'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. *CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'FBILL'. * ls_fieldcat-outputlen = 15. * ls_fieldcat-seltext_m = 'Dom Non Modvat AMT'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BILL_AMT'. ls_fieldcat-outputlen = 16. ls_fieldcat-seltext_m = 'Total Bill Amt'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'EMLIF'. * ls_fieldcat-outputlen = 10. * ls_fieldcat-seltext_m = 'Receiving Vendor'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BASIC'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Imp-Basic Price(INR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BASIC_U'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Imp-Basic Price(FOR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'INSURANCE'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Insurance(INR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'INSURANCE_U'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Insurance(FOR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'FREIGHT'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Freight(INR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'FREIGHT_U'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Freight(FOR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ASV'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Imp-AV(INR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ASV_U'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Imp-AV(FOR)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'BCD'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Basic Custom Duty(BCD)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'BCD_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-BSD (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'CVD'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Counterveiling Duty(CVD)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'CVD_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-CVD (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ESSBCD'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'ECess BCD'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'ESSBCD_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-CESS ON BCD (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ESSCVD'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'ECess CVD'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'ESSCVD_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-CESS ON CVD (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'SCD'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Special Customs Duty(SCD)'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'SCD_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-SCD (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'OTHER1'. ls_fieldcat-outputlen = 20. ls_fieldcat-seltext_m = 'Imp-Other Costs'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'WAERS'. ls_fieldcat-outputlen = 13. ls_fieldcat-seltext_m = 'Imp-Currency'. * ls_fieldcat-ddictxt = 'L'. ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO p_it_st_fieldcat. * CLEAR ls_fieldcat. * ls_fieldcat-fieldname = 'OTHER1_U'. * ls_fieldcat-outputlen = 20. * ls_fieldcat-seltext_m = 'Imp-OTHER (FOREIGN CURR)'. * ls_fieldcat-ddictxt = 'L'. * ls_fieldcat-key = 'X'. * APPEND ls_fieldcat TO p_it_st_fieldcat. * endform. "fieldcat *&---------------------------------------------------------------------* *& Form LAYOUT_BUILD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_ST_LAYOUT text
*----------------------------------------------------------------------*
FORM layout_build USING p_st_layout TYPE slis_layout_alv.

p_st_layout-box_fieldname = 'SELK'. " Checkbox
p_st_layout-get_selinfos = 'X'.
p_st_layout-f2code = 'PICK' . " Doppelklickfunktion
p_st_layout-confirmation_prompt = 'X'. "Sicherheitsabfrage
p_st_layout-key_hotspot = 'X'. "Schlüssel als Hotspot
p_st_layout-info_fieldname = 'COL'. "Zeilenfarbe

ENDFORM. " LAYOUT_BUILD


*&---------------------------------------------------------------------*
*& Form REUSE_ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*

form reuse_alv_list_display.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = S_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = it_st_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS = IT_slis_t_specialcol_alv[]
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT =
IT_EVENTS = IT_ST_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

endform.

*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_ST_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING p_st_events TYPE slis_t_event .

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_st_events.

READ TABLE p_st_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE st_formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_st_events.
ENDIF.

* READ TABLE p_st_events WITH KEY name = slis_ev_user_command
* INTO ls_event.
* IF sy-subrc = 0.
* MOVE s_user_command TO ls_event-form.
* APPEND ls_event TO p_st_events.
* ENDIF.
*

***READ TABLE p_st_events WITH KEY name = slis_ev_pf_status_set
*** INTO ls_event.
****
***
***IF sy-subrc = 0.
*** MOVE s_status TO ls_event-form.
*** APPEND ls_event TO p_st_events.
*** ENDIF.
endform.


*&---------------------------------------------------------------------*
*& Form VARIANT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM variant_init . CLEAR s_variant. s_variant-report = s_repid. s_variant-handle = code. ENDFORM. " VARIANT_INIT

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)