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

HOW TO DO MULTIPLE SELECTION IN ALV REPORT USING PUSHBUTTON

Former Member
0 Kudos
298

HOW TO DO MULTIPLE SELECTION IN ALV REPORT USING PUSHBUTTON?if any one know send me sample code.

1 REPLY 1
Read only

Former Member
0 Kudos
224

hi,

The following code demonstrates how to add user defined push buttons which contain icons to a standard

report selection screen.Push buttons are used to trigger user functions with in the program to make them

interactive with the user. The example below shows how buttons can allow you to dynamically alter a

selection screen depending on which button is pressed. But they can be used for many other applications

from displaying a window to

calling other reports.

&----


*& Report ZSSCRBUTTONS2 *

*& *

&----


*& Adds buttons to selection screen. *

*& Demonstrates alteration of selection screen layout depending on *

*& which button is pressed. *

*& *

*& Additional Info: *

*& TEXT-FY1 = 'Fiscal Year' *

*& Selection text for SO_DATES = 'Date Period' *

&----


REPORT zsscrbuttons2.

TABLES: sscrfields.

DATA: gd_ucomm TYPE sy-ucomm.

SELECTION-SCREEN BEGIN OF BLOCK period WITH FRAME TITLE text-t02.

SELECT-OPTIONS: so_dates FOR sy-datum NO-EXTENSION.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 01(20) text-fy1. "= Fiscal Year

SELECTION-SCREEN POSITION 33.

PARAMETERS: p_period LIKE qppnp-pabrp.

SELECTION-SCREEN POSITION 36.

PARAMETERS: p_year LIKE qppnp-pabrj.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN PUSHBUTTON /01(29) but1 USER-COMMAND but1.

SELECTION-SCREEN PUSHBUTTON /01(29) but2 USER-COMMAND but2.

SELECTION-SCREEN END OF BLOCK period.

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

*INITIALIZATION.

INITIALIZATION.

  • MOVE 'Fiscal Year' TO BUT1.

MOVE 'Date Period' TO but2.

DATA: icon_name TYPE iconname,

button_text(20) TYPE c,

quickinfo LIKE smp_dyntxt-quickinfo,

icon_str(255) TYPE c.

  • Setup button 1 (Fiscal year)

icon_name = 'ICON_ARROW_RIGHT'. " 'ICON_DISPLAY_MORE'.

button_text = 'Fiscal Year'.

CONCATENATE button_text text-akt

INTO quickinfo

SEPARATED BY space.

CALL FUNCTION 'ICON_CREATE'

EXPORTING

name = icon_name

text = button_text

info = quickinfo

  • ADD_STDINF = 'X'

IMPORTING

RESULT = icon_str

EXCEPTIONS

OTHERS = 0. "not interested in errors

  • place text and icon on button

but1 = icon_str.

  • Setup button 2 (Date period)

icon_name = 'ICON_ARROW_LEFT'. " 'ICON_DISPLAY_MORE'.

button_text = 'Date Period'.

CONCATENATE button_text text-akt

INTO quickinfo

SEPARATED BY space.

CALL FUNCTION 'ICON_CREATE'

EXPORTING

name = icon_name

text = button_text

info = quickinfo

  • ADD_STDINF = 'X'

IMPORTING

RESULT = icon_str

EXCEPTIONS

OTHERS = 0. "not interested in errors

  • place text and icon on button

but2 = icon_str.

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

*AT SELECTION-SCREEN.

AT SELECTION-SCREEN.

  • Check if buttons have been

IF sscrfields-ucomm EQ 'BUT1'.

gd_ucomm = 'BUT1'.

ELSEIF sscrfields-ucomm EQ 'BUT2'.

gd_ucomm = 'BUT2'.

ENDIF.

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

*AT SELECTION-SCREEN.

AT SELECTION-SCREEN OUTPUT.

IF gd_ucomm IS INITIAL.

LOOP AT SCREEN.

IF screen-name CS 'P_PERIOD' OR

screen-name CS 'P_YEAR' OR

screen-name CS 'FY1' OR

screen-name EQ 'BUT2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF gd_ucomm EQ 'BUT1'.

LOOP AT SCREEN.

IF screen-name CS 'P_PERIOD' OR

screen-name CS 'P_YEAR' OR

screen-name CS 'FY1' OR

screen-name EQ 'BUT2'.

screen-active = 1.

MODIFY SCREEN.

ENDIF.

IF screen-name CS 'SO_DATES' OR

screen-name EQ 'BUT1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF gd_ucomm EQ 'BUT2' .

LOOP AT SCREEN.

IF screen-name CS 'P_PERIOD' OR

screen-name CS 'P_YEAR' OR

screen-name CS 'FY1' OR

screen-name EQ 'BUT2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

IF screen-name CS 'SO_DATES' OR

screen-name EQ 'BUT1'.

screen-active = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

reward if useful

rgds

Umakanth