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

alv interactive

Former Member
0 Likes
556

hi all,

can any one tell me how to write the alv interactive report.

if possible send me a piece of code.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
533

hi gupta,

see the below code.

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

reward me if helpful.

4 REPLIES 4
Read only

Former Member
0 Likes
533

Hi,

report zna_001..

************************************************************************

***----


DECLARING TYPE-POOLS FOR ALV

************************************************************************

TYPE-POOLS: SLIS.

TYPE-POOLS: LIST.

************************************************************************

***----


DECLARING TABLES WORK AREA

************************************************************************

TABLES : KNA1,KNB1,VBAK,VBAP .

************************************************************************

***----


DECLARING INTERNAL TABLES

************************************************************************

DATA: BEGIN OF IKNA1 OCCURS 10,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

STRAS LIKE KNA1-STRAS,

REGIO LIKE KNA1-REGIO,

TELF1 LIKE KNA1-TELF1,

ORT01 LIKE KNA1-ORT01,

PSTLZ LIKE KNA1-PSTLZ,

LAND1 LIKE KNA1-LAND1,

END OF IKNA1.

DATA: IKNB1 LIKE KNB1 OCCURS 10 WITH HEADER LINE.

DATA: IVBAK LIKE VBAK OCCURS 10 WITH HEADER LINE.

DATA: IVBAP LIKE VBAP OCCURS 10 WITH HEADER LINE.

************************************************************************

TYPES: SLIS_TABNAME(30) TYPE C,

SLIS_FIELDNAME(30) TYPE C.

************************************************************************

***----


DECLARING INTERNAL TABLES FOR FIELDCATALOGUE

************************************************************************

DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA: VCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA: OCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA: ICAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

************************************************************************

***----


DECLARING INTERNAL TABLES TO WRITE IN THE LIST HEADERS

************************************************************************

DATA: LISTHEAD TYPE SLIS_T_LISTHEADER WITH HEADER LINE.

DATA: LISTKNB1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE.

DATA: LISTVBAK TYPE SLIS_T_LISTHEADER WITH HEADER LINE.

************************************************************************

***----


DECLARING STRUCTURES FOR LAYOUT

************************************************************************

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV,

TITLEBAR TYPE RSMPE-TITTEXT.

************************************************************************

***----


DECLARING INTERNAL TABLES FOR EVENTS IN ALV

************************************************************************

DATA: EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: EVENTONE TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: EVENTTWO TYPE SLIS_T_EVENT WITH HEADER LINE.

************************************************************************

***----


DECLARING ALV VARIABLES

************************************************************************

DATA: FIELDS TYPE SLIS_SELFIELD,

FIELDS1 TYPE SLIS_SELFIELD,

FIELDS2 TYPE SLIS_SELFIELD,

LIGHTS_TABNAME TYPE SLIS_TABNAME,

LIGHTS_FIELDNAME TYPE SLIS_FIELDNAME.

***The structure SELFIELD contains the following information about the

***current cursor position

***

***tabname : internal output table name

***tabindex : internal output table index

***fieldname: field name

***value : field contents

************************************************************************

***----


DECLARING VARIABLES

************************************************************************

DATA: UCOMM LIKE SY-UCOMM,

UCOMM1 LIKE SY-UCOMM,

UCOMM2 LIKE SY-UCOMM.

************************************************************************

***----


POPULATING INTERNAL TABLES

************************************************************************

SELECT * FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE IKNA1.

************************************************************************

***----


FIELD CATALOGUE FOR CUSTOMERS, FCAT

************************************************************************

FCAT-COL_POS = 1.

FCAT-FIELDNAME = 'KUNNR'. "CUSTOMER NUMBER

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C211'.

FCAT-HOTSPOT = 'X'.

APPEND FCAT.

FCAT-COL_POS = 2.

FCAT-FIELDNAME = 'NAME1'. "CUSTOMER NAME

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C412'.

FCAT-HOTSPOT = ' '.

APPEND FCAT.

FCAT-COL_POS = 3.

FCAT-FIELDNAME = 'STRAS'. "HOUSE OR STREET NUMBER

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C512'.

APPEND FCAT.

FCAT-COL_POS = 4.

FCAT-FIELDNAME = 'REGIO'. "REGION

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C612'.

APPEND FCAT.

FCAT-COL_POS = 5.

FCAT-FIELDNAME = 'TELF1'. "TELEPHONE NUMBER

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C710'.

APPEND FCAT.

FCAT-COL_POS = 6.

FCAT-FIELDNAME = 'ORT01'. "CITY

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C811'.

APPEND FCAT.

FCAT-COL_POS = 7.

FCAT-FIELDNAME = 'PSTLZ'. "POSTAL CODE

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C112'.

APPEND FCAT.

FCAT-COL_POS = 8.

FCAT-FIELDNAME = 'LAND1'. "COUNTRY

FCAT-REF_TABNAME = 'KNA1'.

FCAT-EMPHASIZE = 'C312'.

APPEND FCAT.

************************************************************************

***----


FIELD CATALOGUE FOR CUSTOMER COCODE, VCAT

************************************************************************

VCAT-COL_POS = 1.

VCAT-FIELDNAME = 'KUNNR'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-EMPHASIZE = 'C201'.

APPEND VCAT.

VCAT-COL_POS = 2.

VCAT-FIELDNAME = 'BUKRS'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-EMPHASIZE = 'C402'.

APPEND VCAT.

VCAT-COL_POS = 3.

VCAT-FIELDNAME = 'ERDAT'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-EMPHASIZE = 'C510'.

APPEND VCAT.

VCAT-COL_POS = 4.

VCAT-FIELDNAME = 'PERNR'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-EMPHASIZE = 'C811'.

APPEND VCAT.

VCAT-COL_POS = 5.

VCAT-FIELDNAME = 'VRSNR'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-EMPHASIZE = 'C811'.

APPEND VCAT.

************************************************************************

***----


FIELD CATALOGUE FOR ORDERS, OCAT

************************************************************************

OCAT-COL_POS = 1.

OCAT-FIELDNAME = 'KUNNR'. "CUSTOMER NUMBER

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C911'.

OCAT-HOTSPOT = 'X'.

APPEND OCAT.

OCAT-COL_POS = 2.

OCAT-FIELDNAME = 'VBELN'. "SALES DOCUMENT

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C710'.

OCAT-HOTSPOT = ' '.

APPEND OCAT.

OCAT-COL_POS = 3.

OCAT-FIELDNAME = 'ERDAT'. "DATE CREATED

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C311'.

APPEND OCAT.

OCAT-COL_POS = 4.

OCAT-FIELDNAME = 'AUART'. "SALES DOCUMENT TYPE

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C810'.

APPEND OCAT.

OCAT-COL_POS = 5.

OCAT-FIELDNAME = 'AUDAT'. "DOCUMENT DATE (DATE RECV/SENT)

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C411'.

APPEND OCAT.

OCAT-COL_POS = 6.

OCAT-FIELDNAME = 'NETWR'. "NET VALUE

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C910'.

OCAT-DO_SUM = 'X'.

APPEND OCAT.

OCAT-COL_POS = 7.

OCAT-FIELDNAME = 'WAERK'. "DOCUMENT CURRENCY

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C101'.

OCAT-CURRENCY = 'X'.

APPEND OCAT.

OCAT-COL_POS = 8.

OCAT-FIELDNAME = 'VKORG'. "SALES ORGANIATION

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C201'.

APPEND OCAT.

OCAT-COL_POS = 9.

OCAT-FIELDNAME = 'VTWEG'. "DRISTRIBUTION CHANNEL

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C611'.

APPEND OCAT.

OCAT-COL_POS = 10.

OCAT-FIELDNAME = 'VSBED'. "SHIPPING CONDITIONS

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C301'.

APPEND OCAT.

OCAT-COL_POS = 11.

OCAT-FIELDNAME = 'GRUPP'. "CUSTOMER CREDIT GROUP

OCAT-REF_TABNAME = 'VBAK'.

OCAT-EMPHASIZE = 'C401'.

APPEND OCAT.

************************************************************************

***----


FIELD CATALOGUE FOR ITEMS, ICAT

************************************************************************

ICAT-COL_POS = 1.

ICAT-FIELDNAME = 'VBELN'. "SALES DOCUMENT

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C201'.

APPEND ICAT.

ICAT-COL_POS = 2.

ICAT-FIELDNAME = 'POSNR'. "SALES DOCUMENT ITEM

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C401'.

APPEND ICAT.

ICAT-COL_POS = 3.

ICAT-FIELDNAME = 'MATNR'. "MATERIAL NUMBER

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C510'.

APPEND ICAT.

ICAT-COL_POS = 4.

ICAT-FIELDNAME = 'ZMENG'. "TARGET QUANTITY IN SALES UNITS

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C811'.

APPEND ICAT.

ICAT-COL_POS = 5.

ICAT-FIELDNAME = 'ZIEME'. "TARGET QUANTITY UoM

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C711'.

APPEND ICAT.

ICAT-COL_POS = 6.

ICAT-FIELDNAME = 'MATKL'. "MATERIAL GROUP

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C311'.

APPEND ICAT.

ICAT-COL_POS = 7.

ICAT-FIELDNAME = 'ARKTX'. "SHORT TEXT FOR ITEM TEXT

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C810'.

APPEND ICAT.

ICAT-COL_POS = 8.

ICAT-FIELDNAME = 'POSAR'. "ITEM TYPE

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C811'.

APPEND ICAT.

ICAT-COL_POS = 9.

ICAT-FIELDNAME = 'LFREL'. "ITEM RELEVENT FOR DELIVERY

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C611'.

APPEND ICAT.

ICAT-COL_POS = 10.

ICAT-FIELDNAME = 'FKREL'. "ITEM RELEVANT FOR BILLING

ICAT-REF_TABNAME = 'VBAP'.

ICAT-EMPHASIZE = 'C111'.

APPEND ICAT.

************************************************************************

***----


POPULATING ALV EVENTS INTERNAL TABLES

************************************************************************

EVENT-NAME = 'TOP_OF_PAGE'.

EVENT-FORM = 'TOPPAGE'.

APPEND EVENT.

EVENT-NAME = 'USER_COMMAND'.

EVENT-FORM = 'USECOMM'.

APPEND EVENT.

***----


EVENTONE-NAME = 'TOP_OF_PAGE'.

EVENTONE-FORM = 'TOPPAGEONE'.

APPEND EVENTONE.

EVENTONE-NAME = 'USER_COMMAND'.

EVENTONE-FORM = 'USECOMM1'.

APPEND EVENTONE.

***----


EVENTTWO-NAME = 'TOP_OF_PAGE'.

EVENTTWO-FORM = 'TOPPAGETWO'.

APPEND EVENTTWO.

EVENTTWO-NAME = 'USER_COMMAND'.

EVENTTWO-FORM = 'USECOMM2'.

APPEND EVENTTWO.

************************************************************************

***----


POPULATING ALV LAYOUT STRUCTURE

************************************************************************

I_LAYOUT-WINDOW_TITLEBAR = 'THIS IS MILTONS TITLE BAR'.

************************************************************************

***----


POPULATING ALV LIST HEADERS

************************************************************************

LISTHEAD-TYP = 'H'.

LISTHEAD-INFO = 'CLICK ON THE CUSTOMER TO GET COMPANY CODE DETAILS'.

APPEND LISTHEAD.

*DATA: CUST TYPE KUNNR.

*SELECT SINGLE KUNNR FROM KNA1 INTO CUST WHERE KUNNR = '0000001000'.

*LISTHEAD-TYP = 'S'.

*LISTHEAD-KEY = CUST.

*LISTHEAD-INFO = 'CUSUTOMER'.

*APPEND LISTHEAD.

LISTHEAD-TYP = 'A'.

LISTHEAD-INFO = 'GREAT PYRAMIDS IN THE BACKGROUND'.

APPEND LISTHEAD.

************************************************************************

*----


DISPLAY CUSTOMERS LIST IN GRID

************************************************************************

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

I_BACKGROUND_ID = 'TRVPICTURE22'

I_GRID_TITLE = 'CUSTOMERS MASTER DETAILS'

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = FCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = EVENT[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IKNA1

  • 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.

************************************************************************

*----


POPULATING ALV EVENT SUBROUTINES

************************************************************************

FORM TOPPAGE.

WRITE:/ 'CUSTOMER LIST'.

***----


ALV FUNTION TO WRITE IN THE LIST HEADER

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LISTHEAD[]

I_LOGO = 'EDSLOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOPPAGEONE.

WRITE:/ 'CUSTOMER COCODE LIST'.

***----


ALV FUNTION TO WRITE IN THE LIST HEADER

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LISTKNB1[]

I_LOGO = 'SAMP'

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOPPAGETWO.

WRITE:/ 'CUSTOMER ORDERS LIST'.

***----


ALV FUNTION TO WRITE IN THE LIST HEADER

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LISTVBAK[]

I_LOGO = 'MILTON'

  • I_END_OF_LIST_GRID =

.

ENDFORM.

************************************************************************

***------SUBROUTINE TO DISPLAY CCODES FOR SEL-CUSTOMERS IN GRID

************************************************************************

FORM USECOMM USING UCOMM LIKE SY-UCOMM FIELDS TYPE SLIS_SELFIELD.

READ TABLE IKNA1 INDEX FIELDS-TABINDEX.

SELECT * FROM KNB1 INTO CORRESPONDING FIELDS OF TABLE IKNB1 WHERE

KUNNR = IKNA1-KUNNR.

PERFORM LISTKNB1 USING IKNA1-KUNNR.

***----


DISPLAY CUSTOMER CCODES LIST IN GRID

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

I_STRUCTURE_NAME = 'KNB1'

I_BACKGROUND_ID = 'TRVPICTURE05'

I_GRID_TITLE = 'CUSTOMER COMPANY CODE DETAILS'

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = EVENTONE[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IKNB1

  • 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.

REFRESH LISTKNB1.

ENDFORM.

************************************************************************

***-------SUBROUTINE POPULATING ALV LIST HEADER FOR COCODE

************************************************************************

FORM LISTKNB1 USING VALUE(CUST) TYPE KUNNR.

LISTKNB1-TYP = 'H'.

LISTKNB1-INFO = 'DOUBLE-CLICK ON CUSTOMER TO GET THE ORDERS PLACED'.

APPEND LISTKNB1.

DATA: NAM TYPE NAME1.

SELECT SINGLE NAME1 FROM KNA1 INTO NAM WHERE KUNNR = CUST.

LISTKNB1-TYP = 'S'.

LISTKNB1-INFO = 'CUSUTOMER NAME'.

LISTKNB1-KEY = NAM.

APPEND LISTKNB1.

LISTKNB1-TYP = 'A'.

LISTKNB1-INFO = 'GREAT COMPANIES IN THE BACKGROUND'.

APPEND LISTKNB1.

LISTKNB1-TYP = 'A'.

LISTKNB1-INFO = 'GREAT PYRAMIDS IN THE BACKGROUND'.

APPEND LISTKNB1.

ENDFORM.

************************************************************************

***-------SUBROUTINE DISPLAYING CUSTOMERS ORDERS IN GRID DISPLAY

************************************************************************

FORM USECOMM1 USING UCOMM1 LIKE SY-UCOMM FIELDS1 TYPE SLIS_SELFIELD.

READ TABLE IKNB1 INDEX FIELDS1-TABINDEX.

SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE IVBAK WHERE

KUNNR = IKNB1-KUNNR.

PERFORM LISTVBAK. " USING IKNB1-KUNNR.

***----


DISPLAYING ORDERS IN GRID

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

I_BACKGROUND_ID = 'TRVPICTURE08'

I_GRID_TITLE = 'ORDERS PLACED BY THE CUSTOMER'

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = OCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = EVENTTWO[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IVBAK

  • 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.

REFRESH LISTVBAK.

ENDFORM.

FORM LISTVBAK. " USING VALUE(ORD) TYPE VBELN.

LISTVBAK-TYP = 'H'.

LISTVBAK-INFO = 'DOUBLE CLICK ON ORDER TO GET THE ITEMS ORDERED'.

APPEND LISTVBAK.

*DATA: NAM TYPE NAME1.

*SELECT SINGLE NAME1 FROM KNA1 INTO NAM WHERE KUNNR = CUST.

*LISTVBAK-TYP = 'S'.

*LISTVBAK-INFO = 'CUSUTOMER NAME'.

*LISTVBAK-KEY = NAM.

*APPEND LISTVBAK.

LISTVBAK-TYP = 'A'.

LISTVBAK-INFO = 'GREAT COMPANIES IN THE BACKGROUND'.

APPEND LISTVBAK.

ENDFORM.

************************************************************************

***------SUBROUTINE DIPLAYING LIST OF ITEMS ORDERD IN POPUP DISPLAY

************************************************************************

***

      • --------DISPLAYING ITEMS LIST IN POPUP LIST

      • REUSE_ALV_POPUP_TO_SELECT

      • Lists in dialog box (single or multiple selection is possible)

***

************************************************************************

FORM USECOMM2 USING UCOMM2 LIKE SY-UCOMM FIELDS2 TYPE SLIS_SELFIELD.

READ TABLE IVBAK INDEX FIELDS2-TABINDEX.

SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE IVBAP WHERE

VBELN = IVBAK-VBELN.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'LIST OF ITEMS OREDERD'

I_SELECTION = 'X'

  • I_ZEBRA = 'X'

I_SCREEN_START_COLUMN = 15

I_SCREEN_START_LINE = 5

I_SCREEN_END_COLUMN = 120

I_SCREEN_END_LINE = 15

  • I_CHECKBOX_FIELDNAME = 'NETWR'

  • I_LINEMARK_FIELDNAME = 'C50'

  • I_SCROLL_TO_SEL_LINE = 'X'

I_TABNAME = 'IVBAP'

  • I_STRUCTURE_NAME =

IT_FIELDCAT = ICAT[]

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE =

  • IMPORTING

  • ES_SELFIELD =

  • E_EXIT = 'X'

TABLES

T_OUTTAB = IVBAP

  • 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.

************************************************************************

Reward If Helpfull,

Naresh.

Read only

Former Member
0 Likes
533

Hi

There are many std reports to be used as samples: see the report like BALV* or BCALV.

Max

Read only

Former Member
0 Likes
534

hi gupta,

see the below code.

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

reward me if helpful.

Read only

Former Member
0 Likes
533

Hi Gupta,

Use this code , This produsec an interactive alv of the details of makt based on the value clicked in the first list containing mara table values.

REPORT ZMK_ALVREP.

TYPE-POOLS:SLIS.

TYPES: BEGIN OF TY_MARA.

INCLUDE STRUCTURE MARA.

TYPES: END OF TY_MARA.

TYPES: BEGIN OF TY_MAKT.

INCLUDE STRUCTURE MAKT.

TYPES: END OF TY_MAKT.

DATA: I_MARA TYPE TABLE OF TY_MARA,

W_MARA TYPE TY_MARA,

I_MAKT TYPE TABLE OF TY_MAKT,

W_MAKT TYPE TY_MAKT.

DATA : I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

I_EVENT TYPE SLIS_T_EVENT,

I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

SELECT * FROM MARA INTO TABLE I_MARA.

SELECT * FROM MAKT INTO TABLE I_MAKT.

PERFORM POPULATE.

PERFORM GRID.

FORM POPULATE .

W_FIELDCAT-FIELDNAME = 'MATNR'.

W_FIELDCAT-TABNAME = 'I_MAKT'.

W_FIELDCAT-REF_FIELDNAME ='MATNR'.

W_FIELDCAT-REF_TABNAME ='MAKT'.

W_FIELDCAT-SELTEXT_M = 'MATNR'.

APPEND W_FIELDCAT TO I_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-FIELDNAME = 'ERSDA'.

W_FIELDCAT-TABNAME = 'I_MAKT'.

W_FIELDCAT-REF_FIELDNAME ='ERSDA'.

W_FIELDCAT-REF_TABNAME ='MAKT'.

W_FIELDCAT-SELTEXT_M = 'ERSDA'.

APPEND W_FIELDCAT TO I_FIELDCAT.

CLEAR W_FIELDCAT.

ENDFORM. " populate

FORM GRID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_USER_COMMAND = 'LISTDISP'

IT_FIELDCAT = I_FIELDCAT

TABLES

T_OUTTAB = I_MAKT

.

ENDFORM. " Grid

FORM LISTDISP USING V_UCOMM LIKE SY-UCOMM HIDEV TYPE SLIS_SELFIELD.

SELECT * FROM MAKT INTO TABLE I_MAKT WHERE MATNR = HIDEV-VALUE.

PERFORM LIST.

ENDFORM. "LISTDISP

FORM LIST .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_STRUCTURE_NAME = 'MAKT'

TABLES

T_OUTTAB = I_MAKT.

ENDFORM. " List

Reward if useful.

Thanks,

Khan.