Zeichenbegrenzung im Feld

  • eine Moeglichkeit waere im Querysave event

    Code
    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    	Dim ws As New notesuiworkspace
    	Dim feldinhalt As String
    	Feldinhalt = source.document.untitled2(0)
    	If(Len(Feldinhalt) > 10) Then
    		Call ws.prompt(PROMPT_OK,"","Es sind im Feld   Untitled2 nur 10 Zeichen erlaubt!")
    		source.document.untitled2 = Left(Feldinhalt,10)
    		'oder continue = false
    	End If
    End Sub


    Untitled2 ist das zu ueberpruefende Feld

  • Verwende doch einfach die InputTranslation Formel. Diese wird nach Eingabe jeden Zeichens ausgeführt. Wenn du dort einfach jedes Zeichen das hinter dem 10. liegt abschneidest ist das schon während der Eingabe nicht mehr möglich.
    Gilt aber nur für den Notes Client

  • Ab welcher Version wird denn die InputTranslation nach jedem Tastendruck abgearbeitet???
    Was man, unter bestimmten Bedingungen machen koennte, ist, die Maskeneigenschaft "automatisch Felder refreshen" oder so aehnlich zu aktivieren.
    Dann wird die InputTranslation nach dem Verlassen des Feldes abgearbeitet.
    Kann sich allerdings negativ auf die Performance auswirken. Musst mal abwaegen.
    Das waere mir bekannt

  • erstmal thx für die vielen anmtworten :)


    Ist Input Translation im Deutschen Domino "Eingabevalidierung"?


    Dort kann ich nur Domino-Formeln benutzen.


    Wo müsste ich den Code vom Querysave event denn eintragen?

    • Offizieller Beitrag

    QuerySave kommt ins QuerySave der Maske. InputTranslation entspricht im deutschen Designer der Eingabeumsetzung.


    Du könntest das Script auch ins Exiting des Feldes kopieren, dann wird der Feldinhalt beim verlassen des Feldes angepasst.


    Oder mit ein bissel mehr Aufwand (ich hoffe jetzt verwirre ich Dich nicht) kannst Du beim Entering des Feldes einen NotesTimer starten und jede Sekunde den Feldinhalt überprüfen und ggf. auf Deine Länge kürzen. Beim Exiting oder Terminiate muss dann der Timer wieder gestoppt werden.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Exiting würde ich nicht empfehlen. Wenn der Cursor gerade in dem entsprechenden Feld ist und man klickt einen Button in der Aktionsleiste, findet kein Exiting statt.

    • Offizieller Beitrag

    Der Code zum Beenden des Timers muss sowohl im Exiting als auch in Terminiate stehen. Hatte ich etwas missverständlich ausgedrückt.



    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein