‎2010 Feb 28 6:09 AM
Hi,
In my ALV output, I want to click on a record of column A and get output A, and click on a record of column B and get output B.
Does any one have a solution for this.
I know how to get output A on clicking on any field of a particular record...
Regards,
Fawaz.
‎2010 Feb 28 7:16 AM
Hi,
Got the solution.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_buffer_active = ' '
i_callback_program = sy-repid
i_callback_user_command = 'F_GET_DETAIL'
is_layout = er_layout
it_fieldcat = er_fieldcat[]
it_special_groups = er_sp_group
it_sort = er_sort
i_save = 'A'
is_variant = e_variant
it_events = er_events[]
TABLES
t_outtab = sum_tab.
FORM f_get_detail USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
break fawazs.
READ TABLE sum_tab INDEX rs_selfield-tabindex.
REFRESH detail_tab.
LOOP AT data_tab WHERE hkont = sum_tab-hkont
AND bukrs = sum_tab-bukrs.
CASE rs_selfield-fieldname.
WHEN 'OUTFLOW_KZ'.
PERFORM get_recs USING 'OKZ'.
WHEN 'OUTFLOW_DZ'.
PERFORM get_recs USING 'ODZ'.
WHEN 'OUTFLOW_BK'.
PERFORM get_recs USING 'OBK'.
WHEN 'OUTFLOW_O'.
PERFORM get_recs USING 'OOT'.
WHEN 'INFLOW_KZ'.
PERFORM get_recs USING 'IKZ'.
WHEN 'INFLOW_DZ'.
PERFORM get_recs USING 'IDZ'.
WHEN 'INFLOW_BK'.
PERFORM get_recs USING 'IBK'.
WHEN 'INFLOW_O'.
PERFORM get_recs USING 'IOT'.
WHEN OTHERS.
MOVE-CORRESPONDING data_tab TO detail_tab.
IF data_tab-bstat = ''.
detail_tab-park = 'Posted'.
ELSEIF data_tab-bstat = 'V'.
detail_tab-park = 'PARKED'.
ENDIF.
IF data_tab-stblg NE ''.
detail_tab-park = 'REVERSED'.
ENDIF.
APPEND detail_tab.
CLEAR detail_tab.
ENDCASE.
ENDLOOP.
‎2010 Mar 08 5:00 PM
Hi.
Did u say u are checking multiple checkboxes or selecting multiple rows in your first list and for those rows need corresponding
details in next list . If yes, i didnot understand ur reply. bcoz when I am checking multiple checkboxes or selecting
multiple rows in first list , checkbox value in first internal table is not getting modified .i.e. itab-checkbox value = '1'.
this is not happening. In the output I am getting only detail of 1 row even when I am selecting multiple rows .
rs-selfield-index is capturing last selected check box and giving detail or value for that row only .
why checkbox value is not becoming '1' or 'x'.
Regards.
Veena.
‎2010 Mar 09 6:11 AM
Hi,
Actually, the way I have done it, only one record can be selected at a time in interactive ALV. Thats the reason why it is just taking the last selected row in your case as rs_selfield is a structure and not a table, so at a time it can hold only one record.
Can u paste your code so I will know what u r doing and will work on what can be done in case multiple records are selected.
Regards,
Fawaz
‎2010 Mar 09 6:45 AM
Hi,
Just copy paste this sample program and run it....Inshallah you will get the solution to what u are looking for...
REPORT abc.
TYPE-POOLS : slis.
*----
Data
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : flag TYPE c,
END OF itab.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_alv.
*----
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
alvly-box_fieldname = 'FLAG'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid "<-------Important
i_callback_user_command = 'ITAB_USER_COMMAND' "<-- Imp
is_layout = alvly
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.
break fawazs.
DATA : msg(100) TYPE c.
LOOP AT itab.
IF itab-flag = 'X'. "<----- Important
msg = sy-tabix.
CONDENSE msg.
CONCATENATE 'Row Number ' msg ' ' INTO msg
SEPARATED BY space.
MESSAGE msg TYPE 'I'.
ENDIF.
ENDLOOP.
ENDFORM. "ITAB_user_command