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

Interactive report with alv

Former Member
0 Likes
713

Hi All,

I have created a list in ALV format ,now i want to interact with the list in alv and i want to catch the two fields from the record not one field, how it can be possible.

example in my record

vbeln kunnr posnr ...........etc

when i interact i have to catch the vbeln and kunnr in to different variables please help me how it can be done.

Regards

krishna

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
688

Hi,

See this Example coding,

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = rep_id
   I_CALLBACK_PF_STATUS_SET          = data_slis_form
     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_GRID_SETTINGS                   =
     is_layout                         = gd_layout
     it_fieldcat                       = fieldcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
   I_SAVE                            = ' '
   IS_VARIANT                        = var_tab
     it_events                         = gt_events
*   IT_EVENT_EXIT                     =
   IS_PRINT                           = gd_prntparams
*   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_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = it_op
   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.

*------------------------------------------------------------------*
*       FORM USER_COMMAND                                          *
*------------------------------------------------------------------*
*       --> R_UCOMM                                                *
*       --> RS_SELFIELD                                            *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
**   Check field clicked on within ALVgrid report
      IF rs_selfield-fieldname = 'EQUNR'.
**     Read data table, using index of row user clicked on
        READ TABLE it_op INTO wa_op INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
        SET PARAMETER ID 'EQN' FIELD wa_op-equnr.
        CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
      ENDIF.
  ENDCASE.
ENDFORM.                    "user_command

Regards,

Morris Bond.

Reward Points if Helpful.

Hi,

See this Example coding,

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = rep_id
   I_CALLBACK_PF_STATUS_SET          = data_slis_form
     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_GRID_SETTINGS                   =
     is_layout                         = gd_layout
     it_fieldcat                       = fieldcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
   I_SAVE                            = ' '
   IS_VARIANT                        = var_tab
     it_events                         = gt_events
*   IT_EVENT_EXIT                     =
   IS_PRINT                           = gd_prntparams
*   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_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = it_op
   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.

*------------------------------------------------------------------*
*       FORM USER_COMMAND                                          *
*------------------------------------------------------------------*
*       --> R_UCOMM                                                *
*       --> RS_SELFIELD                                            *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
**   Check field clicked on within ALVgrid report
      IF rs_selfield-fieldname = 'EQUNR'.
**     Read data table, using index of row user clicked on
        READ TABLE it_op INTO wa_op INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
        SET PARAMETER ID 'EQN' FIELD wa_op-equnr.
        CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
      ENDIF.
  ENDCASE.
ENDFORM.                    "user_command

Regards,

Morris Bond.

Reward Points if Helpful.

6 REPLIES 6
Read only

Former Member
0 Likes
689

Hi,

See this Example coding,

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = rep_id
   I_CALLBACK_PF_STATUS_SET          = data_slis_form
     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_GRID_SETTINGS                   =
     is_layout                         = gd_layout
     it_fieldcat                       = fieldcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
   I_SAVE                            = ' '
   IS_VARIANT                        = var_tab
     it_events                         = gt_events
*   IT_EVENT_EXIT                     =
   IS_PRINT                           = gd_prntparams
*   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_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = it_op
   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.

*------------------------------------------------------------------*
*       FORM USER_COMMAND                                          *
*------------------------------------------------------------------*
*       --> R_UCOMM                                                *
*       --> RS_SELFIELD                                            *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
**   Check field clicked on within ALVgrid report
      IF rs_selfield-fieldname = 'EQUNR'.
**     Read data table, using index of row user clicked on
        READ TABLE it_op INTO wa_op INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
        SET PARAMETER ID 'EQN' FIELD wa_op-equnr.
        CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
      ENDIF.
  ENDCASE.
ENDFORM.                    "user_command

Regards,

Morris Bond.

Reward Points if Helpful.

Read only

Former Member
0 Likes
688

sample program for interactive ALV

&----


*& AS : ALV report displaying all the transaction codes in SAP

*& User can click any tcode on ALV and go to the same .The ALV displays

*& first 25 records and on refreshing displays the next set

*& of 25 records and so on

*& *

&----


REPORT zalv_tcoderefresh.*type pools for alv declarations

TYPE-POOLS: slis.*structure declaration for tstc table

TYPES : BEGIN OF ty_tstc,

tcode TYPE tcode,

pgmna TYPE program_id,

dypno TYPE dynpronr,

END OF ty_tstc.* Internal table and workarea declarations for tstc

DATA: it_tstc TYPE STANDARD TABLE OF ty_tstc,

wa_tstc TYPE ty_tstc.*data declarations for ALV

DATA: it_layout TYPE slis_layout_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

it_fieldcat TYPE slis_t_fieldcat_alv,

it_eventexit TYPE slis_t_event_exit,

wa_eventexit TYPE slis_event_exit.*initialisation event

INITIALIZATION.*start of selection event

START-OF-SELECTION.*subroutine to fetch data from the db table

PERFORM fetch_data.*subroutine for output display

PERFORM alv_output.&----


*& Form fetch_data

&----


  • *subroutine to fetch data from the db table

----


FORM fetch_data.*Internal table and work area declaratin for TSTC (local tables)

DATA : lt_tstc TYPE STANDARD TABLE OF ty_tstc,

ls_tstc TYPE ty_tstc.*Static field definition

*Reads the last tcode and stores it in l_tstc that on refresh further data

*beyond this value is fetched

STATICS l_tstc TYPE tcode.

  • Selection from the tstc table

*we select till 25 rows and on further refresh next 25 are selected

*we select transactions having screen numbers only

SELECT tcode

pgmna

dypno

FROM tstc

INTO CORRESPONDING FIELDS OF TABLE lt_tstc

UP TO 25 ROWS

WHERE tcode GT l_tstc

AND dypno NE '0000'.* Code for transferring the values of local table to output table

  • for 25 rows as sy-tfill is 25.

*In case there are no records a message pops up.

IF sy-subrc EQ 0.

DESCRIBE TABLE it_tstc.

READ TABLE lt_tstc INTO ls_tstc INDEX sy-tfill.

l_tstc = ls_tstc-tcode.

it_tstc[] = lt_tstc[].

ELSE.

MESSAGE 'No Records found ' TYPE 'i'.

ENDIF.

ENDFORM. "read_data&----


*& Form alv_output

&----


  • text

----


FORM alv_output.*subroutine to refresh alv

PERFORM event_exits.

*field catalogue

PERFORM build_fieldcat.

*Layout for alv

PERFORM build_layout.

*output display

PERFORM alv_display.ENDFORM. "alv_output&----


*& Form event_exits

&----


  • text

----


*subroutine to refresh alvFORM event_exits. CLEAR wa_eventexit.

wa_eventexit-ucomm = '&REFRESH'. " Refresh

wa_eventexit-after = 'X'.

APPEND wa_eventexit TO it_eventexit.ENDFORM. "event_exits&----


*& Form build_fieldcat

&----


  • text

----


*Field catalogue

FORM build_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '1'.

wa_fieldcat-fieldname = 'TCODE'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'TRANSACTION'.

APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '2'.

wa_fieldcat-fieldname = 'PGMNA'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'PROGRAM'.

APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '3'.

wa_fieldcat-fieldname = 'DYPNO'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'SCREEN'.

APPEND wa_fieldcat TO it_fieldcat.ENDFORM. "build_fieldcat&----


*& Form build_layout

&----


  • text

----


*Layout

FORM build_layout. it_layout-zebra = 'X'.

it_layout-colwidth_optimize = 'X'.ENDFORM. "build_layout&----


*& Form alv_display

&----


  • text

----


*ALV output

FORM alv_display. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_user_command = 'USER_COMMAND'

i_callback_pf_status_set = 'PFSTATUS'

it_fieldcat = it_fieldcat

is_layout = it_layout

it_event_exit = it_eventexit

i_screen_start_column = 10

i_screen_start_line = 20

i_screen_end_column = 70

i_screen_end_line = 45

i_grid_title = 'Call Tcode Refresh ALV'

TABLES

t_outtab = it_tstc.ENDFORM. "alv_display

&----


*& Form user_command

&----


  • text

----


*User actions on ALV

FORM user_command USING r_ucomm TYPE sy-ucomm

rs_selfield TYPE slis_selfield. CASE r_ucomm.*User clicks a transaction code and that tcode is called from ALV

WHEN '&IC1'.

READ TABLE it_tstc INDEX rs_selfield-tabindex INTO wa_tstc.

IF sy-subrc = 0.

CALL TRANSACTION wa_tstc-tcode.

ENDIF.*user clicks the refresh button and the next 25 records are displayed

WHEN '&REFRESH'.

PERFORM fetch_data.

rs_selfield-refresh = 'X'.

rs_selfield-col_stable = 'X' .

rs_selfield-row_stable = 'X' .

ENDCASE.ENDFORM. "user_command----


  • FORM PFSTATUS *

----


*Form for settings the pf status to the alv

FORM pfstatus USING ut_extab TYPE slis_t_extab. SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.ENDFORM. " PF_STATUS_SET

Read only

Former Member
0 Likes
688

HI,

see the code



FORM TEST using comm like sy-ucomm
      sel type slis_selfield.
  read table itab into wa_itab index sel-tabindex.
*from wa_itab u can move the values to desired variables
endform.

rgds,

bharat.

Read only

Former Member
0 Likes
688

Hi,

Have a look on the folowing code,it displays the secondary list

based on the field EBELN in first level report.

===================================================================

  • This report was initially created by ALVRobot.com.ar

  • Please, read terms and conditions on the site.

===================================================================

  • Author:

  • 16.11.07 -

*

===================================================================

report ZSDN_PRG1.

========================== Global definitions ====================

TYPE-POOLS SLIS.

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.

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.

DATA: V_REPID TYPE SY-REPID,

I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,

I_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FLDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST ALV REPORT',

I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDARY ALV REPORT'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM FLDCATALOG.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM DISPLAY_ALV_REPORT.

FORM FLDCATALOG.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'EBELN'.

WA_FLDCAT-SELTEXT_M = 'PO NUMBER'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'AEDAT'.

WA_FLDCAT-SELTEXT_M = 'DATE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'BUKRS'.

WA_FLDCAT-SELTEXT_M = 'DOCUMENT TYPE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'LIFNR'.

WA_FLDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

ENDFORM.

FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR

FROM EKKO INTO TABLE IT_EKKO.

ENDFORM.

FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = I_FLDCAT[]

I_SAVE = 'A'

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.

FORM USER_COMMAND USING R_COMM TYPE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_COMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'EBELN'.

SET PARAMETER ID 'BES' FIELD WA_EKKO-EBELN. " BES is data element of EBELN

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM FLDCAT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM DISPLAY_ALV_REPORT_EKPO.

ENDIF.

ENDCASE.

ENDFORM.

FORM FLDCAT_EKPO.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'EBELN'.

WA_FLDCAT1-SELTEXT_M = 'PO NUMBER'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'EBELP'.

WA_FLDCAT1-SELTEXT_M = 'LINE NO'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MATNR'.

WA_FLDCAT1-SELTEXT_M = 'MATERIAL NUMBER'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MENGE'.

WA_FLDCAT1-SELTEXT_M = 'QUANTITY'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MEINS'.

WA_FLDCAT1-SELTEXT_M = 'BASE UNIT OF MEASURE'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'NETPR'.

WA_FLDCAT1-SELTEXT_M = 'PRICE'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

ENDFORM.

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR

INTO TABLE IT_EKPO

FROM EKPO.

ENDFORM.

FORM DISPLAY_ALV_REPORT_EKPO.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IT_FIELDCAT = I_FLDCAT1[]

I_SAVE = 'A'

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.

REFRESH: IT_EKPO,I_FLDCAT1.

ENDFORM.

Reward,if useful.

Thanks,

Chandu

Read only

Former Member
0 Likes
688

Hi,

Please see the code below:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZMPMA01A'

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

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = ITFLD[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

    • IS_REPREP_ID =

I_SCREEN_START_COLUMN = 25

I_SCREEN_START_LINE = 5

I_SCREEN_END_COLUMN = 115

I_SCREEN_END_LINE = 20

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_PLAN

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.

WHEN 'EXIT' .

CALL SCREEN 112.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Form USER-COMMAND

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM USER-COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE

SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'ERDAT'

OR RS_SELFIELD-FIELDNAME = 'AUFNR'

OR RS_SELFIELD-FIELDNAME = 'OPERN'

OR RS_SELFIELD-FIELDNAME = 'QMNUM'

OR RS_SELFIELD-FIELDNAME = 'TPLNR'.

*MOVE-CORRESPONDING RS_SELFIELD to SPFLI.

READ TABLE IT_PLAN index RS_SELFIELD-tabindex

INTO WA_PLAN.

SELECT SINGLE *

FROM ZIRPACTIVITY

INTO zirpactivity

WHERE ERDAT = WA_PLAN-ERDAT AND

AUFNR = WA_PLAN-AUFNR AND

OPERN = WA_PLAN-OPERN AND

QMNUM = WA_PLAN-QMNUM AND

TPLNR = WA_PLAN-TPLNR.

  • IF SY-SUBRC = 0.

*

CALL SCREEN 112.

ENDIF.

ENDCASE.

ENDFORM. " USER-COMMAND

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

Former Member
0 Likes
688

REPORT intractive.

TYPE-POOLS: slis.

TABLES: kna1,vbak.

TYPES: BEGIN OF ty_kna1,

kunnr LIKE kna1-kunnr,

land1 LIKE kna1-land1,

name1 LIKE kna1-name1,

ort01 LIKE kna1-ort01,

END OF ty_kna1.

TYPES: BEGIN OF ty_vbak,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

ernam LIKE vbak-ernam,

  • netwr LIKE vbak-netwr,

END OF ty_vbak.

DATA: it_kna1 TYPE TABLE OF ty_kna1,

wa_kna1 TYPE ty_kna1,

it_vbak TYPE TABLE OF ty_vbak,

wa_vbak TYPE ty_vbak.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

it_event TYPE slis_t_event,

wa_event TYPE slis_alv_event,

it_listheader TYPE slis_t_listheader,

wa_listheader TYPE slis_listheader,

wa_layout TYPE slis_layout_alv ,

hline TYPE slis_listheader.

  • wa_selfield TYPE slis_selfield.

DATA: i_title_KNA1 TYPE lvc_title VALUE 'FIRST LIST DISPLAYED',

i_title_VBAK TYPE lvc_title VALUE 'SECONDRY LIST DISPLAYED'.

SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1000 TO 1500.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: r1 RADIOBUTTON GROUP g1 DEFAULT 'X'.

PARAMETERS: r2 RADIOBUTTON GROUP g1.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

PERFORM layout.

PERFORM fieldcat_kna1.

PERFORM event.

PERFORM eventpopulate.

START-OF-SELECTION.

PERFORM datafetch_kna1.

IF r1 = 'X'.

PERFORM display.

ENDIF.

IF r2 = 'X'.

PERFORM grid.

ENDIF.

&----


*& Form fieldcat

&----


  • text

----


FORM fieldcat_kna1.

**************FOR THE TABLE KNA1**********************

wa_fieldcat-fieldname = 'KUNNR'.

wa_fieldcat-seltext_l = 'CUSTOMER NUMBER'.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 10.

wa_fieldcat-tabname = 'IT_KNA1'.

wa_fieldcat-key = 'X'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 1.

wa_fieldcat-emphasize = 'C11'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'LAND1'.

wa_fieldcat-seltext_l = 'COUNTRY CODE'.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 10.

wa_fieldcat-tabname = 'IT_KNA1'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-emphasize = 'C61'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'NAME1'.

wa_fieldcat-seltext_l = 'CUSTOMER NAME'.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 15.

wa_fieldcat-tabname = 'IT_KNA1'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 2.

wa_fieldcat-emphasize = 'C31'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ORT01'.

wa_fieldcat-seltext_l = 'COUNTRY '.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 10.

wa_fieldcat-tabname = 'IT_KNA1'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 3.

wa_fieldcat-emphasize = 'C71'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

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

ENDFORM. "fieldcat

&----


*& Form datafetch

&----


  • text

----


FORM datafetch_kna1.

SELECT kunnr land1 name1 ort01

FROM kna1

INTO TABLE it_kna1

WHERE kunnr IN s_kunnr.

ENDFORM. "datafetch

&----


*& Form LAYOUT

&----


  • text

----


FORM layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

ENDFORM. "LAYOUT

&----


*& Form display

&----


  • text

----


FORM display.

CALL FUNCTION 'REUSE_ALV_LIST_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_STRUCTURE_NAME =

is_layout = wa_layout

it_fieldcat = it_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = it_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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_kna1

EXCEPTIONS

program_error = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "display

&----


*& Form GRID

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM grid .

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

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

  • I_GRID_SETTINGS =

is_layout = wa_layout

it_fieldcat = it_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = it_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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_kna1

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. "GRID

&----


*& Form EVENT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM event .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • i_list_type = 0

IMPORTING

et_events = it_event

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

&----


*& Form eventpopulate

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM eventpopulate .

READ TABLE it_event INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.

IF sy-subrc EQ 0.

wa_event-form = 'TOP_OF_PAGE'.

MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.

ENDIF.

READ TABLE it_event INTO wa_event WITH KEY name = 'END_OF_LIST'.

IF sy-subrc EQ 0.

wa_event-form = 'END_OF_LIST'.

MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.

ENDIF.

READ TABLE it_event INTO wa_event WITH KEY name = 'USER_COMMAND'.

IF sy-subrc EQ 0.

wa_event-form = 'USER_COMMAND'.

MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.

ENDIF.

ENDFORM. " eventpopulate

&----


*& Form top-of-page

&----


  • text

----


FORM top_of_page.

hline-typ = 'H'.

hline-info = 'Customer Details'.

APPEND hline TO it_listheader.

CLEAR hline.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader

i_logo = 'JELOGO'

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

REFRESH it_listheader.

ENDFORM. "top-of-page

&----


*& Form END-OF-PAGE

&----


  • text

----


FORM end_of_list.

WRITE:/ 'JAGADISH RAJ KUMAR'.

ENDFORM. "end-of-LIST

&----


*& Form USER-COMMAND

&----


  • text

----


  • -->V_UCOMM text

----


FORM USER_COMMAND

USING U_COMM TYPE SY-UCOMM

R_SELFIELD TYPE SLIS_SELFIELD.

SELECT kunnr vbeln erdat ernam

FROM vbak

INTO corresponding fields of TABLE it_vbak

WHERE kunnr = R_SELFIELD-value.

PERFORM fieldcat_vbak.

PERFORM display_vbak.

ENDFORM. "USER-COMMAND

&----


*& Form FIELDCAT_VBAK

&----


  • text

----


FORM fieldcat_vbak.

refresh it_fieldcat.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'VBELN'.

wa_fieldcat-seltext_l = 'SALES ORDER'.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 10.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-key = 'X'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 1.

wa_fieldcat-emphasize = 'C11'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERDAT'.

wa_fieldcat-seltext_l = 'CREATED ON'.

wa_fieldcat-datatype = 'DATS'.

wa_fieldcat-outputlen = 12.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 3.

wa_fieldcat-emphasize = 'C51'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERNAM'.

wa_fieldcat-seltext_l = 'CREATED BY'.

wa_fieldcat-datatype = 'CHAR'.

wa_fieldcat-outputlen = 15.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-col_pos = 2.

wa_fieldcat-emphasize = 'C61'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

  • wa_fieldcat-cfieldname = 'NETWR'.

  • wa_fieldcat-seltext_l = 'NET VALUE'.

  • wa_fieldcat-datatype = 'CURR'.

  • wa_fieldcat-outputlen = 10.

  • wa_fieldcat-tabname = 'IT_VBAK'.

  • wa_fieldcat-hotspot = 'X'.

  • wa_fieldcat-col_pos = 4.

  • APPEND wa_fieldcat TO it_fieldcat.

    • CLEAR wa_fieldcat.

ENDFORM. "FIELDCAT_VBAK

*&----


*& Form DISPLAY_VBAK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_vbak .

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

  • I_CALLBACK_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_VBAK

  • I_GRID_SETTINGS =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_vbak

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_VBAK