Go on link..

link us with ...

Thursday, December 30, 2010

Program for Payment Tracking

*&---------------------------------------------------------------------*
*& Report ZVVF_MR034_PAYTRACK *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

*---------------------------------------------------------------------*
* Report ZVVF_CR001_PRTOSTOSLIP
*
*---------------------------------------------------------------------*
* *
* MODULE : Material Management *
* *
*---------------------------------------------------------------------*
* Objective : Program for Payment Tracking *
*
*
* *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* Date Created : *
* Author :
*
* Location : *
* LDB : *
* *
*---------------------------------------------------------------------*


REPORT ZVVF_MR034_PAYTRACK .

*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*

TYPE-POOLS :
SLIS.

*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES :
EKKO,
EBAN,
SSCRFIELDS,
EKPO.


*----------------------------------------------------------------------
* Types
*----------------------------------------------------------------------*

TYPES : BEGIN OF TY_OUTTAB1,
BANFN TYPE EKPO-BANFN, "Purchase Requisition Number
BEDAT1 TYPE EBAN-BEDAT, "PR Date
MENGE2 TYPE EBAN-MENGE, "PR Quantity
ANFNR TYPE EKPO-ANFNR, "RFQ Related To the PR
EBELN TYPE EKPO-EBELN, "Purchase order No related to the PR.
BEDAT TYPE EKKO-BEDAT, "PO Date
EKGRP TYPE EKKO-EKGRP, "Purch. Group
BSART TYPE EKKO-BSART, "Purchasing document type
EBELP TYPE EKPO-EBELP,
LIFNR TYPE EKKO-LIFNR, "Vendor No
PINCR TYPE EKKO-PINCR, "Item Number
MENGE1 TYPE EKPO-MENGE, "PO Quantity
EFFWR TYPE EKPO-EFFWR, "PO Value
MEINS TYPE EKPO-MEINS, "UOM
WAERS TYPE EKKO-WAERS, "PO Currency
MATNR TYPE MSEG-MATNR, "Material Number
MAKTX TYPE MAKT-MAKTX, "Material Description
VBELN TYPE EKES-VBELN, "Inbound delivery Number
BWART TYPE MSEG-BWART, "Movement Type
MBLNR TYPE MSEG-MBLNR, "Material document No (related to the PO)
BSTMG TYPE MSEG-BSTMG, "GR qty
WRBTR TYPE BSEG-WRBTR, "GR Value
LOEKZ TYPE EKPO-LOEKZ, "Delivery Completed Indicator
WAERS1 TYPE EKBE-WAERS, "Currency
EXNUM TYPE J_1IGRXREF-EXNUM, "Excise Invoice Number
DOCNO TYPE J_1IEXCHDR-DOCNO,
EXGRP TYPE J_1IPART2-EXGRP,
RG23ASER TYPE J_1IPART2,
FAWREF TYPE J_1IPART2-FAWREF, "Part 2 Acc. Doc No
RDOC1 TYPE J_1IGRXREF-RDOC1, "Part 2 Acc. Doc No
MENGE3 TYPE BSEG-MENGE,
TOT TYPE J_1IEXCDTL-ECS,
BELNR TYPE RBKP-BELNR, "Invoice No
BLDAT TYPE RBKP-BLDAT, "Invoice Date
MENGE TYPE RSEG-MENGE, " Invoice Quantity
BELNR1 TYPE BKPF-BELNR,
DMBTR TYPE BSEG-DMBTR, "Invoice Value
AUGBL TYPE BSEG-AUGBL,
RWBTR TYPE PAYR-RWBTR, "Payment Amount
CHECT TYPE PAYR-CHECT, "Check Number
ZALDT TYPE PAYR-ZALDT, "Check Date
HBKID TYPE PAYR-HBKID, "House Bank ID
AWKEY TYPE BKPF-AWKEY,
W_BSTMG TYPE MSEG-BSTMG,
W_DMBTR TYPE MSEG-DMBTR,
W_MENGE TYPE RSEG-MENGE,
W_RMWWR TYPE RBKP-RMWWR,
W_LOEKZ(10) TYPE C,
END OF TY_OUTTAB1.

*----------------------------------------------------------------------
* Constants
*----------------------------------------------------------------------*

CONSTANTS : C_CON1(25) TYPE C VALUE 'Payment Tracking',
C_CON2(4) TYPE C VALUE 'From',
C_CON3(2) TYPE C VALUE 'To',
C_CON5(3) TYPE C VALUE 'For',
C_CON4(3) TYPE C VALUE 'BSX'.


*----------------------------------------------------------------------
* Data Begin with W_
*----------------------------------------------------------------------*

*Data declaration For ALV
DATA :
W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_VARIANT TYPE DISVARIANT,
W_BSTMG1 TYPE MSEG-BSTMG,
W_DMBTR1 TYPE MSEG-DMBTR,
W_MENGE1 TYPE MSEG-BSTMG,
W_RMWWR1 TYPE MSEG-DMBTR,
W_REPID LIKE SY-REPID.


DATA : W_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .



*Data declaration For work area
DATA :
WA_BSEG TYPE BSEG,
WA_RSEG TYPE TY_OUTTAB1,
WA_PAYR TYPE PAYR,
WA_BKPF TYPE BKPF.



*----------------------------------------------------------------------
* Internal Tables Begin With IT_
*----------------------------------------------------------------------*

DATA :
IT_EBAN TYPE STANDARD TABLE OF EBAN WITH HEADER LINE,
IT_MAKT TYPE STANDARD TABLE OF MAKT WITH HEADER LINE,
IT_MSEG TYPE STANDARD TABLE OF MSEG WITH HEADER LINE,
IT_MSEG2 TYPE STANDARD TABLE OF MSEG WITH HEADER LINE,
IT_MSEG3 TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_MSEG1 TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_EKPO TYPE STANDARD TABLE OF EKPO WITH HEADER LINE,
IT_BSEG TYPE STANDARD TABLE OF BSEG WITH HEADER LINE,
IT_RSEG TYPE STANDARD TABLE OF RSEG WITH HEADER LINE,
IT_RBKP TYPE STANDARD TABLE OF RBKP WITH HEADER LINE,
IT_J_1IGRXREF TYPE J_1IGRXREF OCCURS 0 WITH HEADER LINE,
IT_J_1IEXCDTL TYPE J_1IEXCDTL OCCURS 0 WITH HEADER LINE,
IT_BKPF TYPE STANDARD TABLE OF BKPF WITH HEADER LINE,
IT_BSEG1 TYPE STANDARD TABLE OF BSEG WITH HEADER LINE,
IT_OUTTAB1 TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_OUTTAB TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_PAY1 TYPE BKPF OCCURS 0 WITH HEADER LINE,
IT_PAY2 TYPE BSEG OCCURS 0 WITH HEADER LINE,
IT_J_1IPART2 TYPE STANDARD TABLE OF J_1IPART2 WITH HEADER LINE,
IT_PAY3 TYPE PAYR OCCURS 0 WITH HEADER LINE,
IT_EKES TYPE EKES OCCURS 0 WITH HEADER LINE,
IT_TAB1 TYPE RSEG OCCURS 0 WITH HEADER LINE,

IT_INV1 TYPE BSEG OCCURS 0 WITH HEADER LINE.

*----------------------------------------------------------------------*
* Select-Screen
*----------------------------------------------------------------------*

SELECTION-SCREEN : BEGIN OF BLOCK BLK WITH FRAME TITLE text-001.
SELECT-OPTIONS :
SO_LIFNR FOR EKKO-LIFNR,
SO_EKORG FOR EKKO-EKORG OBLIGATORY,
SO_WERKS FOR EKPO-WERKS OBLIGATORY,
SO_EBELN FOR EKKO-EBELN,
SO_BEDAT FOR EKKO-BEDAT OBLIGATORY,
SO_BSART FOR EKKO-BSART,
SO_EKGRP FOR EKKO-EKGRP,
SO_MATKL FOR EKPO-MATKL.
SELECTION-SCREEN : END OF BLOCK BLK.

*SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME.
*PARAMETERS :
*PA_PO1 RADIOBUTTON GROUP RAD2 DEFAULT 'X',
*PA_PO2 RADIOBUTTON GROUP RAD2,
*PA_PO3 RADIOBUTTON GROUP RAD2.
*SELECTION-SCREEN : END OF BLOCK blk1.

SELECTION-SCREEN : BEGIN OF BLOCK BLK1 WITH FRAME TITLE text-002.
PARAMETERS :
PA_LIST4 AS CHECKBOX default 'X' MODIF ID SC1.
SELECTION-SCREEN : END OF BLOCK BLK1.


SELECTION-SCREEN : BEGIN OF BLOCK BLK2 WITH FRAME TITLE text-003.
PARAMETERS :
PA_LIST1 RADIOBUTTON GROUP RAD1 DEFAULT 'X' MODIF ID SC1,
PA_LIST2 RADIOBUTTON GROUP RAD1 MODIF ID SC1.
*PA_LIST3 RADIOBUTTON GROUP RAD1.
*PA_LIST4 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN : END OF BLOCK BLK2.



*----------------------------------------------------------------------*
* Initialization
*----------------------------------------------------------------------*

INITIALIZATION.
W_REPID = SY-REPID.
REFRESH: IT_OUTTAB1,
IT_MSEG,IT_BSEG,IT_RSEG,IT_RBKP,
IT_EKPO,IT_EBAN.

CLEAR : IT_OUTTAB1,
IT_MSEG,IT_BSEG,IT_RSEG,IT_RBKP,
IT_EKPO,IT_EBAN,
WA_BSEG,WA_PAYR,
WA_BKPF.


PERFORM EVENTTAB_BUILD_TEMP USING W_EVENTS[].



*----------------------------------------------------------------------*
* At selection-screen
*----------------------------------------------------------------------*

AT SELECTION-SCREEN.
PERFORM VALIDATE_DATA.
* LOOP AT SCREEN.
* IF SCREEN-GROUP1 = 'SC1'.
** IF SCREEN-NAME = PA_LIST4.
* IF PA_LIST4 = 'X'.
* PA_LIST1 = SPACE.
* MODIFY SCREEN.
* ENDIF.
** ENDIF.
* ENDIF.
* ENDLOOP.


*----------------------------------------------------------------------*
* At selection-screen
*----------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

*----------------------------------------------------------------------*
* Start-of-selection
*----------------------------------------------------------------------*

START-OF-SELECTION.

PERFORM DATA_FETCHING.

*DEPENDING ON THE RADIO-BUTTON THE USER WILL SEE THE COLUMNS

*FOR DISPLAYING THE ALL THE COLUMNS OF THE PAYMENT TRACKING REPORT
IF PA_LIST4 = 'X'.
PERFORM FIELDCAT_INIT .
ENDIF.


*List of Purchase Orders for which GR's have not been made.
if pa_list4 <> 'X'.
IF PA_LIST1 = 'X'.
PERFORM FIELDCAT_LIST1.
ENDIF.

*List of Purchase orders where GR's have been made but invoices have not
*been posted.
IF PA_LIST2 = 'X' AND IT_RSEG-BELNR = ' '.
PERFORM FIELDCAT_LIST2.
ENDIF.

*List of PO's where GR's and IV's have been posted but are pending for
*Payment.
* IF PA_LIST3 = 'X' AND WA_BSEG-AUGBL = ' '.
* PERFORM FIELDCAT_LIST3.
* ENDIF.
endif.


PERFORM DISPLAY_DATA USING W_LIST_TOP_OF_PAGE[].
PERFORM F007_ALV_SORT.

*----------------------------------------------------------------------*
* End-of-selection
*----------------------------------------------------------------------*

END-OF-SELECTION.

PERFORM DISPLAY_LIST.



*&---------------------------------------------------------------------*
*& Form validate_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM VALIDATE_DATA .

SELECT EP~EBELN EP~EBELP EP~ANFNR EP~MATNR EP~BANFN EP~LOEKZ
EP~MEINS
EK~BSART EK~BEDAT EK~LIFNR EK~PINCR EK~WAERS EK~EKGRP
INTO CORRESPONDING FIELDS OF TABLE IT_OUTTAB1
FROM EKPO AS EP INNER JOIN EKKO AS EK
ON EP~EBELN = EK~EBELN
WHERE EP~EBELN IN SO_EBELN
AND BSART IN SO_BSART
AND LIFNR IN SO_LIFNR
AND EKORG IN SO_EKORG
AND EKGRP IN SO_EKGRP
AND BEDAT IN SO_BEDAT
AND WERKS IN SO_WERKS
AND MATKL IN SO_MATKL.

IF SY-SUBRC <> 0.
MESSAGE E002(ZMM1).
ENDIF.

ENDFORM. " validate_data

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LIST_TOP_OF_PAGE.
* I_LOGO =
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE


*---------------------------------------------------------------------*
* FORM DISPLAY_DATA *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> LT_TOP_OF_PAGE *
*---------------------------------------------------------------------*

*---------To Display The Header Of Grid
FORM DISPLAY_DATA USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA : LW_LINE TYPE SLIS_LISTHEADER.
DATA : LW_BEDAT TYPE EKKO-BEDAT.
DATA : LW_BEDAT1 TYPE EKKO-BEDAT.
DATA : LW_EKORG TYPE EKKO-EKORG.
DATA : LW_EKORG1 TYPE EKKO-EKORG.
DATA : LW_WERKS TYPE EKPO-WERKS.
DATA : LW_WERKS1 TYPE EKPO-WERKS.
DATA : LW_HEAD(132) TYPE C.
DATA : LW_ITEM1(132) TYPE C.
DATA : LW_ITEM2(132) TYPE C.
DATA : LW_DAT1(4) TYPE C.
DATA : LW_DAT2(3) TYPE C.
DATA : LW_DAT3(3) TYPE C.
DATA : LW_HDAT1(4) TYPE C.
DATA : LW_HDAT2(3) TYPE C.
DATA : LW_HDAT3(3) TYPE C.



LW_BEDAT = SO_BEDAT-LOW.
LW_BEDAT1 = SO_BEDAT-HIGH.
LW_EKORG = SO_EKORG-LOW.
LW_EKORG1 = SO_EKORG-HIGH.
LW_WERKS = SO_WERKS-LOW.
LW_WERKS1 = SO_WERKS-HIGH.

LW_DAT1 = LW_BEDAT(4).
LW_DAT2 = LW_BEDAT+4(2).
LW_DAT3 = LW_BEDAT+6(2).

CONCATENATE LW_DAT3 '.' INTO LW_DAT3.
CONCATENATE LW_DAT2 '.' INTO LW_DAT2.

LW_HDAT1 = LW_BEDAT1(4).
LW_HDAT2 = LW_BEDAT1+4(2).
LW_HDAT3 = LW_BEDAT1+6(2).

CONCATENATE LW_HDAT3 '.' INTO LW_HDAT3.
CONCATENATE LW_HDAT2 '.' INTO LW_HDAT2.




CONCATENATE 'Period' 'From'
lw_DAT3 LW_DAT2 LW_DAT1 'To' lw_HDAT3 LW_HDAT2 LW_HDAT1
into lw_head SEPARATED by space.

CONCATENATE 'Purchasing Organization -'
LW_EKORG '-' LW_EKORG1
into LW_ITEM1 SEPARATED by space.

CONCATENATE 'Plant -'
LW_WERKS '-' LW_WERKS1
into LW_ITEM2 SEPARATED by space.




CLEAR LW_LINE.
LW_LINE-TYP = 'H'.
LW_LINE-INFO = 'Purchase Order History'.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.

CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_HEAD.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.


CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_ITEM1.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.

CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_ITEM2.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.

ENDFORM. "DISPLAY_DATA


*---------------------------------------------------------------------*
* FORM EVENTTAB_BUILD_TEMP *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> RT_EVENTS *
*---------------------------------------------------------------------*

*---------For Handling Events

FORM EVENTTAB_BUILD_TEMP USING RT_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 = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.

READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. "EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
*& Form data_fetching
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

*---------Data Fetching

FORM DATA_FETCHING .

DATA : LW_AWKEY TYPE BKPF-AWKEY.
DATA : LW_TOT TYPE J_1IEXCDTL-ECS.

*---------Selecting the PO related data from table ekko & ekpo
*---------tables by comparing values in the selection screen.

SELECT EP~EBELN EP~EBELP EP~ANFNR EP~MATNR EP~BANFN EP~ELIKZ EK~EKGRP
EK~BSART EK~BEDAT EK~LIFNR EK~PINCR EK~WAERS EP~LOEKZ EP~MEINS
INTO CORRESPONDING FIELDS OF TABLE IT_OUTTAB1
FROM EKPO AS EP INNER JOIN EKKO AS EK
ON EP~EBELN = EK~EBELN
WHERE EP~EBELN IN SO_EBELN
AND BSART IN SO_BSART
AND LIFNR IN SO_LIFNR
AND EKORG IN SO_EKORG
AND EKGRP IN SO_EKGRP
AND BEDAT IN SO_BEDAT
AND WERKS IN SO_WERKS
AND MATKL IN SO_MATKL.

IF SY-SUBRC <> 0.
EXIT.
ENDIF.


*---------Selecting the PR related data from table eban

SELECT BANFN BEDAT MENGE FROM EBAN
INTO CORRESPONDING FIELDS OF TABLE IT_EBAN.

IF SY-SUBRC <> 0.
EXIT.
ENDIF.


*---------Selecting the material description from makt table

SELECT MATNR MAKTX FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE IT_MAKT.

IF SY-SUBRC <> 0.
EXIT.
ENDIF.

*---------Selecting the PO quantity & value

SELECT EBELN EBELP MENGE EFFWR FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE IT_EKPO.

IF SY-SUBRC <> 0.
EXIT.
ENDIF.

*---------Selecting the GR related data from table mseg

SELECT MBLNR BWART MATNR LIFNR DMBTR EBELN EBELP BSTMG FROM MSEG
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG
WHERE BWART = '101'
OR BWART = '102'
OR BWART = '105'
OR BWART = '106'.


IF SY-SUBRC <> 0.
EXIT.
ENDIF.

SELECT WRBTR MENGE AUGBL KTOSL EBELN EBELP FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT BELNR BUZEI XBLNR WRBTR MENGE EBELN EBELP LFBNR LIFNR FROM RSEG
INTO CORRESPONDING FIELDS OF TABLE IT_RSEG.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.
*
SELECT BELNR BUDAT RMWWR FROM RBKP
INTO CORRESPONDING FIELDS OF TABLE IT_RBKP.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT MBLNR EXNUM RDOC1 FROM J_1IGRXREF
INTO CORRESPONDING FIELDS OF TABLE IT_J_1IGRXREF.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT DOCNO EXNUM EXBED ECS MENGE LIFNR
RDOC1 RDOC2 RITEM1 RIND1 FROM J_1IEXCDTL
INTO CORRESPONDING FIELDS OF TABLE IT_J_1IEXCDTL
WHERE TRNTYP = 'GRPO'.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT DOCNO FAWREF trntyp FROM J_1IPART2 INTO CORRESPONDING FIELDS OF
TABLE IT_J_1IPART2
WHERE TRNTYP <> ' '.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.
*

SELECT BELNR AWKEY FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE IT_BKPF.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT EBELN VBELN FROM EKES
INTO CORRESPONDING FIELDS OF TABLE IT_EKES.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.

SELECT MBLNR LFBNR BWART EBELN EBELP FROM MSEG
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG2.

* IF SY-SUBRC <> 0.
* EXIT.
* ENDIF.
*

LOOP AT IT_OUTTAB1.

READ TABLE IT_EBAN WITH KEY BANFN = IT_OUTTAB1-BANFN .
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-MATNR .
READ TABLE IT_EKES WITH KEY EBELN = IT_OUTTAB1-EBELN .
READ TABLE IT_EKPO WITH KEY EBELN = IT_OUTTAB1-EBELN
EBELP = IT_OUTTAB1-EBELP .

* DELETE IT_MSEG WHERE EBELN <> IT_OUTTAB1-EBELN.

READ TABLE IT_MSEG WITH KEY EBELN = IT_OUTTAB1-EBELN
EBELP = IT_OUTTAB1-EBELP .

READ TABLE IT_RSEG WITH KEY EBELN = IT_OUTTAB1-EBELN
EBELP = IT_OUTTAB1-EBELP .







READ TABLE IT_BSEG WITH KEY KTOSL = C_CON4
EBELN = IT_OUTTAB1-EBELN
EBELP = IT_OUTTAB1-EBELP .




* READ TABLE IT_J_1IEXCDTL WITH KEY RDOC2 = IT_MSEG-MBLNR.


* READ TABLE IT_J_1IPART2 WITH KEY DOCNO = IT_J_1IEXCDTL-DOCNO.
*
* delete it_j_1ipart2 where docno = ' '.

LOOP AT IT_MSEG WHERE EBELN = IT_OUTTAB1-EBELN
AND EBELP = IT_OUTTAB1-EBELP.
AT END OF EBELP.
SUM.
W_BSTMG1 = W_BSTMG1 + IT_MSEG-BSTMG.
W_DMBTR1 = W_DMBTR1 + IT_MSEG-DMBTR.
ENDAT.
ENDLOOP.


LOOP AT IT_RSEG WHERE EBELN = IT_OUTTAB1-EBELN
AND EBELP = IT_OUTTAB1-EBELP.
READ TABLE IT_RBKP WITH KEY BELNR = IT_RSEG-BELNR.


AT END OF EBELP.
SUM.
W_MENGE1 = W_MENGE1 + IT_RSEG-MENGE.
W_RMWWR1 = W_RMWWR1 + IT_RBKP-RMWWR.
ENDAT.
ENDLOOP.



IT_OUTTAB1-BEDAT1 = IT_EBAN-BEDAT.
IT_OUTTAB1-MENGE2 = IT_EBAN-MENGE.
IT_OUTTAB1-MAKTX = IT_MAKT-MAKTX.
IT_OUTTAB1-MENGE1 = IT_EKPO-MENGE.
IT_OUTTAB1-EFFWR = IT_EKPO-EFFWR.
IT_OUTTAB1-VBELN = IT_EKES-VBELN.
IT_OUTTAB1-BWART = IT_MSEG-BWART.
it_outtab1-mblnr = it_mseg-mblnr.
* IT_OUTTAB1-BSTMG = IT_MSEG-BSTMG.
* IT_OUTTAB1-WRBTR = IT_MSEG-DMBTR.
***commented by smk on 27-04-05 for excise quantity
* it_outtab1-menge3 = it_bseg-menge.
***commented by smk on 27-04-05 for excise quantity
IT_OUTTAB1-AUGBL = IT_BSEG-AUGBL.
***commented by smk on 27-04-05 for excise quantity
* it_outtab1-belnr = it_rseg-belnr.
***commented by smk on 27-04-05 for excise quantity

IT_OUTTAB1-EXNUM = IT_J_1IEXCDTL-EXNUM.
IT_OUTTAB1-MENGE3 = IT_J_1IEXCDTL-MENGE.
IT_OUTTAB1-RDOC1 = IT_J_1IPART2-FAWREF.

* IF IT_J_1IEXCDTL-EXNUM <> ' '.
* LW_TOT = IT_J_1IEXCDTL-EXBED + IT_J_1IEXCDTL-ECS.
* IT_OUTTAB1-TOT = LW_TOT.
* ENDIF.


IT_OUTTAB1-BELNR = IT_RSEG-BELNR.
IT_OUTTAB1-BLDAT = IT_RBKP-BUDAT.
IT_OUTTAB1-MENGE = IT_RSEG-MENGE.
IT_OUTTAB1-DMBTR = IT_RBKP-RMWWR.



MODIFY IT_OUTTAB1 TRANSPORTING BEDAT1 MENGE2 MAKTX MENGE1 EFFWR
MBLNR BSTMG WRBTR AUGBL MENGE3
VBELN MENGE BWART EXNUM TOT
FAWREF.


*
LOOP AT IT_MSEG WHERE EBELN = IT_OUTTAB1-EBELN
AND EBELP = IT_OUTTAB1-EBELP .



* AT END OF EBELP.
* SUM.
* W_BSTMG = W_BSTMG + IT_MSEG-BSTMG.
* W_DMBTR = W_DMBTR + IT_MSEG-DMBTR.
* ENDAT.
*


IF IT_MSEG-BWART = '101'.
READ TABLE IT_RSEG WITH KEY EBELN = IT_MSEG-EBELN
EBELP = IT_MSEG-EBELP
LFBNR = IT_MSEG-MBLNR.
READ TABLE IT_RBKP WITH KEY BELNR = IT_RSEG-BELNR.

IT_MSEG1-BELNR = IT_RSEG-BELNR.
IT_MSEG1-MENGE = IT_RSEG-MENGE.
IT_MSEG1-BLDAT = IT_RBKP-BUDAT.
IT_MSEG1-DMBTR = IT_RBKP-RMWWR.
ENDIF.

IF IT_MSEG-BWART = '105'.
READ TABLE IT_MSEG2 WITH KEY EBELN = IT_MSEG-EBELN
EBELP = IT_MSEG-EBELP
MBLNR = IT_MSEG-MBLNR.
* BWART = '103'.

READ TABLE IT_RSEG WITH KEY EBELN = IT_MSEG-EBELN
EBELP = IT_MSEG-EBELP
LFBNR = IT_MSEG2-LFBNR.

READ TABLE IT_RBKP WITH KEY BELNR = IT_RSEG-BELNR.


IT_MSEG1-BELNR = IT_RSEG-BELNR.
IT_MSEG1-MENGE = IT_RSEG-MENGE.
IT_MSEG1-BLDAT = IT_RBKP-BUDAT.
IT_MSEG1-DMBTR = IT_RBKP-RMWWR.
ENDIF.

READ TABLE IT_J_1IEXCDTL WITH KEY RDOC2 = IT_MSEG-MBLNR.

READ TABLE IT_J_1IPART2 WITH KEY DOCNO = IT_J_1IEXCDTL-DOCNO.

delete it_j_1ipart2 where docno = ' '.


IF IT_J_1IEXCDTL-EXNUM <> ' '.
LW_TOT = IT_J_1IEXCDTL-EXBED + IT_J_1IEXCDTL-ECS.
IT_MSEG1-TOT = LW_TOT.
ENDIF.





IT_MSEG1-BANFN = IT_OUTTAB1-BANFN.
IT_MSEG1-BEDAT1 = IT_OUTTAB1-BEDAT1.
IT_MSEG1-MENGE2 = IT_OUTTAB1-MENGE2.
IT_MSEG1-EBELN = IT_OUTTAB1-EBELN.
IT_MSEG1-BEDAT = IT_OUTTAB1-BEDAT.
IT_MSEG1-BSART = IT_OUTTAB1-BSART.
IT_MSEG1-LIFNR = IT_OUTTAB1-LIFNR.
IT_MSEG1-MEINS = IT_OUTTAB1-MEINS.
IT_MSEG1-EBELP = IT_OUTTAB1-EBELP.
IT_MSEG1-EKGRP = IT_OUTTAB1-EKGRP.
IT_MSEG1-MATNR = IT_OUTTAB1-MATNR.
IT_MSEG1-MAKTX = IT_OUTTAB1-MAKTX.
IT_MSEG1-MENGE1 = IT_OUTTAB1-MENGE1.
IT_MSEG1-EFFWR = IT_OUTTAB1-EFFWR.
IT_MSEG1-WAERS = IT_OUTTAB1-WAERS.
IT_MSEG1-VBELN = IT_OUTTAB1-VBELN.
IT_MSEG1-LOEKZ = IT_OUTTAB1-LOEKZ.
* IT_MSEG1-EXNUM = IT_OUTTAB1-EXNUM.
IT_MSEG1-EXNUM = IT_J_1IEXCDTL-EXNUM.
IT_MSEG1-MENGE3 = IT_J_1IEXCDTL-MENGE.
* IT_MSEG1-RDOC1 = IT_OUTTAB1-RDOC1.
IT_MSEG1-RDOC1 = IT_J_1IPART2-FAWREF.
* IT_MSEG1-TOT = IT_OUTTAB1-TOT.
IT_MSEG1-BWART = IT_MSEG-BWART.
IT_MSEG1-MBLNR = IT_MSEG-MBLNR.
IT_MSEG1-BSTMG = IT_MSEG-BSTMG.
IT_MSEG1-WRBTR = IT_MSEG-DMBTR.
IT_MSEG1-W_BSTMG = W_BSTMG1.
IT_MSEG1-W_DMBTR = W_DMBTR1.
IT_MSEG1-W_MENGE = W_MENGE1.
IT_MSEG1-W_RMWWR = W_RMWWR1.

IF IT_MSEG1-LOEKZ = 'L'.
IT_MSEG1-W_LOEKZ = 'Deleted'.
ENDIF.



SHIFT IT_MSEG1-MATNR LEFT DELETING LEADING '0'.
SHIFT IT_MSEG1-LIFNR LEFT DELETING LEADING '0'.

APPEND IT_MSEG1.

ENDLOOP.


IF PA_LIST4 <> 'X'.
IF PA_LIST1 = 'X'.
delete adjacent duplicates from it_mseg1 comparing w_bstmg.
IF IT_MSEG1-W_BSTMG = IT_OUTTAB1-MENGE1.
DELETE IT_MSEG1 WHERE EBELN = IT_OUTTAB1-EBELN
AND EBELP = IT_OUTTAB1-EBELP.
ENDIF.
ENDIF.
ENDIF.

IF PA_LIST4 <> 'X'.
IF PA_LIST2 = 'X'.
delete adjacent duplicates from it_mseg1 comparing W_MENGE.
IF IT_MSEG1-W_MENGE = IT_MSEG1-W_BSTMG.
DELETE IT_MSEG1 WHERE EBELN = IT_OUTTAB1-EBELN
AND EBELP = IT_OUTTAB1-EBELP.
ENDIF.

ENDIF.
ENDIF.



CLEAR: IT_RSEG,IT_RBKP,IT_EBAN,
IT_MSEG1,IT_MSEG,IT_OUTTAB1,
IT_J_1IEXCDTL,W_BSTMG1,W_DMBTR1,W_MENGE1,W_RMWWR1.



READ TABLE IT_J_1IEXCDTL WITH KEY EXNUM = IT_OUTTAB1-EXNUM
LIFNR = IT_OUTTAB1-LIFNR.

CLEAR : IT_MAKT,IT_MSEG,IT_BSEG,IT_RSEG,IT_RBKP,IT_EKES ,
IT_J_1IGRXREF,IT_J_1IEXCDTL,LW_TOT,IT_J_1IPART2.





ENDLOOP.


ENDFORM. " data_fetching
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_INIT .
DATA :
LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BANFN'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.No'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT1'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE2'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Qty'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELN'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Number'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELP'.
LW_FIELDCAT-SELTEXT_M = 'Item Number'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_LOEKZ'.
LW_FIELDCAT-SELTEXT_M = 'Deletion Status'.
* LW_FIELDCAT-OUTPUTLEN = 1.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EKGRP'.
LW_FIELDCAT-SELTEXT_M = 'Purchasing Grp'.
LW_FIELDCAT-OUTPUTLEN = 15.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.



CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BSART'.
LW_FIELDCAT-SELTEXT_M = 'Doc. Type'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'LIFNR'.
LW_FIELDCAT-SELTEXT_M = 'Vendor No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE1'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Qty'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS'.
LW_FIELDCAT-SELTEXT_M = 'UOM'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EFFWR'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Value'.
LW_FIELDCAT-OUTPUTLEN = 7.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'WAERS'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Currency'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VBELN'.
LW_FIELDCAT-SELTEXT_M = 'Inbound Dely No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BWART'.
LW_FIELDCAT-SELTEXT_M = 'Movement Type'.
* lw_fieldcat-outputlen = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MBLNR'.
LW_FIELDCAT-SELTEXT_M = 'GR No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BSTMG'.
LW_FIELDCAT-SELTEXT_M = 'GR Quantity'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'WRBTR'.
LW_FIELDCAT-SELTEXT_M = 'GR Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EXNUM'.
LW_FIELDCAT-SELTEXT_M = 'Excise Invoice No'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'RDOC1'.
LW_FIELDCAT-SELTEXT_M = 'Excise Acctg. Doc No'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE3'.
LW_FIELDCAT-SELTEXT_M = 'Excise Qty'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'TOT'.
LW_FIELDCAT-SELTEXT_M = 'Excise Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BELNR'.
LW_FIELDCAT-SELTEXT_M = 'Invoice No.'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BLDAT'.
LW_FIELDCAT-SELTEXT_M = 'Invoice Date'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE'.
LW_FIELDCAT-SELTEXT_M = 'Invoice Qty'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'DMBTR'.
LW_FIELDCAT-SELTEXT_M = 'Invoice Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form display_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_LIST .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
IT_EVENTS = W_EVENTS[]
I_SAVE = 'U'
IS_VARIANT = W_VARIANT
IT_SORT = W_GT_SORT[]

TABLES
* t_outtab = it_outtab1[]
T_OUTTAB = IT_MSEG1[]

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. " display_list
*&---------------------------------------------------------------------*
*& Form fieldcat_list1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_LIST1 .
DATA :
LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BANFN'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT1'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE2'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Qty'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELN'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELP'.
LW_FIELDCAT-SELTEXT_M = 'Item No.'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_LOEKZ'.
LW_FIELDCAT-SELTEXT_M = 'Deletion Status'.
* LW_FIELDCAT-OUTPUTLEN = 1.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EKGRP'.
LW_FIELDCAT-SELTEXT_M = 'Purchasing Grp'.
LW_FIELDCAT-OUTPUTLEN = 15.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BSART'.
LW_FIELDCAT-SELTEXT_M = 'Doc. Type'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'LIFNR'.
LW_FIELDCAT-SELTEXT_M = 'Vendor No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE1'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Qty'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS'.
LW_FIELDCAT-SELTEXT_M = 'UOM'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EFFWR'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Value'.
LW_FIELDCAT-OUTPUTLEN = 7.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_BSTMG'.
LW_FIELDCAT-SELTEXT_M = 'GR Quantity'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_DMBTR'.
LW_FIELDCAT-SELTEXT_M = 'GR Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.




ENDFORM. " fieldcat_list1
*&---------------------------------------------------------------------*
*& Form fieldcat_list2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_LIST2 .
DATA :
LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BANFN'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.No'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT1'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE2'.
LW_FIELDCAT-SELTEXT_M = 'Purch.Reqn.Qty'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELN'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELP'.
LW_FIELDCAT-SELTEXT_M = 'Item No.'.
LW_FIELDCAT-OUTPUTLEN = 6.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_LOEKZ'.
LW_FIELDCAT-SELTEXT_M = 'Deletion Status'.
* LW_FIELDCAT-OUTPUTLEN = 1.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BEDAT'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EKGRP'.
LW_FIELDCAT-SELTEXT_M = 'Purchasing Grp'.
LW_FIELDCAT-OUTPUTLEN = 15.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BSART'.
LW_FIELDCAT-SELTEXT_M = 'Doc. Type'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'LIFNR'.
LW_FIELDCAT-SELTEXT_M = 'Vendor No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE1'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Qty'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS'.
LW_FIELDCAT-SELTEXT_M = 'UOM'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EFFWR'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order Value'.
LW_FIELDCAT-OUTPUTLEN = 7.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'WAERS'.
LW_FIELDCAT-SELTEXT_M = 'PO Currency'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VBELN'.
LW_FIELDCAT-SELTEXT_M = 'Inbound Dely No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BWART'.
LW_FIELDCAT-SELTEXT_M = 'Movement Type'.
* lw_fieldcat-outputlen = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MBLNR'.
LW_FIELDCAT-SELTEXT_M = 'GR No.'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

* CLEAR LW_FIELDCAT.
* LW_FIELDCAT-FIELDNAME = 'BSTMG'.
* LW_FIELDCAT-SELTEXT_M = 'GR Quantity'.
* APPEND LW_FIELDCAT TO W_FIELDCATALOG.
*
* CLEAR LW_FIELDCAT.
* LW_FIELDCAT-FIELDNAME = 'WRBTR'.
* LW_FIELDCAT-SELTEXT_M = 'GR Value'.
* APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_BSTMG'.
LW_FIELDCAT-SELTEXT_M = 'GR Quantity'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_DMBTR'.
LW_FIELDCAT-SELTEXT_M = 'GR Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.


CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_MENGE'.
LW_FIELDCAT-SELTEXT_M = 'Invoice Quantity'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.

CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_RMWWR'.
LW_FIELDCAT-SELTEXT_M = 'Invoice Value'.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.



ENDFORM. " fieldcat_list2

*&--------------------------------------------------------------------*
*& Form F007_ALV_SORT
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM F007_ALV_SORT .

W_GT_SORT-SPOS = 1.
W_GT_SORT-FIELDNAME = 'EBELN'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.

W_GT_SORT-SPOS = 2.
W_GT_SORT-FIELDNAME = 'EBELP'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.


ENDFORM. " F007_ALV_SORT

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)