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