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

Satndard AVL function code in interactive reports

Former Member
0 Likes
508

hai

can any one give some frequently used alv function codes for interctie display

thanking u

regards

murali

3 REPLIES 3
Read only

Former Member
0 Likes
460

Hi Murali,

please find the attached code. hope it helps you....

report zptest_alv1.

**TABLES DECLN

tables: vbrk,vbrp,t001.

type-pools: slis.

type-pools: icon.

***DATA DECLN.

data: v_vbeln like vbrk-vbeln,

v_matnr like vbrp-matnr.

constants: c_user_command type slis_formname value 'F_USER_COMMAND',

c_pf_status type slis_formname value 'F_SET_PF_STATUS'.

**ALV RELATED TABLES.

*--Field Catalog

data: it_fieldcat type standard table of

slis_fieldcat_alv with header line,

it_fieldcat1 type standard table of

slis_fieldcat_alv with header line ,

wa_fieldcat type slis_fieldcat_alv,

*--Layout

wa_layout type slis_layout_alv,

*--Sort

it_sort type slis_t_sortinfo_alv,

wa_sort type slis_sortinfo_alv ,

**-Structure for excluding function codes

wa_extab type slis_extab,

**-To hold function codes to be excluded in ALV toolbar

it_extab type slis_t_extab.

***INTERNAL TABLE DECLN.

data: begin of it_vbrk occurs 0,

vbeln like vbrk-vbeln,

waerk like vbrk-waerk,

vkorg like vbrk-vkorg,

fkdat like vbrk-fkdat,

bukrs like vbrk-bukrs,

netwr like vbrk-netwr,

end of it_vbrk.

data: begin of itab occurs 0,

vbeln like vbrp-vbeln,

posnr like vbrp-posnr,

fkimg like vbrp-fkimg,

vrkme like vbrp-vrkme,

netwr like vbrp-netwr,

matnr like vbrp-matnr,

arktx like vbrp-arktx,

end of itab.

data: it_vbrp like itab occurs 0 with header line.

***selection screen.

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

select-options: s_vbeln for vbrk-vbeln,

s_fkdat for vbrk-fkdat obligatory,

s_matnr for vbrp-matnr.

selection-screen: end of block b1.

**INITIALIZATION.

initialization.

s_fkdat-low = sy-datum - 200.

s_fkdat-high = sy-datum.

append s_fkdat.

***AT SELECTION-SCREEN.

at selection-screen.

if not s_vbeln is initial.

select single vbeln from vbrk

into v_vbeln

where vbeln in s_vbeln.

if sy-subrc <> 0.

message e001(zz2).

endif.

endif.

if not s_matnr is initial.

select single matnr from mara

into v_matnr

where matnr in s_matnr.

if sy-subrc <> 0.

message e001(zz2).

endif.

endif.

***START-OF-SELECTION.

start-of-selection.

perform get_data_vbrk.

perform get_data_vbrp.

***END-OF-SELECTION.

end-of-selection.

*--Sort the Output Fields

perform sort_fields.

*--Build Field catalog for the Output fields

perform get_field_catalog.

***MODIFY LAYOUT.

perform modify_layout.

*--Display ALV output

perform list_disp tables it_vbrk

using c_user_command.

&----


*& Form GET_DATA_VBRK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data_vbrk.

select vbeln

waerk

vkorg

fkdat

bukrs

netwr

into table it_vbrk

from vbrk

where vbeln in s_vbeln

and fkdat in s_fkdat.

endform. " GET_DATA

&----


*& Form GET_DATA_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data_vbrp .

  • SELECT VBELN

  • POSNR

  • FKIMG

  • VRKME

  • NETWR

  • MATNR

  • ARKTX

  • FROM VBRP

  • INTO TABLE IT_VBRP

  • FOR ALL ENTRIES IN IT_VBRK

  • WHERE VBELN = IT_VBRK-VBELN.

select vbeln

posnr

fkimg

vrkme

netwr

matnr

arktx

from vbrp

into table itab

for all entries in it_vbrk

where vbeln = it_vbrk-vbeln.

endform. " GET_DATA_VBRP

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_field_catalog .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = sy-repid

i_internal_tabname = 'IT_VBRK'

i_inclname = sy-repid

changing

ct_fieldcat = it_fieldcat[]

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

&----


*& Form SORT_FIELDS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form sort_fields .

clear wa_sort.

wa_sort-spos = '01'.

wa_sort-fieldname = 'VBELN' .

wa_sort-tabname = 'IT_VBRK'.

wa_sort-up = 'X'.

append wa_sort to it_sort.

clear wa_sort.

wa_sort-spos = '02'.

wa_sort-fieldname = 'POSNR' .

wa_sort-tabname = 'IT_VBRP'.

wa_sort-up = 'X'.

append wa_sort to it_sort.

endform. " SORT_FIELDS

&----


*& Form MODIFY_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify_layout .

wa_layout-default_item = 'X'.

wa_layout-zebra = 'X'.

wa_layout-expand_fieldname = 'EXPAND'.

wa_layout-colwidth_optimize = 'X'.

endform. " MODIFY_LAYOUT

&----


*& Form LIST_DISP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form list_disp tables p_it_vbrk

using p_user_command type slis_formname.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = 'POPUP'

  • I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'

  • IS_LAYOUT = WA_LAYOUT

  • IT_FIELDCAT = IT_FIELDCAT[]

  • IT_EXCLUDING = IT_EXTAB[]

  • TABLES

  • T_OUTTAB = IT_VBRK

  • 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_GRID_DISPLAY'

exporting

i_callback_program = sy-repid

i_callback_pf_status_set = 'POPUP'

i_callback_user_command = 'HANDLE_USER_COMMAND'

is_layout = wa_layout

it_fieldcat = it_fieldcat[]

tables

t_outtab = p_it_vbrk

exceptions

program_error = 1

others = 2.

endform. " LIST_DISP

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


form popup using it_extab type slis_t_extab.

*- Pf status

set pf-status 'POPUP'.

endform. " POPUP

&----


*& Form F_USER_COMMAND

&----


form handle_user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

case r_ucomm.

when '&IC1'.

clear it_fieldcat1[].

clear it_vbrp[].

if rs_selfield-fieldname = 'VBELN'.

read table it_vbrk index rs_selfield-tabindex.

loop at itab where vbeln = it_vbrk-vbeln.

move-corresponding itab to it_vbrp.

append it_vbrp.

endloop.

perform interactive_report.

endif.

endcase.

endform. "HANDLE_USER_COMMAND

&----


*& Form INTERACTIVE_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form interactive_report .

  • CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

  • EXPORTING

  • I_PROGRAM_NAME = SY-REPID

  • I_INTERNAL_TABNAME = 'ITAB'

  • I_INCLNAME = SY-REPID

  • CHANGING

  • CT_FIELDCAT = IT_FIELDCAT1[]

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

wa_fieldcat-fieldname = 'VBELN'.

wa_fieldcat-seltext_l = 'BILLING DOC'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 1.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'POSNR'.

wa_fieldcat-seltext_l = 'ITEM'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 2.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'FKIMG'.

wa_fieldcat-seltext_m = 'INV QTY'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 3.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'VRKME'.

wa_fieldcat-seltext_m = 'SALES UNIT'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 4.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'NETWR'.

wa_fieldcat-seltext_m = 'NET PRICE'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-do_sum = 'X'.

wa_fieldcat-col_pos = 5.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'MATERIAL'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 6.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

wa_fieldcat-fieldname = 'ARKTX'.

wa_fieldcat-seltext_m = 'SALES ORDER'.

wa_fieldcat-tabname = 'IT_VBRP'.

wa_fieldcat-col_pos = 7.

append wa_fieldcat to it_fieldcat1.

clear wa_fieldcat.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = SY-REPID

  • IS_LAYOUT = WA_LAYOUT

  • IT_FIELDCAT = IT_FIELDCAT1[]

  • IT_SORT = IT_SORT

  • TABLES

  • T_OUTTAB = IT_VBRP

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2.

*

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = sy-repid

is_layout = wa_layout

it_fieldcat = it_fieldcat1[]

tables

t_outtab = it_vbrp

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

Madhavi

Read only

Former Member
0 Likes
460

Hi,

For interactive ALV. u have to use to pass

USER-COMMAND name to the grid_display func module.

Then u have to create subroutine with user command name that u have passed to the func module.

Regards

Divakar

Read only

Former Member
0 Likes
460

Hi Murali,

Try this simple interactive..

TYPE-POOLS: SLIS.

DATA: BEGIN OF IT_OUTPUT OCCURS 0,

VAR1(8) TYPE N,

VAR2(10),

VAR3 TYPE I,

END OF IT_OUTPUT.

DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_CAT TYPE SLIS_T_FIELDCAT_ALV,

T_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

T_SORT TYPE SLIS_SORTINFO_ALV,

IT_EVENT TYPE SLIS_T_EVENT, " Events

T_EVENT TYPE SLIS_ALV_EVENT,

IT_VARIANT LIKE DISVARIANT, " To store Variant

IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

V_REPID LIKE SY-REPID.

INITIALIZATION.

V_REPID = SY-REPID.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM SORT_FIELDS.

PERFORM FILL_FIELDCAT.

PERFORM GET_EVENTS.

PERFORM FILL_LIST_TOP_OF_PAGE.

PERFORM DISPLAY_ALV.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA.

*-- Fill it_output here

ENDFORM. " GET_DATA

&----


*& Form fill_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT.

PERFORM FILL_FIELDS USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',

'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',

'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.

ENDFORM. " fill_fieldcat

&----


*& Form fill_fields

&----


  • text

----


  • -->P_0146 text

  • -->P_0147 text

  • -->P_0148 text

  • -->P_0149 text

----


FORM FILL_FIELDS USING VALUE(TABNAME) TYPE SLIS_TABNAME

VALUE(FIELDNAME) TYPE SLIS_FIELDNAME

VALUE(SELTEXT_M) LIKE DD03P-SCRTEXT_M

VALUE(DO_SUM) TYPE C.

T_FIELDCAT-TABNAME = TABNAME.

T_FIELDCAT-FIELDNAME = FIELDNAME.

T_FIELDCAT-SELTEXT_M = SELTEXT_M.

IF DO_SUM = 'X'.

T_FIELDCAT-DATATYPE = 'CURR'.

ENDIF.

T_FIELDCAT-DO_SUM = DO_SUM.

APPEND T_FIELDCAT TO IT_FIELDCAT.

CLEAR T_FIELDCAT.

ENDFORM. " fill_fields

&----


*& Form GET_EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_EVENTS.

T_EVENT-NAME = 'TOP_OF_PAGE'.

T_EVENT-FORM = 'FRM_TOP_OF_PAGE'.

APPEND T_EVENT TO IT_EVENT.

CLEAR T_EVENT.

T_EVENT-NAME = 'USER_COMMAND'.

T_EVENT-FORM = 'FRM_USER_COMMAND'.

APPEND T_EVENT TO IT_EVENT.

CLEAR T_EVENT.

ENDFORM. " GET_EVENTS

&----


*& Form FRM_TOP_OF_PAGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FRM_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.

  • I_LOGO =

  • I_END_OF_LIST_GRID =

ENDFORM. " FRM_TOP_OF_PAGE

&----


*& Form fill_list_top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_LIST_TOP_OF_PAGE.

DATA : LS_LINE TYPE SLIS_LISTHEADER. " line

LS_LINE-TYP = 'H'.

LS_LINE-KEY = 'Header: '.

LS_LINE-INFO = 'This is header 1'.

APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Selection 1: '.

LS_LINE-INFO = 'This is selection 1'.

APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Selection 2: '.

LS_LINE-INFO = 'This is Selection 2'.

APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.

ENDFORM. " fill_list_top_of_page

&----


*& Form display_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV.

DATA: V_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

IT_VARIANT-REPORT = V_REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

I_CALLBACK_USER_COMMAND = V_USER_COMMAND

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

IS_VARIANT = IT_VARIANT

IT_EVENTS = IT_EVENT[]

TABLES

T_OUTTAB = IT_OUTPUT

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 SORT_FIELDS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS.

T_SORT-FIELDNAME = 'VAR1'.

T_SORT-TABNAME = 'IT_OUTPUT'.

T_SORT-SPOS = 1.

T_SORT-UP = 'X'.

T_SORT-SUBTOT = 'X'.

APPEND T_SORT TO IT_SORT.

CLEAR T_SORT.

ENDFORM. " SORT_FIELDS

&----


*& Form FRM_USER_COMMAND

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FRM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD .

clear : it_output, it_output[].

CONCATENATE R_UCOMM RS_SELFIELD-FIELDNAME INTO IT_OUTPUT-VAR2

SEPARATED BY '+'.

APPEND IT_OUTPUT.

CLEAR IT_OUTPUT.

IT_OUTput-VAR2 = 'CANDY'.

APPEND IT_OUTPUT.

CLEAR IT_OUTPUT.

IT_OUTput-VAR2 = 'CHICCHU'.

APPEND IT_OUTPUT.

CLEAR IT_OUTPUT.

  • PERFORM DISPLAY_USER_COMMAND.

CLEAR :IT_CAT,

IT_CAT[].

CLEAR V_REPID.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_REPID

I_INTERNAL_TABNAME = 'IT_OUTPUT'

I_INCLNAME = V_REPID

CHANGING

CT_FIELDCAT = IT_CAT

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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IT_FIELDCAT = IT_CAT

TABLES

T_OUTTAB = IT_OUTPUT

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