Show TOC

Eigenschaften und Handling bestimmter Attributs- und FeldtypenLocate this document in the navigation structure

Die im folgenden beschriebenen Attribute bzw. Feldtypen besitzen besondere Eigenschaften oder werden in besonderer Weise behandelt.

Freitextsuche

Suchbegriffe sind Attribute vom Typ if_wd_select_options_20=>e_attribute_types-free_text. Dieser Attributstyp wird immer als erste Zeile inklusive eines Labels und ohne Ausklappmenü ausgegeben. Der Text für das Label kann in dem Attribut TEXT bestimmt werden. Es kann immer nur ein Attribut von diesem Typ definiert werden. Wenn Label für jede Zeile definiert werden, bekommt der Suchbegriff kein zusätzliches Label.

Die Methoden GET_INPUT_COMPLETE und GET_INPUT_PER_ATTRIBUTE liefern den Wert des Eingabefelds für Suchbegriffe. Eine Konvertierung in eine RANGE-Tabelle ist nicht möglich. Daher hat der Wert in der Methode GET_INPUT_COMPLETE_AS_RANGE das Attribut nicht konvertierbar.

Regeln für bewertete Zeilen

Die Select Options-Komponente entscheidet selbst, ob eine Zeile bewertet ist und bei einer Selektion berücksichtigt werden soll. Diese Information wird in der Übergabetabelle des Typs WDR_SO_T_VALUES in der Spalte UNVALUATED_ROW gesetzt.

Es wird zwischen verschiedenen Arten von Eingabefeldern unterschieden:

Eingabefelder, in denen der initiale Wert leer (NULL) ist:

Dies sind Attribute eines Typs, in denen der initiale Wert der leere String (NULL) ist. Beispiele hierfür sind CHAR-Felder oder NUMC-Felder mit der Option NULL_AS_BLANK oder Felder, die mit einem Aufklappmenü ausgegeben werden.

Die Select Options- Komponente betrachtet ein Attribut ohne zugewiesenen Wert in folgenden Fällen:

  • Der Operator IS oder EQUALS wird verwendet und das Eingabefeld beinhaltet den initialen Wert.

  • Der Operator IS BETWEEN wird verwendet und beide Eingabefelder beinhalten den initialen Wert.

  • Der Operator IS wird verwendet und im Aufklappmenü wird der initiale Wert gewählt.

Eingabefelder, in denen der initiale Wert nicht Null ist

Beispiele für Eingabefelder, deren initialer Wert nicht Null ist, sind Felder wie NUMC, TIME, DATE, PACKED. Die Select Options-Komponente betrachtet Attribute ohne zugewiesenen Wert, wenn das Eingabefeld den Wert NULL beinhaltet und der Operator IS EMPTY nicht ausgewählt ist.

Achtung

Bei Feldern mit Währungs- und Mengenangaben wird lediglich das Feld, das die Menge enthält, auf eine Bewertung hin überprüft.

Wenn Sie nach dem initialen Wert suchen möchten, wählen Sie den Operator IS EMPTY.

Attribute mit Range-Konvertierung

Attribute, die eine Range-Konvertierung besitzen, werden speziell behandelt. Attribute besitzen eine Range-Konvertierung, wenn die verwendete Domäne einen Konvertierungsexit benutzt und die Funktion CONVERSION_EXIT_exit_RANGE_I existiert. Diese Attribute werden von der Select Options- Komponente automatisch erkannt.

Eine Eingabe wie 'Sprache beginnt mit A' führt beispielsweise zu einer Range, die mehrere Zeilen enthält (in diesem Fall z.B. Sprache = AR und Sprache = AF). Das besondere Problem liegt darin, dass in einem solchen Fall für den externen Wert (hier: A*) kein interner Wert existiert. Daher muss bei dem Datenaustausch über die Struktur WDR_SO_S_VALUES unter Umständen der externe Wert weitergegeben werden.

Attribute mit Range-Konvertierung werden als CHAR-Felder mit der Ausgabelänge gemäß Konvertierung ausgegeben. Initiale Daten können im internen oder externen Format übergeben werden, der Parameter EXT_PRESENTATION in der Struktur WDR_SO_S_VALUES muss entsprechend gesetzt werden (internes Format ABAP_FALSE, externes Format ABAP_TRUE). In den Methoden GET_INPUT_COMPLETE und GET_INPUT_PER_ATTRIBUTE werden die Daten im externen Format übergeben (EXT_PRESENTATION = abap_true). In den Methoden CONVERT_DATA_INTO_RANGES und GET_INPUT_COMPLETE_AS_RANGE werden die Daten in eine Range konvertiert, welche die Daten immer im internen Format liefert.

Da die rufende Applikation durch die Übergabe der Daten im externen Format zusätzlichen Aufwand hat, kann die Range-Konvertierung auch für die gesamte Komponente unterdrückt werden. Dazu setzen Sie in INIT_SELECT_OPTIONS im Parameter GLOBAL_OPTIONS NO_RANGE_CONVERSION = ABAP_TRUE. In diesem Fall wird das Eingabefeld für das Attribut typisiert ausgegeben und der Austausch erfolgt immer im internen Format.

Felder mit Einheits- oder Währungsangaben

Beträge und Mengen können mit der Select Options-Komponente zusammen mit den zugehörigen Währungen und Einheiten ausgegeben werden. Das zugehörige Währungs- oder Einheitenfeld wird direkt hinter dem Betrags- oder Mengenfeld ausgegeben.

Sie können diese Attribute mit den folgenden Attributstypen definieren:

  • für Beträge und Mengen: if_wd_select_options_20=>e_attribute_types-curr_quan

  • für Währungen und Einheiten: if_wd_select_options_20=>e_attribute_types-cuky_unit

Die Attribute müssen mit den entsprechenden DDIC-Typen CURR, CUKY, QUAN und UNIT definiert sein. Das Attribut für Menge/Betrag muss im Feld REF_ATTRIBUTE eine Referenz auf das Attribut für das zugeordnete WÄHRUNGS-/EINHEITEN-Attribut enthalten. Die Eingabefelder für WÄHRUNGS-/EINHEITEN-Attribute erscheinen nicht als separate Zeile, sondern erscheinen direkt hinter dem zugeordneten Mengen-/Betragsfeld.

Mehrere Attribute vom Typ CURR_QUAN können dasselbe Referenzattribut für die Währungs- oder Einheitsangabe verwenden.

Sie können einen Defaultwert für Währungen oder Einheiten setzen, indem Sie in den initialen Daten eine Zeile für das Währungs- oder Einheitenattribut mitgeben. Der Defaultoperator für Währung und Einheit ist immer IS. Währungs- oder Einheitsattribute können auch READ_ONLY definiert werden, in diesem Fall muss über die initialen Daten ein Wert gesetzt werden.

Die eingegebenen Daten werden mit den Methoden GET_INPUT_COMPLETE oder GET_INPUT_PER_ATTRIBUTE eingelesen. Eine Ausgabe als Range ist nicht möglich, weshalb die Tupel in der Methode GET_INPUT_COMPLETE_AS_RANGE als nicht konvertierbar erscheinen. Die eingegebenen Daten im Währungs- bzw. Einheitenfeld werden nicht überprüft.

Unterstützte Wertehilfemodi

Folgende Wertehilfemodi werden unterstützt (die Konstanten sind in if_wd_context_node_info=>c_value_help_mode definiert):

  • deaktiviert: Es wird keine Suchhilfe angeboten.

  • automatisch: Die Suchhilfe wird automatisch durch die Typinformation bestimmt. Ist der Typ über REF_TABLE/REF_FIELD festgelegt worden, wird die DDIC-Suchhilfe aus der Struktur verwendet.

  • DDIC: Die Anwendung muss eine DDIC-Suchhilfe in der Definition der Attribute mitgeben. Diese Suchhilfe wird für das entsprechende Eingabefeld verwendet.

  • OVS: OVS-Ereignisse werden an die aufrufende Anwendung weitergegeben.

  • anwendungsdefiniert: Sie können Ihre eigene Komponente für eine F4-Hilfe erstellen. Stellen Sie sicher, dass der Zugriff auf das Kontextelement der F4-Hilfe über den Wertehilfe-Listener im Interface IWD_VALUE_HELP ausreicht. Sie finden ein Beispiel hierzu unter WDR_TEST_SELOPT20_VH.

Für die DDIC-Suchhilfen wird jeweils nur die Eingabe im F4-Feld berücksichtigt und nur in dieses Feld wird ein Wert zurückgestellt. Dies muss auch in den OVS- und anwendungsdefinierten Suchhilfen so implementiert werden. Ein Zugriff auf den Kontext der anderen Attribute ist nicht zulässig.

Die DDIC-Suchhilfe erlaubt es Ihnen, mehrere Werte zu selektieren, sodass sie für die Suche verarbeitet werden. Dieses Feature kann nicht abgeschaltet werden.