Übersicht
Über eine Suchhilfe können Werte gesucht werden und dann in ein Feld in der Anwendung zurückgestellt werden:

Beispiel für Suchhilfe zum Material:

Suchhilfen in einer SAP-Transaktion werden in der Regel in einem Dialog angezeigt. Das S10 Framework bietet ebenso die Möglichkeit, einen Dialog aufzurufen, der im Prinzip frei gestaltet werden kann. Üblicherweise werden einige Eingabefelder für die Suche sowie die Ergebnisse in Tabellenform bereitgestellt. Nach Auswahl eines Ergebnisses wird der Dialog geschlossen und der Benutzer kann direkt mit der Bearbeitung fortfahren.

Implementierung
Ein Eingabefeld erhält durch die CSS-Klasse "valuehelp" eine Suchhilfe:

1
2
<input type="text" class='input valuehelp'  name="material"
       style='width: 120px;'>
 

Der Name der aufgerufenen ABAP-Methdode in der aktiven Klasse setzt sich zusammen aus:

"on_valuehelp_"  + Name des Attributs

Ist der Name des Attributs "material", so wird die Methode "on_valuehelp_material" aufgerufen:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
method on_valuehelp_material.

    data: selected_material type mara-matnr.

*   call value help
    selected_material = material=>valuehelp( ).

* set selected material number
    if selected_material is not initial.
      material = selected_material.
      
  endmethod.

Die eigentliche Suchhilfe ist dann in jeweils einer eigenene Klasse implementiert.

In diesem Fall wird die Suchhilfe der Klasse "material" aufgerufen:
1
2
3
4
5
6
7
   class-data:
      valuehelp_material type ref to material.

    class-methods:    
    valuehelp
        returning
          value(selectedmaterial) type mara-matnr.


In der Implementierung der Methode "valuehelp" wird dann ein Dialog aufgerufen, der nach dem Schließen den selektierten Wert zurückliefert:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
* value help
  method valuehelp.
    if valuehelp_material is initial.
      create object valuehelp_material.
    endif.

*   call value help
    valuehelp_material->s10dialog('searchhelp').

    selectedmaterial = valuehelp_material->matnr.

  endmethod.

1
2
3
4
5
6
<div title="Artikel übernehmen" 
     style="float: left; padding-left:2px; width: 28px;"

    onclick="S10Apply('searchhelp_material_select');">
    
    <img src="../../../icons/select.png" 
         style="width:18px;height:18px; cursor:pointer;">
</div>


In der ABAP-Methode "searchhelp_material_select" wird in diesem Fall die geklickte Zeile ermittelt und die Materialnummer gelesen:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 method searchhelp_material_select.

    data:
      contextinfo type ref to /s10/contextinfo,
      tablename   type string,
      rownumber   type i.

    contextinfo = s10contextinfo( ).

* clicked table name
    tablename = contextinfo->tablename.

* clicked row number
    rownumber = contextinfo->rownumber.

    field-symbols: <tab> type table.
    assign (tablename) to <tab>.

    data: m type ref to db_mara.

* read order from via index from HTML context
    read table <tab>
       index rownumber
         into m.

* set selected material
    me->matnr = m->matnr.

    s10exitdialog( ).

  endmethod.

Hinweis:
Nach dem Aufruf von "s10exitdialog( )" in Zeile 29 wird der HTML-DIalog geschlossen, die ABAP-Codeaufführung jedoch direkt nach dem Aufruf von "s10dialog()" in der Methode "valuehelp" fortgesetzt. Dadurch sind keine erneuten Aufrufe notwendig.

Generierung einer Wertehilfe
Sie können auch die S10 Framework Utilities verwenden, um eine Suchhilfe automatisch generieren zu lassen.
Details dazu finden Sie unter dem Punkt "Generierung" in der Dokumentation.

Beispiel für die Generierung einer Suchhilfe für ein Material:
Globale Suchhilfen
In der nachfolgenden Anleitung "Globale Suchhilfen" ist beschrieben, wie Sie Suchhilfen als SE24-Klasse einrichten können, die vom S10 Framework automatisch aufgrund des Domänennamens eines Attributs aufgerufen werden.

Komponente: S10 Framework