Übersicht
Einge gute Möglichkeit, Inhalte zu strukturieren ohne einen neuen Dialog
aufrufen zu müssen, bieten Reiter (Tabs). Damit kann der Benutzer
Teile des aktuellen Views dynamisch ein- oder ausblenden.
Normalerweise wird der Inhalt eines nicht ausgewähltens Reiters einfach
nur versteckt. Eine Besonderheit des S10 Framework ist jedoch, dass
die Daten, die auf einem bestimmten Reiter angezeigt werden sollen,
erst dann angefordert werden, wenn er vom Benutzer auch ausgewählt wird.
Dadurch können lange Ladezeiten vermieden werden und es werden
nur tatsächlich benötigte Daten übertragen.
Implementierung
Zunächst wird der Bereich definiert, in dem der Benutzer unterschiedliche
Reiter selektieren kann. Jeder Reiter erhält jeweils eine eindeutige ID,
der bei der ersten Anzeige ausgewählte Reiter die Klasse "tabactive",
aller weiteren Reiter die Klasse "tab": HTML
Der Name eines Bereichs, der zu einem bestimmten Reiter gehört,
setzt sich also folgendermaßen zusammen: "ID des Reiters".area
Der Bereich, der zum aktiven Reiter gehört, bevor der Benutzer einen anderen
auswählt, hat die Klasse "tabpageactive", alle anderen "tabpage".
Aktionen beim Wechseln des Reiters
Wenn der Benutzer den Reiter wechselt, wird die Methode "on_init_[screenid]_[tabid]" aufgerufen, also z.B. "on_init_main_tabsecond".
Sie können die Daten, die auf dem neuen Reiter angezeigt werden sollen, entweder in dieser Methode bereitstellen oder durch build-Mehoden. Falls man alle Reiterdaten durch build-Methoden besorgt, kann die Methode "tab_[screenid]_[tabid]" entfallen. Die build-Methoden haben den Vorteil, dass man Daten problemlos in der Entwicklung von einem Reiter auf einen anderen legen kann und dann immer noch alles korrekt läuft.
Aktiven Reiter setzen
Wenn Sie in einer ABAP Methode einen neuen Screen mit s10nextscreen() aufrufen,
können Sie den Namen eines Reiters als Parameter mitgeben, der dann
als aktiver Reiter gesetzt und angezeigt wird.