Übersicht
Die Eingabe von Werten über Dropdown-Listen ist schnell und benutzerfreundlich. Das S10 Framework unterstützt konstante Wertelisten, die automatische Generierung von Wertelisten aufgrund des SAP Data Dictionary und auch die dynamische Generierung in einer eigenen ABAP-Methode.

Beispiel 1: Konstante Werteliste

       

Hierzu definieren Sie in der ABAP Klasse ein Attribut für den Wert der Dropdownliste, z.B.

data:
  
orderlimit type string.

Und in HTML ein <label> sowie ein <select> Element mit jeweils einem <option> Element pro Wert:

<label class="label">Auftragshöhe</label>
<br />

<select class="inputselect" name="orderlimit">
    <option value=""></option>
   
<option value="0">Kein Limit</option>
   
<option value="1000">1 000 EUR</option>
   
<option value="50000">50 000 EUR</option>
</select>

Falls Sie durch die Auswahl in der Dropdown-Liste sofort eine ABAP-Methode aufrufen möchten, geht das durch den "onchange" Zusatz:

 <select class="inputselect" name="orderlimit"  onchange="S10Apply('select_orders')">

Die aufgerufene ABAP-Methode in diesem Beispiel ist "select_orders".  Der ausgewählte Wert steht automatisch in der Variablen "orderlimit" zur Verfügung. Einzelheiten zur Funktion "S10Apply" finden Sie in dem Artikel S10Apply().

Mit dem Zusatz "required" können Sie erreichen, dass vor dem Senden der Screen-Daten an die Applikation geprüft wird, dass der Benutzer einen Wert ausgewählt hat:

<select class="inputselect" name="orderlimit" required>

Beispiel 2: Data Dictionary-basierte Werteliste

ABAP
data:
 land1 
type kna1-land1.

HTML
<label class="label output" name="land1"></label><br>
<select class="inputselect" name="land1" style="width: 240px;"
     data-s10dropdownlist='land1@dropdownlist'>
</select>

Das S10-Framework baut hierbei gemäß den im Data Dictionary zu "kna1-land1" verzeichneten Wertetabellen T005 und T005T die Dropdown-Liste auf. Einzelheiten dazu finden Sie im Artikel s10dropdownlist().

Auch Wertelisten, die nicht aus Customizing-Tabellen zusammengestellt werden, sondern konstant im Data Dictionary abgelegt sind, können auf diese Weise angezeigt werden. Zum Beispiel sind im SAP Data Dictionary zum "Belegstatus" folgende Werte mit den entsprechenden sprachabhängigen Texten abgelegt:


ABAP
data:
 bstat 
type bkpf-bstat.

HTML
<
label class="label output" name="bstat"></label><br>
<select class="inputselect" name="bstat" 
  
data-s10dropdownlist="bstat@dropdownlist" data-s10options="hidekeys"
   style="width:240px"></select>




Beispiel 3: Dynamisch in einer ABAP Methode generierte Werteliste

Hier werden die im SAP System zu einem Kunden hinterlegten Ansprechpartner als Dropdown-Liste zur Auswahl angeboten. Die Werteliste wird in einer ABAP-Methode dynamisch abhängig von der aktuellen Kundennummer aufgebaut. Dabei ist folgendes zu beachten:

  • Die Werteliste als Klassenattribut vom Typ "string" anlegen
  • Am besten dann dazu eine build-Methode definieren, in der die import-Parameter bestimmen, von welchen anderen Attributen die Werteliste abhängig ist. Damit ist gewährleistet, dass die Werteliste neu aufgebaut wird, falls sich ein import-Attribut geändert hat.
  • Die Werteliste besteht aus Zeilen, die voneinander durch Zeilenvorschub getrennt sind
  • Jede Zeile besteht aus dem Wert, einem Tabulatorzeichen und dem Text
  • Ein Zeilenvorschub am Ende der Liste wird ignoriert
  • Die Werteliste wird automatisch vom S10 Framework zur Anzeige sortiert, und zwar nach Schlüsselwerten, falls diese angezeigt werden, sonst nach dem Text

ABAP
data:
   kunnr        
type kna1-kunnr,
   parnr        
type knvk-parnr,
   ddl_contacts
 type string.

methods:
   
build_ddl_contacts
     
importing
       
kunnr        type kna1-kunnr
     
exporting
       
ddl_contacts type string.

  method build_ddl_contacts.
    
clear ddl_contacts.

    
dataknvk type knvk.

    
select parnr namev name1 from knvk
        
into corresponding fields of knvk
          
where kunnr kunnr.

      ddl_contacts
 =
          
ddl_contacts
          && knvk
-parnr
          && 
cl_abap_char_utilities=>horizontal_tab
          && knvk
-namev
          && | |
          && knvk
-name1
          && 
cl_abap_char_utilities=>cr_lf.

    
endselect.

  
endmethod.

HTML
<select class="inputselect"  name="parnr" data-s10dropdownlist="ddl_contacts" data-s10options="hidekeys"></select>

Die Werteliste wird automatisch neu aufgebaut, sobald sich die Kundennummer geändert hat. 

 

Allgemeine S10-Optionen für Dropdown-Listen

  • data-s10options="hideKeys"
    Der Schlüsselwert wird nicht angezeigt. 
     
  • data-s10options="noEmptyEntry"
    Am Anfang der Werteliste wird kein leerer Eintrag hinzugefügt.

Eine Kombination der beiden Optionen dann mit data-s10options="hideKeys,noEmptyEntry".

 


Komponenten: S10 Framework