LOOP

#### Search Results

Search

# LOOP

[`CLOSE`] `LOOP` [(r)]

Dieses Dokument behandelt folgende Themen:

- Funktion

- Einschränkung

- Syntax-Beschreibung

- Beispiele

## Funktion

Das Statement `LOOP` dient dazu, eine Verarbeitungsschleife zu schließen. Es bewirkt, dass der aktuelle Schleifendurchlauf beendet wird und die Kontrolle wieder an den Anfang der Schleife übergeben wird.

Sobald die Verarbeitungsschleife, auf die sich das `LOOP`-Statement bezieht, beendet ist (d.h. sobald alle Datensätze verarbeitet und alle Schleifendurchläufe ausgeführt sind), wird die Verarbeitung mit dem auf das `LOOP`-Statement folgenden Statement fortgesetzt.

Das Statement `LOOP` wird bei den folgenden Statements verwendet: `CALL FILE`, `CALL LOOP`, `FIND`, `FOR`, `HISTOGRAM`, `PARSE JSON`, `PARSE XML`, `READ`, `READLOB`, `READ RESULT SET` (SQL), `READ WORK FILE`, `REPEAT`, `SELECT` (SQL), `SORT`, `UPLOAD PC FILE`.

### Referenzierung von Datenbankvariablen

Neben dem Schließen der Schleife(n) bewirkt das `LOOP`-Statement, dass alle Referenzierungen von Feldern, die in `FIND`-, `FIND FIRST`, `FIND UNIQUE`-, `READ`- und `GET`-Statements innerhalb der geschlossenen Schleife(n) verwendet werden, eliminiert werden.

Ein Feld, das in einem View enthalten ist, kann auch außerhalb einer mit `LOOP` geschlossenen Schleife referenziert werden, und zwar indem bei der Referenzierung der View-Name angegeben wird.

## Einschränkung

- Dieses Statement gilt nur für Reporting Mode.

- Ein `LOOP`-Statement darf nicht an eine logische Bedingung wie etwa ein `IF`- oder `AT BREAK`-Statement geknüpft werden.

## Syntax-Beschreibung

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`LOOP (r)` | Statement-Referenzierung: Sollen mehrere Schleifen geschlossen werden, so kann ein bestimmtes Statement per Statement-Label oder Quellcode- Zeilennummer referenziert werden (Notation `(r)`); in diesem Falle werden durch das `LOOP`-Statement dann die referenzierte Verarbeitungsschleife sowie alle innerhalb der referenzierten Schleife befindlichen Schleifen geschlossen.

Anmerkungen:

1. Im Reporting Mode werden durch ein `END`-Statement alle noch aktiven Verarbeitungsschleifen, die noch nicht explizit durch ein `LOOP`-Statement beendet wurden, automatisch geschlossen.
2. Man kann das `LOOP`-Statement weglassen. Das ist jedoch nicht im Sinne einer guten Kodierpraxis und wird nicht empfohlen.

## Beispiele

#### Beispiel 1

       0010 FIND ...
       0020   READ ...
       0030     READ ...
       0040 LOOP (0010)    /* closes all loops

#### Beispiel 2

       0010 FIND ...
       0020   READ ...
       0030     READ ...
       0040     LOOP       /* closes loop initiated on line 0030
       0050   LOOP         /* closes loop initiated on line 0020
       0060 LOOP           /* closes loop initiated on line 0010

### On this page

- Funktion
- Einschränkung
- Syntax-Beschreibung
- Beispiele