Querysave und Postsave in V8

  • Hallo Forum,


    nach der Umstellung von Server und Client auf V8 habe ich ein seltsames Phänomen. Es funktioniert nämlich eine Maske nicht korrekt, da weder querysave noch postsave durchlaufen werden. Die maske wird mit uidoc.save gespeichert, dann mit uidoc.close(true) geschlossen, dann die darunter liegende view mit view.refresh aktualisiert.


    Selbst messagebox "hallo" geht im query-oder postsave nicht.


    Woran kann das liegen? Auf einer V7 Station läuft alles wunderbar!


    Gruss, Bernd

    • Offizieller Beitrag

    hast Du die Maske mit verschiedenen Designer-Versionen angefasst?


    Mach mal ein vollständiges neu kompilieren der Scripte, kommen da Fehler?


    Verwendest Du ein Var, Sub, Function usw., die es jetzt als Eigenschaft/Methode gibt?


    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

  • Die Maske hatte ich schon mit V8 gespeichert/kompiliert. Das hatte ich als erstes versucht, da mir die Vorgehensweise aus frühreren Versionen bekannt ist.


    Jetzt habe ich nochmal das gesamte Script aus dem Postsave entfernt und durch messagebox "hallo" ersetzt. Auch die wird nichtz angezeigt. Nach erneutem einsetzen des scripts und kompilieren immer noch nichts. Updall -R habe ich auch schon ausprobiert.


    Das script ist im Grunde auch nichts weltbewegendes. Es werden ein paar Datnbanken, view und docs gesettet, eine For-Schleife von lbound(liste) bis ubound(liste), dann bekommt das gespeicherte doc noch ein lösch-flag (denn es eist nur für diese aktion temporär wichtig) und fertig.


    Was kann man nioch probieren? Das neue ods? aber dann kann die db wegen der Komprimierung wahrscheinlich nicht mit V7 Clients geöffnet werden.

    • Offizieller Beitrag

    im Designer gibt es unter dem Menü Werkzeuge den Punkt "Lotusscript vollständig neu kompilieren" (ist hoffentlich in 8 auch noch so) und diesen sollst Du benutzen.


    Ansonsten erstelle eine neue Maske zum Testen und schreibe dort einen Print oder Msgbox in die entsprechenden Events rein. Kommen diese?


    Gruß
    Dirk

  • Gallo Dirk,


    jetzt habe ich ein wenig gestest und folgendes herausgefunden.


    Den kompilierbutton gibt es noch (kannte ich noch gar nicht :-)), bringt aber in diesem Fall nichts


    Dann habe ich eine neue Maske erstellt und die einfach mal mit der messagebox im postsave gespeichert. Das funktioniert einwandfrei!


    Es funktioniert aber nicht mehr, wenn ich die Maske über die Script-Funktion workspace.dialogbox öffne! Dann werden die events nicht durchlaufen.


    Ich werde mir das ganze in der Hilfe mal anschauen.


    Gruss, Bernd

    • Offizieller Beitrag

    wäre mir auch unlogisch, dass bei Dialogbox QuerySave und PostSave durchlaufen wird, weil die wird doch nicht gespeichert, sondern nur das Handel an das aufrufende Script wieder zurückgegeben und das Dokument ist noch im Speicher und wird nicht gespeichert.


    Gruß
    Dirk


    %edit
    will damit sagen, dass ich nicht erwartet hätte (auch in älteren Notes-Versionen), dass dies funktioniert.

  • Hmmm. also in V7 funktioniert das einwandfrei, wenn ich eine Dialogbox wie folgt aufrufe:


    Code
    Call ws.dialogbox("frmForm", True, True,True,False,False, False, "Bitte wählen", docNew, True, True)


    Ich bastele mir das neue doc zusammen und übergebe es an die Dialogbox, die es mit einer ausgewählten Form öffnet. Und von dort aus gehts dann halt übert die events weiter...


    Oder ist das falsch?

    • Offizieller Beitrag

    naja die Feldeinhalte werden an Dein Backend-Dokument, dass Du im Script vor dem Dialogbox-Aufruf erstellt hast, übergeben. Das Script pausiert solange, bis die Dialogbox geschlossen wird und läuft dann mit der nächsten Zeile weiter. D.h. nach dem Call ws.Dialogbox(...) müsste dann das Query- und PostSave durchgeführt 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

  • Also ich habe jetzt folgendes gemacht. Alles was im Postsave stand habe ich dort entfernt und damit eine Sub in den Global der Maske erstellt (das uidoc habe ich gleich mit übergeben, damit im am script nichts ändern brauche). Dann habe ich diese Sub aufgerufen, nachdem ich das doc gespeichert habe. Funktioniert jetzt 100%ig.


    Naja, wenn ich Zeit habe, werde ich mir das saven jetzt ganz sparen.


    Aber ich bleibe dabei: Das hat in V7 auch in den save-events gelaufen.