2007 Oct 26 7:18 AM
how we create fieldcatalog to display the data of ddic in alv.
how we create fieldcatalog to display the data of ddic in alv.
2007 Oct 26 7:20 AM
REPORT YORDER_FILL_RATE NO STANDARD PAGE HEADING.
TABLES: VBAK,
VBAP,
VBEP,
LIPS.
----
Type Declaration *
----
TYPE-POOLS SLIS.
Internal Tables
DATA : BEGIN OF IT_FINAL OCCURS 0,
VBELN LIKE VBAK-VBELN, " Order
ERDAT LIKE VBAK-ERDAT, " Date on which the record was created
ERZET LIKE VBAK-ERZET, " Entry time
VKGRP LIKE VBAK-VKGRP, " Unit Office
VKBUR LIKE VBAK-VKBUR, " Marketing Unit
KUNNR LIKE VBAK-KUNNR, " Sold-to party
KVGR1 LIKE VBAK-KVGR1, " CE Territory
POSNR LIKE VBAP-POSNR, " Order Line Item
MATNR LIKE VBAP-MATNR, " Material
ARKTX LIKE VBAP-ARKTX, " Material Description
PRODH LIKE VBAP-PRODH, " Product hierarchy
MEINS LIKE VBAP-MEINS, " Material Units
KWMENG LIKE VBAP-KWMENG, " Qty
WERKS LIKE VBAP-WERKS, " Plant
EDATU LIKE VBEP-EDATU, " Schedule line date
VRKME LIKE VBEP-VRKME, " Sales unit
MEINS1 LIKE VBEP-MEINS, " Base Unit of Measure
WADAT LIKE VBEP-WADAT, " Goods issue date
WAUHR LIKE VBEP-WAUHR, " Time of goods issue (local time, with reference to a plant)
BZIRK LIKE VBKD-BZIRK, " tdm Territory
LFIMG LIKE LIPS-LFIMG, " Delivered Qty
ERZET1 LIKE LIPS-ERZET, " Delivery Time
END OF IT_FINAL.
DATA : WA_FINAL LIKE IT_FINAL.
DATA : WA_PERCENT(15) TYPE C.
DATA : BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBEP-VBELN, " Order
POSNR LIKE VBEP-POSNR, " Order Line Item
EDATU LIKE VBEP-EDATU, " Schedule line date
VRKME LIKE VBEP-VRKME, " Sales unit
MEINS LIKE VBEP-MEINS, " Base Unit of Measure
WADAT LIKE VBEP-WADAT, " Goods issue date
WAUHR LIKE VBEP-WAUHR, " Time of goods issue (local time, with reference to a plant)
END OF ITAB.
DATA : BEGIN OF ITAB1 OCCURS 0,
VBELN LIKE VBKD-VBELN, " Order
POSNR LIKE VBKD-POSNR, " Order Line Item
BZIRK LIKE VBKD-BZIRK, " tdm Territory
END OF ITAB1.
DATA : BEGIN OF ITAB2 OCCURS 0,
VBELV LIKE VBFA-VBELV, " Sales Doc
POSNV LIKE VBFA-POSNV, " item
VBELN LIKE VBFA-VBELN, " Reference Delivery
POSNN LIKE VBFA-POSNN, " ITEM
VGBEL LIKE LIPS-VGBEL, " REFERENCE SALES
VGPOS LIKE LIPS-VGPOS, " REFERENCE ITEM.
LFIMG LIKE LIPS-LFIMG, " Delivery Qty
ERZET LIKE LIPS-ERZET, " Entry time
END OF ITAB2.
DATA : WA_TAB2 LIKE ITAB2.
DATA : BEGIN OF IT_DEL OCCURS 0,
VBELN LIKE LIPS-VBELN, " DELIVERY
POSNR LIKE LIPS-POSNR, " Line Item
VGBEL LIKE LIPS-VGBEL, " REFERENCE SALES
VGPOS LIKE LIPS-VGPOS, " REFERENCE ITEM.
LFIMG LIKE LIPS-LFIMG, " Delivery Qty
ERZET LIKE LIPS-ERZET, " Entry time
LFIMG1 LIKE LIPS-LFIMG,
END OF IT_DEL.
DATA WA_DEL LIKE IT_DEL.
DATA IT_DEL1 LIKE STANDARD TABLE OF IT_DEL WITH HEADER LINE.
DATA WA_TOTAL LIKE LIPS-LFIMG.
FCAT is used for the field catalog
DATA: FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FS_LAYO is used for Grid Layout
FS_LAYO TYPE SLIS_LAYOUT_ALV,
FEVENTS to handle the events TOP OF PAGE & USER_COMMAND
FEVENTS TYPE TABLE OF SLIS_ALV_EVENT WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FHEADER is used for List header
FHEADER TYPE TABLE OF SLIS_LISTHEADER WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0.
----
SELECTION SCREEN *
----
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: S_ERDAT FOR VBAK-ERDAT.
SELECT-OPTIONS: S_VKGRP FOR VBAK-VKGRP.
SELECT-OPTIONS: S_VKBUR FOR VBAK-VKBUR.
SELECT-OPTIONS: S_VTWEG FOR VBAK-VTWEG.
SELECT-OPTIONS: S_VKORG FOR VBAK-VKORG.
SELECT-OPTIONS: S_KUNNR FOR VBAK-KUNNR.
SELECT-OPTIONS: S_KVGR1 FOR VBAK-KVGR1.
SELECT-OPTIONS: S_AUART FOR VBAK-AUART.
SELECTION-SCREEN: END OF BLOCK B2.
SELECTION-SCREEN: END OF BLOCK B1.
----
AT SELECTION-SCREEN *
----
AT SELECTION-SCREEN.
----
START OF SELECTION *
----
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM PROCESS.
----
END OF SELECTION *
----
END-OF-SELECTION.
----
here the top of the page code is written, that is to be displayed *
in the output *
----
PERFORM Z_TOP_OF_PAGE.
----
here ALV layout properties are set *
----
PERFORM Z_LAYOUT_SETTINGS.
----
ALV EVENTS for TOP OF PAGE and for USER COMMAND *
----
PERFORM Z_ALV_EVENTS.
----
The field catalog is defined for the Primary List is defined in *
the subroutine CREATE_FIELD_CATALOG include program ZPRRDOCR_FCAT *
----
PERFORM Z_CREATE_FIELD_CATALOG.
----
This is for displaying the output *
----
PERFORM Z_REUSE_ALV_GRID_DISPLAY.
&----
*& Form GETDATA
&----
text
----
FORM GETDATA.
Selecting Data from VBAK, VBAP
SELECT VBAK~VBELN " Order
VBAK~ERDAT " Date on which the record was created
VBAK~ERZET " Entry time
VBAK~VKGRP " Unit Office
VBAK~VKBUR " Marketing Unit
VBAK~KUNNR " Sold~to party
VBAK~KVGR1 " CE Territory
VBAP~POSNR " Order Line Item
VBAP~MATNR " Material
VBAP~ARKTX " Material Description
VBAP~PRODH " Product hierarchy
VBAP~MEINS " Material Units
VBAP~KWMENG " Qty
VBAP~WERKS " Plant
FROM VBAK INNER JOIN VBAP
ON VBAK~VBELN = VBAP~VBELN
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
WHERE VBAK~ERDAT IN S_ERDAT AND
AUART IN S_AUART AND
VKORG IN S_VKORG AND
VTWEG IN S_VTWEG AND
VKGRP IN S_VKGRP AND
KUNNR IN S_KUNNR AND
VKBUR IN S_VKBUR AND
KVGR1 IN S_KVGR1 AND
VBAP~UEPOS EQ '0' .
AND
VBAP~ABGRU EQ ' '.
IF SY-SUBRC NE 0.
*
MESSAGE E041 WITH TEXT-002.
*
ENDIF.
SORT IT_FINAL BY VBELN POSNR .
VKORG VKBUR VKGRP BZIRK KUNNR POSNR MATNR
ARKTX
KWMENG
WERKS.
DELETE ADJACENT DUPLICATES FROM IT_FINAL.
IF NOT IT_FINAL[] IS INITIAL.
SELECT VBELN " Order
POSNR " Order Line Item
EDATU " Schedule line date
VRKME " Sales unit
MEINS " Base Unit of Measure
WADAT " Goods issue date
WAUHR " Time of goods issue (local time, with reference to a plant)
FROM VBEP
INTO CORRESPONDING FIELDS OF TABLE ITAB
FOR ALL ENTRIES IN IT_FINAL
WHERE
VBELN = IT_FINAL-VBELN
AND
POSNR = IT_FINAL-POSNR.
SELECT VBELN " Order
POSNR " Order Line Item
BZIRK " Territory
FROM VBKD
INTO CORRESPONDING FIELDS OF TABLE ITAB1
FOR ALL ENTRIES IN IT_FINAL
WHERE
VBELN = IT_FINAL-VBELN.
AND
POSNR = IT_FINAL-POSNR.
*
SELECT VBELV " Sales Doc
POSNV " item
VBELN " Reference Delivery
POSNN " ITEM
from VBFA
INTO CORRESPONDING FIELDS OF TABLE ITAB2
FOR ALL ENTRIES IN IT_FINAL
WHERE
VBELV = IT_FINAL-VBELN
AND
POSNV = IT_FINAL-POSNR.
ENDIF.
SORT ITAB2 BY VBELN POSNN.
IF NOT ITAB2[] IS INITIAL.
SELECT VBELN " DELIVERY
POSNR " Line Item
VGBEL " REFERENCE SALES DOC
VGPOS " REFERENCE ITEM
LFIMG
ERZET " Entry time
FROM LIPS
INTO CORRESPONDING FIELDS OF TABLE IT_DEL
FOR ALL ENTRIES IN ITAB2
WHERE
VBELN = ITAB2-VBELN
AND
POSNR = ITAB2-POSNN.
ENDIF.
IT_DEL1[] = IT_DEL[].
ENDFORM. "GETDATA
&----
*& Form PROCESS
&----
text
----
FORM PROCESS.
SORT IT_DEL BY VGBEL VGPOS.
SORT IT_DEL1 BY VGBEL VGPOS.
LOOP AT IT_DEL INTO WA_DEL.
LOOP AT IT_DEL1 WHERE VGBEL = WA_DEL-VGBEL and
VGPOS = WA_DEL-VGPOS.
WA_DEL-LFIMG1 = WA_DEL-LFIMG1 + IT_DEL1-LFIMG.
MODIFY IT_DEL FROM WA_DEL..
ENDLOOP.
ENDLOOP.
SORT IT_DEL1 BY VBELN POSNR.
LOOP AT ITAB2 INTO WA_TAB2.
READ TABLE IT_DEL WITH KEY VBELN = WA_TAB2-VBELN
POSNR = WA_TAB2-POSNN.
IF SY-SUBRC EQ 0.
WA_TAB2-VGBEL = IT_DEL-VGBEL.
WA_TAB2-VGPOS = IT_DEL-VGPOS.
WA_TAB2-LFIMG = IT_DEL-LFIMG1. " DELIVERY QTY
WA_TAB2-ERZET = IT_DEL-ERZET. " Entry time
MODIFY ITAB2 FROM WA_TAB2.
ENDIF.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
READ TABLE ITAB WITH KEY VBELN = WA_FINAL-VBELN
POSNR = WA_FINAL-POSNR.
IF SY-SUBRC EQ 0.
WA_FINAL-EDATU = ITAB-EDATU.
WA_FINAL-VRKME = ITAB-VRKME. " Sales unit
WA_FINAL-MEINS1 = ITAB-MEINS. " Base Unit of Measure
WA_FINAL-WADAT = ITAB-WADAT. " Goods issue date
WA_FINAL-WAUHR = ITAB-WAUHR. " Time of goods issue (local time, with reference to a plant)
MODIFY IT_FINAL FROM WA_FINAL.
ENDIF.
READ TABLE ITAB1 WITH KEY VBELN = WA_FINAL-VBELN.
POSNR = WA_FINAL-POSNR.
IF SY-SUBRC EQ 0.
WA_FINAL-BZIRK = ITAB1-BZIRK. " TDM Territory
MODIFY IT_FINAL FROM WA_FINAL.
ENDIF.
ENDLOOP.
SORT IT_FINAL BY VBELN POSNR.
SORT ITAB2 BY VBELV POSNV.
LOOP AT IT_FINAL INTO WA_FINAL.
READ TABLE ITAB2 WITH KEY VBELV = WA_FINAL-VBELN
POSNV = WA_FINAL-POSNR
VGBEL = WA_FINAL-VBELN
VGPOS = WA_FINAL-POSNR.
IF SY-SUBRC EQ 0.
WA_FINAL-LFIMG = ITAB2-LFIMG. " DELIVERY QTY
WA_FINAL-ERZET1 = ITAB2-ERZET. " Entry time
MODIFY IT_FINAL FROM WA_FINAL.
ENDIF.
ENDLOOP.
DATA : WA_KWMENG LIKE VBAP-KWMENG.
DATA : WA_LFIMG LIKE LIPS-LFIMG.
DATA : WA_PER LIKE LIPS-LFIMG.
CLEAR WA_KWMENG.
CLEAR WA_LFIMG.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_KWMENG = WA_KWMENG + WA_FINAL-KWMENG.
WA_LFIMG = WA_LFIMG + WA_FINAL-LFIMG.
ENDLOOP.
CLEAR WA_PER.
WA_PER = WA_LFIMG / WA_KWMENG .
WA_PERCENT = WA_PER * 100.
ENDFORM. "PROCESS
&----
*& Form z_top_of_page
&----
text
----
FORM Z_TOP_OF_PAGE.
IF NOT S_MATNR-LOW IS INITIAL.
CONCATENATE S_MATNR-LOW ' ' 'To' ' ' S_MATNR-HIGH INTO W_MATNR
SEPARATED BY SPACE.
ENDIF.
for writing the Report details
FHEADER-TYP = 'H'.
FHEADER-INFO = 'ORDER FILL RATE'.
APPEND FHEADER.
CLEAR FHEADER.
CLEAR FHEADER-KEY.
for PERFORMANCE RATE
FHEADER-TYP = 'S'.
FHEADER-INFO = WA_PERCENT.
FHEADER-KEY = 'PERFORMANCE RATE PERCENTAGE'.
APPEND FHEADER.
CLEAR FHEADER.
CLEAR FHEADER-KEY.
ENDFORM. "z_top_of_page
&----
*& Form Z_LAYOUT_SETTINGS
&----
this is done for setting the properties for the layout of the *
grid *
----
has no formal paramters *
----
FORM Z_LAYOUT_SETTINGS.
FS_LAYO-ZEBRA = 'X'. " Output in Zebra pattern
FS_LAYO-DETAIL_POPUP = 'X'. " A popup window appears to give
" details
FS_LAYO-KEY_HOTSPOT = 'X'. " Key fields will have a Hotspot.
FS_LAYO-DETAIL_TITLEBAR = TEXT-001.
FS_LAYO-EDIT_MODE = 'X'.
ENDFORM. " Z_LAYOUT_SETTINGS
&----
*& Form Z_ALV_EVENTS
&----
This is used for handling the events TOP OF PAGE and the USER *
COMMAND event *
----
has no formal paramters *
----
FORM Z_ALV_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = FEVENTS[].
READ TABLE FEVENTS WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_TOPOFPAGE'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF. " IF SY-SUBRC = 0.
READ TABLE FEVENTS WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_USER_COMMAND'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF. " IF SY-SUBRC = 0.
ENDFORM. " Z_ALV_EVENTS
&----
*& Form Z_CREATE_FIELD_CATALOG
&----
here the field catalog is created for the primary list *
----
no formal parameters *
----
FORM Z_CREATE_FIELD_CATALOG.
for Marketing Unit
FCAT-FIELDNAME = 'VKBUR'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000020'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Marketing Unit'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for Unit Office
FCAT-FIELDNAME = 'VKGRP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000012'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Unit Office'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for CE Territory
FCAT-FIELDNAME = 'KVGR1'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'CE Territory'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for TDM Taritory
FCAT-FIELDNAME = 'BZIRK'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'TDM Taritory'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for Plant
FCAT-FIELDNAME = 'WERKS'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000004'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Plant'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
fOR Customer
FCAT-FIELDNAME = 'KUNNR'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000010'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Customer code'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
*For order
FCAT-FIELDNAME = 'VBELN'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Sales Order'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
For date created on
FCAT-FIELDNAME = 'ERDAT'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Created On'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'DATS'.
APPEND FCAT.
CLEAR FCAT.
For TIME created on
FCAT-FIELDNAME = 'ERZET'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000010'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Time'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'TIMS'.
APPEND FCAT.
CLEAR FCAT.
fOR Customer name
FCAT-FIELDNAME = 'NAME1'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000035'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Customer Name'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
*
ENDIF.
fOR Customer Material
FCAT-FIELDNAME = 'MATNR'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000018'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Material'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
fOR Customer Material
FCAT-FIELDNAME = 'ARKTX'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000040'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Description'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
*For order qty
FCAT-FIELDNAME = 'KWMENG'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000018'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'OrderQty'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
*For DELIVERED qty
FCAT-FIELDNAME = 'LFIMG'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000018'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Delv.Qty'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
For SU
FCAT-FIELDNAME = 'MEINS'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000010'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Sales Unit'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
For Deliv. date
FCAT-FIELDNAME = 'EDATU'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Deliv. date'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'DATS'.
APPEND FCAT.
CLEAR FCAT.
For GI date
FCAT-FIELDNAME = 'WADAT'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'GI date'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'DATS'.
APPEND FCAT.
CLEAR FCAT.
For Product hierarchy
FCAT-FIELDNAME = 'PRODH'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000020'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Product hierarchy'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
For TIME created on
FCAT-FIELDNAME = 'ERZET1'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000015'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Delivery Time'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'TIMS'.
APPEND FCAT.
CLEAR FCAT.
ENDFORM. "z_create_field_catalog
&----
*& Form Z_REUSE_ALV_GRID_DISPLAY
&----
here the function module REUSE_ALV_GRID_DISPLAY function module *
is called. The inputs given to it are as follows: *
W_REPID : contains the Report Name *
USER_COMMAND : is set as default *
FS_LAYO : Here the layout related properties are set *
FCAT : here the field catalog is create for the output *
fields *
FEXCLUDE : Some Application toolbar links are deactivated *
here *
FEVENTS : Here top of Page & User command events are defined*
IT_AFPO : It is the table which contains the data to be *
displayed in the output *
----
has no formal paramters *
----
FORM Z_REUSE_ALV_GRID_DISPLAY.
local variable declaration
DATA: LV_REPID LIKE SY-REPID.
LV_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = LV_REPID
I_CALLBACK_USER_COMMAND = 'Z_USER_COMMAND'
IS_LAYOUT = FS_LAYO
IT_FIELDCAT = FCAT[]
I_DEFAULT = 'X'
I_SAVE = 'U'
IT_EVENTS = FEVENTS[]
it_sort = i_FINAL[]
TABLES
T_OUTTAB = IT_FINAL[].
ENDFORM. " Z_REUSE_ALV_GRID_DISPLAY
&----
*& Form Z_TOPOFPAGE
&----
This Subroutine is called Dynamically *
This is for creating the headings of the output fields *
----
has no formal paramters *
----
FORM Z_TOPOFPAGE. "#EC NEEDED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = FHEADER[].
ENDFORM. " FORM Z_TOPOFPAGE
&----
This Subroutine is called Dynamically *
if the user double clicks the Production Order Number or the *
Material Number, the Complete transaction details will be *
displayed *
----
R_UCOMM *
RS_SELFIELD *
----
FORM Z_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD. "#EC NEEDED
CHECK R_UCOMM = '&IC1'. "User Double Clicked on Some field
CHECK NOT RS_SELFIELD-VALUE IS INITIAL.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'VBELN'.
READ TABLE IT_FINAL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC EQ 0.
SET PARAMETER ID 'AUN' FIELD IT_FINAL-VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF. " IF SY-SUBRC EQ 0
ENDCASE. " ENDCASE
ENDFORM. " FORM Z_USER_COMMAND
Message was edited by:
Amit Singla
2007 Oct 26 7:24 AM
Hi,
Build Field catalog.
1.If the field belongs to DDIC.(system defined field header)
Populate the following fields of the work area:-
wa_field-fieldname = (e.g, internal table field)
wa_field-tabname = (e.g, internal table name )
wa_field-ref_fieldname = (e.g, name of the corresponding field in DDIC ).
wa_field-ref_tabname = (e.g, name of the corresponding table in DDIC ).
APPEND wa_field TO t_field.
2.If the field does not belong to DDIC. (user defined field header)
Populate the following fields of the work area:-
wa_field-fieldname = (e.g, internal table field)
wa_field-tabname = (e.g, internal table field)
wa_field-reptext_ddic = (e.g, name of the user defined field header)
APPEND wa_field TO t_field.
<b>reward points if useful.</b>
regards,
Vinod Samuel.
2007 Oct 26 7:33 AM
Hi,
REPORT z_alv_list_block_2.
----
Demo of FM REUSE_ALV_LIST_DISPLAY - Several Lists *
----
Author : Michel PIOUD *
Email : [email protected] HomePage : http://www.geocities.com/mpioud *
----
Macro definition
DEFINE m_fieldcat.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = &2.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
append ls_sort to lt_sort.
END-OF-DEFINITION.
TYPE-POOLS: slis. " ALV Global types
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
DATA:
gs_layout TYPE slis_layout_alv,
1st Table
BEGIN OF gt_kna1 OCCURS 0, " Data displayed
kunnr LIKE kna1-kunnr, " Customer number
ernam LIKE kna1-ernam, " Name of Person who Created
erdat LIKE kna1-erdat, " Creation date
name1 LIKE kna1-name1, " Name 1
END OF gt_kna1,
2nd Table
BEGIN OF gt_mara OCCURS 0,
ernam LIKE mara-ernam, " Name of Person who Created
matnr LIKE mara-matnr, " Material number
ersda LIKE mara-ersda, " Creation date
brgew LIKE mara-brgew, " Gross weight
END OF gt_mara,
3rd Table
BEGIN OF gt_vbak OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales organization
kunnr LIKE vbak-kunnr, " Sold-to party
vbeln LIKE vbak-vbeln, " Sales document
netwr LIKE vbak-netwr, " Net Value of the Sales Order
waerk LIKE vbak-waerk, " SD document currency
END OF gt_vbak.
----
INITIALIZATION.
v_1 = 'Maximum of records to read'.
----
START-OF-SELECTION.
Read data
SELECT * FROM kna1
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_kna1.
SELECT * FROM mara
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_mara.
SELECT * FROM vbak
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
PERFORM f_display_data.
----
FORM USER_COMMAND *
----
FORM user_command USING i_ucomm LIKE sy-ucomm
is_selfield TYPE slis_selfield. "#EC CALLED
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-sel_tab_field(7).
WHEN 'GT_MARA'.
WHEN 'GT_KNA1'.
WHEN 'GT_VBAK'.
READ TABLE gt_vbak INDEX is_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. " USER_COMMAND
----
Form f_display_data
----
FORM f_display_data.
DATA :
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv, " Sort table
lt_events TYPE slis_t_event,
ls_event TYPE slis_alv_event.
gs_layout-group_change_edit = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-zebra = 'X'.
gs_layout-detail_popup = 'X'.
gs_layout-get_selinfos = 'X'.
Build field catalog and sort table
m_fieldcat 'KUNNR' 'KNA1'.
m_fieldcat 'ERNAM' 'KNA1'.
m_fieldcat 'ERDAT' 'KNA1'.
m_fieldcat 'NAME1' 'KNA1'.
m_sort 'KUNNR'.
Build Event Table
MOVE 'TOP_OF_PAGE' TO ls_event-name.
MOVE 'TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO lt_events.
MOVE 'END_OF_LIST' TO ls_event-name.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO lt_events.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = lt_fieldcat
is_layout = gs_layout
it_events = lt_events
it_sort = lt_sort
TABLES
t_outtab = gt_kna1.
ENDFORM. " F_DISPLAY_DATA
----
FORM top_of_page *
----
FORM top_of_page. "#EC CALLED
ULINE.
WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.
ULINE.
ENDFORM. " TOP_OF_PAGE
----
FORM End_of_list *
----
FORM end_of_list. "#EC CALLED
DATA :
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv, " Sort table
lt_events TYPE slis_t_event,
ls_event TYPE slis_alv_event.
Build field catalog and sort table
m_fieldcat 'MATNR' 'MARA'.
m_fieldcat 'ERNAM' 'MARA'.
m_fieldcat 'ERSDA' 'MARA'.
m_fieldcat 'BRGEW' 'MARA'.
m_sort 'MATNR'.
Build Event Table
MOVE 'END_OF_LIST' TO ls_event-name.
MOVE 'END_OF_LIST_2' TO ls_event-form.
APPEND ls_event TO lt_events.
gs_layout-list_append = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
it_fieldcat = lt_fieldcat
is_layout = gs_layout
it_sort = lt_sort
it_events = lt_events
TABLES
t_outtab = gt_mara.
ENDFORM. " END_OF_LIST
----
FORM End_of_list_2 *
----
FORM end_of_list_2. "#EC CALLED
DATA :
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv, " Sort table
lt_events TYPE slis_t_event,
ls_event TYPE slis_alv_event.
Build field catalog and sort table
m_fieldcat 'VBELN' 'VBAK'.
m_fieldcat 'VKORG' 'VBAK'.
m_fieldcat 'KUNNR' 'VBAK'.
m_fieldcat 'NETWR' 'VBAK'.
m_fieldcat 'WAERK' 'VBAK'.
m_sort 'VBELN'.
Build Event Table
MOVE 'TOP_OF_PAGE' TO ls_event-name.
MOVE 'TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO lt_events.
gs_layout-list_append = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
it_fieldcat = lt_fieldcat
is_layout = gs_layout
it_sort = lt_sort
it_events = lt_events
TABLES
t_outtab = gt_vbak.
ENDFORM. " END_OF_LIST_2
END OF PROGRAM Z_ALV_LIST_BLOCK_2 **********************
Reward if helpful.
Regards,
Harini.S