Add buttons to dynamically change the selection screen entry fields

The following code demonstrates how to add user defined push buttons to a standard report selection screen. Push buttons are used to trigger user functions within 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  ZSSCRBUTTON                                          *
*&                                                              *
*&--------------------------------------------------------------*
*&  Adds buttons to selection screen.                           *
*&  Demonstrates alteration of selection screen layout          *
*&  depending on which button is pressed.                       *
*&--------------------------------------------------------------*
 REPORT  zsscrbutton NO STANDARD PAGE HEADING.
TABLES: t030, skat, sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME
                                     TITLE text-001.
SELECT-OPTIONS: p_ktopl FOR t030-ktopl,
                p_komok FOR t030-komok,
                p_ktosl FOR t030-ktosl.
SELECTION-SCREEN SKIP.
*SELECTION-SCREEN FUNCTION KEY 1.  "Adds button to application toolbar
* Declaration of sel screen buttons
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (20) w_button USER-COMMAND BUT1.
SELECTION-SCREEN PUSHBUTTON (25) w_but2 USER-COMMAND BUT2.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS: p_konts FOR t030-konts,
                p_bklas FOR t030-bklas.
PARAMETER: gd_ucomm like sy-ucomm default 'BUT1' no-display.
SELECTION-SCREEN END OF BLOCK block1.
TYPES: BEGIN OF t_t030,
   ktopl TYPE t030-ktopl,
   konts TYPE t030-konts,
   txt20 TYPE skat-txt20,
   bklas TYPE t030-bklas,
   bkbez TYPE t025t-bkbez,
  END OF t_t030.
DATA: it_t030 TYPE STANDARD TABLE OF t_t030 INITIAL SIZE 0,
      wa_t030 TYPE t_t030.
DATA: gd_repsize TYPE i VALUE '83'.
************************************************************************
*INITIALIZATION.
INITIALIZATION.
* Add displayed text string to buttons
w_button = 'GL account selection'.
w_but2 = 'Valuation class selection'.
************************************************************************
*AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
* Check if buttons have been
  if sscrfields-ucomm eq 'BUT1'.
    gd_ucomm = 'BUT1'.
    clear: p_BKLAS.
    refresh: p_BKLAS.
  elseif sscrfields-ucomm eq 'BUT2'.
    clear: p_KONTS.
    refresh: p_KONTS.
    gd_ucomm = 'BUT2'.
  endif.
************************************************************************
*AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN OUTPUT.
  if gd_ucomm eq 'BUT1'.
    loop at screen.
      if screen-name CS 'P_KONTS'.
        screen-active = 1.
      elseif screen-name CS 'P_BKLAS'.
        screen-active = 0.
      endif.
      modify screen.
    endloop.
  elseif gd_ucomm eq 'BUT2'.
    loop at screen.
     if screen-name CS 'P_KONTS'.
        screen-active = 0.
      elseif screen-name CS 'P_BKLAS'.
        screen-active = 1.
      endif.
      modify screen.
    endloop.
  endif.

Related Articles

Adding buttons to an ABAP report selection screen within SAP
Add buttons to Application toolbar of selection screen
Add buttons with icon to selection screen
ABAP parameter as checkbox plus initiate 'AT selection-screen' EVENT to unselect other checkboxes
Initiate the 'AT selection-screen' EVENT from a checkbox
Dynamically alter a selection screen based on user
SAP dropdown list box for an ABAP report selection screen
Initiate the 'AT selection-screen' EVENT from a LISTBOX within an ABAP report sel screen
ABAP Radiobutton to Initiate the 'AT selection-screen' EVENT on SAP report
ABAP Begin of Block to group selection-screen fields plus add title and frame
Report Selection Screen - Example code and information on various sel screen processing techniques
Selection screen push buttons
F4 search help manually called from report selection screen
Modify Selection Screen(LOOP AT SCREEN)
Restrict select-options to only allow specific restrictions
Radiobutton (inc desc) and entry field on same line of SAP selection screen
Add blank line to SAP report selection screen
Add Tab strip to Selection Screen