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

help needed for editable alv grid program

Former Member
0 Likes
591

hi,

Can you please tell me how to set a ‘update’ button in application toolbar of alv griv without suppressing it and how to write the code for that update button so that if I change my editable column data and press the update button my updated data should be stored in my database table.

the code what i wrote is:

TABLES: vbak,vbap.

TYPE-POOLS: slis. "ALV Declarations

*Data Declaration

*----


TYPES: BEGIN OF t_final,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

matnr LIKE vbap-matnr,

posnr LIKE vbap-posnr,

END OF t_final.

DATA: i_final TYPE STANDARD TABLE OF t_final INITIAL SIZE 0,

wa_final TYPE t_final.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

************************************************************************

*Start-of-selection.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_layout.

PERFORM display_alv_report.

&----


*& Form BUILD_FIELDCATALOG

&----


• Build Fieldcatalog for ALV Report

-


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'VBELN'.

fieldcatalog-seltext_m = 'sales order'.

fieldcatalog-col_pos = 0.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'ERDAT'.

fieldcatalog-seltext_m = 'date'.

fieldcatalog-col_pos = 1.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'material no.'.

fieldcatalog-col_pos = 2.

fieldcatalog-edit = 'X'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'POSNR'.

fieldcatalog-seltext_m = 'line item no.'.

fieldcatalog-col_pos = 3.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


• Build layout for ALV grid report

-


FORM build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

• gd_layout-totals_only = 'X'.

• gd_layout-f2code = 'DISP'. "Sets fcode for when double

• "click(press f2)

• gd_layout-zebra = 'X'.

• gd_layout-group_change_edit = 'X'.

• gd_layout-header_text = 'helllllo'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


• Display report using ALV grid

-


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'

i_grid_title = outtext

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

• it_special_groups = gd_tabgroup

• IT_EVENTS = GT_XEVENTS

i_save = 'X'

• is_variant = z_template

TABLES

t_outtab = i_final

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

&----


*& Form DATA_RETRIEVAL

&----


• Retrieve data form EKPO table and populate itab it_ekko

-


FORM data_retrieval.

SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a

INNER JOIN vbap AS b ON avbeln = bvbeln

INTO TABLE i_final WHERE avbeln = bvbeln.

• ENDFORM. " DATA_RETRIEVAL

thanks in advance.

5 REPLIES 5
Read only

Former Member
0 Likes
569

Hi,

You can create your own custom status and asign it to your

ALV GRID. Here is a sample code to add custom status and handling events.

http://www.geocities.com/mpioud/Z_DEMO_ALV_REFRESH_BUTTON.html

Regards,

Sudhir Atluru

Read only

0 Likes
569

hi sudhir,

thanks for ur reply.

after seeing the code u send to me i made changes to my program.but still when i click on update button,nothing is happening.can u please suggest me an idea.

TABLES: vbak,vbap.

TYPE-POOLS: slis. "ALV Declarations

TYPES: BEGIN OF t_final,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

matnr LIKE vbap-matnr,

posnr LIKE vbap-posnr,

END OF t_final.

DATA: i_final TYPE STANDARD TABLE OF t_final WITH HEADER LINE,

wa_final TYPE t_final.

*DATA:i_final LIKE vbap OCCURS 0.

*DATA:wa_final LIKE vbap.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

*Start-of-selection.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_layout.

PERFORM display_alv_report.

&----


*& Form BUILD_FIELDCATALOG

&----


  • Build Fieldcatalog for ALV Report

----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'VBELN'.

fieldcatalog-seltext_m = 'sales order'.

fieldcatalog-col_pos = 0.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'ERDAT'.

fieldcatalog-seltext_m = 'date'.

fieldcatalog-col_pos = 1.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'material no.'.

fieldcatalog-col_pos = 2.

fieldcatalog-edit = 'X'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'POSNR'.

fieldcatalog-seltext_m = 'line item no.'.

fieldcatalog-col_pos = 3.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


FORM build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

  • gd_layout-totals_only = 'X'.

  • gd_layout-f2code = 'DISP'. "Sets fcode for when double

  • "click(press f2)

  • gd_layout-zebra = 'X'.

  • gd_layout-group_change_edit = 'X'.

  • gd_layout-header_text = 'helllllo'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


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'

i_callback_pf_status_set = 'GUI_STAT'

  • i_grid_title = outtext

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

  • it_special_groups = gd_tabgroup

  • it_events = it_events

i_save = 'X'

  • is_variant = z_template

TABLES

t_outtab = i_final

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

&----


*& Form DATA_RETRIEVAL

&----


  • Retrieve data form EKPO table and populate itab it_ekko

----


FORM data_retrieval.

SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a

INNER JOIN vbap AS b ON avbeln = bvbeln

INTO TABLE i_final WHERE avbeln = bvbeln.

ENDFORM. " DATA_RETRIEVAL

----


  • FORM GUI_STAT *

----


  • ........ *

----


  • --> RT_EXTAB *

----


FORM gui_stat USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'UPDATE' EXCLUDING rt_extab.

ENDFORM.

----


  • FORM USER_COMMAND *

----


  • ........ *

----


  • --> U_COMM *

  • --> RS_SELFIELD *

----


FORM user_command USING u_comm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

DATA:selfield TYPE slis_selfield.

CASE u_comm.

WHEN 'UPDATE'.

LOOP AT i_final ."into wa_final.

i_final-matnr = vbap-matnr.

update (vbap) from table i_final.

IF sy-subrc = 0.

MESSAGE s000(0) WITH 'records updated successfully'.

ENDIF.

ENDLOOP.

ENDCASE.

ENDFORM.

Read only

0 Likes
569

Did you try to add a breakpoint in the routine user_command

and see if the program control is coming into it.

If the break point stops then check what is the u_comm value.

if the condition also matches then see the if the update command being called.

try to add a commit after the database update.

Regards

Sudhir Atluru.

Read only

0 Likes
569

hi sudhir,

thank for ur response.

i am new to SAP.

i tried the code as u said but, there is no change.

can u please send me piece of code to get my output.

thanks in advance.

Read only

Former Member
0 Likes
569

Hi,

Plesae refer to the standard demo program.


BCALV_TEST_GRID_EDITABLE

Thanks,

Sriram Ponna.