`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... 

?internen Variablen=h xiv 
?if=h xif 
?Register=h xa 
?Rechnungen=h xiz 
?EURO.FLX=h euro.flx 
?Euro ausführen=h euro 
?DOLLAR ausführen=x exec X dollar 
?DOLLAR.FLX=h dollar.flx 
?yesno=h xyes