Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Joker am 08.04.03 - 11:10:04

Titel: Textfelder begrenzen
Beitrag 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
Titel: Re:Textfelder begrenzen
Beitrag von: Performance am 08.04.03 - 11:15:17
nein, nicht direkt aber mit @Left() oder @Length() kann in der Validierung des Feldes dei Überprüfung stattfinden.


cu
Titel: Re:Textfelder begrenzen
Beitrag von: mgeidl am 08.04.03 - 11:41:29
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
Titel: Re:Textfelder begrenzen
Beitrag von: ata am 08.04.03 - 17:03:24
... 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
Titel: Re:Textfelder begrenzen
Beitrag von: doliman am 08.04.03 - 19:33:21
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.
Titel: Re:Textfelder begrenzen
Beitrag von: Joker am 09.04.03 - 10:05:34
Hi,
danke für eure schnellen und zahlreichen antworten. Ich werde mein Problem mit dem Scriptvorschlag von mkalteis lösen.

Gruss
Martin