At Selection-Screen Output

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Ein Parameter wird auf reine Anzeige gesetzt, sodass der Anwender im Selektionsbildschirm den Wert nicht verändern kann.

Ein Feld auf Inaktiv setzen

Parameters: p_bukrs  type bukrs default 'TEST'.
******************************
* AT SELECTION-SCREEN OUTPUT *
******************************
AT SELECTION-SCREEN OUTPUT.
  perform at_selection_screen_output.
*&---------------------------------------------------------------------*
*&      Form  AT_SELECTION_SCREEN_OUTPUT
*&---------------------------------------------------------------------*
*       Loop über Screen und Feld inaktiv setzen
*----------------------------------------------------------------------*
FORM AT_SELECTION_SCREEN_OUTPUT.

  LOOP AT SCREEN.
    IF screen-name = 'P_BUKRS'.
      screen-input = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
  
ENDFORM.                    " AT_SELECTION_SCREEN_OUTPUT

Gruppe von Feldern Inaktiv setzen

Der Parameter wird über eine Gruppe ansprechbar gemacht mit dem Zusatz "MODIF ID XYZ".

PARAMETER: p_fext TYPE fpwbformname DEFAULT 'Z_MA' MODIF ID 001,
           p_form TYPE fpwbformname DEFAULT 'Z_MK' MODIF ID 001. 
******************************
* AT SELECTION-SCREEN OUTPUT *
******************************
AT SELECTION-SCREEN OUTPUT.
  PERFORM at_selection_screen_output.
*&---------------------------------------------------------------------*
*&      Form  at_selection_screen_output
*&---------------------------------------------------------------------*
*       Felder auf Anzeige setzen
*----------------------------------------------------------------------*
FORM at_selection_screen_output.

  LOOP AT SCREEN.
    IF screen-group1 = '001'.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP. 

ENDFORM.                    " AT_SELECTION_SCREEN_OUTPUT

Die beiden Parameter sind nun nicht mehr änderbar.

ParameterInvisible3.jpg

Felder ausblenden in Abhängigkeit von Radio-Button

Der "user-command" darf hier nicht vergessen werden, damit beim Wählen des Radiobuttons sofort das Ereignis "AT SELECTION-SCREEN OUTPUT" ausgelöst wird.

Beim Radiobutton darf der Defaultwert 'X' nicht vergessen werden, sonst wird beim Ereignis AT SELECTION-SCREEN OUTPUT der erste Radio-Parameter noch nicht als gesetzt erkannt. Alle abhängigen Felder werden über eine Modifikationsgruppe PAR, bzw. 001 zusammengefasst.

Parameters: p_pdf_n RADIOBUTTON GROUP radi user-command flag default 'X',   "Keine PDFs anhängen
            p_pdf_j RADIOBUTTON GROUP radi.                                 "PDFs anhängen

PARAMETERS:  p_pdf1  TYPE file_table-filename LOWER CASE modif id par.      "PDF1  anhängen
PARAMETERS:  p_pdf2  TYPE file_table-filename LOWER CASE modif id 001.      "PDF2  anhängen
******************************
* AT SELECTION-SCREEN OUTPUT *
******************************
AT SELECTION-SCREEN OUTPUT.
  PERFORM at_selection_screen_output.
*&---------------------------------------------------------------------*
*&      Form  at_selection_screen_output
*&---------------------------------------------------------------------*
*       Felder auf Anzeige setzen
*----------------------------------------------------------------------*
FORM at_selection_screen_output.

 loop at screen.
   case screen-group1.
     when '001'.
       screen-input = '0'.
       modify screen.

     when 'PAR'.
       if p_pdf_n = 'X'.
         screen-active = '0'.
       endif.

       if p_pdf_j = 'X'.
         screen-active = '1'.
       endif.

       modify screen.
   endcase.
 endloop.

Defaultmäßig sind hier Felder ausgeblendet.

ParameterInvisible4.jpg


Nach Wechsel des Radiobuttons werden Felder eingeblendet.

ParameterInvisible5.jpg

Struktur Screen

Neben dem Parameter INPUT gibt es noch eine reihe weiterer interessanter Parameter in der Struktur SCREEN wie ACTIVE oder INVISIBLE.

ParameterInvisible2.jpg

Web-Links