‎2008 Jul 24 4:05 PM
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
‎2008 Jul 24 4:15 PM
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
‎2008 Jul 24 4:15 PM
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
‎2008 Jul 29 4:50 AM
‎2008 Jul 29 5:00 AM
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
‎2008 Jul 29 5:01 AM
‎2008 Jul 29 5:49 AM
Hi ,
check this sample code it would be helpful to you.
&----
*& Report ZALV_REPORT_SFLIGHT
*&
&----
Published at SAPTechnical.COM
&----
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.
‎2008 Jul 29 6:59 AM
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
‎2008 Jul 29 7:00 AM