Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Basti* am 03.07.13 - 14:04:23
-
Hallo zusammen,
ich möchte eine View/Folder per Button öffnen. Die View soll nicht in einem neuen Fenster (Reiter) geöffnet werden, sondern im gerade aktuellen. Kleine Hürden dabei: a) ich habe hier ein Frameset und b) der Name der zu öffnenden View (Folder) wird in dem Button erst berechnet.
Ich gehe derzeit über
Dim ws As New NotesUIWorkspace
Dim uidb As NotesUIDatabase
Set uidb = ws.CurrentDatabase
Call uidb.OpenView(viewname,"",False)
ws.ViewRefresh
Dabei wird die Ansicht immer im neuen Fenster (Reiter) geöffnet. Ist das die einzige Möglichkeit, per Script eine View/Folder zu öffnen?
Hat da einer eine Idee?
Grüße
Basti
-
Hallo,
Prinzipiell wuerde ich mal folgendes nachsehen.
1. Ist in dem Frame, in dem sich der Button befindet ein 'Zielframe' gesetzt.
2. Verwendest Du fuer Deine Frames die Standardnamen von Notes?
Andreas
-
Hi Andreas,
zu 1. ja, ich hab als Zielframe den eigenen Framenamen gesetzt.
zu 2. oh, was für Standardnamen? Mein einer Frame heißt "Menu" und der andere "Content". Gibt das Kollisionen?
Grüße
Basti
-
Unter Umstaenden Ja.
Der Standardname fuer den Frame, in dem die View/der Ordner angezeigt werden soll heisst: NotesView
Ist noch eine Dokumentenvorschau dabei, heisst der Standardname fuer diesen: NotesPreview.
Aber noch ein Frage.
Wie berechnest Du denn den Namen der zu oeffnenden Ansicht?
Andreas
-
OK, dann werd ich an dieser Stelle noch mal probieren, mit den FrameNamen was zu drehen. Vielleicht hilfts ja?!
Der Namen der View (bzw. in dem Fall ist es eigentlich ein Folder) setzt sich zusammen aus dem Usernamen und einem Zusatz. Das ganze heißt dann zb. "Marcus Müller/Suche".
Basti
-
ws.SetTargetFrame( "Content" ) vor dem uidb.OpenView sollte reichen...
-
Oder man arbeitet mit @-Formeln.
Andreas
-
@Formel ist gerade etwas blöd, da ich auf verschiedene Script-Functions zurückgreifen muss. Aber ws.SetTargetFrame sieht sehr gut aus :)
Das Merkwürdige: wenn ich (schwachsinniger Weise)
ws.SetTargetFrame("Menu")
aufrufe, gehts super. Bei dem eigentlichen
ws.SetTargetFrame( "Content" )
gibt es die Meldung: "unable to change views in this context."
Was will mir der Autor damit sagen?? Ok, geht nicht. Ist klar. Aber warum und wieso und überhaupt??
Basti
-
Nachtrag:
Der Aufruf von ws.SetTargetFrame(<target>) scheint immer nur für andere (!) Frames zu gelten. In sich selbst eine View zu öffnen, mißlingt mit obiger Fehlermeldung.
Basti
-
Hallo,
Habe ich das jetzt richtig verstanden.
Der Button, mit dem die Ansicht geoeffnet werden soll, befindet sich breits in dem Frame, in dem auch die
entsprechenden Ansicht geoeffnet werden soll?
Andreas
-
Hi Andreas,
ja, das hast Du richtig verstanden :)
Basti
-
Sowas hatte ich früher mal realisieren wollen, aber mir ist dann immer Notes abgeschmiert (@Formeln).
Was ich mal versuchen würde, wäre in dem Frame die View per Formel einzubinden, die ihren Wert via getField von einem Settings-Dokument bekommt. Den Inhalt setzt Du um und machts einen Refresh
des Framesets.
Ich glaube, dass es bei mir damals so gefunzt hat.