Hallo zusammen,
ich mache gerade eine Auftrags-Datenbank. Hierbei sollen auch Dateien an einen Auftrag gehängt werden, die nach der Freigabe des Auftrags für die Benutzer nicht mehr bearbeitbar sein sollen.
In meinem jugendlichen Leichtsinn habe ich mir dafür folgendes ausgedacht:
1. Auswahl der Dateien durch den Benutzer über ein RichTextLite-Feld
2. Beim Speichern des Dokuments werden dann die Dateien in ein RT-Feld kopiert, das wiederum in einem zugriffsgeschützten Abschnitt liegt.
3. Entfernen der Dateien aus dem RichTextLite-Feld.
Alles sieht eigentlich ganz gut aus. Zumindest so lange, bis ich die Dateien öffnen möchte. Dann bekomme ich nämlich die Fehlermeldung, dass das Element des Dokuments nicht gefunden wurde.
Nach der Suche hier im Forum wurde mir dann auch klar, dass ich nur die Verweise auf die Dateien kopiert habe und die eigentlichen Dateien mit dem Leeren des RT-Lite-Feldes gelöscht werden:
http://atnotes.de/index.php/topic,43712.0.htmlJetzt stecke ich fest und hoffe, dass mir hier im Forum sagen kann, wie ich das elegant lösen kann. Ein Abspeichern der Dateien im File-System möcht ich aber verhindern.
Hier mein Code:
Sub speichern
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitemA As Variant
Dim rtitemB As Variant
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
'Mit Setzen des folgenden Feldes mache ich den zugriffsgeschützten Abschnitt
bearbeitbar:
Call uidoc.FieldSetText("BearbAnhaenge","1")
Call uidoc.Save
If doc.HasItem("Anhang") Then
Set rtitemA = doc.GetFirstItem( "Anhang" )
Else
Set rtitemA =New NotesRichTextItem(doc, "Anhang")
End If
Set rtitemB = doc.GetFirstItem( "AnhangTransfer" )
Call rtitemA.AddNewLine(1)
Call rtitemA.appendRTItem(rtitemB)
Call doc.RemoveItem("rtitemB")
Call uidoc.FieldClear("AnhangTransfer")
Call doc.Save(False, True)
'Der Abschnitt wird wieder dicht gemacht:
Call uidoc.FieldSetText("BearbAnhaenge","0")
Call uidoc.Save
End Sub
Vielen Dank fürs Anschauen
Markus