Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Joker am 08.04.03 - 11:10:04
-
Hi,
gibt es eine Möglichkeit, ein Textfeld auf eine bestimmte Anzahl an Zeichen (z.B. max 40 Zeichen) zu begrenzen ?
Gruss
Martin
-
nein, nicht direkt aber mit @Left() oder @Length() kann in der Validierung des Feldes dei Überprüfung stattfinden.
cu
-
Hallo zusammen!
Ich hab im Querysave folgenden Script, der verschiedene Felder auf ausgefüllt oder nicht, bzw. auf die Feldlänge überprüft:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim workspace As New NotesUIWorkspace
Dim doc As NotesDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Set doc = source.Document
Call source.refresh()
If doc.Fachbereich(0) = "" Then
NoValueBox "Sie haben keinen Fachbereich ausgewählt !"
source.GotoField("Fachbereich")
Goto ExitOnError
End If
If doc.TitelHeadline(0) = "" Then
NoValueBox "Sie haben keine Überschrift eingetragen!"
source.GotoField("TitelHeadline")
Goto ExitOnError
End If
Dim theString As String
theString$ = doc.TitelHeadline(0)
'Abfangen von langen Überschriften
If Len(theString$) > 25 Then
NoValueBox "Die Überschrift darf nicht länger sein als 25 Zeichen!"
source.GotoField("TitelHeadline")
Goto ExitOnError
End If
If doc.TitelSubline(0) = "" Then
NoValueBox "Beschreiben Sie bitte Ihren News-Eintrag unter Kurzbeschreibung !"
source.GotoField("TitelSubline")
Goto ExitOnError
End If
Dim theString2 As String
theString2$ = doc.TitelSubline(0)
'Abfangen von langen Überschriften
If Len(theString2$) > 100 Then
NoValueBox "Die Kurzbeschreibung darf nicht länger sein als 100 Zeichen!"
source.GotoField("TitelSubline")
Goto ExitOnError
End If
' If doc.Inhalt(0) = "" Then
' NoValueBox "Es wurde kein Inhalt für Ihre News eingegeben!"
' source.GotoField("Inhalt")
' Goto ExitOnError
' End If
If doc.AktivStatus(0) = "1" Then
doc.DeleteDate = Date$
End If
Call db.UpdateFTIndex( False )
Call source.refresh()
Exit Sub
ExitOnError:
continue=False
End Sub
-
... wie willst du den Ablauf den haben?
... sollen nur 40 Zeichen verwendet werden?
... => In der Eingabeumsetzung:
@Left("Feldname" ; 40)
... soll beim Verlasen des feldes ein Hinweis erscheinen, so daß der User es sofort korrigieren muß?
... => Eingabevalidierung
@If( Length("Feldname") > 40 ; @Failure("Sie haben mehr als 40 zeichen verwendet. Bitte korrigieren Sie...") ; @Success);
... soll erst beim Speichern eine Meldung erscheinen, dann muß entsprechender Code im QuerySave der Maske hinterlegt werden...
ata
-
Hi ata,
haste mal probiert, was passiert wenn Du nur eine Eingabevalidierung hast, der Benutzer aber nicht das Feld verlässt und speichert?!?
Zumindest hatte ich das schon mal. und schwup di wup kann der User speichern ohne dass die Feldvalidierung zuschlägt.
-
Hi,
danke für eure schnellen und zahlreichen antworten. Ich werde mein Problem mit dem Scriptvorschlag von mkalteis lösen.
Gruss
Martin