2016-04-27 10 views
0

Ich habe ein Problem, das ich nicht ganz verstehe und mit dem ich schon eine ganze Weile herumstrampele.Lotus Notes: Erstellen eines neuen Dokuments mit vorgefüllten Feldern, das im Bearbeitungsmodus geöffnet wird, ohne zu speichern

Von einem vorhandenen Dokument möchte ich ein neues Dokument erstellen (gleiche DB andere Form). Ich benutze einen Knopf in diesem Formular.

Sub Click(Source As Button) 
    Dim ws As New NotesUIWorkspace 
    Dim thisProject As New kitcProject() '// this only wraps the current document 
    Set NREDOC = thisProject.newNREdocument() '// this returns a NotesDocument, that has not been saved yet 
    Call ws.EditDocument(False, NREDOC, False, "", True, False) 
End Sub 

Dies funktioniert nicht, es ist nicht das Dokument nicht öffnen, wenn ich den EditDocument Anruf zuerst speichern

Call NREDOC.Save(true, false) 

Ich habe eine ähnliche Tastenfunktion, die mit einem Dokument aus einer anderen Datenbank funktioniert gut, bevor Sie , das ist auch im ungespeicherten Zustand, wenn Sie es mit dem EditDocument-Aufruf öffnen.

Dies ist die Funktion, die die NREDOC

%REM 
Function newNREdocument 
Description: Returns a new NotesDocument prefilled of type NRE 
%END REM 
Public Function newNREdocument() As NotesDocument 
    Set me.nreDoc = db.Createdocument() 
    With me.nreDoc 
     .Form = "NRE" 
     .nreProjectID = me.uidocument.FieldGetText("prProjectID") 
     .nreProjectName = me.uidocument.FieldGetText("prProjectName") 
    End with 
    Set newNREdocument = me.nreDoc 
End Function 

Überprüfung der NREDOC im Debug-Modus mir zurückkehrt sagt, dass es nichts falsch mit dem Dokument ist, wird ParentDatabase richtig eingestellt, werden alle vorgefüllter Werte eingestellt sind, aber es wird nicht geöffnet. Was mache ich falsch?

Gibt es ein Flag, das in den Formulareigenschaften gesetzt werden kann? Ich habe keine weiteren Ideen

Vielen Dank für Ihre Hilfe im Voraus.

+0

Ich habe keine Ahnung, wenn dies Ihr Problem ist, aber ich merke, dass Sie den returnNotesUIDocument-Parameter auf True setzen, aber Sie verwenden eine Call-Anweisung anstelle einer Set-Anweisung und EditDocument aufrufen als eine Funktion. Das scheint eine schlechte Sache zu sein. –

+0

Ich habe getestet mit dem Parametersatz auf falsch und wahr, macht keinen Unterschied –

Antwort

1

Ich fand die Lösung. Der Schlüssel hier ist die newInstance Flagge am Ende

Call ws.EditDocument(True, NREDOC, False, "", False, True) 

Einstellung der Flagge zu True mein Problem gelöst. Leider war das die letzte Flagge, mit der ich herumspielte.

0

Sie können das neue Dokument auch in einer DialogBox anzeigen lassen, so dass alles auf demselben Bildschirm bleibt und der Zugriff auf das erste Dokument blockiert ist. Das einzige, was anders wäre, wäre, das neue Dokument zu speichern. Ziemlich interessant eigentlich ...

+0

Gute Idee, aber in diesem Fall muss ich das neue Dokument als normales Dokument öffnen. –