Hat schon mal jemand probiert eine Ansicht von vorne herein gefiltert zu öffnen, wenn diese Ansicht die Default Ansicht in einem Frame ist?
Wenn ja, hat das schon mal jemand hingekriegt, das es funktioniert?
Ich krieg das nämlich nicht hin.
folgendes Szenario:
Ich hab eine Aktion in der ich ein neues Frameset aufrufe. In diesem Frameset ist ein Default View definiert der nur die dem Benutzer zugeordneten Dokumente anzeigen soll. Nein, nicht mit Leser und Autorenfeldern. Ganz bewusst nicht weil die Steuerung der DB es nämlich zulässt das Dingenskirchens auch komplett offen zu betreiben. Dann wäre es ja einfach.
Linkes Frame ist die Navigation, rechtes die entsprechenden Ansichten.
Hinter den Navi Links versteckt sich jeweils ein:
@SetTargetFrame("NotesView");
@Command([OpenView];"MineOpenByDate");
@SetViewInfo([SetViewFilter];@Name([CN];@UserName);"Username";1)
Das funktioniert auch richtig. Klickt der Anwender auf den Link wird die Ansicht richtig aufgemacht und gleich gefiltert.
Geh ich jetzt aber von einem anderen Frame mit :
_defaultNewFrame := @UpperCase(@DbLookup( "" : "NoCache" ; "":"" ; "($LUConfig)" ; "AlwaysOpenNewNavigationFrame" ; 2 ));
@If(_defaultnewFrame!="YES";@Do(@SetTargetFrame("_top");@Command([OpenFrameset]; "FS-MYTICKETS"));@Do(@Command([OpenFrameset]; "FS-MYTICKETS")))
auf diesen Frame in dem die gefilterten Ansichten angezeigt werden sollen, dann wird die im Frame definierte Ansicht mit allen Dokumenten aufgemacht. Ist ja auch irgendwie logisch weil er hier ja schließlich noch nicht weis das er filtern soll.
OK Anpassen und so schreiben:
@If(_defaultnewFrame!="YES";@Do(@SetTargetFrame("_top");@Command([OpenFrameset]; "FS-MYTICKETS");@SetViewInfo([SetViewFilter];@Name([CN];@UserName);"Username";1));@Do(@Command([OpenFrameset]; "FS-MYTICKETS");@SetViewInfo([SetViewFilter];@Name([CN];@UserName);"Username";1)))
Meckert er zwar nicht an aber tun tut er auch nix.
Nachgedacht und rausgefunden das dieses Verhalten ja irgendwie logisch sein muss denn zu diesem Zeitpunkt hat er ja den View den er da filtern soll noch nicht. (achja, anders herum geschrieben also erst @setview.... und dann @Command bringt das gleiche Ergebnis).
Gut also da wieder rausgenommen den Code und dann schaun wir mal was in der View denn so geht. Schließlich will ich ja das der Filter IMMER greift.
Also erst einmal im SELECT Statement. Ergebnis. Geht nicht. Bringt einen Fehler "Funktion ist in diesem Kontext nicht erlaubt". Hmm war ja nur ein Versuch und ist irgendwie logisch.
Probieren wir halt das Queryopen. Da gibt es den gleichen Effekt und im Postopen Event auch.
Gesamtergebnis: Das scheint nicht zu funktionieren. Man kann eine Ansicht nicht per "Default" mit @SetViewFilter behandeln man muss über eine Action gehen.
Resümee:
Sollte das wirklich wahr sein und nicht einer von euch noch mit irgendeiner grandiosen Idee aufwarten, dann bekommt IBM von mir die Goldene Zitrone mit Stern und Diamanten, für die dämlichste (undurchdachteste) Implementation eines Features in einer Programmierumgebung, die ich jemals gesehen habe. Denkt denn da drüben keiner auch nur annähernd mal nach???