Vb.119: Neuer FLEX-Befehl "select"

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Di Sep 28 09:00:58 CEST 1999


Verlautbarung 119 der Entwicklungsabteilung                     1999-09-28
-------------------------------------------

select : neuer FLEX-Befehl
--------------------------

ac15/a99/update/a99upd.exe   und   ac15/alcarta/update/alcupd.exe
liegen bereit.

Mit dem Befehl "ask" gibt es ja schon die Moeglichkeit, dem Benutzer eine
Frage zu stellen und die Antwort anschliessend in eine Kategorie oder
Hintergrundvariable einzuordnen (mit "insert #...")
Mit "yesno" und "noyes" dagegen kann man Ja/Nein-Fragen stellen und auf
die Antwort reagieren.
Manchmal soll aber die Antwort auf eine Frage eine von mehreren aus
einer begrenzten Zahl von Moeglichkeiten sein. Dann wuenscht man sich,
dass diese moeglichen Antworten in einer ausklappbaren Liste angezeigt
und zur Auswahl angeboten werden (eine sog. "Combo-Box").
Genau das geht jetzt mit dem
Befehl  "select".
So muss er aussehen:

select prompt=antw1|antw2|antw3...

select +prompt=antw1|antw2|antw3...

Wie bei "ask" wird die Antwort in die interne Variable kopiert (bzw. an diese
angehaengt, wenn das + gesetzt ist). Als "prompt" gibt man die Frage an, 
hinter
dem = folgen dann die Wahlmoeglichkeiten, getrennt durch | .

Zum Beispiel:

select Sprache?=de|en|fr|sp

Anstelle von antw1|antw2|antw3... kann auch eine Kategorienummer stehen,
z.B.

select Sprache?=#usp

und in #usp muss dann die Kette der Antworten stehen.
Wenn die Antworten aus Codes bestehen, kann man dem Nutzer auch deren
Bedeutungen anzeigen lassen, z.B. so:

select Sprache?=de=Deutsch|en = Englisch|fr = Franzoesisch|sp = Spanisch

Uebernommen wird dann jeweils nur, was vor dem = steht. Leerzeichen vor
und hinter dem = sind optional.

Um das Ganze noch flexibler zu machen:

Auch fuer "prompt" kann eine Kategorienummer stehen, z.B.
   select #98a   oder
   select #uab
In der betr. Kategorie muss dann der gesamte Text stehen, einschl der Frage.

Wenn die Auswahlliste laenglich wird (laenger als 32K darf sie nicht werden,
aber das waere ohnehin unpraktisch), kann man sie in eine .FLX-Datei
schreiben. Dann muesste der FLEX z.B. so aussehen:  
#uX3X sprache.flx

und in der Datei sprache.flx muesste stehen:

select Sprache?=de=Deutsch
|en=Englisch
|fr=Französisch
|sp=Spanisch
ins #37

d.h. die zweite und weitere Antwort koennen auf eigenen Zeilen stehen,
beginnend immer mit dem Trennzeichen | .

Hinzuweisen ist nochmals auf die Alternative, eine laengere Liste von
Codes in einem Indexabschnitt unterzubringen und dann im Formular-Editor
bei dem betr. Feld die Indexeinstellung auf diesen Abschnitt zu stellen.
Bei Druck auf [Index] kommt dann der Abschnitt, man waehlt aus und
drueckt im Indexfenster [Copy].

Auch bei dem Befehl "ask" kann fuer "prompt" eine Kategorienummer stehen,
und in der Kategorie dann die gesamte Frage einschl. Vorgabe fuer die 
Antwort.


Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro