Anfang des Inhaltsbereichs

Vorgehensweisen Zwischensummen berechnen und ausgeben Dokument im Navigationsbaum lokalisieren

Verwendung

Sie wollen Zwischensummen abhängig von dem Wert einer anderen Spalte ausgeben. Diese andere Spalte nennt man auch Sortierkriterium.

Empfehlung

Falls Sie nicht über verschiedene Währungen oder Mengeneinheiten summieren wollen, nutzen Sie die Berechnungs-Registerkarte des Tabellen-Knotens (siehe: Berechnungen).

Die hier beschriebene Lösung bezieht sich auf die alte Tabellenausgabe. Sie kann jedoch leicht auf den neuen Tabellentyp übertragen werden.

Hinweis

Das Formular SF_SUBTOTALS im System illustriert, wie man mit dem neuen oder dem alten Tabellentyp Zwischensummen über verschiedene Währungen ausgibt. Mit dem Anwendungsprogramm SF_TOTALS können Sie dieses Formular aufrufen.

Voraussetzungen

Sie geben bereits eine Tabelle über den Tabellen- oder Schleifen-Knoten aus.

Vorgehensweise

Zur Veranschaulichung wird angenommen, daß Sie bereits eine interne Tabelle T_SFLIGHT vom Typ TABLE OF SFLIGHT ausgeben. Nun soll die Tabelle nach der Fluggesellschaft sortiert ausgegeben werden und zusätzlich nach jeder Fluggesellschaft eine Zwischensumme des Preises.

  1. Definieren Sie zwei globale Felder für die Summierung:
  1. Gehen Sie auf die Daten-Registerkarte des Tabellen-Knotens. Im Rahmen Sortierkriterien geben Sie die Felder, nach denen sortiert werden soll, ein. In unserem Beispiel soll nach der Spalte CARRID sortiert werden. Wenn Sie die Tabelle bereits vor dessen Übergabe an das Formular sortiert haben, kreuzen Sie das Ankreuzfeld Sortierung bereits vorhanden an, damit SAP Smart Forms die Tabelle nicht erneut sortiert.
  2. Zu Beginn der Ausgabe von Tabellenzeilen einer Fluggesellschaft müssen die Summierungsfelder zurückgesetzt werden. Dazu markieren Sie für das Sortierkriterium das Ankreuzfeld Beginn Sortierstufe . Es erscheint ein Ereignisknoten im Navigationsbaum ( B), über dessen Unterknoten Sie die Felder zum richtigen Zeitpunkt zurücksetzen können (Programmzeilen-Knoten C).
  3. Innerhalb der Schleife muß die Zwischensumme berechnet werden. Dazu benötigen Sie einen weiteren Programmzeilen-Knoten (E).
  4. Um am Ende der Positionen zu einer Fluggesellschaft die Zwischensumme auszugeben, markieren Sie das Ankreuzfeld Ende Sortierstufe beim Sortierkriterium. Es erscheint ein weiterer Ereignisknoten ( G) im Navigationsbaum, über dessen Unterknoten Sie die Zwischensumme ausgeben können.

Damit ergibt sich folgende Formularlogik:

Formularlogik zum Bilden von Zwischensummen nach einem Kriterium

Navigationsbaum

Knotenattribute/Inhalt/Bedingungen

Diese Grafik wird im zugehörigen Text erklärt
A

     

LOOP-Schleife :
interne Tabelle T_SFLIGHT INTO GS_SFLIGHT

Sortierkriterien:
Feldname: CARRID
Anfang/Ende Sortierbegriff: angekreuzt

 

Diese Grafik wird im zugehörigen Text erklärt
B

   

CARRID Beginn Sortierstufe

   

Diese Grafik wird im zugehörigen Text erklärt
C

 

Ausgabeparameter:
GT_SUBTOTAL , GS_SUBTOTAL .

Programmzeilen:
REFRESH GT_SUBTOTAL.
CLEAR GS_SUBTOTAL.

 

Diese Grafik wird im zugehörigen Text erklärt
D

   

&GS_SFLIGHT-PRICE&

 

Diese Grafik wird im zugehörigen Text erklärt
E

   

Eingabeparameter : GS_SFLIGHT
Ausgabeparameter : GT_SUBTOTAL
Programmzeilen :
data: ls_sflight type sflight.

ls_sflight-price = gs_sflight-price.
ls_sflight-currency = gs_sflight-currency.

collect ls_sflight into gt_subtotal.

 

Diese Grafik wird im zugehörigen Text erklärt
F

   

&GS_SFLIGHT-CURRENCY&

 

Diese Grafik wird im zugehörigen Text erklärt
G

   

CARRID Ende Sortierstufe

   

Diese Grafik wird im zugehörigen Text erklärt
H

 

LOOP-Schleife :
interne Tabelle GT_SUBTOTAL INTO GS_SUBTOTAL

     

Diese Grafik wird im zugehörigen Text erklärt
I

&GS_SUBTOTAL-PRICE&

     

Diese Grafik wird im zugehörigen Text erklärt
J

&GS_SUBTOTAL-CURRENCY&

Ergebnis

Die Zwischensumme (hier zur Fluggesellschaft) wird vor jedem Wechsel der Sortierstufe ausgegeben.

 

 

 

Ende des Inhaltsbereichs