You are on page 1of 11

*----------------------------------------------------------------------*

*& ZMR_105_FG_PURCHASE *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Objective : Vendorwise Monthwise Finished Goods Purchase Report *
*& Program : Updates Tables( ) Downloads data( ) Outputs List( )*
*& Functional Spec No: Not Provided *
*& Technical Spec No: *
*& Date Created : 28/06/2007 *
*& Author : Tapas Kundu *
*& Location : SIL/Kolkata *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Amendment History *
*&---------------------------------------------------------------------*
*& Who Change ID Reason *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
REPORT ZMR_105_FG_PURCHASE NO STANDARD PAGE HEADING MESSAGE-ID ZMM.
TYPE-POOLS : SLIS, " For ALV Display.
VRM. " For parameter drop down lists.
**---------------------------------------------------------------------*
** T Y P E S **
**---------------------------------------------------------------------*
TYPES : BEGIN OF TY_MSEG,
MBLNR TYPE MBLNR, " Number of Material Document
MJAHR TYPE MJAHR, " Material Document Year
ZEILE TYPE MBLPO, " Item in Material Document
EBELN TYPE BSTNR, " Purchase Order Number
EBELP TYPE EBELP, " Item Number of Purchasing Document
MENGE TYPE MENGE_D, " Quantity
MEINS TYPE MEINS, " Base Unit of Measure
ERFMG TYPE ERFMG, " Quantity in Unit of Entry
ERFME TYPE ERFME, " Unit of Entry
DMBTR TYPE DMBTR, " Amount in Local Currency
MATNR TYPE MATNR, " Material Number
WERKS TYPE WERKS_D, " Plant
LIFNR TYPE ELIFN, " Vendor Account Number
BWART TYPE BWART, " Movement Type (Inventory Management)
MWSKZ TYPE MWSKZ, " Sales Tax Code
KONDM TYPE KONDM, " material Pricing group.
BSART TYPE ESART, " Purchasing Document Type
MSATZ TYPE MSATZ_F05L, " Tax rate
TAX_DMBTR TYPE DMBTR, " Amount in Local Currency
TOT_DMBTR TYPE DMBTR, " Amount in Local Currency
MARK(1) TYPE C,
END OF TY_MSEG.
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EBELN, " Purchasing Document Number
BEDAT TYPE EBDAT, " Purchasing Document Date
BSART TYPE ESART, " Purchasing Document Type
MWSKZ TYPE MWSKZ, " Sales Tax Code
END OF TY_EKPO.
TYPES: BEGIN OF TY_KONDM,
MATNR TYPE MATNR, " Material Number
KONDM TYPE KONDM, " Material Pricin
g Group . MVKE-KONDM
VTEXT TYPE BEZEI20, " Material Pricin
g Group Description . T178T-VTEXT
END OF TY_KONDM.
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MATNR,
SPART TYPE SPART,
END OF TY_MARA.
TYPES : BEGIN OF TY_VENDOR,
LIFNR TYPE LIFNR,
NAME1 TYPE NAME1,
END OF TY_VENDOR.
TYPES : BEGIN OF TY_LIFNR,
LIFNR TYPE LIFNR,
END OF TY_LIFNR.
TYPES : BEGIN OF TY_OUTPUT,
BOX TYPE slis_fieldname, " ALV B
ox
LIFNR TYPE ELIFN,
NAME1 TYPE NAME1_GP,
TOT_DMBTR TYPE DMBTR,
MC_PM_DMBTR TYPE DMBTR, " MVKE-KONDM = 30 & 60
CD_PC_DMBTR TYPE DMBTR, " MVKE-KONDM = 70 & 50
AVCD_DMBTR TYPE DMBTR, " MVKE-KONDM = 10 MARA-SPAR
T = 10
VVCD_DMBTR TYPE DMBTR, " MVKE-KONDM = 10 MARA-SPAR
T = 20
ADVD_DMBTR TYPE DMBTR, " MVKE-KONDM = 20 MARA-SPAR
T = 10
VDVD_DMBTR TYPE DMBTR, " MVKE-KONDM = 20 MARA-SPAR
T = 20
MP3_DMBTR TYPE DMBTR, " MVKE-KONDM = 40
MT_DMBTR TYPE DMBTR, " MVKE-KONDM = 80
TOT_MENGE TYPE MENGE_D,
MC_PM_MENGE TYPE MENGE_D, " MVKE-KONDM = 30 & 60
CD_PC_MENGE TYPE MENGE_D, " MVKE-KONDM = 70 & 50
AVCD_MENGE TYPE MENGE_D, " MVKE-KONDM = 10 MARA-SP
ART = 10
VVCD_MENGE TYPE MENGE_D, " MVKE-KONDM = 10 MARA-SP
ART = 20
ADVD_MENGE TYPE MENGE_D, " MVKE-KONDM = 20 MARA-SP
ART = 10
VDVD_MENGE TYPE MENGE_D, " MVKE-KONDM = 20 MARA-SP
ART = 20
MP3_MENGE TYPE MENGE_D, " MVKE-KONDM = 40
MT_MENGE TYPE MENGE_D, " MVKE-KONDM = 80
END OF TY_OUTPUT.
TYPES : BEGIN OF TY_TAXTABLE.
INCLUDE STRUCTURE RTAX1U15.
TYPES : END OF TY_TAXTABLE.
*----------------------------------------------------------------------*
* C O N S T A N T S
*----------------------------------------------------------------------*
*CONSTANTS : C_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGES'.
* C_STAT TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET'.
*----------------------------------------------------------------------*
* D A T A
*----------------------------------------------------------------------*
* W O R K F I E L D S / W O R K A R E A
*----------------------------------------------------------------------*
* Variables for ALV display.
DATA : G_FLD TYPE SLIS_T_FIELDCAT_ALV, " Field Catalogue Internal tabl
e
L_FLD TYPE SLIS_FIELDCAT_ALV, " Field Catalogue Work Area
G_TOP TYPE SLIS_T_LISTHEADER, " Header ( Top of Page) Intern
al table
L_TOP TYPE SLIS_LISTHEADER, " Header ( Top of Page) Work A
rea
l_layout type slis_layout_alv, " Layout Work Area
G_SORT type slis_t_sortinfo_alv, " Sort Info Internal table
L_SORT type slis_sortinfo_alv, " Sort Info Work Area
G_EVNT TYPE SLIS_T_EVENT,
L_EVNT TYPE SLIS_ALV_EVENT.
DATA : V_REPID LIKE SY-REPID. " Program Name
DATA : MONAT1 TYPE MONAT, " Perid
LIFNR1 TYPE LIFNR, " Vendor
WERKS1 TYPE WERKS_D, " Plant
KONDM1 TYPE KONDM, " Material Pricing group
BUDAT1 TYPE BUDAT,
TMSATZ TYPE MSATZ_F05L, " Tax rate
Ed_MSATZ TYPE MSATZ_F05L, " Tax rate
Ex_MSATZ TYPE MSATZ_F05L, " Tax rate
CL_MSATZ TYPE MSATZ_F05L. " Tax rate

DATA : FDATE TYPE DATUM, " From Date


TDATE TYPE DATUM, " To Date
CFDATE(10) TYPE C,
CTDATE(10) TYPE C.

*----------------------------------------------------------------------*
* I N T E R N A L T A B L E S
*----------------------------------------------------------------------*
*Internal Table & Workarea for MKPF-MSEG.
DATA : IT_MSEG TYPE STANDARD TABLE OF TY_MSEG,
WA_MSEG TYPE TY_MSEG,
IT_EKPO TYPE STANDARD TABLE OF TY_EKPO,
WA_EKPO TYPE TY_EKPO,
IT_KONDM TYPE STANDARD TABLE OF TY_KONDM, " WITH UNIQUE
KEY MATNR,
WA_KONDM TYPE TY_KONDM,
IT_TAXTABLE TYPE STANDARD TABLE OF TY_TAXTABLE, " WITH U
NIQUE KEY MATNR,
WA_TAXTABLE TYPE TY_TAXTABLE,
IT_LIFNR TYPE STANDARD TABLE OF TY_LIFNR, "
WA_LIFNR TYPE TY_LIFNR,
IT_VENDOR TYPE STANDARD TABLE OF TY_VENDOR, " WITH UNIQU
E KEY MATNR,
WA_VENDOR TYPE TY_VENDOR,
IT_MARA TYPE STANDARD TABLE OF TY_MARA,
WA_MARA TYPE TY_MARA,
IT_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT,
WA_OUTPUT TYPE TY_OUTPUT.
*----------------------------------------------------------------------*
* SELECTION SCREENS
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS : S_BUDAT FOR BUDAT1 OBLIGATORY.
SELECT-OPTIONS : S_LIFNR FOR LIFNR1 MATCHCODE OBJECT KRED. " Vender
No
SELECT-OPTIONS : S_WERKS FOR WERKS1 MATCHCODE OBJECT SH_T001W_EXTS. " Plant
SELECT-OPTIONS : S_KONDM FOR KONDM1 MATCHCODE OBJECT H_T178. " Materi
al Pricing Group
SELECTION-SCREEN END OF BLOCK B2.
*----------------------------------------------------------------------*
* Initialization *
*----------------------------------------------------------------------*
INITIALIZATION.
V_REPID = SY-REPID.
**----------------------------------------------------------------------
** At Selection Screen OUTPUT
**----------------------------------------------------------------------
*----------------------------------------------------------------------*
* Start of Selection *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FETCH_DATA.
PERFORM SET_EVENTS.
PERFORM LAYOUT.
PERFORM SET_FLD_CTL.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_DATA .
* Fetching Goods Receipt.
SELECT B~MBLNR
B~MJAHR
B~ZEILE
B~EBELN
B~EBELP
B~MENGE
B~MEINS
B~ERFMG
B~ERFME
B~DMBTR
B~MATNR
B~WERKS
B~LIFNR
B~BWART
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG
FROM MKPF AS A INNER JOIN MSEG AS B ON A~MBLNR = B~MBLNR
WHERE A~BUDAT IN S_BUDAT
AND B~LIFNR IN S_LIFNR
AND B~WERKS IN S_WERKS
AND B~BWART EQ '101'
AND A~VGART EQ 'WE'.
SELECT A~MATNR A~KONDM B~VTEXT INTO TABLE IT_KONDM
FROM MVKE AS A INNER JOIN T178T AS B ON A~KONDM EQ B~KONDM
WHERE A~VKORG EQ '1000' AND A~KONDM IN S_KONDM.
SORT IT_KONDM BY MATNR.
DELETE ADJACENT DUPLICATES FROM IT_KONDM.
SORT IT_KONDM BY MATNR.
* Fetching Purchase Orders.
SELECT A~EBELN A~BEDAT A~BSART B~MWSKZ
INTO TABLE IT_EKPO
FROM EKKO AS A INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
WHERE A~BEDAT LE S_BUDAT-HIGH
AND A~BSART EQ 'NB'
AND B~WERKS IN S_WERKS.
SORT IT_EKPO BY EBELN.
DELETE ADJACENT DUPLICATES FROM IT_EKPO.
SORT IT_EKPO BY EBELN.
SELECT MATNR SPART FROM MARA INTO TABLE IT_MARA WHERE SPART NE ' '.
SORT IT_MARA BY MATNR.
SELECT LIFNR NAME1 from LFA1 INTO TABLE IT_VENDOR.
SORT IT_VENDOR BY LIFNR.
REFRESH IT_LIFNR.
LOOP AT IT_MSEG INTO WA_MSEG.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_MSEG-EBELN BINARY SEARCH
.
IF SY-SUBRC EQ 0.
CLEAR WA_KONDM.
READ TABLE IT_KONDM WITH KEY MATNR = WA_MSEG-MATNR INTO WA_KONDM BINARY SE
ARCH.
WA_MSEG-KONDM = WA_KONDM-KONDM.
WA_MSEG-MWSKZ = WA_EKPO-MWSKZ.
WA_MSEG-BSART = WA_EKPO-BSART.
CLEAR WA_LIFNR.
WA_LIFNR-LIFNR = WA_MSEG-LIFNR.
APPEND WA_LIFNR TO IT_LIFNR.
ELSE.
WA_MSEG-MARK = 'X'.
ENDIF.
MODIFY IT_MSEG FROM WA_MSEG.
ENDLOOP.
DELETE IT_MSEG WHERE MARK = 'X'.
SORT IT_LIFNR BY LIFNR.
DELETE ADJACENT DUPLICATES FROM IT_LIFNR.
SORT IT_MSEG BY LIFNR.

LOOP AT IT_MSEG INTO WA_MSEG. " WHERE LIFNR EQ WA_


MSEG-LIFNR.
REFRESH IT_TAXTABLE.
CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
EXPORTING
I_BUKRS = 'SIL'
I_MWSKZ = WA_MSEG-MWSKZ
* I_TXJCD = ' '
I_WAERS = 'INR'
I_WRBTR = WA_MSEG-DMBTR
* I_ZBD1P = 0
* I_PRSDT =
* I_PROTOKOLL =
* I_TAXPS =
* I_ACCNT_EXT =
* IS_ENHANCEMENT =
* IMPORTING
* E_FWNAV =
* E_FWNVV =
* E_FWSTE =
* E_FWAST =
TABLES
T_MWDAT = IT_TAXTABLE
* EXCEPTIONS
* BUKRS_NOT_FOUND = 1
* COUNTRY_NOT_FOUND = 2
* MWSKZ_NOT_DEFINED = 3
* MWSKZ_NOT_VALID = 4
* ACCOUNT_NOT_FOUND = 5
* DIFFERENT_DISCOUNT_BASE = 6
* DIFFERENT_TAX_BASE = 7
* TXJCD_NOT_VALID = 8
* NOT_FOUND = 9
* KTOSL_NOT_FOUND = 10
* KALSM_NOT_FOUND = 11
* PARAMETER_ERROR = 12
* KNUMH_NOT_FOUND = 13
* KSCHL_NOT_FOUND = 14
* UNKNOWN_ERROR = 15
* OTHERS = 16
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR : TMSATZ, Ed_MSATZ, Ex_MSATZ, CL_MSATZ.
LOOP AT IT_TAXTABLE INTO WA_TAXTABLE.
CASE WA_TAXTABLE-KSCHL.
WHEN 'JMIP'.
Ex_MSATZ = Ex_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JMOP'.
Ex_MSATZ = Ex_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JECI'.
Ed_MSATZ = Ed_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JECP'.
Ed_MSATZ = Ed_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JIPL'.
CL_MSATZ = CL_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JIPS'.
CL_MSATZ = CL_MSATZ + WA_TAXTABLE-MSATZ.
WHEN 'JIPC'.
CL_MSATZ = CL_MSATZ + WA_TAXTABLE-MSATZ.
ENDCASE.
ENDLOOP.
TMSATZ = CL_MSATZ + Ex_MSATZ + ( ( Ex_MSATZ * Ed_MSATZ ) / 100 ).
WA_MSEG-MSATZ = TMSATZ.
WA_MSEG-TAX_DMBTR = ( WA_MSEG-DMBTR * TMSATZ ) / 100.
WA_MSEG-TOT_DMBTR = WA_MSEG-DMBTR + WA_MSEG-TAX_DMBTR.
MODIFY IT_MSEG FROM WA_MSEG.
ENDLOOP.

SORT IT_MSEG BY LIFNR.


LOOP AT IT_LIFNR INTO WA_LIFNR.
CLEAR WA_VENDOR.
READ TABLE IT_VENDOR INTO WA_VENDOR WITH KEY LIFNR = WA_LIFNR-LIFNR.
CLEAR WA_OUTPUT.
LOOP AT IT_MSEG INTO WA_MSEG WHERE LIFNR EQ WA_LIFNR-LIFNR.
WA_OUTPUT-LIFNR = WA_MSEG-LIFNR.
WA_OUTPUT-NAME1 = WA_VENDOR-NAME1.
IF WA_MSEG-KONDM = '10' OR WA_MSEG-KONDM = '20'.
READ TABLE IT_MARA INTO WA_MARA WITH KEY MATNR = WA_MSEG-MATNR.
ENDIF.
CASE WA_MSEG-KONDM.
WHEN '30'.
WA_OUTPUT-MC_PM_DMBTR = WA_OUTPUT-MC_PM_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-MC_PM_MENGE = WA_OUTPUT-MC_PM_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '60'.
WA_OUTPUT-MC_PM_DMBTR = WA_OUTPUT-MC_PM_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-MC_PM_MENGE = WA_OUTPUT-MC_PM_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '70'.
WA_OUTPUT-CD_PC_DMBTR = WA_OUTPUT-CD_PC_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-CD_PC_MENGE = WA_OUTPUT-CD_PC_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '50'.
WA_OUTPUT-CD_PC_DMBTR = WA_OUTPUT-CD_PC_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-CD_PC_MENGE = WA_OUTPUT-CD_PC_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '10'.
CASE WA_MARA-SPART.
WHEN '10'.
WA_OUTPUT-AVCD_DMBTR = WA_OUTPUT-AVCD_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-AVCD_MENGE = WA_OUTPUT-AVCD_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '20'.
WA_OUTPUT-VVCD_DMBTR = WA_OUTPUT-VVCD_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-VVCD_MENGE = WA_OUTPUT-VVCD_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
ENDCASE.
WHEN '20'.
CASE WA_MARA-SPART.
WHEN '10'.
WA_OUTPUT-ADVD_DMBTR = WA_OUTPUT-ADVD_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-ADVD_MENGE = WA_OUTPUT-ADVD_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '20'.
WA_OUTPUT-VDVD_DMBTR = WA_OUTPUT-VDVD_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBT
R.
WA_OUTPUT-VDVD_MENGE = WA_OUTPUT-VDVD_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
ENDCASE.
WHEN '40'.
WA_OUTPUT-MP3_DMBTR = WA_OUTPUT-MP3_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-MP3_MENGE = WA_OUTPUT-MP3_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
WHEN '80'.
WA_OUTPUT-MT_DMBTR = WA_OUTPUT-MT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-TOT_DMBTR = WA_OUTPUT-TOT_DMBTR + WA_MSEG-TOT_DMBTR.
WA_OUTPUT-MT_MENGE = WA_OUTPUT-MT_MENGE + WA_MSEG-MENGE.
WA_OUTPUT-TOT_MENGE = WA_OUTPUT-TOT_MENGE + WA_MSEG-MENGE.
ENDCASE.
ENDLOOP.
APPEND WA_OUTPUT TO IT_OUTPUT.
ENDLOOP.

ENDFORM. " FETCH_DATA


*&---------------------------------------------------------------------*
*& Form SET_EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_EVENTS .
REFRESH G_EVNT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
* I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = G_EVNT
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.
IF SY-SUBRC = 0.
CLEAR L_EVNT.
READ TABLE G_EVNT INTO L_EVNT WITH KEY NAME = 'TOP_OF_PAGE'.
L_EVNT-FORM = 'TOP_OF_PAGE'.
MODIFY G_EVNT FROM L_EVNT INDEX SY-TABIX TRANSPORTING FORM.
ENDIF.
ENDFORM. " SET_EVENTS
*&---------------------------------------------------------------------*
*& Form LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM LAYOUT .
CLEAR : L_LAYOUT.
L_layout-colwidth_optimize = 'X'.
L_layout-zebra = 'X'.
L_layout-box_fieldname = 'BOX'.
ENDFORM. " LAYOUT
*&---------------------------------------------------------------------*
*& Form SET_FLD_CTL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_FLD_CTL .
REFRESH G_FLD.
PERFORM SO_POPULATE_FLD USING:
'1' 'LIFNR' 'IT_OUTPUT' text-005 '10' ' ',
'2' 'NAME1' 'IT_OUTPUT' text-006 '30' ' ',
'3' 'TOT_DMBTR' 'IT_OUTPUT' text-007 '13' 'X',
'4' 'TOT_MENGE' 'IT_OUTPUT' text-008 '13' 'X',
'5' 'MC_PM_DMBTR' 'IT_OUTPUT' text-009 '13' 'X',
'6' 'MC_PM_MENGE' 'IT_OUTPUT' text-010 '13' 'X',
'7' 'CD_PC_DMBTR' 'IT_OUTPUT' text-011 '13' 'X',
'8' 'CD_PC_MENGE' 'IT_OUTPUT' text-012 '13' 'X',
'9' 'AVCD_DMBTR' 'IT_OUTPUT' text-013 '13' 'X',
'10' 'AVCD_MENGE' 'IT_OUTPUT' text-014 '13' 'X',
'11' 'VVCD_DMBTR' 'IT_OUTPUT' text-015 '13' 'X',
'12' 'VVCD_MENGE' 'IT_OUTPUT' text-016 '13' 'X',
'13' 'ADVD_DMBTR' 'IT_OUTPUT' text-017 '13' 'X',
'14' 'ADVD_MENGE' 'IT_OUTPUT' text-018 '13' 'X',
'15' 'VDVD_DMBTR' 'IT_OUTPUT' text-019 '13' 'X',
'16' 'VDVD_MENGE' 'IT_OUTPUT' text-020 '13' 'X',
'17' 'MP3_DMBTR' 'IT_OUTPUT' text-021 '13' 'X',
'18' 'MP3_MENGE' 'IT_OUTPUT' text-022 '13' 'X',
'19' 'MT_DMBTR' 'IT_OUTPUT' text-023 '13' 'X',
'20' 'MT_MENGE' 'IT_OUTPUT' text-024 '13' 'X'.
ENDFORM. " SET_FLD_CTL
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = C_STAT
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = C_TOP
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = G_FLD
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT = G_SORT
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = G_EVNT
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_OUTPUT
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
*&---------------------------------------------------------------------*
*& Form SO_POPULATE_FLD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1183 text
* -->P_1184 text
* -->P_1185 text
* -->P_1186 text
* -->P_1187 text
* -->P_1188 text
*----------------------------------------------------------------------**
FORM SO_POPULATE_FLD USING VALUE(P_1779)
VALUE(P_1780)
VALUE(P_1781)
VALUE(P_1782)
VALUE(P_1783)
VALUE(P_1784).
CLEAR L_FLD.
L_FLD-COL_POS = P_1779.
L_FLD-FIELDNAME = P_1780.
L_FLD-TABNAME = P_1781.
L_FLD-REPTEXT_DDIC = P_1782.
L_FLD-OUTPUTLEN = P_1783.
L_FLD-DO_SUM = P_1784.
APPEND L_FLD TO G_FLD.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form top_of_pages
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
REFRESH g_top.
CLEAR l_top.
l_top-typ = 'H'.
l_top-info = text-003.
APPEND l_top TO g_top.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = g_top
* i_logo = 'SAREGAMA'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.

ENDFORM. " top_of_pages

You might also like