Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: mariab am 02.02.07 - 11:51:12

Titel: Problem bim ersetzen
Beitrag von: mariab am 02.02.07 - 11:51:12
Hallo,

in einer Maske habe ich eine Schaltfläche zum ersetzen des Dokuments.

Code
Sub Click(Source As Button)
	Dim session As New NotesSession
	Dim workspace As New NotesUIWorkspace
	Dim db As NotesDatabase
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument, docNeu As NotesDocument
	Set uidoc = workspace.CurrentDocument
	Set doc = uidoc.Document
	Set db = session.CurrentDatabase
	Set docNeu = New NotesDocument(db)
	
	If Messagebox ("Soll das gewählte Dokument ersetzt werden? ", 36,"Dokument archivieren" ) = 7 Then
		Exit Sub
	End If

	'Felder werden geändert, wie z.B. Status auf archiviert gesetzt und das Archivierungsdatum gesetzt
	doc.Status = "archiviert"
	doc.ArchDat = Now
	doc.Rolle = ""
	
	Call doc.CopyAllItems(docNeu)
	Call doc.Save(True, False)
	
	
	'Felder des neuen Dokuments auf leer setzen
	
	docNeu.Datum = ""
	docNeu.Status = "aktuell"
	docNeu.ArchDat = ""
	docNeu.Rolle = "[Bearbeiten]"

	'Neu erstelltes Document wird geöffnet
	Call workspace.EditDocument( True, docNeu)
	Call workspace.ViewRefresh
	
End Sub

Das Script hat einen kleinen Hacken:
Wenn der Benutzer die Esc Taste benützt, ohne dass er zuvor in das neue Dokument geklickt hat, dann wird das neue Dokument nicht abgespeichert und in der Ansicht gibt es somit auch kein Dokument mehr, welches aktuell ist. Wenn ich versuche ein    Call docNeu.Save(True, False) an das Ände des Script zu hängen und der Benutzer macht Änderungen und will diese Speichern, so erhalte ich die Fehlermeldung, dass die Datenbank bereits ein Dokument mit dieser ID enthält.
Wie schaffe ich es, dass es immer ein aktuelles Dokument gibt?

Titel: Re: Problem bim ersetzen
Beitrag von: Glombi am 02.02.07 - 13:32:51
Das Save muss hinter dem
docNeu.Rolle = "[Bearbeiten]"
erfolgen, d.h. bevor das im UI geöffnet wird.
Titel: Re: Problem bim ersetzen
Beitrag von: koehlerbv am 02.02.07 - 13:44:24
Abgesehen davon feld noch docNeu.Form = "....."

Bernhard
Titel: Re: Problem bim ersetzen
Beitrag von: Glombi am 02.02.07 - 14:00:29
wobei das durch CopyAllItems bereits da sein dürfte...
Titel: Re: Problem bim ersetzen
Beitrag von: koehlerbv am 02.02.07 - 14:07:24
Ja, das habe ich nicht beachtet  ::)

Bernhard
Titel: Re: Problem bim ersetzen
Beitrag von: Glombi am 02.02.07 - 14:09:30
warten wir mal die Antwort ab...  ;)

Grüße nach unten links!
Titel: Re: Problem bim ersetzen
Beitrag von: mariab am 02.02.07 - 15:13:17
super  :), Glombi hatte Recht, wenn ich das Save hinter dem docNeu.Rolle = "[Bearbeiten]" einfüge, klappts wunderbar. Das docNeu.Form wird hier nicht benötigt, da es, wie Glombi bereits vermutet  durch das CopyAllItems bereits da ist.

Danke für Eure Hilfe