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
622

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.

4 REPLIES 4
Read only

Former Member
0 Likes
596

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.

Read only

0 Likes
596

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.

Read only

0 Likes
596

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

Read only

0 Likes
596

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