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

Former Member
0 Likes
689

Is it possible to edit a cell in the ALV grid display using function modules.?Or Abap objects are the only option.

I have a big internal table and , the user should be able to view it and also enter value in an empty field and the program should get the entered value perform a simple subtraction and then display the new value.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
663

Yes it is possible for an edidtable ALV report and you would not need any special coding.

The normal function modules will take care of it.

Shrerekant

Yes it is possible for an edidtable ALV report and you would not need any special coding.

The normal function modules will take care of it.

Shrerekant

6 REPLIES 6
Read only

Former Member
0 Likes
663

Hi Krish,

When you are preparing the field catalog for the ALV, in the export parameters, you will get a flag for input enabled..

You will need to check that flag for the field which you want to make input enabled..

Thanks and Best Regards,

Vikas Bittera.

Read only

Former Member
0 Likes
664

Yes it is possible for an edidtable ALV report and you would not need any special coding.

The normal function modules will take care of it.

Shrerekant

Read only

Former Member
0 Likes
663

Hi,

Use this function module:

'REUSE_ALV_LIST_DISPLAY'

In the fieldcat parameter pass the field catalog table..

When appending a field to the field catalog table.. do this:

  • Workarea for table i_fieldcat

DATA : e_fieldcat TYPE slis_fieldcat_alv.

  • Clear table header and work area

CLEAR : e_fieldcat .

  • Append the values

e_fieldcat-col_pos = p_pos .

e_fieldcat-fieldname = p_field .

e_fieldcat-seltext_l = p_lable .

e_fieldcat-seltext_m = p_lable .

e_fieldcat-seltext_s = p_lable .

e_fieldcat-input = 'X'.

e_fieldcat-outputlen = p_len .

APPEND e_fieldcat TO i_fieldcat.

Thanks and Best Regards,

Vikas Bittera.

Read only

Former Member
0 Likes
663

Thankyou Vikas ,

It seems that it can be edited, but a question , how to retrieve what has been entered - perform validations and then again display it on screen.

If you can share your knowledge on this , it will be great

Read only

0 Likes
663

you can do all your validation in the user command.

*----------------------------------------------------------------------*
* call the ABAP list viewer                                            *
*----------------------------------------------------------------------*
FORM list_display TABLES a_output.

  pgm = disvariant-report = sy-repid.
  disvariant-variant = variant.
* call list viewer
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program       = pgm
      i_callback_pf_status_set = 'SET_PF_STATUS'
      it_fieldcat              = fieldcat
      is_variant               = disvariant
      is_layout                = layout
      is_print                 = print
      i_save                   = 'A'
      it_events                = eventcat
      it_sort                  = sortcat
      i_callback_user_command  = 'USER_COMMAND'
    TABLES
      t_outtab                 = a_output
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

ENDFORM.                    "LIST_DISPLAY

**---------------------------------------------------------------------*
** FORM SET_PF_STATUS *
**---------------------------------------------------------------------*

*FORM set_pf_status USING extab TYPE slis_t_extab.
*  SET PF-STATUS 'STATUS1'.
*ENDFORM.                    "set_pf_status
FORM set_pf_status USING extab TYPE slis_t_extab.
  SET PF-STATUS 'ZZSTD'.
ENDFORM.                    "set_pf_status

**---------------------------------------------------------------------*
** FORM USER_COMMAND *
**---------------------------------------------------------------------*

FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
  DATA t_difference TYPE i.
  CASE ucomm.

    WHEN 'COPY'.
      LOOP AT t_output INTO wa_output.
        IF wa_output-chkbox = 'X'.
          wa_output-zzcastqtyactual = 0.
          wa_output-zcastqty = 0.
          wa_output-plnum = ''.
          wa_output-zzgsmng = 0.
          IF v_tabix NE sy-tabix.
            v_tabix = sy-tabix + 1.
            INSERT wa_output INTO t_output INDEX v_tabix.
          ENDIF.
        ENDIF.
      ENDLOOP.

    WHEN 'DELETE'.
      DELETE t_output WHERE chkbox = 'X'.

    WHEN 'SELA'.
      LOOP AT t_output.
        t_output-chkbox = 'X'.
        MODIFY t_output INDEX sy-tabix.
      ENDLOOP.

You might have to add buttons on the screen and assign a function code to it and use them in the program.

Hope this helps and let me know if you need additional help or a demo code.

Shreekant

Read only

0 Likes
663

Hi Shreekant.

Thanks for the code. It not totally clear for me right now as how to perform validations. If you can mail me a complete source code , it will be great.

Thanks

Krish