Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: voigt am 18.08.05 - 09:17:56

Titel: Exit Formel???
Beitrag 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
Titel: Re: Exit Formel???
Beitrag von: robertpp am 18.08.05 - 09:53:08
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 ?
Titel: Re: Exit Formel???
Beitrag von: LuckyMan am 18.08.05 - 09:55:41
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ß
Titel: Re: Exit Formel???
Beitrag von: Glombi am 18.08.05 - 09:56:08
Die Meldung kommt, wenn man in Script ein Refresh oder Save macht und kein Error Handling eingebaut hat.

Andreas
Titel: Re: Exit Formel???
Beitrag von: robertpp am 18.08.05 - 10:11:32
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.
Titel: Re: Exit Formel???
Beitrag von: Axel am 18.08.05 - 11:19:23
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
Titel: Re: Exit Formel???
Beitrag von: robertpp am 18.08.05 - 11:24:02
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
Titel: Re: Exit Formel???
Beitrag von: robertpp am 18.08.05 - 14:09:30
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?