Textfeld auf eine Zeile beschränken

Hier gibt es verschiedene Ansätze:

Feldüberprüfung

Im Prinzp kann mit der Feldüberprüfung die Zahl der Zeilen festgestellt werden. Dann kann der Inhalt abgelehnt werden. Das halte ich für eine schlechte Idee, weil der nichts Böses ahnende User vielleicht schon zahlreiche Zeilen eingegeben hat, bevor wir ihm sagen, dass er das nicht darf. So schafft man Frust.

Autoeingabe

Beim Speichern des Inhalts eines Feldes kann eine Berechnung ausgeführt werden (Feldoptionen -> 1. Reiter -> Berechnung -> Haken ‘nur bei Erstellung …’ entfernen). Damit könnten die überzähligen Zeilen gelöscht werden. Eine genauso schlechte Idee wie der vorige Absatz.

Aber es lassen sich die Zeilenschläge gegen zB. Blanks ersetzen mit Austauschen().

Inspektor Optionen

Auf dem letzten Reiter des Inspektors kann unter ‘Verhalten’ auch RETURN und ENTER für den Wechsel von Feld zu Feld gewählt werden. Das löst dieses Problem, es läßt sich jetzt kein Zeilenschlag mehr eingeben. Allerdings gibt es eine Nebenwirkung, die ich nicht gut finde: Im Suchenmodus kann man nicht mehr die Suche in diesem Feld mit RETURN/ENTER abschicken, der Cursor springt einfach in das nächste Feld statt die Suche auszulösen.

Wem das nichts ausmacht, der findet hier die Lösung und muss sich nun noch darum kümmern, dass nicht mehrzeilige Texte über copy & paste eingefügt werden. Dafür ist eine Feldüberprüfung (s.o.) geeignet.

Skripttrigger

Die flexibelste Methode stellt die Anwendung von Skripttriggern dar.

Es lassen sich bei jedem Tastendruck per Skript Aktionen ausführen, zB. können gewisse Eingaben ignoriert oder auch mit einem Fehlerton quittiert werden.

Die Eingabe eines Zeilenschlages fängt man mit

 Code( Hole( TriggerTastendruck )) = 13

.

Beim Speichern sorgt der für dieses Event zuständige Trigger für Ordnung.

Leave a Reply

Your email address will not be published. Required fields are marked *