cancel
Showing results for 
Search instead for 
Did you mean: 

ALV Issue in double clicking

Former Member
0 Kudos

Hi,

In the custom program there is a call to the function CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'.

This is part of the main program SAPLSLVC_FULLSCREEN.

Within this program there are Process Before Output ( PBO) and Process After Input modules ( PAI)

When the user double clikcs on the line it takes them to the detail report.

When the back button is pressed in 9001 the flow goes to PAI and then PBO and the double click does not work any more after the user gets back to the initial

screen 9000 for example.

Inputs will be appreciated.

regards

Aveek

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Aveek,

I agree to Ruthera Rajendran's solution.

If you want to do double_click on ALV , you have to active User_command event in your custom development as like Ruthera's one.the other way

Use FM 'REUSE_ALV_EVENTS_GET', here you will get all possibile events. henceforth attach your form_name to event for e.g. USER_COMMAND -> fo1_alv_user_command be form name.

hope it should helpful to you.

/karthikeyan. r

Former Member
0 Kudos

Hi,

Here is the piece of code that causes the issue:

Constants:

c_1(1) TYPE c VALUE '1', "Material View

c_2(1) TYPE c VALUE '2', "Order View

c_3(1) TYPE c VALUE '3', "Batch View

c_4(1) TYPE c VALUE '4', "User View

c_5(1) TYPE c VALUE '5', "Detail View

FORM show_report.

CASE v_sel.

WHEN c_1.

ASSIGN i_mat[] TO <f_outtab>.

v_struct = 'TY_MAT' .

v_title = 'Material View'(026).

REFRESH i_extab.

wa_extab-fcode = c_mat.

APPEND wa_extab TO i_extab.

PERFORM call_alv_grid TABLES i_fcat_mat.

WHEN c_2.

ASSIGN i_order[] TO <f_outtab>.

v_struct = 'TY_ORDER' .

v_title = 'Order View'(027).

REFRESH i_extab.

wa_extab-fcode = c_ord.

APPEND wa_extab TO i_extab.

PERFORM call_alv_grid TABLES i_fcat_order.

ENDCASE.

ENDFORM. " SHOW_REPORT

FORM call_alv_grid TABLES p_i_fcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

i_callback_top_of_page = 'TOP_OF_PAGE'

i_structure_name = v_struct

i_grid_title = v_title

is_layout = wa_layout

it_fieldcat = p_i_fcat[]

it_excluding = i_extab[]

i_save = c_a

TABLES

t_outtab = <f_outtab>

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

regards

Aveek

Former Member
0 Kudos

For the details view:

WHEN c_5.

ASSIGN i_details[] TO <f_outtab>.

v_struct = 'TY_DETAILS' .

v_title = 'Details View'(030).

REFRESH i_extab.

PERFORM call_alv_grid TABLES i_fcat_details.

regards

Aveek

Former Member
0 Kudos

Hi,

Have a look at this code.

i_layout-f2code = '<F2CODE>'.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = ws_program

i_callback_user_command = 'USER_COMMAND'

i_callback_pf_status_set = 'SET_PF_STATUS'

is_layout = i_layout

it_fieldcat = i_fieldcat

it_excluding = i_exclude

it_sort = i_sort

i_save = 'A'

  • IS_VARIANT =

it_events = i_events

tables

t_outtab = final_itab.

form user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

  • Check function code

case r_ucomm.

when '<F2CODE>'.

read table final_itab into final_itab index rs_selfield-tabindex.

if sy-subrc = 0.

call screen 5000.

endif.

endcase.

clear r_ucomm.

endform.

module user_command_5000 input.

case sy-ucomm.

when 'EXIT'.

set screen 0.

leave screen .

endcase.

endmodule. " USER_COMMAND_5000 INPUT

Hope this helps You.

Thanks&Regards

Ruthra.R

Former Member
0 Kudos

Hi all,

I am off today and check your suggestions tomorrow.

regards

Aveek

Former Member
0 Kudos

Hi, can you paste the code here?

I think there is somthing wrong in the detail level ALV create or refresh. You use two screen, and each screen has a ALV, right?

Hope we can see your code, that will be useful for us to analyze the problem.

Thanks

Former Member
0 Kudos

Got this info from a link.

<i>How do I go to a transaction by double clicking on a field in the screen?

Define ok_code for function key <F2>

In Screen PAI when ok_code has the value defined (user has double clicked on the screen)

method 1: if parameter id is available for the field(s) to be populated

set parameter id 'XXX' field field_name_on_screen

call transaction 'TCODE' and skip first screen.

method 2:

1. fill bdc_table (data bdc_table like bdcdata occurs 0 with header line.) with screen info

2. use command

call transaction 'XK03' using bdc_table ...</i>

Former Member
0 Kudos

Hi , can you explain the relation of 9000 and 9001 screen.

And how about you screen process, can you offer us more details infomation?

thanks a lot

Former Member
0 Kudos

Hi,

1000 is the selection screen. Then when the function is called it provides an alv output. When you double click on one of the columns the detail level is displayed calling the same function. When the user clicks on the back button from this screen it goes back to the previous screen with the header data. On double clicking the same column again the detail level is not displayed. I was trying to illsutrate this problem with screen numbers.

regards

Aveek