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 Grid Control Double click error

Former Member
0 Likes
1,106

Hi

In my Editable ALV Grid Control I input the data ,then click save, the program display error msg if any errors , then i double click in any field ,after that I exit from the program , here i dont want this after double click also the control should be on the same field.Pleace help me out this issue.

THX

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
784

Hi,

I think this particular case can be resolved by writing the logic for the Double click function code.

Under the function code &IC1 write the below logic

Call screen 100 ( here screen 100 is your ALV output container screen)

Try this logic.

Regards

Pavan

Hi,

I think this particular case can be resolved by writing the logic for the Double click function code.

Under the function code &IC1 write the below logic

Call screen 100 ( here screen 100 is your ALV output container screen)

Try this logic.

Regards

Pavan

4 REPLIES 4
Read only

Former Member
0 Likes
784

provide proper detail of error and code

Read only

Former Member
0 Likes
785

Hi,

I think this particular case can be resolved by writing the logic for the Double click function code.

Under the function code &IC1 write the below logic

Call screen 100 ( here screen 100 is your ALV output container screen)

Try this logic.

Regards

Pavan

Read only

Former Member
0 Likes
784

But what you will do with the error data. you tell me that.

Don't update some error values to DB.

if you don't want error then check this sample code.

report  ztest_alv_edit.

data: it_flight type standard table of sflight.

data: it_fcat type lvc_t_fcat,
      wa_fcat type lvc_s_fcat.

data: grid type ref to cl_gui_alv_grid,
      cont type ref to cl_gui_custom_container.
class lcl_event_receiver definition deferred.

data: g_handler type ref to lcl_event_receiver.

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_event_receiver definition.

  public section.
    methods:
      handle_data_changed
         for event data_changed of cl_gui_alv_grid
             importing er_data_changed.

endclass.                    "lcl_event_receiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_event_receiver implementation.
  method handle_data_changed.
   "this is important
   "this will stop poping the message
   clear er_data_changed->mt_protocol.

  endmethod.                    "handle_data_changed

endclass.                    "lcl_event_receiver IMPLEMENTATION

start-of-selection.

  select * from sflight
  into table it_flight
  up to 20 rows.
end-of-selection.
  call screen 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module status_0100 output.
  set pf-status 'STATUS'.
  if cont is initial.


    call function 'LVC_FIELDCATALOG_MERGE'
      exporting
        i_structure_name       = 'SFLIGHT'
      changing
        ct_fieldcat            = it_fcat
      exceptions
        inconsistent_interface = 1
        program_error          = 2.
    create object cont
      exporting
        container_name              = 'CONT'
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        others                      = 6
        .
    if sy-subrc ne 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    wa_fcat-edit = 'X'.
    wa_fcat-checktable = '!'.
    modify it_fcat from wa_fcat transporting edit checktable
    where fieldname = 'FLDATE'
    .
    create object grid
      exporting
        i_parent          = cont
      exceptions
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        others            = 5
        .
    if sy-subrc ne 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.

    call method grid->set_table_for_first_display(
       changing
         it_outtab                     = it_flight
         it_fieldcatalog               = it_fcat
       exceptions
         invalid_parameter_combination = 1
         program_error                 = 2
         too_many_lines                = 3
            ).
    if sy-subrc ne 0.
      message id sy-msgid type sy-msgty number sy-msgno
                 with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    "Important for editable grid
     call method grid->register_edit_event
               exporting
                  i_event_id = cl_gui_alv_grid=>mc_evt_enter.
     create object g_handler.
    "setting the handler
    set handler  g_handler->handle_data_changed for grid.

  endif.

endmodule.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module user_command_0100 input.
  "important method to trigger the DATA_CHANGED event
  call method grid->check_changed_data.
  case sy-ucomm.
    when 'BACK'.
      leave to screen 0.
  endcase.
endmodule.                 " USER_COMMAND_0100  INPUT

Read only

Former Member
0 Likes
784

yes