Autor Thema: Beim Aufruf einer Ansicht aus der Bookmark einen Filter setzen  (Gelesen 2520 mal)

Glombi

  • Gast
Hallo,
ich brauche mal einen Denkanstoß für folgende Ausgangslage:

Per Gliederungseintrag kann eine Kalenderansicht (die in einem Frameset angezeigt wird) in einer Datenbank geöffnet werden. In dieser Ansicht ist es möglich, nur bestimmte Einträge per Filter anzuzeigen.
Da die Anwender bekanntlich bequem sind und nicht nach jedem Öffnen der Ansicht ihren "Lieblingsfilter" setzen möchten, habe ich in der Seite mit der Ansicht einen Button gemacht, mit dem man den letzten Filter in die NOTES.INI schrieben und diesen als "permament" deklarieren kann.

Folgende Formel wird nun beim Klick auf den Gliederungspunkt ausgeführt.

@If(
@Environment("EnvFilterMerker") = "" | @Environment("EnvFilterMerker") = "0";
@SetEnvironment("EnvFilter";"(kein Filter)");
""
);
@Command([OpenFrameset];"WartungskalenderFS");

@If(
@Environment("EnvFilterMerker") = "" | @Environment("EnvFilterMerker") = "0";
@Return("");
""
);

_Key := @Environment("EnvFilterKey");
_ColumnAlias := @Environment("EnvFilterColumnAlias");
_Exakt := @If(@Environment("EnvFilterExakt") = "1";1;0);
@SetViewInfo([SetViewFilter];_Key;_ColumnAlias; FALSE;_Exakt);
@SetTargetFrame("Filter");
@Command([OpenPage];"FilterPage")



Alles schön und gut. Weil aber die Anwender bequem sind, haben sich einige nun einen Ansichtslink in die Bookmark-Leiste gesetzt. Damit wird dann zwar die Kalenderansicht geöffnet, aber der Filter natürlich nicht ausgeführt.

Habt Ihr eine Idee, wie das gehen kann?

Im Postopen der Kalenderansicht ist schon Scriptcode hinterlegt, das vorab.

Danke für alle sachdienlichen Hinweise!

Andreas
« Letzte Änderung: 28.01.08 - 11:40:41 von Glombi »

Glombi

  • Gast
Eine Idee, die mir gerade durch den Kopf ging:
Ich stelle den Anwendern eine Seite "Bookmark-Link" zur Verfügung, die die dann in die Bookmarkleiste ziehen können. Diese müsste dann im Postopen den Code der Gliederung ausführen.

Könnte klappen...

Andreas

Glombi

  • Gast
Mit der Seite funktioniert es.
In der Gliederung des Kalenders habe ich einen Eintrag, mit der ein Bookmarklink erzeugt werden kann:
_Server := @Name([CN];@Subset(@DbName;1));
_Path := @Subset(@DbName;-1);
_URL := "notes:\\\\" + _Server  + "\\" + _Path + "\\BookmarkLink?OpenPage";
_Title := "Wartungskalender";
@Command([AddBookmark];_URL;_Title )


In der Seite "BookmarkLink" ist nun im Postopen folgendes:

@If(
@Environment("EnvFilterMerker") = "" | @Environment("EnvFilterMerker") = "0";
@SetEnvironment("EnvFilter";"(kein Filter)");
""
);
@Command([OpenFrameset];"WartungskalenderFS");

@If(
@Environment("EnvFilterMerker") = "" | @Environment("EnvFilterMerker") = "0";
@Return("");
""
);
_Key := @Environment("EnvFilterKey");
_ColumnAlias := @Environment("EnvFilterColumnAlias");
_Exakt := @If(@Environment("EnvFilterExakt") = "1";1;0);
@SetViewInfo([SetViewFilter];_Key;_ColumnAlias; FALSE;_Exakt);
@SetTargetFrame("Filter");
@Command([OpenPage];"FilterPage")


Eine Unschönheit gibt es noch: Es wird immer ein neues Fenster aufgemacht, die Seite bleibt als Fenster erhalten.

Ich habe schon
@SetTargetFrame("_self");
am Anfang der Formel ausprobiert, es nützt aber nichts.

Irgendwelche Ideen?

Andreas

Glombi

  • Gast
Ende des Monologs  ;D

Falls es jemanden interessiert oder wenn Ihr mal ein ähnliches Problem habt. Hier meine Lösung:

Den Bookmarklink setze ich nun mit

_Server := @Name([CN];@Subset(@DbName;1));
_Path := @Subset(@DbName;-1);
_URL := "notes:\\\\" + _Server  + "\\" + _Path + "\\LaunchFromBookmark?OpenForm";
_Title := "Wartungskalender";
@Command([AddBookmark];_URL;_Title )

D.h. es wird eine Maske aufgerufen (neues Dokument erstellt). Das setzt voraus, dass die Anwender das dürfen - ok mit Verfügbar für Public Access lässt es sich auch für Leser einrichten.
In der Maske ist dann im Postopen der Code aus dem letzten Post.

Damit das Dokument geschlossen wird, habe ich in der Maske noch eine Teilmaske eingefügt. Die Teilmaske hat im Postopen folgenden Code:
Call Source.Close


Das funktioniert nun wie gewünscht  :)

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz