`Register` 
Achtung: Vor Anwendung eines dieser Befehle ist es notwendig, den entsprechenden first-Befehl zu geben, falls vorher noch kein Satz der Erg.Menge geladen wurde!

next   [Gegenteil: `prev` ]    acon
Der nächste Satz der Ergebnismenge, in der vorher eingestellten Sortierfolge, wird geladen. 
Mit `if yes/no` ... kann man checken, ob es einen nächsten Satz gab. Wichtig bei Schleifen! 
Mit if del ...  prüfen, ob der nächste Satz ein gelöschter (ungültiger) ist. In normalen Ergebnismengen kommt das nicht vor. 
Hinweis: Den ersten Satz läßt man mit `first` laden, den letzten mit `last`. 

next r     acon   [ab V34.2]
next r  holt nur die Kurzzeile des nächsten Satzes der Ergebnismenge in die `iV` und lädt nicht den Satz selbst. 
Mit  if no ...  prüfen, ob es keinen nächsten mehr gab. 

next #    
	Holt den nächsten Satz in interner Nummernfolge. Also normalerweise den Satz N+1, wenn Nummer N der aktuelle Satz ist. 
	Unbesetzte Satznummern werden übersprungen, gelöschte (intern ungültig gemachte) Sätze jedoch nicht.
Mit if cancel ... (!) kann man prüfen, ob die Datenbank zu Ende ist, also kein nächster mehr da war (sondern allenfalls noch unbesetzte Nummern am Ende kommen), und mit  
if del ...   ob der nächste Satz ein gelöschter (ungültiger) ist. Der aktuelle Satz bleibt in diesem Fall unverändert. 
Beispiel 3 (siehe unten) zeigt, wie man damit in einem FLEX die gesamte Datenbank abarbeiten kann, also alle gültigen Datensätze.

next off   [Gegenteil:  prev off ]
Der nächste Satz der Offline-Datei wird geladen (aber nicht angezeigt). Mit  if yes/no ... kann man checken, ob es gelungen ist oder nicht (weil der letzte erreicht war oder die Menge leer ist). 

next sub   [Gegenteil:  prev sub ]
Ein interner Zeiger wird auf den nächsten hierarchischen Untersatz (subrecord) gesetzt. Nachfolgende ins- und var-Befehle beziehen sich dann auf diesen Untersatz, auch Formularanzeigen (Befehl  form ).   
Mit  if no ... kann man checken, ob es keinen mehr gibt, d.h. ob der Zeiger schon auf dem letzten Untersatz stand. 
Mit  if hier ... prüft man, ob überhaupt solche Sätze vorliegen, d.h. ob der aktuelle Satz ein hierarchischer ist. 
Mit  first sub wechselt man zum ersten wirklichen Untersatz. In einer Schleife kann man danach bequem zum jeweils nächsten wechseln, bis zum Ende.
Wenn man den Zeiger auf einen ganz bestimmten Untersatz setzen will, von dem man die Eintragung in #01 kennt, benutzt man dafür den Befehl   `sub` #01 nnn 

Sonderfälle

next $0 / $1  
Die nächste "kleine" bzw. "große" `$-Variable` wird in die iV geholt, die Form ist  $Name Inhalt.  
Mit if no ... kann man checken, ob es keine mehr gab. 
Die erste Variable holt man mit  first $0 / $1 

next view  
Die nächste Zeile der aktuellen ViewListe wird in die iV kopiert. 
Mit  if no ... kann man checken, ob es keine nächste mehr gab. 

Beispiel 1:
Die Sätze der aktuellen Ergebnismenge sollen in der eingestellten Reihenfolge behandelt werden: 
Genauso funktioniert es mit der Offline-Datei, wenn man "off" hinter das Befehlswort "first" bzw. "next" setzt. Angenommen ist hier, daß die Ergebnismenge keine gelöschten Sätze und keine unbesetzten Nummern enthält! Dann ist das Strickmuster sehr einfach:

first 
:schleife 
    ... irgendeine Behandlung 
next 
if yes jump schleife 

Beispiel 2:   (acon)
Wenn die Ergebnismenge bei acon durch Vorgabe einer Nummernliste entsteht, ist es bei der 
Durcharbeitung wichtig, auf gelöschte und ungültige Nummern zu achten. Hier das Schema: 

find #nnn,nnn,nnn,... 

get first 
:loop 
if deleted wri "rec deleted " i n;jump nix    // gelöschter Satz 
if no wri "number is not in use " n;jump nix  // unbelegte Satznummer 
      Verarbeitung des Datensatzes 
:nix 
get next 
if cancel wri "Ende" n;jump ende     // Ende der Ergebnismenge 
jump loop 
:ende 
      weitere Befehle nach Ende der Ergebnismenge 
 
Beispiel 3:
Alle Sätze der gesamten Datenbank sollen irgendwie behandelt werden. 
Hier ist das Muster, das man dafür übernehmen kann: 
(Größeres Beispiel:  `summe.flx`; schnelleres Unterprogramm: siehe mitgelieferte Datei  `alldata.inc` ) 

... 
first # 
  falls der erste Satz gelöscht ist: nächster Satz
if del jump weiter 
  Jeder Satz wird in dieser Schleife verarbeitet: 
:schleife 

  Beliebige Befehle für den momentanen Datensatz 
  put   nicht vergessen, falls er wieder gespeichert werden soll 

  Nächsten Satz holen (interne Nummernfolge) 
:weiter 
next # 

  kein Satz mehr, Ende erreicht 
if cancel jump exit 
  der Satz ist gelöscht 
if del jump weiter 

  es gab noch einen Satz? dann -> :schleife 
if yes jump schleife 

:exit

?prev=h xprev 
?if yes/no=h xif=if yes 
?first=h xfirst 
?last=h xlast 
?iV=h xiv 
?Register=h xa 
?sub=h xsub 
?$-Variable=h xfreevar 
?summe.flx=h summe.flx 
?alldata.inc=h alldata.inc