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
876

can someone give me the sample code for alv interactive

so that when i click on different fields on the output list it should take me to diffeernt transactions or different list.

rewards if it would help

7 REPLIES 7
Read only

Former Member
0 Likes
843

Hi,

Refer the below code....

&----


*& Report ZZZ_TEST_500

*&

&----


*&

*&

&----


REPORT zzz_test_500 LINE-COUNT 100.

TABLES:vbak.

TYPE-POOLS:slis.

TYPES:BEGIN OF ty_vbak,

vbeln LIKE vbak-vbeln,

auart LIKE vbak-auart,

kunnr LIKE vbak-kunnr,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

spart LIKE vbak-spart,

END OF ty_vbak,

BEGIN OF ty_vbap,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks,

lgort LIKE vbap-lgort,

ntgew LIKE vbap-ntgew,

END OF ty_vbap.

DATA:i_vbak TYPE STANDARD TABLE OF ty_vbak,

i_vbap TYPE STANDARD TABLE OF ty_vbap,

i_vbak_tmp TYPE STANDARD TABLE OF ty_vbak,

w_vbak TYPE ty_vbak,

w_vbap TYPE ty_vbap.

SELECT-OPTIONS:s_vbeln FOR vbak-vbeln.

PARAMETERS:p_var LIKE disvariant-variant.

*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

*SELECTION-SCREEN BEGIN OF LINE.

*SELECTION-SCREEN: COMMENT 1(9) text.

*SELECTION-SCREEN POSITION 10.

PARAMETER:var LIKE rlgrap-filename.

*SELECTION-SCREEN END OF LINE.

*SELECTION-SCREEN END OF BLOCK b1.

*Declarations for ALV

DATA:i_fieldcat TYPE slis_t_fieldcat_alv,

w_fieldcat LIKE LINE OF i_fieldcat,

w_layout TYPE slis_layout_alv,

disvar TYPE disvariant,

invariant TYPE disvariant,

i_event TYPE slis_t_event,

w_event TYPE slis_alv_event,

i_header TYPE slis_t_listheader,

w_header TYPE slis_listheader.

DATA:w_sort TYPE slis_sortinfo_alv,

i_sort TYPE slis_t_sortinfo_alv.

CONSTANTS:status TYPE slis_formname VALUE 'PF_STATUS'.

*INITIALIZATION.

*

  • text = 'VAR'.

AT SELECTION-SCREEN ON s_vbeln.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.

invariant-report = sy-repid.

CALL FUNCTION 'LVC_VARIANT_F4'

EXPORTING

is_variant = invariant

  • IT_DEFAULT_FIELDCAT =

  • I_SAVE = ' '

IMPORTING

  • e_exit =

es_variant = disvar

EXCEPTIONS

not_found = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc = 0.

p_var = disvar-variant.

ENDIF.

START-OF-SELECTION.

PERFORM read_data.

PERFORM build_fieldcat.

PERFORM prepare_events.

PERFORM display_output.

&----


*& Form read_data

&----


  • text

----


FORM read_data .

SELECT vbeln

auart

kunnr

vkorg

vtweg

spart FROM vbak

INTO TABLE i_vbak

WHERE vbeln IN s_vbeln.

IF sy-subrc = 0.

ENDIF.

i_vbak_tmp[] = i_vbak[].

APPEND LINES OF i_vbak_tmp TO i_vbak.

ENDFORM. " read_data

&----


*& Form build_fieldcat

&----


  • text

----


FORM build_fieldcat .

w_fieldcat-col_pos = 1.

w_fieldcat-fieldname = 'VBELN'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Sales Document #'.

w_fieldcat-sp_group = 'GRUP'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 2.

w_fieldcat-fieldname = 'AUART'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Order Type'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 3.

w_fieldcat-fieldname = 'KUNNR'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Customer #'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 4.

w_fieldcat-fieldname = 'VKORG'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Sales Org'.

w_fieldcat-sp_group = 'GRUP'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 5.

w_fieldcat-fieldname = 'VTWEG'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Distribution Channel'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 6.

w_fieldcat-fieldname = 'SPART'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Division'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_sort-fieldname = 'VBELN'.

w_sort-up = 'X'.

w_sort-tabname = 'I_VBAK'.

APPEND w_sort TO i_sort.

CLEAR w_sort.

ENDFORM. " build_fieldcat

&----


*& Form display_output

&----


  • text

----


FORM display_output .

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

  • 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_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = i_sort

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

is_variant = disvar

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

TABLES

t_outtab = i_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_output

&----


*& Form STATUS

&----


  • text

----


FORM pf_status USING extab TYPE slis_t_extab.

SET PF-STATUS 'TEST1'.

ENDFORM. "STATUS

&----


*& Form PREPARE_EVENTS

&----


  • text

----


FORM prepare_events .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = i_event

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2.

IF sy-subrc = 0.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_pf_status_set.

w_event-form = 'SET_PF_STATUS'.

MODIFY i_event FROM w_event INDEX sy-tabix.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_user_command.

w_event-form = 'USER_COMMAND'.

MODIFY i_event FROM w_event INDEX sy-tabix.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_top_of_page.

w_event-form = 'TOP_OF_PAGE'.

MODIFY i_event FROM w_event INDEX sy-tabix.

ENDIF.

ENDFORM. " PREPARE_EVENTS

&----


*& Form SET_PF_STATUS

&----


  • text

----


FORM set_pf_status USING extab TYPE slis_t_extab.

SET PF-STATUS 'TEST_NEW'.

ENDFORM. "SET_PF_STATUS

&----


*& Form USER_COMMAND

&----


  • text

----


FORM user_command USING rs_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE rs_ucomm.

WHEN 'VBAP'.

PERFORM display_vbap_data USING rs_selfield.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form DISPLAY_VBAP_DATA

&----


  • text

----


FORM display_vbap_data USING rs_selfield TYPE slis_selfield.

SET PARAMETER ID 'AUN' FIELD rs_selfield-value.

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDFORM. " DISPLAY_VBAP_DATA

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM top_of_page.

REFRESH i_header.

w_header-typ = 'H'.

w_header-info = sy-repid.

APPEND w_header TO i_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header

  • I_LOGO =

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

ENDFORM. " TOP_OF_PAGE

Rgds,

Bujji

Read only

Former Member
0 Likes
843

Hi

TYPE-POOLS : slis.

TYPES : BEGIN OF st_ekko,

ebeln TYPE ekko-ebeln, "Purchasing Document Number

bstyp TYPE ekko-bstyp, "Purchasing Document Category

bsart TYPE ekko-bsart, "Purchasing Document Type

aedat TYPE ekko-aedat, "record created on

ernam TYPE ekko-ernam, "Person who Created the Object

check(1),

END OF st_ekko.

TYPES : BEGIN OF st_ekpo,

ebeln TYPE ekko-ebeln,

ebelp TYPE ekpo-ebelp, "Item Number of Purchasing Document

ematn TYPE ekpo-ematn, "Material number

matkl TYPE ekpo-matkl, "Material group

netpr TYPE ekpo-netpr, "Net price in purchasing document

END OF st_ekpo.

TYPES : BEGIN OF st_ebeln,

ebeln TYPE ekpo-ebeln,

END OF st_ebeln.

TYPES : BEGIN OF st_eine,

ebeln TYPE ekko-ebeln,

ekorg TYPE eine-ekorg,

ekgrp TYPE eine-ekgrp,

END OF st_eine.

TYPES : BEGIN OF st_check,

check(1),

END OF st_check.

DATA : it_ekpo TYPE STANDARD TABLE OF st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

wa_ekko LIKE LINE OF it_ekko,

it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat LIKE LINE OF it_fieldcat,

wa_layout TYPE slis_layout_alv,

it_events TYPE slis_t_event,

st_event LIKE LINE OF it_events,

it_listheadr TYPE slis_t_listheader ,

wa_listheadr LIKE LINE OF it_listheadr,

st_printparams TYPE slis_print_alv,

it_sortinfo TYPE slis_t_sortinfo_alv,

wa_sortinfo LIKE LINE OF it_sortinfo,

it_ekposortinfo TYPE slis_t_sortinfo_alv,

wa_ekposortinfo LIKE LINE OF it_ekposortinfo,

it_filter TYPE slis_t_filter_alv,

it_ebeln TYPE STANDARD TABLE OF st_ebeln,

it_eine TYPE STANDARD TABLE OF st_eine,

wa_eine TYPE st_eine,

it_popup TYPE STANDARD TABLE OF st_eine,

wa_popup TYPE st_eine,

it_check TYPE STANDARD TABLE OF st_check,

wa_check TYPE st_check.

DATA : v_ebeln TYPE ekko-ebeln.

----


  • SELECTION-SCREEN

----


SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE tit.

SELECT-OPTIONS: so_ebeln FOR v_ebeln OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b.

----


  • INITIALIZATION

----


INITIALIZATION.

tit = text-000.

----


  • AT SELECTION-SCREEN ON

----


AT SELECTION-SCREEN ON so_ebeln.

PERFORM validate_ebeln.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

PERFORM get_ekko_data.

PERFORM get_eine_data.

----


  • END-OF-SELECTION

----


END-OF-SELECTION.

PERFORM populate_fieldcat1.

PERFORM populate_layout.

PERFORM get_eventlist.

PERFORM get_ekkosortinfo.

PERFORM ekkodisplay_onalv.

&----


*& Form POPULATE_FIELDCAT1

&----


FORM populate_fieldcat1.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-no_zero = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSTYP'.

wa_fieldcat-seltext_l = text-005.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSART'.

wa_fieldcat-seltext_l = text-006.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-seltext_l = text-007.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'ERNAM'.

wa_fieldcat-seltext_l = text-008.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "POPULATE_FIELDCAT1

&----


*& Form populate_fieldcat2

&----


FORM populate_fieldcat2 .

CLEAR wa_fieldcat.

CLEAR it_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-hotspot = 'X'.

  • wa_fieldcat-no_zero = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-seltext_l = text-009.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EMATN'.

wa_fieldcat-seltext_l = text-010.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'MATKL'.

wa_fieldcat-seltext_l = text-011.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-seltext_l = text-012.

wa_fieldcat-datatype = 'CURR'. "Obligatory to perform SUM

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "populate_fieldcat2

&----


*& Form GET_EVENTLIST

&----


FORM get_eventlist.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = it_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.

READ TABLE it_events WITH KEY name = slis_ev_pf_status_set INTO st_event.

IF sy-subrc EQ 0.

st_event-form = 'SET_PF_STATUS1'.

APPEND st_event TO it_events.

CLEAR st_event.

ENDIF.

READ TABLE it_events WITH KEY name = slis_ev_end_of_page INTO st_event.

IF sy-subrc EQ 0.

st_event-form = 'END_OF_PAGE'.

APPEND st_event TO it_events.

CLEAR st_event.

ENDIF.

ENDFORM. "GET_EVENTLIST

&----


*& Form ekpodisplay_onalv

&----


FORM ekpodisplay_onalv .

IF it_ekpo[] IS INITIAL.

MESSAGE 'NO DATA FOUND' TYPE 'I'.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'AT_USER_COMMAND1'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME = I_STRUCTURE_NAME

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE = I_GRID_TITLE

  • I_GRID_SETTINGS = I_GRID_SETTINGS

is_layout = wa_layout

it_fieldcat = it_fieldcat

  • IT_EXCLUDING = IT_EXCLUDING

  • IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS

it_sort = it_ekposortinfo[]

  • IT_FILTER = IT_FILTER

  • IS_SEL_HIDE = IS_SEL_HIDE

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = IS_VARIANT

  • it_events = it_events

  • IT_EVENT_EXIT = IT_EVENT_EXIT

  • IS_PRINT = IS_PRINT

  • IS_REPREP_ID = 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_ALV_GRAPHICS

  • IT_HYPERLINK = IT_HYPERLINK

  • IT_ADD_FIELDCAT = IT_ADD_FIELDCAT

  • IT_EXCEPT_QINFO = IT_EXCEPT_QINFO

  • IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER

  • ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER

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.

ENDIF.

ENDFORM. "ekpodisplay_onalv

&----


*& Form SET_PF_STATUS1

&----


FORM set_pf_status1 USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'MENU' excluding rt_extab. "Copy from SALV .

ENDFORM. "SET_PF_STATUS1

&----


*& Form SET_PF_STATUS

&----


FORM set_pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'STANDARD' excluding rt_extab. "Copy from SALV .

ENDFORM. "SET_PF_STATUS

&----


*& Form AT_user_command

&----


FORM at_user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-fieldname EQ 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SELECT ebeln ebelp ematn matkl netpr

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln EQ wa_ekko-ebeln.

PERFORM populate_fieldcat2.

PERFORM populate_layout2.

PERFORM get_ekposortinfo.

PERFORM ekpodisplay_onalv.

ELSE.

MESSAGE i020(z50871msg) WITH text-013.

ENDIF.

WHEN 'SE16'.

CALL TRANSACTION 'SE16'.

WHEN 'SE37'.

CALL TRANSACTION 'SE37'.

WHEN 'DISP'.

PERFORM get_popupdata.

PERFORM get_popupfcat.

PERFORM display_popup.

ENDCASE.

ENDFORM. "AT_user_command

&----


*& Form TOP_OF_PAGE

&----


FORM top_of_page.

REFRESH it_listheadr.

wa_listheadr-typ = 'H'.

wa_listheadr-info = text-001.

APPEND wa_listheadr TO it_listheadr.

CLEAR wa_listheadr.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheadr[]

i_logo = 'ENJOYSAP_LOGO'. "From OAER transaction

ENDFORM. "TOP_OF_PAGE

&----


*& Form build_print_params

&----


FORM build_print_params.

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

st_printparams-no_coverpage = 'X'.

ENDFORM. "build_print_params

&----


*& Form end_of_page

&----


FORM end_of_page.

REFRESH it_listheadr.

wa_listheadr-typ = 'H'.

wa_listheadr-info = sy-pagno.

APPEND wa_listheadr TO it_listheadr.

CLEAR wa_listheadr.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheadr[].

ENDFORM. "end_of_page

&----


*& Form GET_EKPOSORTINFO

&----


FORM get_ekposortinfo.

wa_ekposortinfo-up = 'X'.

wa_ekposortinfo-spos = 1.

wa_ekposortinfo-fieldname = 'EBELP'.

wa_ekposortinfo-tabname = 'EKPO'.

APPEND wa_ekposortinfo TO it_ekposortinfo.

CLEAR wa_ekposortinfo.

wa_ekposortinfo-up = 'X'.

wa_ekposortinfo-spos = 2.

wa_ekposortinfo-fieldname = 'EMATN'.

wa_ekposortinfo-tabname = 'EKPO'.

APPEND wa_ekposortinfo TO it_ekposortinfo.

CLEAR wa_ekposortinfo.

ENDFORM. "GET_EKPOSORTINFO

*

&----


*& Form POPULATE_LAYOUT

&----


FORM populate_layout.

wa_layout-colwidth_optimize = 'X'. "column width

wa_layout-zebra = 'X'.

  • wa_layout-no_hline = 'X'.

  • wa_layout-no_vline = 'X'.

  • wa_layout-cell_merge = 'X'.

wa_layout-box_fieldname = 'CHECK'.

wa_layout-box_tabname = 'IT_EKKO'.

wa_layout-window_titlebar = 'PURCHASE ORDER HEADER DETAILS'.

ENDFORM. "POPULATE_LAYOUT

&----


*& Form get_EKKOsortinfo

&----


FORM get_ekkosortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 1.

wa_sortinfo-fieldname = 'EBELN'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 2.

wa_sortinfo-fieldname = 'BSTYP'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 3.

wa_sortinfo-fieldname = 'AEDAT'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

ENDFORM. "get_EKKOsortinfo

&----


*& Form EKKODISPLAY_ONALV

&----


FORM ekkodisplay_onalv.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'SET_PF_STATUS1'

i_callback_user_command = 'AT_USER_COMMAND'

is_layout = wa_layout

it_fieldcat = it_fieldcat

it_sort = it_sortinfo[]

it_filter = it_filter

it_events = it_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. "EKKODISPLAY_ONALV

&----


*& Form validate_ebeln

&----


FORM validate_ebeln.

SELECT ebeln

FROM ekpo

INTO TABLE it_ebeln

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE e020(z50871msg) WITH text-014.

ENDIF.

ENDFORM. "validate_ebeln

&----


*& Form populate_layout2

&----


FORM populate_layout2 .

CLEAR wa_layout.

wa_layout-colwidth_optimize = 'X'. "column width

  • wa_layout-zebra = 'X'.

  • wa_layout-no_hline = 'X'.

  • wa_layout-no_vline = 'X'.

  • wa_layout-cell_merge = 'X'.

wa_layout-window_titlebar = 'PURCHASE ORDER DETAILS SECOND SCREEN'.

ENDFORM. " populate_layout2

&----


*& Form GET_POPUPDATA

&----


FORM get_popupdata .

LOOP AT it_ekko INTO wa_ekko WHERE check = 'X'.

READ TABLE it_eine INTO wa_eine WITH KEY ebeln = wa_ekko-ebeln.

IF sy-subrc NE 0.

MESSAGE i020(z50871msg) WITH text-015 wa_ekko-ebeln .

ELSE.

wa_popup-ebeln = wa_eine-ebeln.

wa_popup-ekorg = wa_eine-ekorg.

wa_popup-ekgrp = wa_eine-ekgrp.

APPEND wa_popup TO it_popup.

ENDIF.

ENDLOOP.

ENDFORM. " GET_POPUPDATA

&----


*& Form GET_POPUPFCAT

&----


FORM get_popupfcat .

CLEAR wa_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-hotspot = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EKORG'.

wa_fieldcat-seltext_l = text-016.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EKGRP'.

wa_fieldcat-seltext_l = text-017.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. " GET_POPUPFCAT

&----


*& Form DISPLAY_POPUP

&----


FORM display_popup .

LOOP AT it_ekko INTO wa_ekko WHERE check EQ 'X'.

wa_check-check = wa_ekko-check.

APPEND wa_check TO it_check.

ENDLOOP.

IF it_check[] IS INITIAL.

MESSAGE i020(z50871msg) WITH text-018.

ENDIF.

IF NOT it_popup[] IS INITIAL.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_title = text-003

i_allow_no_selection = 'X'

i_scroll_to_sel_line = 'X'

i_tabname = 'IT_POPUP'

it_fieldcat = it_fieldcat

i_callback_program = sy-repid

TABLES

t_outtab = it_popup

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.

ENDIF.

REFRESH it_check.

REFRESH it_popup.

ENDFORM. " DISPLAY_POPUP

&----


*& Form get_ekko_data

&----


FORM get_ekko_data .

SELECT ebeln bstyp bsart aedat ernam

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE it_ekko

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE e020(z50871msg) WITH text-019.

ENDIF.

ENDFORM. " get_ekko_data

&----


*& Form get_eine_data

&----


FORM get_eine_data .

SELECT ebeln ekorg ekgrp

FROM eine

INTO TABLE it_eine

WHERE ebeln IN so_ebeln.

ENDFORM. " get_eine_data

&----


*& Form at_user_command1

&----


FORM at_user_command1 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN 'SE16'.

CALL TRANSACTION 'SE16'.

WHEN 'SE37'.

CALL TRANSACTION 'SE37'.

ENDCASE.

ENDFORM. "at_user_command1

to get the standard tool bar in second screen also.....just copy the standard tool bar.....goto se80....in function group...give salv----and copy and give u r target program there....then u can get the standard tool bar....

in se41....give the name of which have given in se80...i.e STANDARD...in the above program..save and activate.

and if u want 2 add any menu items goto se41...and add.

Edited by: Jyothsna M on Mar 5, 2008 7:34 AM

Read only

former_member609120
Contributor
0 Likes
843

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

  • Check function code

IF R_UCOMM = '&IC1'.

  • Check field clicked on within ALVgrid report

  • Read data table, using index of row user clicked on

READ TABLE I_DATA INTO WA_DATA INDEX RS_SELFIELD-TABINDEX.

  • Set parameter ID for transaction screen field if needed

CALL TRANSACTION 'TCode' AND SKIP FIRST SCREEN.

Read only

Former Member
0 Likes
843

hi,

refer to this program.

TYPE-POOLS: SLIS.

tables: znagempl, znagemplsal.

types: begin of ty_znagempl,

eno type zeno,

ename type zename,

city type zename,

country type zename,

phone type zeno,

email type zename,

end of ty_znagempl.

types: begin of ty_znagemplsal,

eno type zeno,

  • ename type zename,

basic type zbasic,

hra type zhra,

ta type zta,

da type zda,

gross type zgross,

net type znet,

end of ty_znagemplsal.

types: tt_znagempl type STANDARD TABLE OF ty_znagempl,

tt_znagemplsal type STANDARD TABLE OF ty_znagemplsal.

data: it_znagempl type tt_znagempl,

it_znagemplsal type tt_znagemplsal,

wa_znagempl type ty_znagempl,

wa_znagemplsal type ty_znagemplsal.

selection-screen begin of block b1 with frame title text-001.

select-options: s_eno for znagempl-eno.

parameters: p_ename like znagempl-ename.

selection-screen end of block b1.

if not s_eno is initial.

perform get_empl_data.

else.

message e001(znagmsg).

endif.

data: it_events type SLIS_T_EVENT,

  • it_event type SLIS_T_EVENT,

wa_events type SLIS_alv_EVENT.

data: wa_selfield type SLIS_SELFIELD,

g_ucomm type sy-ucomm.

data: it_eve type SLIS_T_EVENT.

DATA : it_field TYPE slis_t_fieldcat_alv,

it_field1 type slis_t_fieldcat_alv,

wa_field TYPE slis_fieldcat_alv,

wa_field1 type slis_fieldcat_alv.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'ENO'.

wa_field-seltext_m = 'emp_num'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'ENAME'.

wa_field-seltext_m = 'empname'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'COUNTRY'.

wa_field-seltext_m = 'empcountry'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'CITY'.

wa_field-seltext_m = 'empcity'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'PHONE'.

WA_FIELD-EDIT = 'X'.

wa_field-seltext_m = 'empphone'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'EMAIL'.

wa_field-seltext_m = 'empmail'.

*wa_field-key = 'x'.

append wa_field to it_field.

*CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = it_eve

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

wa_events-name = 'USER_COMMAND'.

wa_events-form = 'SUB_SEC_LIST'.

append wa_events to it_events.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = 'ZALV_NAG'

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

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = it_field

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

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

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

&----


  • text

----


  • -->G_UCOMM text

  • -->WA_SELFIELD text

----


form SUB_SEC_LIST using g_ucomm type syucomm

wa_selfield type SLIS_SELFIELD.

if wa_selfield-fieldname = 'ENO'.

select eno basic hra ta da gross net from znagemplsal into table it_znagemplsal

where eno = wa_selfield-value.

endif.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'ENO'.

wa_field1-seltext_m = 'emp num'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

*wa_field1-tabname = 'it_znagemplsal'.

*wa_field1-fieldname = 'ename'.

*wa_field1-seltext_m = 'emp name'.

*wa_field1-key = 'x'.

*append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'BASIC'.

wa_field1-seltext_m = 'emp basic'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'HRA'.

wa_field1-seltext_m = 'emp hra'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'TA'.

wa_field1-seltext_m = 'emp ta'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'DA'.

wa_field1-seltext_m = 'emp da'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'GROSS'.

wa_field1-seltext_m = 'emp gross salary'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'NET'.

wa_field1-edit = 'X'.

wa_field1-seltext_m = 'emp netsalary'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

    • I_INTERFACE_CHECK = ' '

    • I_BYPASSING_BUFFER =

    • I_BUFFER_ACTIVE = ' '

    • I_CALLBACK_PROGRAM = ' '

    • I_CALLBACK_PF_STATUS_SET = ' '

    • I_CALLBACK_USER_COMMAND = ' '

    • I_STRUCTURE_NAME =

    • IS_LAYOUT =

  • IT_FIELDCAT = it_field1

    • 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 = 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_znagemplsal

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

*clear it_field1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • 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_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = it_field1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = it_eve

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

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

clear it_field1.

endform. "SUB_SEC_LIST

&----


*& Form get_empl_data

&----


  • text

----


form get_empl_data.

select eno ename city country phone email from znagempl into table it_znagempl

where eno in s_eno." and ename = p_ename.

endform.

regards,

sreelakshmi

Read only

Former Member
0 Likes
843

hi,

i am sending code which was done on own created tables.

verify this and try it for standard tables.

TABLES: ZSTUDENT_PERSONA,

ZSTUDENT_COLLEGE.

  • Structure declaration for student persoanl information

TYPES: BEGIN OF TY_ZSTUDENT_PERSONA,

ZSTDID TYPE ZC_STDID, "STUDENT ID

ZSTDNAME TYPE ZC_STDNAME, "STUDENT NAME

ZSTDADDRESS TYPE ZC_STDADD, "STUDENT ADDRESS

ZSTDCITY TYPE ZC_STDCITY, "STUDENT CTY

ZSTDPINCODE TYPE ZC_STDPINCODE, "STUDENT PIN CODE

ZSTDPHONE TYPE ZC_STDPHONE, "STUDENT PHONE

END OF TY_ZSTUDENT_PERSONA,

  • Structure declaration for student college information

BEGIN OF TY_ZSTUDENT_COLLEGE,

ZSTDID TYPE ZC_STDID, "STUDENT ID

ZSTDNAME TYPE ZC_STDNAME, "STUDENT NAME

ZSTDBRANCH TYPE ZC_STDBRANCH, "STUDENT BRANCH

ZSTDCOLLEGE TYPE ZC_STDCOLLEGE, "STUDENTS COLLEGE

END OF TY_ZSTUDENT_COLLEGE.

  • Internal table declaration for student persoanl information

DATA: xxxxxxxxxxxxxxxxxxx,

  • Internal table declaration for student college information

xxxxxxxxxxxxxxxxxxxxxxx.

  • Work area declaration for student persoanl information

DATA: xxxxxxxxxxxxxxxx

  • Work area declaration for student college information

xxxxxxxxxxxxxxxxxxxxxxx

  • Internal table for Fieldcatalog

T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

  • Work area for fieldcatalog

W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

  • Internal table declaration for top of page

T_LISTHEADER TYPE SLIS_T_LISTHEADER,

T_LISTHEADER1 TYPE SLIS_T_LISTHEADER,

  • Work area declaration for top of page

W_LISTHEADER TYPE SLIS_LISTHEADER,

W_LISTHEADER1 TYPE SLIS_LISTHEADER.

&----


*& Selection screen

&----


selecion screen:xxxxxxxxxxx

SELECT-OPTIONS: S_ID FOR ZSTUDENT_PERSONA-ZSTDID.

&----


*& Start of selection

&----


SELECT ZSTDID

ZSTDNAME

ZSTDADDRESS

ZSTDCITY

ZSTDPINCODE

ZSTDPHONE

FROM ZSTUDENT_PERSONA INTO TABLE T_ZSTUDENT_PERSONA

WHERE ZSTDID IN S_ID.

W_FIELDCAT-COL_POS = 1.

W_FIELDCAT-FIELDNAME = 'ZSTDID'.

W_FIELDCAT-SELTEXT_M = 'STUDENT ID'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-COL_POS = 2.

W_FIELDCAT-FIELDNAME = 'ZSTDNAME'.

W_FIELDCAT-SELTEXT_M = 'STUDENT NAME'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-COL_POS = 2.

W_FIELDCAT-FIELDNAME = 'ZSTDADDRESS'.

W_FIELDCAT-SELTEXT_M = 'STUDENT ADDRESS'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-COL_POS = 4.

W_FIELDCAT-FIELDNAME = 'ZSTDCITY'.

W_FIELDCAT-SELTEXT_M = 'STUDENT CITY'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-COL_POS = 5.

W_FIELDCAT-FIELDNAME = 'ZSTDPINCODE'.

W_FIELDCAT-SELTEXT_M = 'STUDENT PIN CODE'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_FIELDCAT-COL_POS = 6.

W_FIELDCAT-FIELDNAME = 'ZSTDPHONE'.

W_FIELDCAT-SELTEXT_M = 'STUDENT PHONE'.

APPEND W_FIELDCAT TO T_FIELDCAT.

CLEAR W_FIELDCAT.

W_LISTHEADER-TYP = 'H'.

W_LISTHEADER-INFO = 'STUDENTS PERSONAL INFORMATION'.

APPEND W_LISTHEADER TO T_LISTHEADER.

CLEAR W_LISTHEADER.

W_LISTHEADER-TYP = 'S'.

W_LISTHEADER-INFO = 'REPORT'.

APPEND W_LISTHEADER TO T_LISTHEADER.

CLEAR W_LISTHEADER.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_INTERFACE_CHECK = SY-REPID

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'SUB_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 = 'STUDENTS REPORT'

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = T_FIELDCAT

  • 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 = 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 = T_ZSTUDENT_PERSONA

  • 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 SUB_USER_COMMAND USING R_UCOMM TYPE SY-UCOMM

R_SELFIELD TYPE SLIS_SELFIELD.

DATA: STDID TYPE ZC_STDID.

STDID = R_SELFIELD-VALUE.

SELECT ZSTDID

ZSTDNAME

ZSTDBRANCH

ZSTDCOLLEGE

FROM ZSTUDENT_COLLEGE INTO TABLE T_ZSTUDENT_COLLEGE WHERE ZSTDID = STDID.

W_LISTHEADER1-TYP = 'H'.

W_LISTHEADER-INFO = 'STUDENT COLLEGE INFORMATION'.

APPEND W_LISTHEADER1 TO T_LISTHEADER1.

CLEAR W_LISTHEADER1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_INTERFACE_CHECK = SY-REPID

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'SUB_USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

I_STRUCTURE_NAME = 'Z_STUDENT_COLLEGE'

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'COLLEGE INFORMATION'

  • I_GRID_SETTINGS =

  • IS_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_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 = T_ZSTUDENT_COLLEGE

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

Read only

Former Member
0 Likes
843

Hi

Check out the below program in the link

http://www.sap-img.com/abap/an-interactive-alv-report.htm

Read only

Former Member
0 Likes
843

Reward if useful

&----


*& Report ZCHECKALV_EXAMPLE *

*& *

&----


*& *

*& *

&----


REPORT zcheckalv_example

NO STANDARD PAGE HEADING.

Tables

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

TABLES sflight.

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

Includes

INCLUDE <icon>.

INCLUDE <symbol>.

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

Type-Pools

TYPE-POOLS: slis.

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

Constants

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

CONSTANTS: c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'

.

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

Intenal Table for ALV

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

DATA: i_fieldcat TYPE slis_t_fieldcat_alv,

i_layout TYPE slis_layout_alv,

i_sp_group TYPE slis_t_sp_group_alv,

i_events TYPE slis_t_event,

i_print TYPE slis_print_alv,

i_sort TYPE slis_t_sortinfo_alv.

DATA: i_list_top_of_page TYPE slis_t_listheader.

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

*Internal Table for data to be displayed

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

DATA: BEGIN OF i_sflight OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: box,

lights.

DATA: END OF i_sflight.

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

Variable

DATA: w_repid LIKE sy-repid,

w_boxnam TYPE slis_fieldname VALUE 'BOX',

w_f2code LIKE sy-ucomm VALUE '&ETA',

w_lignam TYPE slis_fieldname VALUE 'LIGHTS',

w_save(1) TYPE c,

w_default(1) TYPE c,

w_exit(1) TYPE c,

i_variant LIKE disvariant,

i_variant1 LIKE disvariant.

Selection Screen

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

SELECT-OPTIONS s_carrid FOR sflight-carrid.

SELECT-OPTIONS s_connid FOR sflight-connid.

SELECT-OPTIONS s_fldate FOR sflight-fldate.

*SELECTION-SCREEN SKIP 1.

PARAMETERS: p_maxrow TYPE i DEFAULT 30."to limit the selection

SELECTION-SCREEN SKIP 1.

Variant for ALV display

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-000.

PARAMETERS: p_varnt LIKE disvariant-variant.

SELECTION-SCREEN END OF BLOCK 0.

Layout of the report display

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

PARAMETERS: p_zebra AS CHECKBOX DEFAULT ' ', "Striped pattern

p_nocolh AS CHECKBOX DEFAULT ' ', "No column heading

p_novlin AS CHECKBOX DEFAULT ' ', "No vertical lines

p_colopt AS CHECKBOX DEFAULT ' ', "Optimizes col. wd

p_keyhot AS CHECKBOX DEFAULT ' ', "Key fields hot

p_noinpt AS CHECKBOX DEFAULT ' '. "No field for input

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: p_lights AS CHECKBOX DEFAULT 'X',

p_lightc AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.

PARAMETERS: p_totonl AS CHECKBOX DEFAULT ' ',

p_totext(60),

p_sttext(60).

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-004.

PARAMETERS: p_chkbox AS CHECKBOX DEFAULT 'X',

p_detpop AS CHECKBOX DEFAULT 'X',

p_groupb AS CHECKBOX DEFAULT ' ',

p_groups AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK d.

SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-005.

PARAMETERS: p_print AS CHECKBOX DEFAULT ' ',

p_nosinf AS CHECKBOX DEFAULT ' ',

p_nocove AS CHECKBOX DEFAULT ' ',

p_nonewp AS CHECKBOX DEFAULT ' ',

p_nolinf AS CHECKBOX DEFAULT ' ',

p_reserv TYPE i.

SELECTION-SCREEN END OF BLOCK e.

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

AT SELECTION-SCREEN.

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

Process on value request (list of possible variants)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.

PERFORM f4_for_variant.

PAI

AT SELECTION-SCREEN.

PERFORM pai_of_selection_screen.

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

*INITIALIZATION.

INITIALIZATION.

w_repid = sy-repid.

Set Options: save variant userspecific or general

'A or 'U' are for user-specific variants list

'X' or 'space' for general

w_save = 'A'.

PERFORM variant_init.

Get default variant

i_variant1 = i_variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

i_save = w_save

CHANGING

cs_variant = i_variant1

EXCEPTIONS

not_found = 2.

IF sy-subrc = 0.

p_varnt = i_variant1-variant.

ENDIF.

Getting Events

PERFORM eventtab_build USING i_events.

Even Top of Page

PERFORM comment_build USING i_list_top_of_page.

Creating Special Group

PERFORM sp_group_build USING i_sp_group.

Mentioning Sort Details

PERFORM t_sort_build USING i_sort.

Filling Fieldcatalog

PERFORM fieldcat_init USING i_fieldcat.

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

*START-OF-SELECTION

START-OF-SELECTION.

PERFORM selection.

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

*END-OF-SELECTION

END-OF-SELECTION.

Creating Layout for Report

PERFORM layout_build USING i_layout. "wg. Parameters

Mentioning Print Parameters

PERFORM print_build USING i_print. "wg. Parameters

Display Report

PERFORM disply_report.

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

-


FORM F4_FOR_VARIANT *

-


FORM f4_for_variant.

*

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = i_variant

i_save = w_save

it_default_fieldcat =

IMPORTING

e_exit = w_exit

es_variant = i_variant1

EXCEPTIONS

not_found = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

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

ELSE.

IF w_exit = space.

p_varnt = i_variant1-variant.

ENDIF.

ENDIF.

ENDFORM. "f4_for_variant

&----


*& Form PAI_OF_SELECTION_SCREEN

&----


to check whether right variant is entered on the selection scr

-


FORM pai_of_selection_screen.

*

IF NOT p_varnt IS INITIAL.

MOVE i_variant TO i_variant1.

MOVE p_varnt TO i_variant1-variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

i_save = w_save

CHANGING

cs_variant = i_variant1.

i_variant = i_variant1.

ELSE.

PERFORM variant_init.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREEN

&----


*& Form VARIANT_INIT

-


FORM variant_init.

CLEAR i_variant.

i_variant-report = w_repid.

ENDFORM. " VARIANT_INIT

-


FORM EVENTTAB_BUILD *

-


--> l_EVENTS *

-


FORM eventtab_build USING l_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

*

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = l_events.

READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.

IF sy-subrc = 0.

MOVE c_formname_top_of_page TO ls_event-form.

APPEND ls_event TO l_events.

ENDIF.

ENDFORM. "eventtab_build

-


FORM TOP_OF_PAGE *

-


........ *

-


FORM top_of_page.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = i_list_top_of_page.

ENDFORM. "top_of_page

-


FORM COMMENT_BUILD *

-


--> L_TOP_OF_PAGE *

-


FORM comment_build USING l_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

***Header

CLEAR ls_line.

ls_line-typ = 'H'.

LS_LINE-KEY: not used for this type

ls_line-info = 'Heading list'.

APPEND ls_line TO l_top_of_page.

***Selection

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Key 1'.

ls_line-info = 'Information'.

APPEND ls_line TO l_top_of_page.

ls_line-key = 'Key 2'.

APPEND ls_line TO l_top_of_page.

***Action

CLEAR ls_line.

ls_line-typ = 'A'.

LS_LINE-KEY: not used for this type

ls_line-info = 'Status list'.

APPEND ls_line TO l_top_of_page.

ENDFORM. "comment_build

-


FORM SP_GROUP_BUILD *

-


--> L_SP_GROUP *

-


FORM sp_group_build USING l_sp_group TYPE slis_t_sp_group_alv.

DATA: ls_sp_group TYPE slis_sp_group_alv.

*Fields are assigned to the special group

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = 'Reservation status'.

APPEND ls_sp_group TO l_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'B'.

ls_sp_group-text = 'Flight charges'.

APPEND ls_sp_group TO l_sp_group.

ENDFORM. "sp_group_build

-


FORM T_SORT_BUILD *

-


FORM t_sort_build USING l_sort TYPE slis_t_sortinfo_alv.

DATA: ls_sort TYPE slis_sortinfo_alv.

ls_sort-fieldname = 'CARRID'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

ls_sort-subtot = 'X'.

APPEND ls_sort TO l_sort.

ENDFORM. "t_sort_build

-


FORM FIELDCAT_INIT *

-


--> L_FIELDCAT *

-


FORM fieldcat_init USING l_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSOCC'.

*The field is not displayed in the initial output, can be interactively

chosen for display

ls_fieldcat-no_out = 'X'.

*This field is assigned to a special group with tech. key 'A' and can be

*displayed using the special group buttons

ls_fieldcat-sp_group = 'A'.

*The field cannot be summed irrespective of its data type

ls_fieldcat-no_sum = 'X'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSMAX'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'A'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PRICE'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'B'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'CARRID'.

ls_fieldcat-outputlen = 7.

APPEND ls_fieldcat TO l_fieldcat.

ENDFORM. "fieldcat_init

-


FORM SELECTION *

-


FORM selection.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE i_sflight

UP TO p_maxrow ROWS WHERE carrid IN s_carrid

AND connid IN s_connid AND fldate IN s_fldate.

PERFORM data_add TABLES i_sflight.

ENDFORM. "selection

-


FORM DATA_ADD *

-


--> L_SFLIGHT

-


FORM data_add TABLES l_sflight STRUCTURE i_sflight.

LOOP AT l_sflight.

IF sy-tabix > 10.

l_sflight-box = 'X'.

l_sflight-lights = '3'.

ELSE.

IF sy-tabix = 1.

l_sflight-lights = '2'.

ELSE.

l_sflight-lights = '1'.

ENDIF.

ENDIF.

MODIFY l_sflight.

ENDLOOP.

ENDFORM. "data_add

-


FORM LAYOUT_BUILD *

-


<-> LS_LAYOUT *

-


FORM layout_build USING ls_layout TYPE slis_layout_alv.

ls_layout-f2code = w_f2code.

ls_layout-zebra = p_zebra.

ls_layout-colwidth_optimize = p_colopt.

IF p_chkbox = 'X'.

*Fieldname for check box on the report output

ls_layout-box_fieldname = w_boxnam.

ELSE.

ls_layout-box_fieldname = space.

ENDIF.

ls_layout-no_input = p_noinpt.

ls_layout-no_vline = p_novlin.

ls_layout-no_colhead = p_nocolh.

IF p_lights = 'X' OR p_lightc = 'X'.

**Fieldname for lights on the report output

ls_layout-lights_fieldname = w_lignam.

ELSE.

CLEAR ls_layout-lights_fieldname.

ENDIF.

ls_layout-lights_condense = p_lightc.

ls_layout-totals_text = p_totext.

ls_layout-subtotals_text = p_sttext.

ls_layout-totals_only = p_totonl.

ls_layout-key_hotspot = p_keyhot.

ls_layout-detail_popup = p_detpop.

ls_layout-group_change_edit = p_groups.

E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.

ls_layout-group_buttons = 'X'.

ENDFORM. "layout_build

-


FORM PRINT_BUILD *

-


........ *

-


FORM print_build USING l_print TYPE slis_print_alv.

*

l_print-print = p_print.

l_print-no_print_selinfos = p_nosinf.

l_print-no_coverpage = p_nocove.

l_print-no_new_page = p_nonewp.

l_print-no_print_listinfos = p_nolinf.

l_print-reserve_lines = p_reserv.

l_print-print = p_print.

ENDFORM. "print_build

&----


*& Form disply_report

&----


text

-


--> p1 text

<-- p2 text

-


FORM disply_report .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = w_repid

i_internal_tabname = 'I_SFLIGHT'

i_structure_name = 'SFLIGHT'

i_client_never_display = 'X'

i_inclname = w_repid

CHANGING

ct_fieldcat = i_fieldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

IF sy-subrc 0.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

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

ENDIF.

Call ABAP/4 List Viewer

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_INTERFACE_CHECK = ' '

i_callback_program = w_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 = 'SFLIGHT'

i_background_id = 'ALV_BACKGROUND'

I_GRID_TITLE =

I_GRID_SETTINGS =

is_layout = i_layout

it_fieldcat = i_fieldcat[]

IT_EXCLUDING =

it_special_groups = i_sp_group[]

it_sort = i_sort[]

IT_FILTER =

IS_SEL_HIDE =

I_DEFAULT = 'X'

i_save = w_save

is_variant = i_variant

it_events = i_events[]

IT_EVENT_EXIT =

is_print = i_print

IS_REPREP_ID =

I_SCREEN_START_COLUMN = 0

I_SCREEN_START_LINE = 0

I_SCREEN_END_COLUMN = 0

I_SCREEN_END_LINE = 0

IMPORTING

E_EXIT_CAUSED_BY_CALLER =

ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = i_sflight

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.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = w_repid

i_structure_name = 'SFLIGHT'

is_layout = i_layout

it_fieldcat = i_fieldcat[]

IT_EXCLUDING =

it_special_groups = i_sp_group[]

it_sort = i_sort[]

IT_FILTER =

IS_SEL_HIDE =

i_default = W_DEFAULT

i_save = w_save

is_variant = i_variant

it_events = i_events[]

IT_EVENT_EXIT =

is_print = i_print

I_SCREEN_START_COLUMN = 0

I_SCREEN_START_LINE = 0

I_SCREEN_END_COLUMN = 0

I_SCREEN_END_LINE = 0

IMPORTING

E_EXIT_CAUSED_BY_CALLER =

TABLES

t_outtab = i_sflight.