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

Regarding alv

Former Member
0 Likes
680

Hi ,

I am giving alv grid output to the user from my interanl table

and two fields were in edit mode user can enter the requried data and press a button for processing

the how do i need to updated my internal table by the user entered data.

dynamically in the alv grid output.....

Points will be rewarded

Thanks in advance...

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
654

TABLES : vbak,vbap.

***structure declaration

TYPES : BEGIN OF ty_vbak,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

ernam TYPE vbak-ernam,

audat TYPE vbak-audat,

auart TYPE vbak-auart,

END OF ty_vbak,

BEGIN OF ty_vbap,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

matkl TYPE vbap-matkl,

lfrel TYPE vbap-lfrel,

END OF ty_vbap.

DATA : it_vbak TYPE TABLE OF ty_vbak,

wa_vbak TYPE ty_vbak,

it_vbap TYPE TABLE OF ty_vbap,

wa_vbap TYPE ty_vbap.

***REFERENCE VARIABLE

DATA: v_cus1 TYPE REF TO cl_gui_custom_container,

v_grid1 TYPE REF TO cl_gui_alv_grid,

v_cus2 TYPE REF TO cl_gui_custom_container,

v_grid2 TYPE REF TO cl_gui_alv_grid.

***field catalog declaration

DATA : it_fcat_vbak TYPE lvc_t_fcat,

wa_fcat_vbak TYPE lvc_s_fcat,

it_fcat_vbap TYPE lvc_t_fcat,

wa_fcat_vbap TYPE lvc_s_fcat,

is_layout TYPE lvc_s_layo.

is_layout-zebra = 'X'.

***select option

SELECT-OPTIONS : so_vbeln FOR vbak-vbeln.

***validating the select option

SELECT SINGLE vbeln

FROM vbak

INTO vbak-vbeln

WHERE vbeln IN so_vbeln.

***field catalog for vbak

wa_fcat_vbak-col_pos = '1'.

wa_fcat_vbak-fieldname = 'VBELN'.

wa_fcat_vbak-scrtext_m = 'SALES DOC'.

wa_fcat_vbak-emphasize = 'X'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '2'.

wa_fcat_vbak-fieldname = 'ERDAT'.

wa_fcat_vbak-scrtext_m = 'CREATED DATE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '3'.

wa_fcat_vbak-fieldname = 'ERNAM'.

wa_fcat_vbak-scrtext_m = 'PERSON NAME'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '4'.

wa_fcat_vbak-fieldname = 'AUDAT'.

wa_fcat_vbak-scrtext_m = 'DOCUMENT DATE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '5'.

wa_fcat_vbak-fieldname = 'AUART'.

wa_fcat_vbak-scrtext_m = 'SALES DOC TYPE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

***field catalog for vbak

wa_fcat_vbap-col_pos = '1'.

wa_fcat_vbap-fieldname = 'VBELN'.

wa_fcat_vbap-scrtext_m = 'SALES DOC '.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

wa_fcat_vbap-col_pos = '2'.

wa_fcat_vbap-fieldname = 'POSNR'.

wa_fcat_vbap-scrtext_m = 'SALES ITEM'.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

wa_fcat_vbap-col_pos = '3'.

wa_fcat_vbap-fieldname = 'MATNR'.

wa_fcat_vbap-scrtext_m = 'MATERIAL NO.'.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

***start of selection

START-OF-SELECTION.

SELECT vbeln erdat ernam audat auart

FROM vbak

INTO TABLE it_vbak

WHERE vbeln IN so_vbeln.

----


  • CLASS cl_envent DEFINITION

----


*

----


CLASS cl_event DEFINITION.

PUBLIC SECTION.

METHODS click FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row

e_column.

ENDCLASS. "cl_envent DEFINITION

----


  • CLASS cl_event IMPLEMENTATION

----


*

----


CLASS cl_event IMPLEMENTATION.

METHOD click.

READ TABLE it_vbak INDEX e_row-index INTO wa_vbak.

PERFORM select_data_vbap USING wa_vbak

CHANGING it_vbap.

CALL SCREEN '0200'.

ENDMETHOD. "click

ENDCLASS. "cl_event IMPLEMENTATION

**start of selection

START-OF-SELECTION.

  • SELECT vbeln erdat ernam audat auart

  • FROM vbak

  • INTO TABLE it_vbak

  • WHERE vbeln IN so_vbeln.

CALL SCREEN '0100'.

***declaring reference variable

DATA obj_cl_event TYPE REF TO cl_event.

***creating object for class cl_event

  • CREATE OBJECT obj_cl_event.

*

  • SET HANDLER obj_cl_event->click FOR v_grid1.

&----


*& Form select_data_vbap

&----


  • text

----


  • -->P_WA_VBAK text

  • -->P_IT_VBAK text

----


FORM select_data_vbap USING p_wa_vbak LIKE LINE OF it_vbak

CHANGING p_it_vbak LIKE it_vbap[].

SELECT vbeln posnr matnr matkl lfrel

FROM vbap

INTO TABLE it_vbap

WHERE vbeln = p_wa_vbak-vbeln.

ENDFORM. "select_data_vbap

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'INT0100'.

  • SET TITLEBAR 'xxx'.

SELECT vbeln erdat ernam audat auart

FROM vbak

INTO TABLE it_vbak

WHERE vbeln IN so_vbeln.

CREATE OBJECT v_cus1

EXPORTING

  • PARENT =

container_name = 'CUSTOM1'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

  • EXCEPTIONS

  • CNTL_ERROR = 1

  • CNTL_SYSTEM_ERROR = 2

  • CREATE_ERROR = 3

  • LIFETIME_ERROR = 4

  • LIFETIME_DYNPRO_DYNPRO_LINK = 5

  • others = 6

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT v_grid1

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = v_cus1

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • EXCEPTIONS

  • ERROR_CNTL_CREATE = 1

  • ERROR_CNTL_INIT = 2

  • ERROR_CNTL_LINK = 3

  • ERROR_DP_CREATE = 4

  • others = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL METHOD v_grid1->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = is_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = it_vbak[]

it_fieldcatalog = it_fcat_vbak

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT obj_cl_event.

SET HANDLER obj_cl_event->click FOR v_grid1.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'INT0200'.

  • SET TITLEBAR 'xxx'.

CREATE OBJECT v_cus2

EXPORTING

  • PARENT =

container_name = 'CUSTOM2'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

  • EXCEPTIONS

  • CNTL_ERROR = 1

  • CNTL_SYSTEM_ERROR = 2

  • CREATE_ERROR = 3

  • LIFETIME_ERROR = 4

  • LIFETIME_DYNPRO_DYNPRO_LINK = 5

  • others = 6

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT v_grid2

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = v_cus2

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • EXCEPTIONS

  • ERROR_CNTL_CREATE = 1

  • ERROR_CNTL_INIT = 2

  • ERROR_CNTL_LINK = 3

  • ERROR_DP_CREATE = 4

  • others = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL METHOD v_grid2->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = is_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = it_vbap

it_fieldcatalog = it_fcat_vbap

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'EXIT'.

LEAVE PROGRAM.

when 'BACK'.

leave to screen 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

CASE sy-ucomm.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'PREV'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

Hi ,

I am giving alv grid output to the user from my interanl table

and two fields were in edit mode user can enter the requried data and press a button for processing

the how do i need to updated my internal table by the user entered data.

dynamically in the alv grid output.....

Points will be rewarded

Thanks in advance...

4 REPLIES 4
Read only

Former Member
0 Likes
654

you can modify the internal table in your user_comman subroutine

Function module to display the ALV report

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = W_REPID

I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'

I_CALLBACK_USER_COMMAND = <b>'USER_COMMAND'</b>

FORM <b>USER_COMMAND</b> USING P_UCOMM TYPE SY-UCOMM

P_SELFLD TYPE SLIS_SELFIELD.

DATA : L_REP_MODE. "report mode

CASE P_UCOMM.

Data ref1 type ref to cl_gui_alv_grid.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

E_GRID = ref1.

call method ref1->check_changed_data

WHEN 'SAVE'.

loop at itab .

MODIFY ITAB INDEX SY-TABIX.

endloop.

ENDCASE.

ENDFORM.

Read only

Former Member
0 Likes
655

TABLES : vbak,vbap.

***structure declaration

TYPES : BEGIN OF ty_vbak,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

ernam TYPE vbak-ernam,

audat TYPE vbak-audat,

auart TYPE vbak-auart,

END OF ty_vbak,

BEGIN OF ty_vbap,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

matkl TYPE vbap-matkl,

lfrel TYPE vbap-lfrel,

END OF ty_vbap.

DATA : it_vbak TYPE TABLE OF ty_vbak,

wa_vbak TYPE ty_vbak,

it_vbap TYPE TABLE OF ty_vbap,

wa_vbap TYPE ty_vbap.

***REFERENCE VARIABLE

DATA: v_cus1 TYPE REF TO cl_gui_custom_container,

v_grid1 TYPE REF TO cl_gui_alv_grid,

v_cus2 TYPE REF TO cl_gui_custom_container,

v_grid2 TYPE REF TO cl_gui_alv_grid.

***field catalog declaration

DATA : it_fcat_vbak TYPE lvc_t_fcat,

wa_fcat_vbak TYPE lvc_s_fcat,

it_fcat_vbap TYPE lvc_t_fcat,

wa_fcat_vbap TYPE lvc_s_fcat,

is_layout TYPE lvc_s_layo.

is_layout-zebra = 'X'.

***select option

SELECT-OPTIONS : so_vbeln FOR vbak-vbeln.

***validating the select option

SELECT SINGLE vbeln

FROM vbak

INTO vbak-vbeln

WHERE vbeln IN so_vbeln.

***field catalog for vbak

wa_fcat_vbak-col_pos = '1'.

wa_fcat_vbak-fieldname = 'VBELN'.

wa_fcat_vbak-scrtext_m = 'SALES DOC'.

wa_fcat_vbak-emphasize = 'X'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '2'.

wa_fcat_vbak-fieldname = 'ERDAT'.

wa_fcat_vbak-scrtext_m = 'CREATED DATE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '3'.

wa_fcat_vbak-fieldname = 'ERNAM'.

wa_fcat_vbak-scrtext_m = 'PERSON NAME'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '4'.

wa_fcat_vbak-fieldname = 'AUDAT'.

wa_fcat_vbak-scrtext_m = 'DOCUMENT DATE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

wa_fcat_vbak-col_pos = '5'.

wa_fcat_vbak-fieldname = 'AUART'.

wa_fcat_vbak-scrtext_m = 'SALES DOC TYPE'.

APPEND wa_fcat_vbak TO it_fcat_vbak.

CLEAR wa_fcat_vbak.

***field catalog for vbak

wa_fcat_vbap-col_pos = '1'.

wa_fcat_vbap-fieldname = 'VBELN'.

wa_fcat_vbap-scrtext_m = 'SALES DOC '.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

wa_fcat_vbap-col_pos = '2'.

wa_fcat_vbap-fieldname = 'POSNR'.

wa_fcat_vbap-scrtext_m = 'SALES ITEM'.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

wa_fcat_vbap-col_pos = '3'.

wa_fcat_vbap-fieldname = 'MATNR'.

wa_fcat_vbap-scrtext_m = 'MATERIAL NO.'.

APPEND wa_fcat_vbap TO it_fcat_vbap.

CLEAR wa_fcat_vbap.

***start of selection

START-OF-SELECTION.

SELECT vbeln erdat ernam audat auart

FROM vbak

INTO TABLE it_vbak

WHERE vbeln IN so_vbeln.

----


  • CLASS cl_envent DEFINITION

----


*

----


CLASS cl_event DEFINITION.

PUBLIC SECTION.

METHODS click FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row

e_column.

ENDCLASS. "cl_envent DEFINITION

----


  • CLASS cl_event IMPLEMENTATION

----


*

----


CLASS cl_event IMPLEMENTATION.

METHOD click.

READ TABLE it_vbak INDEX e_row-index INTO wa_vbak.

PERFORM select_data_vbap USING wa_vbak

CHANGING it_vbap.

CALL SCREEN '0200'.

ENDMETHOD. "click

ENDCLASS. "cl_event IMPLEMENTATION

**start of selection

START-OF-SELECTION.

  • SELECT vbeln erdat ernam audat auart

  • FROM vbak

  • INTO TABLE it_vbak

  • WHERE vbeln IN so_vbeln.

CALL SCREEN '0100'.

***declaring reference variable

DATA obj_cl_event TYPE REF TO cl_event.

***creating object for class cl_event

  • CREATE OBJECT obj_cl_event.

*

  • SET HANDLER obj_cl_event->click FOR v_grid1.

&----


*& Form select_data_vbap

&----


  • text

----


  • -->P_WA_VBAK text

  • -->P_IT_VBAK text

----


FORM select_data_vbap USING p_wa_vbak LIKE LINE OF it_vbak

CHANGING p_it_vbak LIKE it_vbap[].

SELECT vbeln posnr matnr matkl lfrel

FROM vbap

INTO TABLE it_vbap

WHERE vbeln = p_wa_vbak-vbeln.

ENDFORM. "select_data_vbap

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'INT0100'.

  • SET TITLEBAR 'xxx'.

SELECT vbeln erdat ernam audat auart

FROM vbak

INTO TABLE it_vbak

WHERE vbeln IN so_vbeln.

CREATE OBJECT v_cus1

EXPORTING

  • PARENT =

container_name = 'CUSTOM1'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

  • EXCEPTIONS

  • CNTL_ERROR = 1

  • CNTL_SYSTEM_ERROR = 2

  • CREATE_ERROR = 3

  • LIFETIME_ERROR = 4

  • LIFETIME_DYNPRO_DYNPRO_LINK = 5

  • others = 6

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT v_grid1

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = v_cus1

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • EXCEPTIONS

  • ERROR_CNTL_CREATE = 1

  • ERROR_CNTL_INIT = 2

  • ERROR_CNTL_LINK = 3

  • ERROR_DP_CREATE = 4

  • others = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL METHOD v_grid1->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = is_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = it_vbak[]

it_fieldcatalog = it_fcat_vbak

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT obj_cl_event.

SET HANDLER obj_cl_event->click FOR v_grid1.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'INT0200'.

  • SET TITLEBAR 'xxx'.

CREATE OBJECT v_cus2

EXPORTING

  • PARENT =

container_name = 'CUSTOM2'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

  • EXCEPTIONS

  • CNTL_ERROR = 1

  • CNTL_SYSTEM_ERROR = 2

  • CREATE_ERROR = 3

  • LIFETIME_ERROR = 4

  • LIFETIME_DYNPRO_DYNPRO_LINK = 5

  • others = 6

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT v_grid2

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = v_cus2

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • EXCEPTIONS

  • ERROR_CNTL_CREATE = 1

  • ERROR_CNTL_INIT = 2

  • ERROR_CNTL_LINK = 3

  • ERROR_DP_CREATE = 4

  • others = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL METHOD v_grid2->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = is_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = it_vbap

it_fieldcatalog = it_fcat_vbap

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'EXIT'.

LEAVE PROGRAM.

when 'BACK'.

leave to screen 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

CASE sy-ucomm.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'PREV'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

Read only

Former Member
0 Likes
654

here is the program for selecting the cloumn and edit change the data and save .

REPORT  zdemo_alvgrid_sel_editrow                 .

TABLES:     ekko.

type-pools: slis.                                 "ALV Declarations
*Data Declaration
*----------------
TYPES: BEGIN OF t_ekko,
  SEl,                         "stores which row user has selected
  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,
 END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF T_ekko INITIAL SIZE 0,
      wa_ekko TYPE T_ekko.

*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.

* There are a number of ways to create a fieldcat.
* For the purpose of this example i will build the fieldcatalog manualy
* by populating the internal table fields individually and then
* appending the rows. This method can be the most time consuming but can
* also allow you  more control of the final product.

* Beware though, you need to ensure that all fields required are
* populated. When using some of functionality available via ALV, such as
* total. You may need to provide more information than if you were
* simply displaying the result
*               I.e. Field type may be required in-order for
*                    the 'TOTAL' function to work.

  fieldcatalog-fieldname   = 'EBELN'.
  fieldcatalog-seltext_m   = 'Purchase Order'.
  fieldcatalog-col_pos     = 0.
  fieldcatalog-outputlen   = 10.
  fieldcatalog-emphasize   = 'X'.
  fieldcatalog-key         = 'X'.
*  fieldcatalog-do_sum      = 'X'.
*  fieldcatalog-no_zero     = 'X'.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'EBELP'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'STATU'.
  fieldcatalog-seltext_m   = 'Status'.
  fieldcatalog-col_pos     = 2.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'AEDAT'.
*   fieldcatalog-edit    = 'X'.
  fieldcatalog-seltext_m   = 'Item change date'.
  fieldcatalog-col_pos     = 3.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MATNR'.
  fieldcatalog-seltext_m   = 'Material Number'.
  fieldcatalog-col_pos     = 4.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MENGE'.
  fieldcatalog-seltext_m   = 'PO quantity'.
  fieldcatalog-col_pos     = 5.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MEINS'.
  fieldcatalog-seltext_m   = 'Order Unit'.
  fieldcatalog-col_pos     = 6.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'NETPR'.
  fieldcatalog-seltext_m   = 'Net Price'.
  fieldcatalog-col_pos     = 7.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-do_sum      = 'X'.        "Display column total
  fieldcatalog-datatype     = 'CURR'.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'PEINH'.
  fieldcatalog-seltext_m   = 'Price Unit'.
  fieldcatalog-col_pos     = 8.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.
endform.                    " BUILD_FIELDCATALOG


*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*
form build_layout.
  gd_layout-box_fieldname     = 'SEL'.
                                 "set field name to store row selection
  gd_layout-edit              = 'X'. "makes whole ALV table editable
  gd_layout-zebra             = 'X'.
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                = it_ekko
       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 ebeln ebelp statu aedat matnr menge meins netpr peinh
 up to 10 rows
  from ekpo
  into corresponding fields of table it_ekko.
endform.                    " DATA_RETRIEVAL


*------------------------------------------------------------------*
*       FORM USER_COMMAND                                          *
*------------------------------------------------------------------*
*       --> R_UCOMM                                                *
*       --> RS_SELFIELD                                            *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
*   Check field clicked on within ALVgrid report
    IF rs_selfield-fieldname = 'EBELN'.
*     Read data table, using index of row user clicked on
      READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
      SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
*     Sxecute transaction ME23N, and skip initial data entry screen
      CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    ENDIF.

    WHEN '&DATA_SAVE'.  "user presses SAVE
    loop at it_ekko into wa_ekko.
      if wa_ekko-sel EQ 'X'.

" *       Process records that have been selected
      endif.
    endloop.


  ENDCASE.
ENDFORM.

reward points if it is usefull

Girish

Read only

Former Member
0 Likes
654

please

check check_changed_data of cl_gui_alv_grid

i think u can capture the data chaged in grid

reward if helpful