Continue in Formeln

  • Hallo an alle!


    Ich habe da mal eine Frage zur Lotus-Formelsprache:
    In LS kann man Events abbrechen indem man Continue = False setzt. Ich gehe mal davon aus, daß es in der Formelsprache auch möglich ist, die Ausführung eines Ereignisses abzubrechen. Leider weiß ich aber nicht wie und meine Recherchen hierzu waren auch erfolglos.
    Wer kann mir helfen?


    Grüße
    George

    • Offizieller Beitrag

    da könnte Dir @Return weiterhelfen.


    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

  • Vielen Dank Dirk!
    Ich werd's mochmal versuchen, bisher hatte es nicht geklappt.
    Dachte, ich hätte @Return( @False ) schon ausprobiert gehabt, aber vielleicht hatte ich da einen Fehler gemacht. So meinst Du das doch, einfach:
    @Return( @True )
    oder
    @Return( @False )
    hab ich das richtig verstanden?


    Grüße
    George

    • Offizieller Beitrag

    falls Du nichts zurückgeben willst reicht ein @Return(""). @True und @False funktionieren auch.


    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

  • Also irgendwie klappt das nicht. Ich hab's nochmals ausprobiert.
    Beim Event: Querysafe teste ich in Formelsprache, ob ein Feld leer ist, und wenn, möchte ich gerne den Event, also in diesem Fall den Speichervorgang abbrechen.
    Das sieht folgendermaßen aus:


    @If( modul = "";
    @Return( @False );
    @Return( @True )
    )


    Wenn's funktionieren würde, gäbe es natürlich auch eine Prompt-Meldung für den Benutzer, die kommen auch korrekt, wenn man sie einfügt, nur das Speicher-Ereignis wird in jedem Fall fortgesetzt, unabhängig von meinem Return-Wert.


    Grüße
    George

  • Wenn das Dokument gespeichert werden soll, lass die Formel einfach durchlaufen. Ersetze also das @Return( @True ) einfach durch "". Das @Return sorgt in jedem Fall für einen Abbruch, egal, was Du zurücklieferst.


    oh, habs grade erst gesehn. man sollte erst ALLES lesen...

  • Im Qouerysave kannste mit der Formel auch nicht das Speichern verhindern.
    Das musste dann ueber LotusScript realisieren.

    Code
    If (source.document.modul(0) = "") Then
    		continue = False
    	End If


    so muesste das aussehen

  • Hallo!


    Vielen Dank für Deine Antwort. Dann brauche ich ja nicht weiter nach einer Lösung in Formelsprache suchen. Die LS-Version funktioniert prima.
    Wenn Du schreibst ich kann das bei Querysafe nicht in Formelsprache verhindern...
    Ist es bei manchen Events möglich, sie abzubrechen, und wenn ja, bei welchen? :-?


    Die Eingabeprüfungen mit @Failure und @Success kenne ich, die erzwingen aber eine Eingabereihenfolge, was ich den Benutzern nicht zumuten möchte.


    Grüße
    George

  • Moeglich ist das Unterbrechen grundsaetzlich in allen Events die mit Query...beginnen. Logisch irgendwo, denn im Post-event, also postsave macht es wenig Sinn das Speichern zu verhindern. Es ist aber immer bei den Parametern zusaetzlich angegeben z.B. im Querysave Sub Querysave(Source As Notesuidocument, Continue As Variant) ....der continue-parameter. Wenn der angegeben ist kannste ihn auch benutzen.
    Das @return der Formelsprache bricht keine Events ab sondern nur die Ausfuehrung nachfolgenden Codes.