Programmieren mit dBASE PLUS: Funktionen: next

Aus Wikibooks
Zur Navigation springen Zur Suche springen
Wikibooks buchseite.svg Zurück zu Funktionen | One wikibook.svg Hoch zu Regal EDV | Wikibooks buchseite.svg Vor zu Inhaltsverzeichnis


Mit dieser Methode wird der Datensatzcursor in eine andere Zeile relativ zur aktuellen Position verschoben.

Syntax[Bearbeiten]

<oReferenz>.next([<Zeilen AusdruckN>])

<oReferenz>

Der Datensatzbereich, in dem der Datensatzcursor verschoben werden soll.

<Zeilen AusdruckN>

Die Anzahl der Zeilen, um die der Cursor verschoben werden soll. Standardmäßig wird der Cursor in die nächste Zeile gesetzt.

Eigenschaft von[Bearbeiten]

Rowset

Beschreibung[Bearbeiten]

Der Methode next( ) wird ein optionaler numerischer Parameter übergeben, der angibt, in welcher Richtung, vorwärts oder rückwärts, und um wieviele Zeilen der Cursor in bezug auf die aktuelle Zeile verschoben wird. Eine negative Zahl zeigt an, daß die Suche rückwärts, in Richtung der ersten Zeile, erfolgt. Der Parameter 2 bedeutet beispielsweise, daß der Cursor um zwei Zeilen nach unten verschoben wird.

Falls ein Filter aktiv ist, wird dies berücksichtigt.

Erreicht der Cursor das Ende des Datensatzbereichs, wird die Verschiebung abgebrochen. Der Cursor verbleibt am Bereichsende, und next( ) gibt den Wert False zurück. Andernfalls wird der Wert True zurückgegeben.

Navigationsmethoden wie next( ) bewirken, daß für den Datensatzbereich eine implizite Speicherung versucht wird, wenn die modified-Eigenschaft des Datensatzbereichs den Wert True hat. Beim Aufruf von next( ) gilt folgende Event-Reihenfolge:

  1. Wenn der Datensatzbereich einen canNavigate-Event-Handler hat, wird dieser aufgerufen. Wenn nicht, geschieht dasselbe, als hätte canNavigate den Wert True zurückgegeben.
  2. Wenn der canNavigate-Event-Handler False zurückgibt, geschieht nichts; next( ) liefert den Wert False.
  3. Wenn der canNavigate-Event-Handler True zurückgibt, wird die modified-Eigenschaft des Datensatzbereichs geprüft.
  4. Wenn modified den Wert True hat, geschieht folgendes:
    • Das canSave-Event des Datensatzbereichs wird ausgelöst. Wenn es kein canSave-Event gibt, geschieht dasselbe, als hätte canSave den Wert True zurückgegeben.
    • Liefert canSave den Wert False, geschieht nichts; next( ) liefert False.
    • Liefert canSave den Wert True, versucht dBASE Plus den Datensatz zu speichern. Wenn der Datensatz nicht gespeichert werden kann, etwa weil auf der Ebene der Datenbank-Engine eine Gültigkeitsprüfung fehlschlägt, wird eine DbException ausgelöst; next( ) gibt in diesem Fall keinen Ergebniswert zurück.
    • Wenn der Datensatz gespeichert wird, wird die Eigenschaft modified auf False gesetzt, und das Ereignis onSave wird ausgelöst.
  5. Nachdem der aktuelle Datensatz (falls erforderlich) gespeichert wurde, geschieht folgendes:
    • Der Zeilencursor wird in die bezeichnete Zeile gesetzt.
    • Das onNavigate-Event wird ausgelöst.
    • next( ) liefert True (sofern der Cursor nicht über das Bereichsende hinaus verschoben wurde).

Für andere Navigationsmethoden gilt eine ähnliche Event-Verkettung.