Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: RvM am 06.08.03 - 11:47:19
-
Ich möchte gerne im Client per Script nach doc.close in eine andere Ansicht wechseln.
Geht das??
-
... eine Ansicht geht mit Script so weit ich weiß nicht - aber ein Frameset kann man per Scriipt öffnen => NotesUIWorkspace.OpenFrameset...
ata
-
Es geht mit
Call notesUIDatabase.OpenView( viewName$ [, key$] [, newinstance] )
Andreas
-
... oh ::) 8) ::)
ata
-
Mein Script (Auzug) sieht so aus
Dim v As NotesUIDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
Dim thisDoc As NotesUIDocument
Set db = s.CurrentDatabase
Set thisDoc = ws.CurrentDocument
Set oldDoc = ws.CurrentDocument.Document
Set newDoc = OldDoc.CopyToDatabase(db)
...
Call thisdoc.Close
Call v.OpenView("Kopien")
Ich bekomme immer "Object variable not set"
-
... die db muß aus dem Frontend abgeleitet werden - du verwendest Backend
ata
-
Dim ws as NotesUIWorkspace
Dim v As NotesUIDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
Dim thisDoc As NotesUIDocument
Set ws = New NotesUIWorkspace
Set v = ws.CurrentDatabase
Set db = s.CurrentDatabase
Set thisDoc = ws.CurrentDocument
Set oldDoc = ws.CurrentDocument.Document
Set newDoc = OldDoc.CopyToDatabase(db)
...
Call thisdoc.Close
Call v.OpenView("Kopien")
Das sollte gehen.
Andreas
-
das war's!!
Da siehr man halt, wo ich noch Schwächen habe. ;)
-
:(
Die genannte Lösung ist zwar okay - aber es wird diese Ansicht in einem neuen Fenster geöffnet - nichr die schönste Lösung.
-
Hi,
hast Du den parameter "New instance" beachtet? versuch mal
Call v.OpenView("Kopien","",False)
Andreas
-
Danke, aber ändert nix :-\
-
Hi,
was meinst mit neuem Fenster?
Wenn ich
Call v.OpenView("Kopien","",False)
verwende, öffnet er mit die View nicht ein 2. Mal.
Evtl. meinst Du aber was anderes?
Andreas
-
Der Notesclient öffnet die DB nocmals in einem neuen Fenster mit der Ansicht "kopien". ich habe oben im Reiter der Arbeitsfläche die DB 2mal.
-
Ok,
jetzt weiß ich was Du meinst. Leider gibt es in Script keine Methode, eine Ansicht zu schließen (warum eigentlich nicht ?).
Es geht aber mit der Formelsprache :-)
Einfach folgende Formel in das QueryClose der Maske schreiben:
_ViewOld := @If(@Elements(@ViewTitle) > 1;@Subset(@ViewTitle;-1);@ViewTitle);
@If(
_ViewOld != "";
@Do(
@PostedCommand([OpenView];_ViewOld);
@PostedCommand([FileCloseWindow]);
@PostedCommand([OpenView];"Kopien")
);
@Command([OpenView];"Kopien")
)
Ggf. musst Du das ganze noch durch ein Flag-Feld steuern, wenn das nicht jedesmal beim Schließen gemacht werden soll.
In dem Script dann das
Call v.OpenView("Kopien")
rausnehmen.
Andreas
-
THX, ich werd's testen.
Ja, ich weiß warum ich so oft wie möglich Formeln einsetze ;)