<< Inhaltsverzeichnis Suchen >>

READSELECT

Anweisung

Syntax:

READSELECT
ON ERROR ...ANWEISUNGEN...  END

Bedeutung:

Der Datensatz, der gerade mit dem Inversbalken angezeigt wird, wird über den beim Aufruf von SELECT definierten Schlüssel gelesen.

 

Diese Anweisung ist notwendig, wenn in einem ON SELECT (<TASTE>) MACRO die Daten des aktuell invers angezeigten Datensatzes benutzt werden sollen, da normalerweise der aktuell invers angezeigte Datensatz nicht mit dem zuletzt gelesenen Datensatz übereinstimmt. Diese Anweisung ist nur sinnvoll im SELECT oder SHOW, nicht aber im SELECTA. Wenn der Datensatz nicht gelesen werden kann, weil er z.B. gerade gesperrt ist oder von einem anderen Benutzer zwischenzeitlich gelöscht wurde, wird der Block ON ERROR ... END ausgeführt. Die Variable OK hat dann den Wert 1051 und OK2 ist 0.

Beispiel:

ON F2 MACRO AUSWAHL.ARTIKEL.GRUPPE

Macro AUSWAHL.ARTIKEL.GRUPPE:
ON SELECT(F2) MACRO AUSWAHL.ARTIKEL.EINER.GRUPPE
WINDOWPOS(3,5)
H%=SELECT(ARTGRUPP,...)             /* Auswahl Artikelgruppen
...
/* Wird im SELECT die Taste F2 gedrückt, so läuft der  folgende Macro ab:
AUSWAHL.ARTIKEL.EINER.GRUPPE:
ON SELECT(F2) RESET                       /* Ausschalten, damit kein
                                                                /* rekursiver Aufruf erfolgt
WINDOWPOS(3,50)
READSELECT ON ERROR ... END     /* Lesen aktuellen Datensatz
ARTIKEL.GRUPPE=ARTGRUPP.NR /* Sekundär-Key-1 von
                                                                /* ARTIKEL
ist GRUPPE.
                                                                /* ARTIKEL.GRUPPE ist 5-stellig
H%=SELECT(ARTIKEL,1,5,...)           /* Anzeige aller Artikel, bei denen
                                                                /* ARTIKEL.GRUPPE=
                                                                /* ARTGRUPP.NR ist.
IF H%=1                                                /* Artikel wurde ausgewählt
THEN ENDSELECT          /* Der SELECT(ARTGRUPP,...) wird wie bei
                                            /* einer Auswahl mit RETURN mit dem aktuell
                                            /* invers angezeigten Datensatz beendet.
ELSE ON SELECT(F2) MACRO AUSWAHL.ARTIKEL.EINER.GRUPPE
               /* Es kann jetzt weiter im SELECT(ARTGRUPP,.......)
ENDIF   /* geblättert werden

siehe auch:

ENDSELECT, QUITSELECT, SELECT, SHOW