|
Ü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.
data: knvk 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".
|