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 Alv

Former Member
0 Likes
725

Hi guru's,

Can any one give me sample code on Interactive ALV using Reuse_alv_grid_display.

My requirement is on selecting any particular line in the out put it should give pop up with two fields in it.

6 REPLIES 6
Read only

Former Member
0 Likes
646

Hi,

U can search for report programs as

BCALV* in SE38.

Here is sample code for the same.

report ytest_alv .

type-pools:slis.

*FIELDCATALOG

data : it_fieldcat type slis_t_fieldcat_alv,

it_fieldcat1 type slis_t_fieldcat_alv.

*BILLING MASTER TABLE

data: begin of itab occurs 0,

vbeln like vbrk-vbeln,

waerk like vbrk-waerk,

vkorg like vbrk-vkorg,

fkdat like vbrk-fkdat,

netwr like vbrk-netwr,

end of itab.

data: begin of itab1 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 itab1.

*set pf-status 'POP'

data: it_vbrp like itab1 occurs 0 with header line.

select vbeln

waerk

vkorg

fkdat

netwr

up to 100 rows

from vbrk

into table itab.

if sy-subrc = 0.

sort itab by vbeln .

select

vbeln

posnr

fkimg

vrkme

netwr

matnr

arktx

into table itab1

from vbrp

for all entries in itab

where vbeln = itab-vbeln.

endif.

data: x_fieldcat type slis_fieldcat_alv.

x_fieldcat-fieldname = 'VBELN'.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-col_pos = 1.

append x_fieldcat to it_fieldcat.

clear x_fieldcat.

x_fieldcat-fieldname = 'WAERK'.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-col_pos = 2.

append x_fieldcat to it_fieldcat.

clear x_fieldcat.

clear x_fieldcat.

x_fieldcat-fieldname = 'VKORG'.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-col_pos = 3.

append x_fieldcat to it_fieldcat.

clear x_fieldcat.

clear x_fieldcat.

x_fieldcat-fieldname = 'FKDAT'.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-col_pos = 4.

append x_fieldcat to it_fieldcat.

clear x_fieldcat.

clear x_fieldcat.

x_fieldcat-fieldname = 'NETWR'.

x_fieldcat-tabname = 'ITAB'.

x_fieldcat-col_pos = 5.

append x_fieldcat to it_fieldcat.

clear x_fieldcat.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = sy-repid

i_callback_pf_status_set = 'POP'

i_callback_user_command = 'HANDLE_USER_COMMAND'

it_fieldcat = it_fieldcat

tables

t_outtab = itab

exceptions

program_error = 1

others = 2.

if sy-subrc = 0.

endif.

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


form pop using p_extab type slis_t_extab.

*- Pf status

set pf-status 'POP'.

endform. " POPUP

&----


*& Form HANDLE_USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


form handle_user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

case r_ucomm.

when '&IC1'.

clear it_vbrp[].

if rs_selfield-fieldname = 'VBELN'.

read table itab index rs_selfield-tabindex.

loop at itab1 where vbeln = itab-vbeln.

move-corresponding itab1 to it_vbrp.

append it_vbrp.

endloop.

perform interactive_report.

endif.

endcase.

endform. "HANDLE_USER_COMMAND

&----


*& Form interactive_report

&----


  • text

----


form interactive_report .

x_fieldcat-fieldname = 'VBELN'.

x_fieldcat-seltext_l = 'BILLING DOC'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 1.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'POSNR'.

x_fieldcat-seltext_l = 'ITEM'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 2.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'FKIMG'.

x_fieldcat-seltext_m = 'INV QTY'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 3.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'VRKME'.

x_fieldcat-seltext_m = 'SALES UNIT'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 4.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'NETWR'.

x_fieldcat-seltext_m = 'NET PRICE'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 5.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'MATNR'.

x_fieldcat-seltext_m = 'MATERIAL'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 6.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

x_fieldcat-fieldname = 'ARKTX'.

x_fieldcat-seltext_m = 'SALES ORDER'.

x_fieldcat-tabname = 'IT_VBRP'.

x_fieldcat-col_pos = 7.

append x_fieldcat to it_fieldcat1.

clear x_fieldcat.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = sy-repid

it_fieldcat = it_fieldcat1

tables

t_outtab = it_vbrp

exceptions

program_error = 1

others = 2.

if sy-subrc = 0.

endif.

endform. " interactive_report

Rgds,

Prakash

Read only

Former Member
0 Likes
646

Hi,

see below code

REPORT z7rnp_alv_so MESSAGE-ID z7new .

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

TABLE DECLARATION

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

TABLES: vbak , "Sales Document: Header Data

vbap , "Sales Document: Item Data

makt , "Material Descriptions

lips . "SD document: Delivery: Item data

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

DECLARATION OF TYPE-POOL

*THIS TYPE-POOL CONTAINS THE EVENTS,

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

TYPE-POOLS : slis.

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

DECLARATION OF EVENTS

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

DATA: i_event TYPE slis_t_event.

DATA: t_event TYPE slis_alv_event.

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

DECLARATION OF LIST HEADER

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

DATA: i_listheader TYPE slis_t_listheader.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 1

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

DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 2

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

DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD LAYOUT

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

DATA: i_layout TYPE slis_layout_alv.

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

SORTING OF OUTPUT

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

DATA: i_sort TYPE slis_t_sortinfo_alv.

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

*DATA DECLARATION

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

DATA: v_auart TYPE tvak-auart,

v_vkorg TYPE tvko-vkorg,

v_kunnr TYPE kna1-kunnr,

v_matnr TYPE mara-matnr ,

v_spart TYPE tvta-spart .

TYPES: BEGIN OF it_so ,

vbeln TYPE vbeln_va , "SALES ORDER NO.

auart TYPE auart , "SALES DOC. TYPE

vkorg TYPE vkorg , "SALES ORG.

spart TYPE spart , "DIVISION

kunnr TYPE kunag , "SOLD TO PARTY

posnr TYPE posnr_va , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

maktx TYPE maktx , "DESCRIPTION

kwmeng TYPE kwmeng , "QUANTITY

vrkme TYPE vrkme , "SALES UNIT

line_color(4) TYPE c ,

END OF it_so .

TYPES: BEGIN OF it_del ,

vbeln TYPE vbeln_vl , "SALES ORDER NO.

posnr TYPE posnr_vl , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

werks TYPE werks_d , "PLANT

lgort TYPE lgort_d , "STORAGE LOCATION

charg TYPE charg_d , "BATCH NO.

lfimg TYPE lfimg , "ACTUAL DELIVERY QTY.

vrkme TYPE vrkme , "SALES UNIT

END OF it_del .

TYPES: BEGIN OF type_vbfa ,

vbelv TYPE vbeln_von , "Preceding sales and distribution document

posnv TYPE posnr_von , "Preceding item of an SD document

vbeln TYPE vbeln_nach, "Subsequent sales and distribution document

posnn TYPE posnr_nach, "Document category of subsequent document

vbtyp_n TYPE vbtyp_n ,

END OF type_vbfa .

DATA: it_so1 TYPE STANDARD TABLE OF it_so ,

it_del1 TYPE STANDARD TABLE OF it_del ,

it_vbfa TYPE STANDARD TABLE OF type_vbfa,

it_del_ful TYPE STANDARD TABLE OF it_del.

DATA: wa_so TYPE it_so ,

wa_del TYPE it_del ,

wa_vbfa TYPE type_vbfa,

wa_it_del_ful TYPE it_del.

DATA: i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.

DATA: i_title_vbpa TYPE lvc_title VALUE

'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.

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

*SELECTION SCREEN *

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

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

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,

s_auart FOR v_auart ,

s_vkorg FOR v_vkorg ,

s_spart FOR v_spart ,

s_kunnr FOR v_kunnr ,

s_matnr FOR v_matnr .

SELECTION-SCREEN END OF BLOCK blk1 .

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

*AT SELECTION SCREEN *

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

AT SELECTION-SCREEN.

SELECT SINGLE vbeln

FROM vbak INTO vbak-vbeln

WHERE vbeln IN s_vbeln.

IF sy-subrc <> 0.

MESSAGE e202.

ENDIF.

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

*START OF SELECTION *

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

START-OF-SELECTION .

PERFORM data_select.

PERFORM t_sort USING i_sort .

PERFORM event_cat USING i_event .

PERFORM fld_cat USING i_fldcat[] .

PERFORM t_layout USING i_layout .

PERFORM fld_cat2 USING i_fldcat2[] .

PERFORM call_alv.

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

  • DATA SELECT *

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

&----


*& Form DATA_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_select .

REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .

BREAK-POINT.

SELECT

a~vbeln

a~auart

a~vkorg

a~spart

a~kunnr

b~posnr

b~matnr

c~maktx

b~kwmeng

b~vrkme

INTO TABLE it_so1 FROM vbak AS a

JOIN vbap AS b ON bvbeln = avbeln

JOIN makt AS c ON cmatnr = bmatnr

AND c~spras = sy-langu

WHERE a~vbeln IN s_vbeln .

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

  • COLURING DISPLAY *

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

DATA: ld_color(1) TYPE c .

LOOP AT it_so1 INTO wa_so.

  • Populate color variable with colour properties

  • Char 1 = C (This is a color property)

  • Char 2 = 3 (Color codes: 1 - 7)

  • Char 3 = Intensified on/off ( 1 or 0 )

  • Char 4 = Inverse display on/off ( 1 or 0 )

  • i.e. wa_ekko-line_color = 'C410'

ld_color = ld_color + 1.

  • Only 7 colours so need to reset color value

IF ld_color = 8.

ld_color = 1.

ENDIF.

CONCATENATE 'C' ld_color '10' INTO wa_so-line_color.

  • wa_ekko-line_color = 'C410'.

MODIFY it_so1 FROM wa_so.

ENDLOOP .

IF sy-subrc = 0.

SELECT vbelv

posnv

vbeln

posnn

vbtyp_n

INTO TABLE it_vbfa

FROM vbfa

FOR ALL ENTRIES IN it_so1

WHERE vbelv = it_so1-vbeln

AND posnn = it_so1-posnr

AND vbtyp_n ='J' .

IF sy-subrc = 0.

SELECT vbeln

posnr

matnr

werks

lgort

charg

lfimg

vrkme

FROM lips INTO TABLE it_del_ful

FOR ALL ENTRIES IN it_vbfa

WHERE vbeln = it_vbfa-vbeln

AND posnr = it_vbfa-posnn.

ENDIF.

ENDIF.

ENDFORM. " DATA_SELECT

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

                                • EVENT CATALOG ****************************************

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

&----


*& Form EVENT_CAT

&----


  • text

----


  • -->P_I_EVENT text

----


FORM event_cat USING p_i_event TYPE slis_t_event .

REFRESH p_i_event .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

IMPORTING

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

READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO t_event-form.

MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.

ENDIF.

CLEAR t_event .

ENDFORM. " EVENT_CAT

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

*********FORM FOR EVENT TOP_OF_PAGE*********************************

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

FORM top_of_page .

REFRESH i_listheader.

DATA: t_header TYPE slis_listheader.

DATA: v_text(50).

WRITE sy-datum TO v_text.

CLEAR t_header.

t_header-typ = 'S'.

t_header-key = 'Date'.

t_header-info = v_text.

APPEND t_header TO i_listheader.

CLEAR t_header.

CLEAR v_text.

  • WRITE: 'SALES ORDER REPORT ' TO v_text .

  • t_header-typ = 'S'.

  • t_header-key = 'TITLE'.

  • t_header-info = v_text.

  • APPEND t_header TO i_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_listheader.

  • I_LOGO = 'ALV_BACKGROUND'.

  • I_END_OF_LIST_GRID =

ENDFORM. "TOP_OF_PAGE

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

                • FIRST ALV GRID DISPLAY ***************************************

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

&----


*& Form CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM call_alv .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND1'

i_callback_top_of_page = 'TOP_OF_PAGE'

I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbfa

is_layout = i_layout

it_fieldcat = i_fldcat[]

it_sort = i_sort

it_events = i_event

TABLES

t_outtab = it_so1

.

  • IF sy-subrc <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

ENDFORM. " CALL_ALV

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

                            • FIRST FIELDCATALOG *************************************

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

&----


*& Form FLD_CAT

&----


  • text

----


  • -->P_I_FLDCAT[] text

----


FORM fld_cat USING p_i_fldcat TYPE slis_t_fieldcat_alv.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES ORDER NO.'.

i_fldcat-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES DOC. TYPE'.

i_fldcat-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES ORG.'.

i_fldcat-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 12. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DIVISION'.

i_fldcat-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SOLD TO PARTY'.

i_fldcat-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES DOC. ITEM'.

i_fldcat-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 17. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'MATERIAL NO.'.

i_fldcat-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DESCRIPTION'.

i_fldcat-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'QUANTITY'.

i_fldcat-col_pos = 9. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-do_sum = 'X'. " For doing "SUM"

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES UNIT'.

i_fldcat-col_pos = 10. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

ENDFORM. " FLD_CAT

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

                                    • ALV SORTING ***************************************

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

&----


*& Form SORT

&----


  • text

----


  • -->P_I_SORT text

----


FORM t_sort USING p_i_sort TYPE slis_t_sortinfo_alv .

DATA: i_sort TYPE slis_sortinfo_alv .

REFRESH p_i_sort .

CLEAR i_sort.

i_sort-spos = 1.

i_sort-tabname = 'IT_SO1'.

i_sort-fieldname = 'VBELN'.

i_sort-up = 'X'.

i_sort-subtot = 'X'.

i_sort-group = '*'.

APPEND i_sort TO p_i_sort.

ENDFORM. " SORT

*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.

  • SET PF-STATUS 'ZSTANDARD'.

*ENDFORM. "Set_pf_status

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

**********FORM FOR EVENT USER_COMMAND1*******************************

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

FORM user_command1 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

*CASE R_UCOMM .

  • WHEN '&IC1' .

*

  • IF rs_selfield-FIELDNAME = 'VBELN' .

*

  • ENDIF .

*

  • WHEN OTHERS .

*

  • ENDCASE .

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

IF sy-subrc = 0.

LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln

AND posnv = wa_so-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = wa_vbfa-vbelv

posnr = wa_vbfa-posnn.

IF sy-subrc = 0.

CLEAR wa_del.

MOVE wa_it_del_ful TO wa_del.

APPEND wa_del TO it_del1.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

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

                  • SECOND ALV GRID DISPLAY ***********************************

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

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND2'

i_callback_top_of_page = 'TOP_OF_PAGE'

I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbpa

it_fieldcat = i_fldcat2[]

it_sort = i_sort

TABLES

t_outtab = it_del_ful

.

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

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

                    • FORM FOR EVENT USER_COMMAND 2 ******************************

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

FORM user_command2 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

  • IF SY-SUBRC = 0.

*

  • LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln

  • AND posnv = WA_SO-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = rs_selfield-value

posnr = wa_vbfa-posnn.

IF rs_selfield-fieldname = 'VBELN'.

SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .

CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.

ENDIF .

  • ENDLOOP.

  • ENDIF.

ENDIF.

ENDFORM . "USER_COMMAND2

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

                  • SECOND FIELDCATALOG ******************************************

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

&----


*& Form FLD_CAT2

&----


  • text

----


  • -->P_I_FLDCAT2[] text

----


FORM fld_cat2 USING p_i_fldcat2 TYPE slis_t_fieldcat_alv .

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-tabname = 'IT_DEL_FUL'."TABLE NAME

i_fldcat2-seltext_m = 'DELIVERY NO.'.

i_fldcat2-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-hotspot = 'X'.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'DELIVERY ITEM'.

i_fldcat2-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'MATERIAL NO.'.

i_fldcat2-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'PLANT.'.

i_fldcat2-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ST. LOCATION'.

i_fldcat2-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'BATCH NO.'.

i_fldcat2-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ACT. DEL. QTY.'.

i_fldcat2-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'SALES UNIT.'.

i_fldcat2-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

ENDFORM. " FLD_CAT2

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

                                  • ALV LAYOUT *******************************************

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

&----


*& Form LAYOUT

&----


  • text

----


  • -->P_I_LAYOUT text

----


FORM t_layout USING p_i_layout TYPE slis_layout_alv .

p_i_layout-zebra = 'X'.

p_i_layout-totals_text = 'GRAND TOTAL ='.

  • p_i_layout-CONFIRMATION_PROMPT = 'X'.

  • p_i_layout-DEF_STATUS = ' '.

p_i_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " LAYOUT

please reward if useful.

Read only

Former Member
0 Likes
646

hi,

chk this link, there is an example program

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

PLZ reward if helpful.

Read only

Former Member
0 Likes
646

Hi,

Check this prog. I hope this will help u.

REPORT ZALV_GRID_INTERACT .

TYPE-POOLS: SLIS.

TABLES: KNA1, KNB1, VBAK.

DATA: BEGIN OF IKNA1 OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

LAND1 LIKE KNA1-LAND1,

END OF IKNA1.

DATA: BEGIN OF IKNB1 OCCURS 0,

KUNNR LIKE KNB1-KUNNR,

BUKRS LIKE KNB1-BUKRS,

END OF IKNB1.

DATA: BEGIN OF IVBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

NETWR LIKE VBAK-NETWR,

KUNNR LIKE VBAK-KUNNR,

END OF IVBAK.

DATA: BEGIN OF IVBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

END OF IVBAP.

TYPES: SLIS_TABNAME(30) TYPE C,

SLIS_FLDNAME(30) TYPE C.

DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

VCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

OCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

ICAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA: LISTHEAD TYPE SLIS_T_LISTHEADER WITH HEADER LINE,

LISTKNB1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE,

LISTVBAK TYPE SLIS_T_LISTHEADER WITH HEADER LINE.

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: I_LAYOUT1 TYPE SLIS_LAYOUT_ALV.

DATA: I_LAYOUT2 TYPE SLIS_LAYOUT_ALV.

DATA: I_LAYOUT3 TYPE SLIS_LAYOUT_ALV.

DATA: EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: EVENT1 TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: EVENT2 TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: EVENT3 TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA: FIELDS TYPE SLIS_SELFIELD,

FIELDS1 TYPE SLIS_SELFIELD,

FIELDS2 TYPE SLIS_SELFIELD,

  • FIELDS FOR EXCEPTION

LIGHTS_TABNAME TYPE SLIS_TABNAME,

LIGHTS_FLDNAME TYPE SLIS_FIELDNAME.

DATA: UCOMM LIKE SY-UCOMM.

DATA: UCOM1 LIKE SY-UCOMM.

DATA: UCOM2 LIKE SY-UCOMM.

DATA: UCOM3 LIKE SY-UCOMM.

select-options: s_kunnr for kna1-kunnr.

SELECT KUNNR NAME1 LAND1 FROM KNA1 INTO TABLE IKNA1

where kunnr in s_kunnr.

FCAT-COL_POS = 1.

FCAT-FIELDNAME = 'KUNNR'.

FCAT-TABNAME = 'IKNA1'.

FCAT-REF_TABNAME = 'KNA1'.

FCAT-REF_FIELDNAME = 'KUNNR'.

FCAT-HOTSPOT = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-COL_POS = 2.

FCAT-FIELDNAME = 'NAME1'.

FCAT-TABNAME = 'IKNA1'.

FCAT-REF_TABNAME = 'KNA1'.

FCAT-REF_FIELDNAME = 'NAME1'.

FCAT-HOTSPOT = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-COL_POS = 3.

FCAT-FIELDNAME = 'LAND1'.

FCAT-TABNAME = 'IKNA1'.

FCAT-REF_TABNAME = 'KNA1'.

FCAT-REF_FIELDNAME = 'LAND1'.

*FCAT-HOTSPOT = 'X'.

APPEND FCAT.

CLEAR FCAT.

VCAT-COL_POS = 4.

VCAT-FIELDNAME = 'KUNNR'.

VCAT-TABNAME = 'IKNB1'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-REF_FIELDNAME = 'KUNNR'.

*VCAT-HOTSPOT = 'X'.

APPEND VCAT.

CLEAR VCAT.

VCAT-COL_POS = 5.

VCAT-FIELDNAME = 'BUKRS'.

VCAT-TABNAME = 'IKNB1'.

VCAT-REF_TABNAME = 'KNB1'.

VCAT-REF_FIELDNAME = 'BUKRS'.

VCAT-HOTSPOT = 'X'.

APPEND VCAT.

CLEAR VCAT.

OCAT-COL_POS = 6.

OCAT-FIELDNAME = 'VBELN'.

OCAT-TABNAME = 'IVBAK'.

OCAT-REF_TABNAME = 'VBAK'.

OCAT-REF_FIELDNAME = 'VBELN'.

OCAT-HOTSPOT = 'X'.

APPEND OCAT.

CLEAR OCAT.

OCAT-COL_POS = 7.

OCAT-FIELDNAME = 'NETWR'.

OCAT-TABNAME = 'IVBAK'.

OCAT-REF_TABNAME = 'VBAK'.

OCAT-REF_FIELDNAME = 'NETWR'.

*OCAT-HOTSPOT = 'X'.

APPEND OCAT.

CLEAR OCAT.

OCAT-COL_POS = 8.

OCAT-FIELDNAME = 'KUNNR'.

OCAT-TABNAME = 'IVBAK'.

OCAT-REF_TABNAME = 'VBAK'.

OCAT-REF_FIELDNAME = 'KUNNR'.

*OCAT-HOTSPOT = 'X'.

APPEND OCAT.

CLEAR OCAT.

ICAT-COL_POS = 7.

ICAT-FIELDNAME = 'VBELN'.

ICAT-TABNAME = 'IVBAP'.

ICAT-REF_TABNAME = 'VBAP'.

ICAT-REF_FIELDNAME = 'VBELN'.

*ICAT-HOTSPOT = 'X'.

APPEND ICAT.

CLEAR ICAT.

ICAT-COL_POS = 8.

ICAT-FIELDNAME = 'POSNR'.

ICAT-TABNAME = 'IVBAP'.

ICAT-REF_TABNAME = 'VBAP'.

ICAT-REF_FIELDNAME = 'POSNR'.

*ICAT-HOTSPOT = 'X'.

APPEND ICAT.

CLEAR ICAT.

EVENT-NAME = 'TOP_OF_PAGE'.

EVENT-FORM = 'TOPPAGE'.

APPEND EVENT.

EVENT-NAME = 'USER_COMMAND'.

EVENT-FORM = 'USECOMM1'.

APPEND EVENT.

EVENT1-NAME = 'TOP_OF_PAGE'.

EVENT1-FORM = 'TOPPAGE1'.

APPEND EVENT1.

EVENT1-NAME = 'USER_COMMAND'.

EVENT1-FORM = 'USECOMM2'.

APPEND EVENT1.

EVENT2-NAME = 'TOP_OF_PAGE'.

EVENT2-FORM = 'TOPPAGE2'.

APPEND EVENT2.

EVENT2-NAME = 'USER_COMMAND'.

EVENT2-FORM = 'USECOMM3'.

APPEND EVENT2.

EVENT2-NAME = 'TOP_OF_PAGE'.

EVENT2-FORM = 'TOPPAGE3'.

APPEND EVENT3.

I_LAYOUT-WINDOW_TITLEBAR = 'THIS IS ALV INTERACTIVE'.

I_LAYOUT1-WINDOW_TITLEBAR = 'THIS IS ALV INTERACTIVE'.

I_LAYOUT2-WINDOW_TITLEBAR = 'THIS IS ALV INTERACTIVE'.

LISTHEAD-TYP = 'H'.

LISTHEAD-INFO = 'CLICK ON CUSTOMER TO GET CO-CODE'.

APPEND LISTHEAD.

LISTHEAD-TYP = 'A'.

LISTHEAD-INFO = 'CLICK ON CUSTOMER TO GET CO-CODE'.

APPEND LISTHEAD.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

  • I_BACKGROUND_ID = 'ENJOYSAP_LOGO'

I_GRID_TITLE = 'CUSTOMER DETAILS'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = FCAT[]

IT_EVENTS = EVENT[]

TABLES

t_outtab = IKNA1.

&----


*& Form TOPPAGE

&----


  • text

----


FORM TOPPAGE.

WRITE:/ 'CUSTOMER LIST'.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = LISTHEAD[]

I_LOGO = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOPPAGE

&----


*& Form TOPPAGE1

&----


  • text

----


FORM TOPPAGE1.

WRITE:/ 'CUSTOMER LIST'.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = LISTKNB1[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOPPAGE1

&----


*& Form TOPPAGE2

&----


  • text

----


FORM TOPPAGE2.

WRITE:/ 'CUSTOMER LIST'.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = LISTVBAK[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOPPAGE2

&----


*& Form USECOMM1

&----


  • text

----


  • -->UCOMM1 text

  • -->FIELDS text

----


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

READ TABLE IKNA1 INDEX FIELDS-TABINDEX.

SELECT KUNNR BUKRS FROM KNB1 INTO TABLE IKNB1 WHERE KUNNR = IKNA1-KUNNR.

PERFORM LISTKNB1 USING IKNA1-KUNNR.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

  • I_BACKGROUND_ID = 'ENJOYSAP_LOGO'

I_GRID_TITLE = 'CO-CODE DETAILS'

IS_LAYOUT = I_LAYOUT1

IT_FIELDCAT = VCAT[]

IT_EVENTS = EVENT1[]

TABLES

t_outtab = IKNB1.

REFRESH LISTKNB1.

ENDFORM. "USECOMM1

&----


*& Form LISTKNB1

&----


  • text

----


  • -->VALUE(CUST)text

----


FORM LISTKNB1 USING VALUE(CUST) TYPE KUNNR.

LISTKNB1-TYP = 'H'.

LISTKNB1-INFO = 'CLICK ON COMPANY CODE TO VIEW ORDERS '.

APPEND LISTKNB1.

  • DATA NAM TYPE NAME1.

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

LISTKNB1-TYP = 'S'.

LISTKNB1-INFO = 'CUSTOMER NAME'.

LISTKNB1-KEY = IKNA1-NAME1.

APPEND LISTKNB1.

LISTKNB1-TYP = 'A'.

LISTKNB1-INFO = 'COMPANY CODE OF SELECTED CUSTOMER'.

APPEND LISTKNB1.

ENDFORM. "LISTKNB1

&----


*& Form USECOMM2

&----


  • text

----


  • -->UCOMM2 text

  • -->FIELDS1 text

----


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

READ TABLE IKNB1 INDEX FIELDS1-TABINDEX.

SELECT VBELN NETWR KUNNR FROM VBAK INTO TABLE IVBAK

WHERE KUNNR = IKNB1-KUNNR.

PERFORM LISTVBAK.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

  • I_BACKGROUND_ID = 'ENJOYSAP_LOGO'

I_GRID_TITLE = 'LAST DISPLAY'

IS_LAYOUT = I_LAYOUT2

IT_FIELDCAT = OCAT[]

IT_EVENTS = EVENT2[]

TABLES

t_outtab = IVBAK[].

REFRESH LISTVBAK.

ENDFORM. "USECOMM2

&----


*& Form LISTVBAK

&----


  • text

----


FORM LISTVBAK." USING VALUE (CUST) TYPE KUNNR.

LISTVBAK-TYP = 'H'.

LISTVBAK-INFO = 'ORDERS PLACED BY THE CUSTOMER'.

APPEND LISTVBAK.

*DATA NAM TYPE NAME1.

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

*LISTVBAK-TYP = 'A'

*LISTVBAK-INFO = 'CUSTOMER NAME'.

*LISTVBAK-KEY = NAM.

*APPEND LISTVBAK.

LISTVBAK-TYP = 'A'.

LISTVBAK-INFO = 'THIS IS THE LAST LIST'.

APPEND LISTVBAK.

ENDFORM. "LISTVBAK

&----


*& Form USECOMM3

&----


  • text

----


  • -->UCOMM3 text

  • -->FIELDS2 text

----


FORM USECOMM3 USING UCOMM3 LIKE SY-UCOMM FIELDS2 TYPE SLIS_SELFIELD.

READ TABLE IVBAK INDEX FIELDS2-TABINDEX.

SELECT VBELN POSNR FROM VBAP INTO TABLE IVBAP WHERE VBELN = IVBAK-VBELN.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'LIST OF ITEMS'

I_SELECTION = 'X'

  • I_ALLOW_NO_SELECTION =

  • I_ZEBRA = ' '

I_SCREEN_START_COLUMN = 15

I_SCREEN_START_LINE = 5

I_SCREEN_END_COLUMN = 80

I_SCREEN_END_LINE = 15

  • I_CHECKBOX_FIELDNAME =

  • I_LINEMARK_FIELDNAME =

  • I_SCROLL_TO_SEL_LINE = 'X'

i_tabname = 'IVBAP'

  • I_STRUCTURE_NAME =

IT_FIELDCAT = ICAT[]

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE =

  • IMPORTING

  • ES_SELFIELD =

  • E_EXIT =

tables

t_outtab = IVBAP

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. "USECOMM3

Reward points if useful.

Regards,

U. Uma

Read only

Former Member
0 Likes
646

hi

check this program BCALV_GRID_03

Read only

Former Member
0 Likes
646

Hi amarnath,

1. In alv we cannot use AT LINE Selection

2. For alv, there is a special syntax, so that when we double-click on alv,

our FORM / routine is called and there we display another alv.

3. just copy paste to get a taste of interactive alv.

4.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : ITAB LIKE T001 OCCURS 0 WITH HEADER LINE.

DATA : alvfc TYPE slis_t_fieldcat_alv.

DATA : STAB LIKE T001 OCCURS 0 WITH HEADER LINE.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

*----


IMPORTANT.

READ TABLE ITAB INDEX WHATROW-TABINDEX.

*

CLEAR STAB.

SELECT * FROM T001

INTO TABLE STAB

WHERE BUKRS = ITAB-BUKRS.

CLEAR ALVFC.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'STAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

TABLES

t_outtab = Stab

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM. "ITAB_user_command

regards,

amit m.