Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: voigt am 18.08.05 - 09:17:56
-
Hallo zusammen,
ich habe hinter einem Feld folgende Formel hinterlegt.
@If(verechnung = "";@Failure("Bitte einen Verechnungscode eingeben");@Success)
Wenn nun das Feld leer ist erscheint auch wunderbar die Meldung, leider erscheint gleich danach auch eine Error Meldung "Notes Error - "Feld hat Validierungsformel nicht entsprochen"
Ein Mitarbeiter von Intraware hat mir einen Tipp gegeben dass ich eine Exit Funktion einbauen soll, habe leider keine Ahnung wie ich dies bewerkstettige :-(
Habe auch schon in der Online Hilfe geschaut, leider stehen dort nur ein paar Infos über Lotus Script, brauche aber die Funktion für eine Formel.
Wäre nett wenn jemand einen Tipp hätte
Gruß
Steffen
-
Eigentlich sehe ich keinen Fehler. Das sollte in dieser Form funktionieren.
Hast du es auch im Input Validation gemacht?
Es klinkt so als wenn dort etwas anders drinnen steht ?
-
Oder hast du dich in der Validierungsformel verschrieben?? Denn eigentlich wird es doch verrechnung geschrieben, oder???
Nicht dass du ein Feld validieren willst, welches nicht auf der Maske ist.
Gruß
-
Die Meldung kommt, wenn man in Script ein Refresh oder Save macht und kein Error Handling eingebaut hat.
Andreas
-
Andreas mein allgemein wenn du mit LS ein refresh oder ein Save macht.
Das war aber jetzt bei dir nicht der Fehler wie du ja schon selbst gesagt hast es lag am Feldnamen.
-
Hi,
ich mache Feldvalidierung in der Regel nicht über die Validierungsformel des Feldes sondern im QuerySace-Event der Maske. Dort habe ich mit Script eine Vielzahl an Möglichkeiten auf die Feldinhalte zu reagieren.
Die einfachste Möglichkeit sieht so aus:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Source.FieldGetText("Name des Feldes") = "" Then
Messagebox "Das Feld darf nicht leer sein.", 16, "Feldvalidierung"
Source.GotoField("Names des Feldes") 'Zum Feld springen
Continue = False 'Speichern verhindern
End If
End Sub
Axel
-
Gut wäre noch ein Exit Sub zum machen weil er sonst den Code weiter ausführt und nur das Speichern abbricht.
Vielleicht hast du danach ein refresh des doc's?
Edit: Ich dachte das schrieb Steffen
Aber es ist die beste Variante es im QuerySave zu machen. Mach ich auch immer so
-
Ein verstehe ich jetzt aber nicht ganz. Du arbeitest direkt im LoNo im -Querysave und machst das hier:
' Create a Notes session
Dim session As Variant
Set session = CreateObject("Notes.NotesSession")
Warum glaubst du das es das hier gibt:
Dim session as New NotesSession
um es dann über CreateObject zu machen!
Ich denke das frisst sicher mehr Speicher als wenn du es direkt übers Notes machst.
Wie gesagt solltest du im Script nach jedem Continue=False ein Exit Sub machen sonst wird der Code danach auch noch ausgeführt oder willst du es so haben?