Funktion
Syntax: |
SELECTA([WAIT |
NOWAIT,<EXITMACRO>,<SPLIT-HANDLE>,] |
|
||
Bedeutung: |
SELECTA erlaubt die Selektion von Elementen aus einem dimensionierten alphanumerischen Bereich. Diese Funktion arbeitet in der gleichen Weise wie die Funktion SELECT. |
|
||
|
SELECTA ist eine numerische Funktion und liefert folgende Werte als Ergebnis: |
|
||
|
-1: |
Fehler: <ANZAHL> <= 0
oder nicht genügend Speicherplatz vorhanden |
|
|
|
SELECTA wird unter Java wie ein Maskenfeld auf der aktuellen Maske eingefügt, wenn folgende 3 Bedingungen erfüllt sind: 1.
der Parameter NOWAIT ist angegeben oder wenn folgende 2 Bedingungen erfüllt sind: 1.
der Parameter NOWAIT ist angegeben In diesem Fall kann der SELECTA wie die anderen Felder der Maske mit den Tasten <TAB>, <Cursor unten>, etc. angesprungen werden. Im <EXITMACRO> enthält die Variable EBUS_DATA den Returncode. |
|
||
|
Bei NOWAIT wird ein neuer Programmzweig gestartet (siehe Funktion WINDOWCALL), die Funktion kehrt sofort zurück und liefert die Identifizierungsnummer (Handle) des SELECTA. Mit der Anweisung CLOSE_SELECT(<Handle>) kann ein mit NOWAIT geöffneter SELECTA geschlossen werden. Bei WAIT wird SELECTA hierarchisch gestartet und die Funktion kehrt erst zurück wenn die SELECTA-Auswahl beendet wurde. Der Macro <EXITMACRO> wird ausgeführt, nachdem die SELECTA-Auswahl beendet wurde, sei es durch Schließen des Windows, durch Verlassen mit ESC oder die Anweisungen ENDSELECT und QUITSELECT. Wird WAIT oder NOWAIT angegeben, so muß auch ein <EXITMACRO> angegeben werden. Bei NOWAIT enthält im <EXITMACRO> die Variable EBUS_DATA den Returncode. Wenn der SELECTA im Split-Window angezeigt werden soll, muß <SPLIT-HANDLE> die Identifizierungsnummer des Split-Windows enthalten, andernfalls ist <SPLIT-HANDLE> = 0 zu setzen. Unabhängig von WAIT/NOWAIT schließt die Funktion SELECTA alle Windows, die von ihr geöffnet wurden. Fehlen die Parameter [WAIT | NOWAIT,<EXITMACRO>,], so ist dies gleichbedeutend mit WAIT. NOWAIT hat nur unter WINDOWS eine Wirkung, unter MS-DOS und UNIX wirkt NOWAIT wie WAIT. Alle Schalter und ON <EREIGNIS> MACRO's werden bei NOWAIT beim Start des SELECTA und bei jedem Verlassen des Programmzweigs gesichert. Beim erneuten Aktivieren des Programmzweigs wird der letzte Zustand der Schalter und ON <EREIGNIS> MACRO's wieder hergestellt. Nach jedem ON SELECT(<TASTE>) MACRO, der im SELECTA ausgeführt wird, werden die ON <EREIGNIS> MACRO's erneut gesichert. |
|
||
|
<TABELLE> ist der Variablenname eines alphanumerischen Bereichs. Es ist nur der Name der Variablen ohne Indizes anzugeben. Bei <VOREINSTELLUNG> kann ein beliebiger String-Ausdruck angegeben werden. Beim Aufruf der Funktion SELECTA werden alle Einträge in <TABELLE> mit <VOREINSTELLUNG> verglichen. Bei Gleichheit wird das gefundene Tabellenelement im Window mit dem Inversbalken unterlegt. Ist <VOREINSTELLUNG> der Leerstring oder wird in der Tabelle kein Element gefunden, das gleich <VOREINSTELLUNG> ist, so wird das erste Element der Tabelle mit dem Inversbalken unterlegt. Unter Java können als <VOREINSTELLUNG> mehrere Zeilen invers dargestellt werden. Die Einträge in <VOREINSTELLUNG> müssen durch CHR$(9) getrennt sein. |
|
||
|
<ANZAHL> ist die Anzahl der Elemente, die bei der Auswahl berücksichtigt werden. Das erste Element in der Tabelle ist das Element Nr. 1. Das Element Nr. 0 wird von SELECTA nicht berücksichtigt. Es ist sicherzustellen, daß ein korrekter Wert übergeben wird. Es wird nicht geprüft, ob <ANZAHL> größer als die Dimensionierung der Variablen ist. Ist dies der Fall, so können unvorhersehbare Fehler auftreten. |
|
||
|
SELECTA liefert als Ergebnis die Nummer des ausgewählten Tabellenelementes. Wird SELECTA mit <ESC> verlassen, so wird als Ergebnis Null und im Fehlerfall -1 geliefert. |
|
||
|
Wenn <UEBERSCHRIFT> gleich dem Leerstring "" ist und ein Window gerade aktiv ist, so erfolgt die Anzeige im aktuellen Window. Andernfalls wird an der durch die letzte Anweisung WINDOWPOS definierten Stelle automatisch ein neues Window in der benötigten Größe eröffnet. Ist die aktuelle Zeilennummer von WINDOWPOS > 21, so wird sie auf 21 gesetzt. Das Window wird mit Randfarbe = <FARBE-NORMAL> und Hintergrundfarbe = <FARBE-NORMAL> eröffnet. Die Farbe des Roll-Down-Balkens ist <FARBE-INVERS>. |
|
||
|
|
|
||
|
Achtung: Bei NOWAIT wird immer ein neues Window geöffnet, auch wenn <UEBERSCHRIFT> gleich dem Leerstring "" ist. |
|
||
|
Es kann optional eine zusätzliche <SPALTEN-UEBERSCHRIFT> definiert werden. Diese erscheint dann in der 1. Zeile des SELECTA-Windows mit der <FARBE-SPALTEN-UEBERSCHRIFT>. Ist die <SPALTEN-UEBERSCHRIFT> gleich dem Leerstring "", beginnt in der ersten Zeile des SELECTA-Windows die Anzeige der Datensätze. |
|
||
|
Unter WINDOWS wird die Zeilenüberschrift in der Markierfarbe angezeigt, wenn <FARBE-SPALTEN-UEBERSCHRIFT> = 0 ist. Andernfalls wird die durch <FARBE-SPALTEN-UEBERSCHRIFT> festgelegte DOS-Farbe verwendet. |
|
||
|
Im SELECTA mit Einzelfeldanzeige (<TRENNZEICHEN> <> "") können auch Bilder angezeigt werden. Dazu muß ein <BILD-TRENNZEICHEN> angegeben werden. Beginnt ein Feld mit diesem Zeichen, so wird der Text nach diesem Zeichen als Bildname (ico, bmp) interpretiert und das Bild anstelle des Textes angezeigt. <ANZEIGE-ART> legt fest, wie das Bild angezeigt wird: |
|
||
|
Wert |
Bedeutung |
|
|
|
1 |
Die Bilder werden proportionalitätsgetreu auf den zur Verfügung stehenden Platz (Zeilenhöhe) vergrößert bzw. verkleinert und linksbündig angezeigt. |
|
|
|
2 |
Die Bilder werden proportionalitätsgetreu auf den zur Verfügung stehenden Platz (Zeilenhöhe) vergrößert bzw. verkleinert und in der Feldmitte angezeigt. |
|
|
|
3 |
Die Bilder werden in der Originalgröße angezeigt. Ist ein Bild höher als 1 / EBUS_PIXEL_HEIGHT - 4 oder breiter als <Feldbreite> * 1 / EBUS_PIXEL_WIDTH, so wird das Bild proportionalitätsgetreu verkleinert. Die Anzeige erfolgt linksbündig. |
|
|
|
sonst |
Die Bilder werden in der Originalgröße angezeigt. Ist ein Bild höher als 1 / EBUS_PIXEL_HEIGHT - 4 oder breiter als <Feldbreite> * 1 / EBUS_PIXEL_WIDTH, so wird das Bild proportionalitätsgetreu verkleinert. Die Anzeige erfolgt in der Feldmitte. |
|
|
|
Ist <TRENNZEICHEN> angegeben und <> "", so legt das erste Zeichen von <TRENNZEICHEN> das Zeichen fest, das einzelne Felder in den Elementen der <TABELLE> und der <SPALTEN-UEBERSCHRIFT> trennt. Diese Einzelfelder werden dann getrennt angezeigt. Bei ENABLE SELECT_VERTLINES wird zwischen den einzelnen Feldern eine Trennlinie gezogen. Standardmäßig erfolgt die Anzeige eines Feldes linksbündig. Das zweite Zeichen von <TRENNZEICHEN> legt fest, welche Felder rechtsbündig angezeigt werden sollen. Das dritte Zeichen legt fest, welche Felder zentriert angezeigt werden sollen. Für rechtsbündige und zentrierte Anzeige muß das entsprechende Trennzeichen als erstes Zeichen des Feldes angegeben werden. Wird für ein Feld ein Farbcode angegeben, so muß das Trennzeichen für rechtsbündige oder zentrierte Anzeige nach dem Farbcode stehen. Die Trennzeichen werden nicht angezeigt, sie dienen nur der Formatierung. Ist eine <SPALTEN-UEBERSCHRIFT> angegeben und sind Trennzeichen für rechtsbündige oder zentrierte Anzeige bei den Feldüberschriften angegeben, so gilt diese Positionierung auch für alle entsprechenden Felder der <TABELLE>, wenn bei dem Feld der <TABELLE> kein Trennzeichen angegeben ist. Unter Java können Checkboxen im SELECTA angezeigt werden. Das vierte Zeichen von <TRENNZEICHEN> kennzeichnet die Checkboxfelder. Das Trennzeichen kann nur in der Spaltenüberschrift als erstes Zeichen angegeben werden. Dadurch werden alle Felder der Spalte als Checkbox angezeigt. Es ist nicht möglich, einzelne Felder einer Spalte als Checkbox zu kennzeichnen. |
|
||
|
<MINDEST-ZEILEN> legt die Mindesthöhe des Fensters in Zeilen fest. |
|
||
|
Zeilen, Spalten oder einzelnen Feldern können durch Voranstellung eines Farbcodes Farben zugeordnet werden. Der Farbcode setzt sich zusammen aus dem ersten Zeichen von <FARB-ZEICHEN> und einer Farbnummer zwischen 1 und 9. Die Farbnummern entsprechen den Farben bei der Anweisung COLOR: 1 = NORMAL Die Zeile, die Spalte oder das Feld wird in der entsprechenden Farbe angezeigt. Unter WINDOWS können mit der Anweisung GR_RGB beliebige Farben definiert werden. Ist kein <TRENNZEICHEN> angegeben, so erfolgt im SELECTA keine Unterteilung in Spalten und Felder. Folglich können auch nur ganze Zeilen farbig dargestellt werden. Die Farbe für eine Spalte wird dadurch festgelegt, daß einem Feld in der <SPALTEN-UEBERSCHRIFT> ein Farbcode vorangestellt wird. Wird bei einem Überschriftsfeld zusätzlich ein <TRENNZEICHEN> für zentrierte oder rechtsbündige Anzeige angegeben, so muß der Farbcode vor diesem Zeichen stehen. Die Farbe für ein einzelnes Feld wird dadurch festgelegt, daß dem Feldinhalt ein Farbcode vorangestellt wird. Die Farbe für eine Zeile wird dadurch festgelegt, daß der Zeile ein Farbcode vorangestellt wird. Diese Farbcode gilt dann für alle Felder dieser Zeile. Jedem Feld der Zeile, das normal oder in einer anderen Farbe dargestellt werden soll, muß deshalb ein eigener Farbcode vorangestellt werden. Eine normale Anzeige eines Feldes (ohne Farbe) wird dadurch erzwungen, daß im Farbcode eine Farbnummer ungleich 1 bis 9 angegeben wird, z.B. das Leerzeichen " ". Unter WINDOWS und Java können auch negative Farbwerte angegeben werden. Dann wird das Feld bzw. die Zeile nur in der Vordergrundfarbe der angegebenen Farbe angezeigt, die Hintergrundfarbe bleibt unverändert. Da sowohl Zeilen als auch Spalten und Feldern verschiedene Farbcodes zugeordnet werden können, gelten folgende Prioritäten: Die höchste
Priorität für die Farbe eines Feldes hat der Farbcode des Feldes. |
|
||
|
Der ON SELECT(MOUSE) MACRO wird im SELECT/SHOW/SELECTA ausgeführt, wenndie linke Maustaste betätigt wurde und gleichzeitig eine oder mehrere der Tasten SHIFT, ALT oder CTRL gedrückt sind. |
|
||
|
Im ON SELECT(...) MACRO können die Variablen EBUS_SELECT_POS und EBUS_SELECTA gesetzt werden. Nach der Ausführung des Macros wird der Inversbalken auf die entsprechende Zeile gesetzt. |
|
||
Beispiel: |
Für KUNDEN.KZ$ sind nur 4 verschiedene Eingaben möglich. Die Eingabe soll durch eine Auswahl im Window erfolgen. Der aktuelle Wert von KUNDEN.KZ$ soll voreingestellt invers dargestellt werden. |
|
||
|
DIM H$(4) |
|
||
|
S% = SELECTA(H$,KUNDEN.KZ$,4,"KZ",1,3) |
|
||
|
CASE S% |
|
||
|
|
|
||
Beispiel: |
/* Das Fenster soll eine Höhe von 5 Zeilen
haben |
|
||
|
S% =
SELECTA(T$,"",3,"Artikel",UEBERSCHRIFT$,2,1,3,";@#",5)
|
|
||
|
|
|
||
Beispiel: |
/* Farbe in Spalten DIM T$(10) /* Farben setzen SETCOLOR INVERSE = 15,4 /* weiß auf
rot ROT$ =
"\3" /* COLOR INVERSE /* Anzeige Spalten/Felder T$(1) =
ROT$+"dunkelrot;"+GELB$+"gelb;"+GRUEN$+ GR_SELECTFONT = 0 /* Proportionalschrift WINDOWPOS(0,0) H% =
SELECTA(T$,"",10,"Farbe im SELECTA", |
|
||
|
|
|
||
|
|
|
||
Beispiel: |
/* Farbe in zeilenweise Anzeige T$(1) = "Diese Zeile ist normal" GR_SELECTFONT = 0 /* Proportionalschrift WINDOWPOS(0,0) H% =
SELECTA(T$,"",10,"Farbe im SELECTA",1,3,";",0,"\") |
|
||
|
|
|
||
siehe auch: |
REFRESHSELECTA, SELAEDIT, SELECT, SELECTDB$, SHOW, WINDOW, WINDOWPOS, ENABLE/DISABLE SELECT_VERTLINES, |
|
||