
Standardmäßig werden in Aggregationen alle Werte eines Feldes bei der Berechnung verwendet. Sie können jedoch auch Zwischenergebnisse erzeugen, d. h. Sie fassen die Datensätze zusammen, die die Werte für ein Zwischenergebnis enthalten, und zeigen das Zwischenergebnis jeweils in einer eigenen Ergebniszeile an.
Um Zwischenergebnisse zu erzeugen, müssen Sie verschiedene Angaben machen:
Um anzugeben, in welchem Feld sich die Werte befinden, aus denen die Zwischenergebnisse bestehen, erzeugen Sie zu dem entsprechenden Feld eine Aggregationsbedingung. Das Gesamtergebnis wird in einer Ergebniszeile angezeigt.
Um anzugeben, welche Datensätze in einem Zwischenergebnis enthalten sind, fassen Sie die Datensätze zu Gruppen zusammen: Sie sortieren die ALV-Ausgabe nach dem Feld, das das Kriterium für das Zwischenergebnis enthält.
Um schließlich die Zwischenergebnisse zu erzeugen, bilden Sie über das Feld mit dem Kriterium die Zwischenergebnisse.
Um zuletzt die Zwischenergebnisse anzuzeigen, schalten Sie die Anzeige von Zwischenergebnissen ein.
Wenn Zwischenergebnisse mehr als eine Zeile benötigen, zum Beispiel weil Sie für verschiedene Währungen angezeigt werden , und Sie gleichzeitig eine Darstellung der Tabelle als Hierarchie definiert haben, können die Zwischenergebnisse nicht angezeigt werden.
Zu Zwischenergebnissen können Sie folgende Einstellungen vornehmen:
Zwischenergebnisse erzeugen
Zwischenergebnisse anzeigen
Stufe beim Aufreißen der Zwischenergebnisse festlegen
Position der Ergebniszeilen festlegen (siehe Einstellungen zur Aggregation)
Erzeugen von Zwischenergebnissen verbieten
Voraussetzungen
Sie haben zu mindestens einem aggregierbaren Feld eine Aggregationsbedingung erzeugt.
Das Feld mit dem Kriterium für Zwischenergebnisse ist ein nicht aggregierbares Feld, besitzt also einen alphanumerischen Datentyp.
Zwischenergebnisse erzeugen
Um in einem Feld, das bereits eine Aggregationsbedingung besitzt, Zwischenergebnisse zu erzeugen, erzeugen Sie zu dem Feld einer (anderen) Spalte eine Sortierbedingung (siehe Sortieren).
In dieser Sortierbedingung legen Sie fest, ob Zwischenergebnisse erzeugt werden. Dazu verwenden Sie Methoden der Klasse CL_SALV_WD_SORT_RULE.
Methoden zum Erzeugen von Zwischenergebnissen
|
Funktion |
Methode |
|
Zwischenergebnisse erzeugen |
SET_GROUP_AGGREGATION |
|
Prüfen, ob Zwischenergebnisse angezeigt werden |
GET_GROUP_AGGREGATION |
Zwischenergebnisse anzeigen
Wenn Sie alle Einstellungen vorgenommen haben, um Zwischenergebnisse zu erzeugen, müssen Sie die Anzeige dieser Zwischenergebnisse noch einschalten. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_FIELD_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
Methoden zum Anzeigen von Zwischenergebnissen
|
Funktion |
Methode |
|
Zwischenergebnisse anzeigen |
SET_GROUP_AGGR_DISPLAYED |
|
Prüfen, ob Zwischenergebnisse angezeigt werden |
GET_GROUP_AGGR_DISPLAYED |
Stufe beim Aufreißen der Zwischenergebnisse festlegen
Wenn Sie über mehrere alphanumerische Felder Zwischenergebnisse definiert haben, entstehen mehrere Zwischensummenstufen: die Zwischenergebnisse werden hierarchisch gegliedert, sie werden entsprechend ihrer Stufe mit unterschiedlich vielen Punkten gekennzeichnet. Der Benutzer kann über diese Punkte die zugehörigen Einträge eines einzelnen Zwischenergebnisses ein- und ausblenden. Sie dagegen können in Ihrer Anwendung die Einträge einer oder mehrerer vollständiger Zwischensummenstufen ein- und ausblenden.
Sie können auch Zwischenergebnisse verdichten: Sie blenden sämtliche Datensätze sowie gegebenenfalls vorhandene untere Zwischensummenstufen aus. Es bleiben lediglich die Ergebniszeilen der höchsten Zwischensummenstufe sowie die Ergebniszeile mit dem Gesamtergebnis eingeblendet.
Für diese Funktionen verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_FIELD_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
Methoden zur Stufe beim Zwischensummenaufriss
|
Funktion |
Methode |
|
Höchste angezeigte Zwischensummenstufe festlegen |
SET_EXPAND_LEVEL |
|
Aktuell angezeigte Zwischensummenstufe holen |
GET_EXPAND_LEVEL |
|
Zwischenergebnis verdichten |
SET_GROUP_AGGR_COLLAPSED |
|
Prüfen, ob Zwischenergebnisse verdichtet sind |
GET_GROUP_AGGR_COLLAPSED |
Erzeugen von Zwischenergebnissen verbieten
Standardmäßig werden in der ALV-Ausgabe automatisch Zwischenergebnisse erzeugt, sobald in mindestens einem Feld eine Berechnung durchgeführt wird: Alle sortierten Felder mit alphanumerischem Datentyp werden als mögliches Kriterium von Zwischenergebnissen interpretiert und entsprechend mit Zwischenergebnissen versehen.
Sie können für einzelne Felder das Erzeugen von Zwischenergebnissen verbieten. Dies hat folgende Auswirkungen:
Wenn Sie in Ihrer Anwendung für dieses Feld Zwischenergebnisse erzeugen, haben diese Einstellungen in der ALV-Ausgabe keine Auswirkung.
Der Benutzer kann nachträglich festlegen, zu welchen der Spalten er Zwischenergebnisse haben möchte und zu welchen nicht. Wenn Sie zu einem Feld das Erzeugen von Zwischenergebnissen verbieten, wird dem Benutzer die entsprechende Spalte hier nicht angeboten.
Um das Erzeugen von Zwischenergebnissen in einem Feld zu verbieten, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).
Methoden zum Verbieten von Zwischenergebnissen
|
Funktion |
Methode |
|
Erzeugen von Zwischenergebnissen verbieten |
SET_GROUP_AGGREGATION_ALLOWED |
|
Prüfen, ob Erzeugen von Zwischenergebnissen erlaubt ist |
IS_GROUP_AGGREGATION_ALLOWED |