‎2007 Jan 30 6:33 AM
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.
‎2007 Jan 30 6:34 AM
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
‎2007 Jan 30 6:37 AM
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.
‎2007 Jan 30 6:39 AM
hi,
chk this link, there is an example program
http://www.sap-img.com/abap/an-interactive-alv-report.htm
PLZ reward if helpful.
‎2007 Jan 30 6:44 AM
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
‎2007 Jan 30 7:26 AM
‎2007 Jan 30 7:33 AM
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.