Autor Thema: SetViewInfo + Zurücksetzen bzw. Deaktivieren + Outlines + Framesets  (Gelesen 4454 mal)

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Hallo Notes-Gemeinde,

ich arbeite jetzt schon seit März letzten Jahres mit Notes. Bisher habe ich zu jeder Fragestellung Hilfe in diesem Forum gefunden. Also DICKES Lob an die Autoren.

Jedenfalls möchte ich heute mal etwas zurückgeben. Viele kennen sicher das Problem mit @SetViewInfo. Einmal einen Filter gesetzt existiert der beim Wechsel der Ansichten weiter. (Siehe auch: http://atnotes.de/index.php?topic=30269.0)

Eknori hat auf seiner Seite http://www.eknori.de/archives/370#comments eine mögliche Lösung vorgestellt. Allerdings nur innerhalb einer Ansicht, nicht für Frames mit Outlines. Von IBM gibt es hierzu auch eine Technote.

Hier die Lösung um einen Filter, der mit SetViewInfo erzeugt wurde, beim Wechsel in einer andere Ansicht über einen Gliederungseintrag und Framesets rückgängig zu machen bzw. zu deaktivieren:

  • Erstelle eine (Dummy-) Ansicht, ohne Spalten, Aktionen, usw
  • Kopiere in das PostOpen-Event der Ansicht den folgendne Befehl: @Command([CloseWindow]);
  • Erstelle einen Gliederungseintrag
  • Wähle Eigenschaften: Gliederungseintrag --> Gliederungseintrag Info --> Inhalt --> Typ = Aktion --> Formel-Button (@)
  • Füge folgenden Code ein:

    @Command([ViewChange]; "DUMMYVIEW");
    @SetTargetFrame("FRAME");
    @Command([OpenView]; "VIEWTOOPEN");
    @SetViewInfo([SetViewFilter]; @Nothing; @Nothing; 1)

    DUMMYVIEW = der Name der Ansicht aus dem ersten Punkt
    FRAME = der Name des Frames in dem die Ansicht geöffnet werden soll
    VIEWTOOPEN = die nicht gefilterte Ansicht, die geöffnet werden soll


Ich hoffe das hilft jemanden weiter.
« Letzte Änderung: 25.01.07 - 13:35:48 von eknori »
Gruß

Fabian

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Ich habe das noch ein wenig anders gelöst.
Den Code zum Zurücksetzen in jeden Gliederungseintrag zu schreiben, erzeugt ja eine Menge OverHead.

Daher verwende icf folgenden Code im QueryClose der Ansichten, die mit @SetVieInfo arbeiten

REM { see http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/ab2b6c4ddf0c6480852571110059523a?OpenDocument };

@SetTargetFrame("NotesView");
@UpdateFormulaContext;
@Command([OpenView]; @Subset(@ViewTitle; -1));
@SetViewInfo([SetViewFilter]; ""; ""; 1)

Das funktioniert auch in Frames etc ...

Trotzdem. Danke für den Tipp. Viele Wege führen ja bekanntlich nach Rom .
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Hallo Eknori, erstmal vielen Dank für deine Antwort. Mit dem OverHead hast du natürlich Recht. Das spart ne Menge Schreibarbeit. Aber wie würdest du das Ganze lösen, wenn du das QueryClose-Event der Ansichten, die mit @SetViewInfo arbeitet, für bestimmte Routinen in LotusScript benötigst?

Oje, habe eben festgestellt, dass ich einen Fehler bei der obigen Lösung hatte...  :-[

Sie hat zwar funktioniert, aber ich hatte im PostOpen der zu öffnenden Ansicht (ohne Filterung) einen @SetViewInfo-Befehl stehen - wahrscheinlich beim Erstellen mit kopiert. Typisch, einen Fehler behoben, der erst durch (m)einen Fehler aufgetreten ist  :-:. Trotzdem, falls irgendwann mal jemand einen Ansicht hat, welche im PostOpen einen @SetViewInfo-Befehl hat, aber diese über einen Gliederungseintrag ohne Filterung öffnen will, kann das so wie im 1. Beitrag beschrieben, umsetzen.

Normalerweise lässt man den @SetViewInfo im PostOpen einfach weg. Die Filterung kann durch den folgenden Code im Gliederungseintrag zurückgesetzt werden:

@SetTargetFrame("FRAME");
@Command([OpenView]; "VIEWTOPEN");
@SetViewInfo([SetViewFilter];@Nothing;@Nothing;1);

Das macht natürlich eine Menge Schreibarbeit, da dies in jedem Gliederungseintrag erfolgen müsste und ist meiner Meinung nach nur sinnvoll, wenn man das QueryClose unbedingt für LotusScript benötigt.
Gruß

Fabian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz