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

editable alv

Former Member
0 Likes
846

Hi

I need a editable alv sample program where a user can edit the alv and he can save the data into a standard table.

Please can you provide me a sample which doesnt contain any creation of screens or without use of any custom tables or custom screens in the program so that it will be easier to me run the program on my server

Thanks

Nanda

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
812

check the sample code.

REPORT  ztest_alv.
TYPE-POOLS: slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
      wa_fcat LIKE LINE OF it_fcat.

DATA: it_data TYPE vbap_t.


SELECT *
  FROM VBAP
  INTO TABLE it_data
  UP TO 20 ROWS.

wa_fcat-fieldname = 'VBELN'.
wa_fcat-tabname  = 'IT_DATA'.
wa_fcat-outputlen = 5.
wa_fcat-edit = 'X'.
wa_fcat-input = 'X'.
wa_fcat-ref_fieldname = 'VBELN'.
wa_fcat-ref_tabname = 'VBAK'.
wa_fcat-seltext_l = 'Sales Order'.
APPEND wa_fcat TO it_fcat.
clear wa_fcat .

wa_fcat-fieldname = 'POSNR'.
wa_fcat-tabname  = 'IT_DATA'.
wa_fcat-outputlen = 5.
wa_fcat-seltext_l = 'Item'.
APPEND wa_fcat TO it_fcat.

PERFORM display_data.

*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM user_command USING ucomm TYPE sy-ucomm
            selfield TYPE slis_selfield.

  DATA: gd_repid LIKE sy-repid, "Exists
  ref_grid TYPE REF TO cl_gui_alv_grid.
  IF ref_grid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_grid = ref_grid.
  ENDIF.
  IF NOT ref_grid IS INITIAL.
    CALL METHOD ref_grid->check_changed_data .
  ENDIF.

  CASE ucomm.
    WHEN '&DATA_SAVE'.

     "Do Update the Data base here....
      selfield-refresh = 'X'.


  ENDCASE.

ENDFORM.                    "user_command

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_interface_check       = sy-repid
      it_fieldcat             = it_fcat
      i_callback_user_command = 'USER_COMMAND'
    TABLES
      t_outtab                = it_data
    EXCEPTIONS
      program_error           = 1.
ENDFORM.                    "display_data

7 REPLIES 7
Read only

Former Member
0 Likes
813

check the sample code.

REPORT  ztest_alv.
TYPE-POOLS: slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
      wa_fcat LIKE LINE OF it_fcat.

DATA: it_data TYPE vbap_t.


SELECT *
  FROM VBAP
  INTO TABLE it_data
  UP TO 20 ROWS.

wa_fcat-fieldname = 'VBELN'.
wa_fcat-tabname  = 'IT_DATA'.
wa_fcat-outputlen = 5.
wa_fcat-edit = 'X'.
wa_fcat-input = 'X'.
wa_fcat-ref_fieldname = 'VBELN'.
wa_fcat-ref_tabname = 'VBAK'.
wa_fcat-seltext_l = 'Sales Order'.
APPEND wa_fcat TO it_fcat.
clear wa_fcat .

wa_fcat-fieldname = 'POSNR'.
wa_fcat-tabname  = 'IT_DATA'.
wa_fcat-outputlen = 5.
wa_fcat-seltext_l = 'Item'.
APPEND wa_fcat TO it_fcat.

PERFORM display_data.

*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM user_command USING ucomm TYPE sy-ucomm
            selfield TYPE slis_selfield.

  DATA: gd_repid LIKE sy-repid, "Exists
  ref_grid TYPE REF TO cl_gui_alv_grid.
  IF ref_grid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_grid = ref_grid.
  ENDIF.
  IF NOT ref_grid IS INITIAL.
    CALL METHOD ref_grid->check_changed_data .
  ENDIF.

  CASE ucomm.
    WHEN '&DATA_SAVE'.

     "Do Update the Data base here....
      selfield-refresh = 'X'.


  ENDCASE.

ENDFORM.                    "user_command

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_interface_check       = sy-repid
      it_fieldcat             = it_fcat
      i_callback_user_command = 'USER_COMMAND'
    TABLES
      t_outtab                = it_data
    EXCEPTIONS
      program_error           = 1.
ENDFORM.                    "display_data

Read only

Former Member
0 Likes
812

This message was moderated.

Read only

Former Member
0 Likes
812

Hi Kishore,

Check this link you will find example for individual fields of an ALV grid editable.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm

For more info,

Regards.

Eshwar

Read only

Former Member
0 Likes
812

Hi

Refer to this link

[;

Regards,

Sravanthi

Read only

Former Member
0 Likes
812

Hi ,

check this sample code it would be helpful to you.

&----


*& Report ZALV_REPORT_SFLIGHT

*&

&----


  • Published at SAPTechnical.COM

&----


REPORT ZALV_REPORT_SFLIGHT.

TABLES : SFLIGHT.

TYPE-POOLS : SLIS.**INTERNAL TABLE DECLARTION

DATA : WA_SFLIGHT TYPE SFLIGHT,

IT_SFLIGHT TYPE TABLE OF SFLIGHT.**DATA DECLARTION

DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID LIKE SY-REPID,

G_SAVE TYPE C VALUE 'X',

G_VARIANT TYPE DISVARIANT,

GX_VARIANT TYPE DISVARIANT,

G_EXIT TYPE C,

ISPFLI TYPE TABLE OF SPFLI.* To understand the importance of the following parameter, click here.

**SELECTION SCREEN DETAILS

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002 .

PARAMETERS: VARIANT LIKE DISVARIANT-VARIANT.

SELECTION-SCREEN END OF BLOCK B1.

**GETTING DEFAULT VARIANT

INITIALIZATION.

GX_VARIANT-REPORT = SY-REPID.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

VARIANT = GX_VARIANT-VARIANT.

ENDIF.**PERFORM DECLARATIONS

START-OF-SELECTION.

PERFORM DATA_RETRIVEL.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCATALOG . FIELDCATALOG-FIELDNAME = 'CARRID'.

FIELDCATALOG-SELTEXT_M = 'Airline Code'.

FIELDCATALOG-COL_POS = 0.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'CONNID'.

FIELDCATALOG-SELTEXT_M = 'Flight Connection Number'.

FIELDCATALOG-COL_POS = 1.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG. FIELDCATALOG-FIELDNAME = 'FLDATE'.

FIELDCATALOG-SELTEXT_M = 'Flight date'.

FIELDCATALOG-COL_POS = 2.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG. FIELDCATALOG-FIELDNAME = 'PRICE'.

FIELDCATALOG-SELTEXT_M = 'Airfare'.

FIELDCATALOG-COL_POS = 3.

FIELDCATALOG-OUTPUTLEN = 20.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form DISPLAY_ALV_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV_REPORT .

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "see FORM

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = FIELDCATALOG[]

I_SAVE = 'X'

IS_VARIANT = G_VARIANT

TABLES

T_OUTTAB = IT_SFLIGHT

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

&----


*& Form DATA_RETRIVEL

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DATA_RETRIVEL .

SELECT * FROM SFLIGHT INTO TABLE IT_SFLIGHT.

ENDFORM. " DATA_RETRIVEL----


  • Form TOP-OF-PAGE *

----


  • ALV Report Header *

----


FORM TOP-OF-PAGE.

*ALV Header declarations

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,

WA_HEADER TYPE SLIS_LISTHEADER,

T_LINE LIKE WA_HEADER-INFO,

LD_LINES TYPE I,

LD_LINESC(10) TYPE C.* Title

WA_HEADER-TYP = 'H'.

WA_HEADER-INFO = 'SFLIGHT Table Report'.

APPEND WA_HEADER TO T_HEADER.

CLEAR WA_HEADER.* Date

WA_HEADER-TYP = 'S'.

WA_HEADER-KEY = 'Date: '.

CONCATENATE SY-DATUM+6(2) '.'

SY-DATUM+4(2) '.'

SY-DATUM(4) INTO WA_HEADER-INFO. "todays date

APPEND WA_HEADER TO T_HEADER.

CLEAR: WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM. "top-of-page

regard,

sowjanya.

Read only

Former Member
0 Likes
812

Hi,

Check this programs,

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_EDIT_05

BCALV_EDIT_06

BCALV_EDIT_07

Check this link you will find example for individual fields of an ALV grid editable.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm

For more info,

Regards

Adil

Read only

Former Member
0 Likes
812

Hi

Go through the link given below :

With Regards

Nikunj Shah