Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Ozan am 23.08.06 - 11:10:38
-
Hallo zusammen,
ist es möglich ein Kennwortfeld so zu programmieren, dass der nur Zahlen akzeptiert?
Danke
Ozan
-
Hi.
Wo willst Du das machen? Eigene DB? Mail DB? Oder Web? Oder was mir sonst noch so nicht einfällt?
Aber im Prinzip sollte es gehen. ( Eingabevalidierung )
Oder meinst Du das schon beim Eintippen nur Zahlen gelten sollen?
André
-
Sry, dass ich vergessen habe zu beschreiben wo genau das sein soll.
Unter Notesebene, Maske, Eingabefeld.
Und beim eintippen nur Zahlen gelten, also wenn jemand nicht Zahl eingibt, soll das ganze überhauptnicht erscheinen oder eine Fehlermeldung bringen
Danke
-
Und beim eintippen nur Zahlen gelten, also wenn jemand nicht Zahl eingibt, soll das ganze überhauptnicht erscheinen oder eine Fehlermeldung bringen
Nein, das geht so nicht. Du kannst nur mit der Eingabevalidierung (wird beim Aktualisieren oder Speichern ausgeführt) prüfen, ob der Feldwert nur aus Zahlen besteht. Wenn nicht kannst du dem User eine Fehlermeldung anzeigen.
Axel
-
Eine Möglichkeit wäre mit der NotesTimer Klasse sekündlich eine Abfrage zu machen, ob auch nur Zahlen eingegeben werden. Aber bei den Schnelltippern schätze ich dass es trotzdem nicht hinhaut.
Also nur in Verbindung mit einer Eingabevalidierung.
Andreas
-
Ok, ich habe das jetzt bei der Eingabevalidierung reingepackt.
@If(
!@IsNumber(Kontonr);
"Kontonummer ist nicht nummerisch";
@True
)
kontonr ist Kennwort Feld, Kontonummer wird in "*" angezeigt.
Jetzt springt der immer raus, habe ich da etwas falsch gemacht?
-
So kann das nicht gehen.
Die Formel muss so aussehen:
@If(
!@IsNumber(@ThisValue);
@Failure("Kontonummer ist nicht nummerisch");
@Success
)
Axel
-
Hmm, irgendwie klappt das nicht so. Jetzt gibt es die Fehlermeldung permanent, auch wenn das ein Zahl ist!
-
@IsNumber nimmt keine Typenkonvertierung vor.
Wenn in Deinem TEXTFELD also
12345 drinsteht, dann macht @IsNumber:
@IsNumber( "12345" ) und liefert FALSE, weil nun mal "12345" keine Zahl sondern ein Text ist.
Du müsstest zuerst mit @ToNumber( @ThisValue ) versuchen den eingegebenen Text in eine Zahl umzuwandeln, um dann mit @IsNumber abzufragen.
Leider ist @ToNumber für Deinen Wunsch nicht geeignet:
@ToNumber( "1234abcd" ) liefert nämlich 1234 zurück, veruscht also aus Teufel komm raus die Zahl aus Deinem Text zu finden.
Was Du willst geht nur so:
_valids := "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9" : "0";
_xVal := @Trim( @ReplaceSubstring( @ThisValue ; _valids ; "" ) ) ;
@If( _xVal != "" ; @Failure( "Es dürfen nur Ziffern eingegeben werden" ) ; @Success );
Das ganze wurde übrigens vor nicht allzu langer Zeit hier diskutiert, zu Deinem Glück habe ich es durch kurze Suche mit mir Sinnvoll erscheinenden Eingabe-werten nicht gefunden...
Gruß
Tode
-
Hi Tode.
Den meinst Du nicht oder?
Ist Numerisch (http://atnotes.de/index.php?topic=22061.0)
Aber ich kann mich auch dunkel dran erinnern.
André
-
Danke. Funzt!