Anfang des Inhaltsbereichs

Anzahlen und Summen ermitteln Dokument im Navigationsbaum lokalisieren

Beim Auslesen eines sortierten Extraktdatenbestands mit LOOP, kann auf zwei automatisch generierte Felder CNT(<f>) und SUM(<g>) zugegriffen werden. Diese Felder enthalten die Anzahlen unterschiedlicher Werte bzw. Summen über numerische Felder. Die Felder werden am Ende einer Gruppenstufe und nach dem Einlesen des letzten Satzes des Datenbestands wie folgt gefüllt:

Falls <f> ein nichtnumerisches Feld der Feldgruppe HEADER ist und der Extraktdatenbestand auch nach <f> sortiert wurde, steht in CNT(<f>) die Anzahl der unterschiedlichen Werte, die <f> innerhalb der Gruppenstufe bzw. des gesamten Datenbestands hat.

Falls <g> ein numerisches Feld des Extraktdatenbestands ist, steht in SUM (<g>) die Summe der Werte von <g> innerhalb der Gruppenstufe bzw. des gesamten Datenbestands.

Auf die Felder kann vor Gruppenstufenwechseln in den Verarbeitungsblöcken nach AT END OF bzw. nach dem Einlesen des gesamten Datenbestands im Verarbeitungsblock nach AT LAST zugegriffen werden. Beim Zugriff auf die Felder CNT(<f>) und SUM(<g>) ohne vorherige Sortierung des Datenbestands kann es zu einem Laufzeitfehler kommen.

Beispiel

REPORT demo_extract_cnt_sum .

DATA: t1(4) TYPE c, t2 TYPE i.

FIELD-GROUPS: header, test.

INSERT t2 t1 INTO header.

t1 ='AABB'. t2 = 1. EXTRACT test.
t1 ='BBCC'. t2 = 2. EXTRACT test.
t1 ='AAAA'. t2 = 2. EXTRACT test.
t1 ='AABB'. t2 = 1. EXTRACT test.
t1 ='BBBB'. t2 = 2. EXTRACT test.
t1 ='BBCC'. t2 = 2. EXTRACT test.
t1 ='AAAA'. t2 = 1. EXTRACT test.
t1 ='BBBB'. t2 = 1. EXTRACT test.
t1 ='AAAA'. t2 = 3. EXTRACT test.
t1 ='AABB'. t2 = 1. EXTRACT test.

SORT BY t1 t2.

LOOP.

  WRITE: /20 t1, t2.

  AT END OF t2.
    ULINE.
    WRITE: 'Sum:', 20 sum(t2).
    ULINE.
  ENDAT.

  AT END OF t1.
    WRITE: 'Different values:', (6) cnt(t1).
    ULINE.
  ENDAT.

  AT LAST.
    ULINE.
    WRITE: 'Sum:', 20 sum(t2),
           / 'Different values:', (6) cnt(t1).
  ENDAT.

ENDLOOP.

Es wird ein Beispielextrakt erstellt, der nur die Felder der Feldgruppe HEADER enthält. Nach der Sortierung, werden der Inhalt des Datenbestands, sowie die Anzahl der verschiedenen Felder T1 und die Summen der Felder T2 am Ende jeder Gruppenstufe und am Ende der Schleife wie folgt ausgegeben:

Diese Grafik wird im zugehörigen Text erklärt

 

 

Ende des Inhaltsbereichs