Register 

ask |iprompt=Vorgabe

ask +|iprompt=Vorgabe

ask prompt  acon  [ab V34.3]

Aufforderung zu einer Eingabe. Was der Nutzer dann eingibt,  wird in der  internen Variablen  (iV) gespeichert.

Wenn hinter ask nichts steht, wird statt dessen der Inhalt der iV genommen, der dann entsprechend (wie oben zu sehen) strukturiert sein muß.

Wenn ein  +  gesetzt ist, wird die Eingabe des Nutzers an den iV-Inhalt hinten angehängt.

Für die Eingabe erscheint ein kleines Dialogfenster mit einer Eingabezeile und dem  prompt  als Überschrift.

i                = Nummer des Index, der aufgeblättert wird, wenn man in dem Dialogfenster [Index] drückt

prompt   = Aufforderungstext; erscheint dann über dem Eingabefeld

Wenn man |i wegläßt, wird das Register 1 an seinem Anfang aufgeblättert.

Im Fall daß  i=0  ist, entfällt in der Eingabeaufforderung der Button [Index], d.h. das Nachschauen im Index ist dann unterbunden.

Hinter |i kann ein Präfix folgen, abgetrennt mit einem | vom eigentlichen prompt, wenn eine bestimmte Abteilung im Index aufgeblättert werden soll.

Beispiel:   ask +|1D |Hochschulort=#819 

 

Der Teil  =Vorgabe  kann entfallen; die  Vorgabe  erscheint sonst im Eingabefeld.

Vorgabe  kann auch ein Datenfeld oder eine #u-Variable sein: z.B.

ask |1Verf.?=#40    legt den Inhalt von  #40  als Vorgabe vor.

Aber: Die Eingabe geht nicht direkt zurück in das Feld oder die Variable, sondern in die iV ; man muß sie z.B. mit  insert #40  zurück in den Datensatz übertragen, falls gewünscht.

 

Statt der gesamten Angabe  |iprompt=Vorgabe kann auch eine Kategorienummer oder #u-Variable stehen, dann muß deren Inhalt diesem Text entsprechen. So können die Fragetexte und Vorgaben datenspezifisch individualisiert werden. Steht hinter ask gar nichts, wird der Inhalt der iV genommen (den man vorher mit  var ...  präpariert hat).

Mit nachfolgendem  if "abc" ...  prüft man, ob die Eingabe mit "abc" beginnt. Mehrere solche Befehlszeilen können aufeinander folgen, um auf unerschiedliche Eingaben entsprechend zu reagieren.

Mit  if  "" ... kann man abchecken, ob nichts eingegeben wurde!

Wenn die Aufforderung mit [Esc] abgebrochen wurde, kann dies auch mit

if cancel ...

festgestellt werden. Die iV ist dann ebenfalls leer.

Hat man versehentlich [Esc] gedrückt und aktiviert die Eingabe sofort neu (abermals ask ...), kann man mit dem Button [Copy] die vorher abgebrochene Eingabe zurückholen.

 

Hinweis: Wenn dem Nutzer nur eine Ja/Nein-Frage zu stellen ist, verwendet man den Befehl  yesno .

 

acon Achtung:Wenn  ask  in einem Job xy.job vorkommt, dann starten mit  acon -jxy  und nicht  acon <xy.job

 

Sonderfall:

 

ask @aufforderung

Der @ bewirkt, daß ein Eingabedialog für Name und Passwort kommt. Das Passwort ist bei der Eingabe nicht lesbar. In der iV hat man anschließend Name und Passwort, getrennt durch '=' und kann damit beliebige Dinge anstellen.

Eine Vorgabe ist bei der Passwortabfrage nicht möglich.

 

 

Beispiel 1: Eine Angabe vom Nutzer abfragen und in eine Kategorie einordnen, anschließend Anzeige und Feldliste (im linken Fenster) erneuern

ask |3Geben Sie ein Schlagwort ein=#31

ins #31

disp

show rec

 

Beispiel 2: Die Aufforderung ist etwas komplizierter: der Name der Datenbank soll darin vorkommen. Man "bastelt" sie zuerst mit dem var-Befehl in der iV zusammen:

var "|3Gewünschtes Stichwort (Sie benutzen Datenbank " B ")"

  Es kommt Umlaut vor: nach ANSI wandeln

ansi

ask

...

Der Befehl ansi muß nur gegeben werden, wenn der Text des FLEXes mit einem DOS-Editor geschrieben wird, z.B. X.EXE, nicht bei notepad.

 

Hier noch zwei Beispiele von vollständigen, schon recht komplizierten FLEXen:

 

Example 3: Siehe Datei  EURO.FLX   ( Euro ausführen )

Hierbei wird nicht nur eine Eingabe vom Nutzer abgefordert, es werden dann auch  Rechnungen  damit angestellt.

 

Example 4: Siehe Datei DOLLAR.FLX   ( DOLLAR ausführen )

Hier kommt hinzu, daß der Kurs sich ändern kann. Dieser soll aber dann für weitere Sitzungen aufbewahrt werden...