Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

urgent

Former Member
0 Likes
716

how we create fieldcatalog to display the data of ddic in alv.

how we create fieldcatalog to display the data of ddic in alv.

3 REPLIES 3
Read only

Former Member
0 Likes
667

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

Read only

Former Member
0 Likes
667

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.

Read only

Former Member
0 Likes
667

Hi,

REPORT z_alv_list_block_2.

----


  • Demo of FM REUSE_ALV_LIST_DISPLAY - Several Lists *

----


----


  • 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