cancel
Showing results for 
Search instead for 
Did you mean: 

How to apply List box for multiple selection of rows in ALV report ?

Former Member
0 Kudos

Hi Exprots,

1: How to apply List box for multiple selection of rows in ALV report ?

Thanking you.

Subash

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Please follow the below example code

TYPE-POOLS: vrm.

TABLES sscrfields.

PARAMETERS: p_values AS LISTBOX VISIBLE LENGTH 10.

PARAMETERS: p_key TYPE char40 DEFAULT '5',

p_text TYPE char80 DEFAULT 'Motorcycle'.

SELECTION-SCREEN PUSHBUTTON /10(10) but USER-COMMAND abc.

DATA: i_val TYPE vrm_values,

wa_val TYPE vrm_value.

AT SELECTION-SCREEN OUTPUT.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'P_VALUES'

values = i_val

EXCEPTIONS

id_illegal_name = 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.

AT SELECTION-SCREEN.

IF sscrfields-ucomm = 'ABC'.

IF p_key IS INITIAL AND p_text IS INITIAL.

MESSAGE e001(00) WITH 'Enter both Key and Text to add value'.

ELSE.

CLEAR: wa_val.

wa_val-key = p_key.

wa_val-text = p_text.

APPEND wa_val TO i_val.

ENDIF.

ENDIF.

INITIALIZATION.

CLEAR: wa_val.

wa_val-key = 1.

wa_val-text = 'Bus'.

APPEND wa_val TO i_val.

CLEAR: wa_val.

wa_val-key = 2.

wa_val-text = 'Car'.

APPEND wa_val TO i_val.

CLEAR: wa_val.

wa_val-key = 3.

wa_val-text = 'Van'.

APPEND wa_val TO i_val.

CLEAR: wa_val.

wa_val-key = 4.

wa_val-text = 'Bicycle'.

APPEND wa_val TO i_val.

MOVE 'Add Values' TO but.

Hope it helps!!

Rgds,

Pavan

Former Member
0 Kudos

hi,

check the below program.

REPORT zalv_dropdowns.

*Type pools declarations for ALV

TYPE-POOLS : slis.

*data declarations for ALV container,ALV grid, Fieldcatalogues & layout

DATA: g_grid TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container,

gt_fieldcat TYPE lvc_t_fcat,

gs_layout TYPE lvc_s_layo.*INTERNAL TABLE AND WA DECLARATIONS FOR t517 A table

DATA: gt_outtab TYPE STANDARD TABLE OF t517a INITIAL SIZE 0,

wa_outtab TYPE t517a.

START-OF-SELECTION.*Call to ALV

CALL SCREEN 600.*On this statement double click it takes you to the screen painter SE51.

*Create a Custom container and name it CCONT and OK code as OK_CODE.

*Save check and Activate the screen painter.

*Now a normal screen with number 600 is created which holds the ALV grid.

  • PBO of the actual screen , Here we can give a title and customized menus

  • Here we also call the subroutine for ALV output.

----


  • MODULE PBO OUTPUT *

----


MODULE pbo OUTPUT.

PERFORM alv_output.

ENDMODULE. "pbo OUTPUT

----


  • MODULE PAI INPUT *

----


MODULE pai INPUT.

ENDMODULE. "pai INPUT

&----


*& Form BUILD_FIELDCAT

&----


FORM build_fieldcat.

DATA ls_fcat TYPE lvc_s_fcat.

*Build the field catalogue

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

i_structure_name = 'T517A'

CHANGING

ct_fieldcat = gt_fieldcat.

  • To assign dropdown in the fieldcataogue

LOOP AT gt_fieldcat INTO ls_fcat.

CASE ls_fcat-fieldname.

WHEN 'SLART'.

*is the first list box

ls_fcat-drdn_hndl = '1'.

ls_fcat-outputlen = 15.

MODIFY gt_fieldcat FROM ls_fcat.

  • is the second list box

WHEN 'ABART'.

ls_fcat-drdn_hndl = '2'.

ls_fcat-outputlen = 15.

MODIFY gt_fieldcat FROM ls_fcat.

ENDCASE.

ENDLOOP.

ENDFORM. "build_fieldcat

&----


*& Form ALV_OUTPUT

&----


FORM alv_output .*Create object for container

CREATE OBJECT g_custom_container

EXPORTING container_name = 'CCONT'.

*create object for grid

CREATE OBJECT g_grid

EXPORTING i_parent = g_custom_container.

  • Build fieldcat and set column

*Assign a handle for the dropdown listbox.

PERFORM build_fieldcat.

*Build layout

PERFORM build_layout.

  • Define a drop down table.

PERFORM dropdown_table.

*fetch values from the T517A table

SELECT * FROM t517a INTO TABLE gt_outtab.

*Display ALV output

CALL METHOD g_grid->set_table_for_first_display

EXPORTING

is_layout = gs_layout

CHANGING

it_fieldcatalog = gt_fieldcat

it_outtab = gt_outtab.ENDFORM. "ALV_OUTPUT

&----


*& Form dropdown_table

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM dropdown_table.*Declarations for drop down lists in ALV.

DATA: lt_dropdown TYPE lvc_t_drop,

ls_dropdown TYPE lvc_s_drop.

  • First SLART listbox (handle '1').

ls_dropdown-handle = '1'.

ls_dropdown-value = '01 Primary school'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '1'.

ls_dropdown-value = '02 Lower Secondary'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '1'.

ls_dropdown-value = '03 Upper Secondary'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '1'.

ls_dropdown-value = '04 Professional School'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '1'.

ls_dropdown-value = '05 College'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '1'.

ls_dropdown-value = '06 University'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '1'.

ls_dropdown-value = '09 Other Establishment'.

APPEND ls_dropdown TO lt_dropdown.* Second ABART listbox (handle '2'). ls_dropdown-handle = '2'.

ls_dropdown-value = '10 Primary School certificate'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '2'.

ls_dropdown-value = '20 Lower secondary/Junior high'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '30 High school diploma(B-levels)'.

APPEND ls_dropdown TO lt_dropdown.

ls_dropdown-handle = '2'.

ls_dropdown-value = '31 Vocational'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '32 Matriculation'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '40 Specialist vocational certificate'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '50 College degree Level1'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '51 College degree Level2'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '52 Masters degree'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '60 Univ Degree level1'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '61 Bachelors degree'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '62 Masters degree'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '63 Licenciate'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '64 Doctors Degree Ph.D'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '89 None'.

APPEND ls_dropdown TO lt_dropdown. ls_dropdown-handle = '2'.

ls_dropdown-value = '90 Unknown'.

APPEND ls_dropdown TO lt_dropdown.*method to display the dropdown in ALV

CALL METHOD g_grid->set_drop_down_table

EXPORTING

it_drop_down = lt_dropdown.ENDFORM. " dropdown_table

&----


*& Form build_layout

&----


  • text

----


*layout for ALV output

FORM build_layout . gs_layout-cwidth_opt = 'X'.

gs_layout-grid_title = 'ALV DROPDOWN LISTS'.

gs_layout-no_toolbar = 'X'.ENDFORM. " build_layout

endform.

Edited by: S.r.v.r.Kumar on Jun 1, 2009 2:48 PM