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 report

Former Member
0 Likes
579

i am trying to do alv interactive report. but i am not getting

can any one send me logic i mean what command i have to use and how to use that commands ,

5 REPLIES 5
Read only

Former Member
0 Likes
558

HI

check this one

&----


*& Report ZALV_FIELD_GRID1

*&

&----


*&

*&

&----


REPORT ZALV_FIELD_GRID1

NO STANDARD PAGE HEADING.

TABLES MARA.

type-pools :slis.

TYPES : BEGIN OF TMARA ,

MATNR LIKE MARA-MATNR,

MEINS LIKE MARA-MEINS,

ERSDA LIKE MARA-ERSDA,

color(4) type c,

SEL type c,

LIGHT TYPE C,

END OF TMARA.

TYPES: BEGIN OF TMAKT,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

SEL TYPE C,

COLOR(4),

END OF TMAKT.

DATA: ITAB TYPE TMARA OCCURS 0 WITH HEADER LINE,

ITAB1 TYPE TMAKT OCCURS 0 WITH HEADER LINE,

wa_fieldcat type slis_fieldcat_alv,

fieldcat type slis_fieldcat_alv occurs 0,

i_layout type slis_layout_alv,

WA_LISTHEADER TYPE SLIS_LISTHEADER,

i_LISTHEADER TYPE SLIS_LISTHEADER OCCURS 0,

V_EVENTS TYPE SLIS_T_EVENT ,

WA_EVENT TYPE SLIS_ALV_EVENT,

I_TITLE_MARA TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',

I_TITLE_MAKT TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED',

SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE,

PRINT_CONT type slis_print_alv.

*----


  • SELECTION SCREE

*----


selection-screen begin of block screen1 with frame title TEXT-001.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN COMMENT /32(35) COMM1.

SELECTION-SCREEN ULINE /27(35).

SELECTION-SCREEN SKIP.

SELECT-OPTIONS MATNR FOR MARA-MATNR.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN COMMENT /30(50) COMM2.

SELECTION-SCREEN ULINE /27(40).

SELECTION-SCREEN SKIP.

SELECT-OPTIONS ERSDA FOR MARA-ERSDA.

SELECTION-SCREEN SKIP.

selection-screen end of block screen1.

*----


  • INITIALIZATION

*----


INITIALIZATION.

MATNR-low = '23'.

MATNR-high = '1000'.

MATNR-option = 'BT'.

MATNR-sign = 'I'.

APPEND MATNR.

ERSDA-low = '20030124'.

ERSDA-high = '20050302' .

APPEND ERSDA.

PERFORM FILLFIELD.

PERFORM FILLLAYOUT.

PERFORM build_print_params.

PERFORM FILL_SORT.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

*----


  • SELECTION-SCREEN OUTPUT

*----


AT SELECTION-SCREEN OUTPUT.

comm1 ='SELECT MATERIAL NUMBER RANGE'.

comm2 ='SELECT MATERIAL CREATION DATE'.

*----


  • START-OF-SELECTION

*----


START-OF-SELECTION.

PERFORM READDATA.

PERFORM POPDATA.

&----


*& Form READDATA

&----


  • text

----


FORM READDATA .

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = MATNR-LOW

IMPORTING

OUTPUT = MATNR-LOW.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = MATNR-HIGH

IMPORTING

OUTPUT = MATNR-HIGH.

SELECT MATNR

ERSDA

MEINS

FROM MARA

INTO CORRESPONDING FIELDS OF

TABLE ITAB

WHERE MATNR IN MATNR AND ERSDA IN ERSDA.

LOOP AT ITAB.

data id_color type i VALUE 1.

data id_colors(2) type c.

IF ITAB-MATNR < '000000000000000100'.

ITAB-LIGHT = '1'.

ELSEIF ITAB-MATNR < '000000000000000150' AND ITAB-MATNR >

'000000000000000100' .

ITAB-LIGHT = '2'.

ELSE.

ITAB-LIGHT = '3'.

ENDIF.

id_color = id_color + 1.

if id_color > 7.

id_color = 1.

endif.

id_colors = id_color.

concatenate 'C' id_colors '10' into itab-color.

modify itab.

CLEAR ITAB.

endloop.

ENDFORM. " READDATA

----


  • Form FILLFIELD

----


FORM FILLFIELD .

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-KEY = 'X'.

WA_FIELDCAT-COL_POS = '1'.

WA_FIELDCAT-outputlen = 20.

WA_FIELDCAT-HOTSPOT = 'X'.

wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.

*WA_FIELDCAT-EMPHASIZE = 'C210'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-COL_POS = '2'.

*WA_FIELDCAT-EMPHASIZE = 'C510'.

WA_FIELDCAT-outputlen = 10.

wa_fieldcat-seltext_m = 'UNIT'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'ERSDA'.

WA_FIELDCAT-COL_POS = '3'.

WA_FIELDCAT-outputlen = 15.

*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.

*WA_FIELDCAT-EMPHASIZE = 'C710'.

wa_fieldcat-seltext_m = 'CREAT DATE'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

ENDFORM. "FILLFIELD

&----


  • Setup print parameters

----


form build_print_params.

PRINT_CONT-reserve_lines = '3'. "Lines reserved for footer

PRINT_CONT-no_coverpage = 'X'.

endform. " BUILD_PRINT_PARAMS

----


  • Form POPDATA

----


FORM POPDATA .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = sy-repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER-COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOPPAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_MARA

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = SORT[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

  • IT_EVENT_EXIT =

IS_PRINT = PRINT_CONT

TABLES

T_OUTTAB = ITAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

ENDFORM. " POPDATA

----


  • Form TOPPAGE

----


FORM TOPPAGE.

REFRESH I_LISTHEADER.

DATA: ld_lines type i,

ld_linesc(10) type c,

I_DATE(10) TYPE C,

I_INFO LIKE WA_LISTHEADER-INFO.

WA_LISTHEADER-TYP = 'H'.

WA_LISTHEADER-INFO = 'MATERIAL DETAIL'.

APPEND WA_LISTHEADER TO I_LISTHEADER.

CLEAR WA_LISTHEADER.

WA_LISTHEADER-TYP = 'S'.

WA_LISTHEADER-KEY = 'DATE :'.

CONCATENATE SY-DATUM+6(2) '.'

SY-DATUM+4(2) '.'

SY-DATUM(4) INTO I_DATE.

WA_LISTHEADER-INFO = I_datE.

APPEND WA_LISTHEADER TO I_LISTHEADER.

CLEAR WA_LISTHEADER.

describe table ITAB lines ld_lines.

ld_linesc = ld_lines.

concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc

into I_INFO separated by space.

WA_LISTHEADER-TYP = 'A'.

WA_LISTHEADER-INFO = I_INFO.

append WA_LISTHEADER to I_LISTHEADER.

clear: WA_LISTHEADER , I_INFO.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = I_LISTHEADER

I_LOGO = 'ENJOYSAP_LOGO'.

ENDFORM. "TOPPAGE

----


  • Form FILLLAYOUT

----


FORM FILLLAYOUT .

i_layout-zebra = 'X'.

i_layout-info_fieldname = 'COLOR'.

i_layout-box_fieldname = 'SEL'.

I_LAYOUT-lights_fieldname = 'LIGHT'.

I_LAYOUT-EDIT ='X'.

I_LAYOUT-colwidth_optimize = 'X'.

I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.

I_LAYOUT-no_totalline = 'X'.

ENDFORM. "FILLLAYOUT

----


  • Form FILL_SORT

----


FORM FILL_SORT .

SORT-DOWN = 'X'.

SORT-SPOS = 1.

SORT-FIELDNAME = 'MATNR'.

SORT-tabname = 'MARA'.

APPEND SORT.

ENDFORM. " FILL_SORT

----


  • Form EVENT_CALL

----


FORM EVENT_CALL .

DATA: I_EVENT LIKE V_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS.

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

----


FORM POPULATE_EVENT .

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.

READ TABLE V_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE

INTO WA_EVENT.

IF SY-SUBRC = 0.

move 'END_OF_PAGE' to WA_EVENT-FORM.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

endif.

ENDIF.

ENDFORM. "POPULATE_EVENT

*----


FORM END_OF_PAGE.

write: sy-uline(50).

skip.

write:/40 'Page:', sy-pagno .

ENDFORM.

&----


*& Form USER_COMMAND

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

CASE RS_SELFIELD-FIELDNAME.

when 'MATNR'.

read table itab with key matnr = RS_SELFIELD-VALUE.

if sy-subrc = 0.

PERFORM DATA_RETRIEVAL_MAKT USING RS_SELFIELD-VALUE.

PERFORM BUILD_FIELDCATLOG_MAKT.

PERFORM FILLLAYOUT_MAKT.

PERFORM DISPLAY_ALV_MAKT.

CLEAR RS_SELFIELD.

ENDIF.

ENDCASE.

ENDCASE.

ENDFORM. "user_command

----


  • Form DATA_RETRIEVAL_MAKT

----


FORM DATA_RETRIEVAL_MAKT USING TMATNR .

SELECT MATNR

MAKTX

MAKTG

UP TO 100 ROWS

FROM MAKT

INTO TABLE ITAB1

WHERE SPRAS = 'EN' AND MATNR = TMATNR.

LOOP AT ITAB1.

data id_color type i VALUE 1.

data id_colors(2) type c.

id_color = id_color + 1.

if id_color > 7.

id_color = 1.

endif.

id_colors = id_color.

concatenate 'C' id_colors '10' into itab1-color.

modify itab1.

CLEAR ITAB1.

ENDLOOP.

ENDFORM. "DATA_RETRIEVAL_MAKT

----


  • Form FILLLAYOUT_MAKT

----


FORM FILLLAYOUT_MAKT .

CLEAR I_LAYOUT.

i_layout-zebra = 'X'.

i_layout-info_fieldname = 'COLOR'.

i_layout-box_fieldname = 'SEL'.

I_LAYOUT-EDIT ='X'.

I_LAYOUT-colwidth_optimize = 'X'.

I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.

ENDFORM. " LAYOUT_MAKT

----


  • Form BUILD_FIELDCATLOG_MAKT

----


FORM BUILD_FIELDCATLOG_MAKT .

REFRESH FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-KEY = 'X'.

WA_FIELDCAT-COL_POS = '1'.

*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.

WA_FIELDCAT-EMPHASIZE = 'C510'.

wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'MAKTX'.

WA_FIELDCAT-COL_POS = '2'.

WA_FIELDCAT-EMPHASIZE = 'C710'.

wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'MAKTG'.

WA_FIELDCAT-COL_POS = '3'.

WA_FIELDCAT-EMPHASIZE = 'C210'.

wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.

APPEND WA_FIELDCAT TO FIELDCAT.

clear wa_fieldcat.

ENDFORM. " BUILD_FIELDCATLOG_MAKT

----


  • Form DISPLAY_ALV_MAKT

----


FORM TOP-OF-PAGE.

REFRESH I_LISTHEADER.

DATA: ld_lines type i,

ld_linesc(10) type c,

I_DATE(10) TYPE C,

I_INFO LIKE WA_LISTHEADER-INFO.

WA_LISTHEADER-TYP = 'H'.

WA_LISTHEADER-INFO = 'MATERIAL DESCRIPTION FOR SELECTED NUMBER'.

APPEND WA_LISTHEADER TO I_LISTHEADER.

CLEAR WA_LISTHEADER.

WA_LISTHEADER-TYP = 'S'.

WA_LISTHEADER-KEY = 'DATE :'.

CONCATENATE SY-DATUM+6(2) '.'

SY-DATUM+4(2) '.'

SY-DATUM(4) INTO I_DATE.

WA_LISTHEADER-INFO = I_datE.

APPEND WA_LISTHEADER TO I_LISTHEADER.

CLEAR WA_LISTHEADER.

describe table ITAB1 lines ld_lines.

ld_linesc = ld_lines.

concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc

into I_INFO separated by space.

WA_LISTHEADER-TYP = 'A'.

WA_LISTHEADER-INFO = I_INFO.

append WA_LISTHEADER to I_LISTHEADER.

clear: WA_LISTHEADER , I_INFO.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = I_LISTHEADER

I_LOGO = 'ENJOYSAP_LOGO'.

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

ENDFORM. "TOP-OF-PAGE

&----


*& Form DISPLAY_ALV_MAKT

&----


  • text

----


FORM DISPLAY_ALV_MAKT .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'

I_GRID_TITLE = I_TITLE_MAKT

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = fieldcat

TABLES

T_OUTTAB = ITAB1

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_MAKT

reward points to all helpful answers

kiran.M

Read only

Former Member
0 Likes
558

Hi

*&---------------------------------------------------------------------*
*& Report  ZDEMOALVINTE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zdemoalvinte.


TYPE-POOLS:slis.
TABLES:ekko.
SELECT-OPTIONS:s_ebeln FOR ekko-ebeln.

DATA:BEGIN OF i_ekko OCCURS 0,
     ebeln LIKE ekko-ebeln,
     aedat LIKE ekko-aedat,
     bukrs LIKE ekko-bukrs,
     END OF i_ekko.

DATA:wa_ekko LIKE i_ekko.

DATA:BEGIN OF i_ekpo OCCURS 0,
     ebeln LIKE ekpo-ebeln,
     ebelp LIKE ekpo-ebelp,
     matnr LIKE ekpo-matnr,
     END OF i_ekpo.

DATA:wa_ekpo LIKE i_ekpo.



DATA:i_fcat TYPE slis_t_fieldcat_alv.
DATA:i_events TYPE slis_t_event.
DATA:i_repid LIKE sy-repid.
DATA:i_save VALUE 'A'.
DATA:i_layout TYPE slis_layout_alv.

DATA:i_variant LIKE disvariant.
DATA:i_variant1 LIKE disvariant.

i_repid = sy-repid.

DATA:i_listheader TYPE slis_t_listheader.


DATA:i_title_ekko TYPE lvc_title VALUE 'FIRST LIST SELECTED'.
DATA:i_title_ekpo TYPE lvc_title VALUE 'SECONDARY LIST SELECTED'.



PERFORM build_fieldcat.
PERFORM call_event.
PERFORM build_events.


START-OF-SELECTION.
  PERFORM select_data TABLES i_ekko.
  PERFORM build_list USING i_listheader.
  PERFORM display_alv.



*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcat .

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     i_program_name               = i_repid
     i_internal_tabname           = 'I_EKKO'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
     i_inclname                   = i_repid
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = i_fcat
* EXCEPTIONS
*   INCONSISTENT_INTERFACE       = 1
*   PROGRAM_ERROR                = 2
*   OTHERS                       = 3
            .
  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.                    " BUILD_FIELDCAT




*&---------------------------------------------------------------------*
*&      Form  CALL_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_event .

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     i_list_type           = 0
   IMPORTING
     et_events             = i_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.                    " CALL_EVENT





*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_events .
  DATA:i_event TYPE slis_alv_event.

  READ TABLE i_events WITH KEY name = 'TOP_OF_PAGE'
  INTO i_event.
  IF sy-subrc = 0.
    i_event-form = 'TOP_OF_PAGE'.
    MODIFY i_events FROM i_event TRANSPORTING form
    WHERE name = i_event-name.
  ENDIF.

  CLEAR i_event.
  READ TABLE i_events WITH KEY name = 'USER_COMMAND'
  INTO i_event.
  IF sy-subrc = 0.
    i_event-form = 'USER_COMMAND'.
    MODIFY i_events FROM i_event TRANSPORTING form
    WHERE name = i_event-name.
    CLEAR i_event.
  ENDIF.
ENDFORM.                    " BUILD_EVENTS





*&---------------------------------------------------------------------*
*&      Form  SELECT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_EKKO  text
*----------------------------------------------------------------------*
FORM select_data  TABLES   p_i_ekko LIKE i_ekko[].

  SELECT ebeln aedat bukrs FROM ekko INTO TABLE p_i_ekko
  WHERE ebeln IN s_ebeln.

ENDFORM.                    " SELECT_DATA



*&---------------------------------------------------------------------*
*&      Form  BUILD_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_LISTHEADER  text
*----------------------------------------------------------------------*
FORM build_list  USING    p_i_listheader TYPE slis_t_listheader.
  DATA i_line TYPE slis_listheader.

  CLEAR i_line.

  i_line-typ = 'H'.
  i_line-info = 'THIS IS A ALV REPORT'.
  APPEND i_line TO p_i_listheader.


ENDFORM.                    " BUILD_LIST




*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = i_repid
*   I_CALLBACK_PF_STATUS_SET          = ' '
     i_callback_user_command           = '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_ekko
*   I_GRID_SETTINGS                   =
     is_layout                         = i_layout
     it_fieldcat                       = i_fcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
     i_save                            = i_save
     is_variant                        = i_variant
     it_events                         = i_events
*   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                          = i_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

*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top_of_page.


  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary       = i_listheader
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
            .
ENDFORM.                    "TOP_OF_PAGE

*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM    text
*      -->R_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE sy-ucomm
r_selfield TYPE slis_selfield.
  CASE r_ucomm.

    WHEN '&IC1'.

      READ TABLE i_ekko INTO wa_ekko INDEX r_selfield-tabindex.
      PERFORM build_fieldcat_ekpo.
      PERFORM call_event_ekpo.
      PERFORM build_events_ekpo.
      PERFORM data_get TABLES i_ekpo.
      PERFORM build_list1 USING i_listheader.
      PERFORM display_alv_ekpo.
  ENDCASE.

ENDFORM.                    "USER_COMMAND




*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT_EKPO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcat_ekpo  .

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     i_program_name               = i_repid
     i_internal_tabname           = 'I_EKPO'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
     i_inclname                   = i_repid
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = i_fcat
* EXCEPTIONS
*   INCONSISTENT_INTERFACE       = 1
*   PROGRAM_ERROR                = 2
*   OTHERS                       = 3
            .
  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.                    " BUILD_FIELDCAT_EKPO




*&---------------------------------------------------------------------*
*&      Form  CALL_EVENT_EKPO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_event_ekpo .

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     i_list_type           = 0
   IMPORTING
     et_events             = i_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.                    " CALL_EVENT_EKPO



*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENTS_EKPO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_events_ekpo .

  DATA:i_event TYPE slis_alv_event.
  READ TABLE i_events WITH KEY name = 'TOP_OF_PAGE'
  INTO i_event.
  IF sy-subrc = 0.
    i_event-form = 'TOP_OF_PAGE'.

    MODIFY i_events FROM i_event TRANSPORTING form WHERE
    name = i_event-name.
    CLEAR i_event.
  ENDIF.
ENDFORM.                    " BUILD_EVENTS_EKPO


*&---------------------------------------------------------------------*
*&      Form  F_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM f_top_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary       = i_listheader
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
            .

ENDFORM.                    "F_TOP_OF_PAGE




*&---------------------------------------------------------------------*
*&      Form  DATA_GET
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_EKPO  text
*----------------------------------------------------------------------*
FORM data_get  TABLES   p_i_ekpo LIKE i_ekpo[].

  SELECT ebeln ebelp matnr FROM ekpo INTO TABLE i_ekpo
  WHERE ebeln = wa_ekko-ebeln.

ENDFORM.                    " DATA_GET





*&---------------------------------------------------------------------*
*&      Form  BUILD_LIST1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_LISTHEADER  text
*----------------------------------------------------------------------*
FORM build_list1  USING    p_i_listheader TYPE slis_t_listheader.

  DATA:i_line TYPE slis_listheader.

  CLEAR i_line.
  i_line-typ = 'H'.
  i_line-info = 'THIS IS A ALV INTERACTIVE REPORT'.
  APPEND i_line TO p_i_listheader.
ENDFORM.                    " BUILD_LIST1





*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_EKPO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_alv_ekpo .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = i_repid
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
     i_callback_top_of_page            = 'F_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                         = i_layout
     it_fieldcat                       = i_fcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
     i_save                            = i_save
     is_variant                        = i_variant1
     it_events                         = i_events
*   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                          = i_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.                    " DISPLAY_ALV_EKPO

Regards

Ravish<b>

Reward if useful</b>

Read only

0 Likes
558

Thank you Ravish, Really this is very helpful coding to refer.

Thanks & Regards,

Surender.

Read only

0 Likes
558

Thank you Ravish, Really this is very helpful coding to refer.

Thanks & Regards,

Surender.

Read only