Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: nieke am 29.08.02 - 14:09:51
-
Hi!
Seit mindestens zwei Tagen bastel ich da schon rum, ich bekomme einfach nicht raus, warum das immer wieder passiert.
Vielleicht wißt Ihr das ja...
Also, ich öffne ein Dokument aus einer Ansicht heraus.
Von da aus betätige ich einen Button. Der dann folgendes Skript ausführt:
Sub Click(Source As Button)
Dim uidoc1 As notesuidocument
Dim uidoc2 As notesuidocument
Dim docA As notesdocument
Dim docB As notesdocument
Dim unid As String
Dim session As New notessession
Dim db As notesdatabase
Dim ws1 As New NotesUIWorkspace
Set uidoc1=ws1.currentdocument
Set docA=uidoc1.document
unid=docA.UniversalID
Set uidoc=ws1.composedocument("","","Antwortmaske")
Call uidoc1.deletedocument ()
Set uidoc2=ws1.currentdocument
Call uidoc2.gotoField ("Datum")
'Set db=session.currentdatabase
'Set docB =db.getdocumentbyunid (unid)
'Call docB.remove (True)
Call ws1.viewrefresh
End Sub
Er erstellt auch das neue Antwortdokument, löscht das Mutterdokument. Das funktioniert alles soweit.
Doch dann passiert es: Das neu erstellt Antwortdokument sollte den Fokus erhalten. Es öffnet sich jedoch zusätzlich ein anderes Dokument aus der Ansicht. WARUM????
Ich sage ihm nirgendwo, daß er es tun soll. Wie kann ich das denn verhindern?
Vielleicht wißt Ihr da ja einen Trick oder den Punkt an dem ich ansetzen muß.
DANKE
-
Hallo nieke,
du hast zwar uidoc1 und uidoc2 deklariert, aber du nutzt am Ende ledglich "uidoc" siehe u.a. Zeile.
Set uidoc=ws1.composedocument("","","Antwortmaske")
Call uidoc1.deletedocument ()
Set uidoc2=ws1.currentdocument
Call uidoc2.gotoField ("Datum")
Ist bestimmt nur ein Schreibfehler bei so vielen gleichlautenden Variablen.
Grüße von
Zimmi
-
stimmt!
Aber leider ändert es nix daran, daß er mir dann ein anderes Dokument öffnet, was ich ja gar nicht will.
Er öffnet mir nach Ablauf des Scripts immer das in der Ansicht vor dem aktivierten Dokument stehende.
Warum bloß?
-
hm..bevor ich jetzt zu lange auf den Code starre:; machs doch so, daß Du über die Backendmethode ein Response erstellst ( Call notesDocument1.MakeResponse( notesDocument2 ) = doc1 wird response von doc2 ) und per
Dim ws As New notesuiworkspace, uidoc As notesuidocument
Set uidoc = ws.EditDocument( True , doc)
in den Fenster-Vordergrund holst, wobei "doc" das im Backend erstellte Doc referenziert.
Hm..sollte auch ohne Backend Erstellen gehen, indem Du die letzten beiden Codezeilen verwendest. Mußt halt nur das neu erstellte UiDoc dem Backend Doc "übergeben" = > "set doc = source.document"
-
... so, habe ich versucht. Klappt nicht. Es wird immer noch wie von Geisterhand ein weiteres Dokument geöffnet. Waran liegt das denn?
Ich sage ihm doch an keiner Stelle, daß er nach Erstellung und Löschung der Dokument irgendein anderes öffnen soll. Oder vielleicht doch?