In welchem Ordner befindet sich ein Dokument? - Teil 2/3
2004-01-27 12:00 abgelegt in: Entwicklung
Inhaltsübersicht
--- Teil 1/3 ---
1. Einleitung
2. Warum das ganze - Beispiele zum Einsatz
3. Erstkonfiguration
3.1 Ansichten $FolderInfo und $FolderRefInfo
3.2 FolderReferences aktivieren
4. Nachträgliches Setzen der Folder References
--- Teil 2/3 ---
5. Praktisches Arbeiten mit den Folder References
5.1 Ordner des aktuellen Dokumentes anzeigen
5.2 Ansicht "Dokument" | "Folder"
5.2.1 Beispiel für einen Agenten oder eine Aktionsschaltfläche
5.2.2 Postsave Script für neue Dokumente
5.2.3 View erstellen
5.2.4 Refresh-Button für die View
--- Teil 3/3 ---
5.3 Wiederherstellung der Dokumente
5.4 Weitere hilfreiche Scripts
5.4.1 Alle Ordner einer Datenbank löschen
6. Umsetzung der Beispiel-Scripts
7. Festgestellte Probleme
5. Praktisches Arbeiten mit den Folder References
5.1 Ordner des aktuellen Dokumentes anzeigen
Hier ein Beispiel-Script für eine Aktionsschaltfläche in einer Ansicht oder einem Ordner. Damit wird in einer Messagebox angezeigt, in welchen Ordnern sich das ausgewählte Dokument befindet:
5.2 Ansicht "Dokument" | "Folder"
In einer Ansicht die FolderReferences darzustellen ist leider nicht ohne Vorarbeit möglich, da @DBLookups etc. in Ansichten nicht erlaubt sind.
Daher müssen im Vorfeld in den jew. Dokumenten in ein separates Feld (im Beispiel unten wurde das Feld "FolderName" gewählt) die Foldernamen geschrieben werden.
5.2.1 Beispiel für einen Agenten oder eine Aktionsschaltfläche
5.2.2 Postsave Script für neue Dokumente
5.2.3 View erstellen
Eine neue View erstellen mit 2 Spalten:
1. Spalte
z.B. Subject, aufsteigend sortiert
2. Spalte
FOLDERNAME (multi-value-separator: New line),
View-Eigenschaften: Lines per row: "9"
5.2.4 Refresh-Button für die View
ACHTUNG: Dieser Refresh-Button ist keine Traum-Lösung, da alle Dokumente aktualisiert werden, was durchaus einige Minuten dauern kann!
Lesen Sie weiter im Teil 3 dieses Tipps.
Vielen Dank für diesen Tipp an:
Matthias (TMC)
eMail: atnotes@gmx.de
Notes/Domino Version: 5.x, 6.x
--- Teil 1/3 ---
1. Einleitung
2. Warum das ganze - Beispiele zum Einsatz
3. Erstkonfiguration
3.1 Ansichten $FolderInfo und $FolderRefInfo
3.2 FolderReferences aktivieren
4. Nachträgliches Setzen der Folder References
--- Teil 2/3 ---
5. Praktisches Arbeiten mit den Folder References
5.1 Ordner des aktuellen Dokumentes anzeigen
5.2 Ansicht "Dokument" | "Folder"
5.2.1 Beispiel für einen Agenten oder eine Aktionsschaltfläche
5.2.2 Postsave Script für neue Dokumente
5.2.3 View erstellen
5.2.4 Refresh-Button für die View
--- Teil 3/3 ---
5.3 Wiederherstellung der Dokumente
5.4 Weitere hilfreiche Scripts
5.4.1 Alle Ordner einer Datenbank löschen
6. Umsetzung der Beispiel-Scripts
7. Festgestellte Probleme
5. Praktisches Arbeiten mit den Folder References
5.1 Ordner des aktuellen Dokumentes anzeigen
Hier ein Beispiel-Script für eine Aktionsschaltfläche in einer Ansicht oder einem Ordner. Damit wird in einer Messagebox angezeigt, in welchen Ordnern sich das ausgewählte Dokument befindet:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim szReference As String
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument
Forall r In doc.FolderReferences
If r = "" Then Goto Empty
szReference = r & Chr(10) & szReference
End Forall
While Not (doc Is Nothing)
Msgbox "Folder References: " & Chr(10) & Chr(10) & szReference, 64, db.title
Set doc = collection.GetNextDocument(doc) 'Nächstes Dokument
Wend
Exit Sub
Empty:
Msgbox "No References in this document....", 64, db.title
End Sub
5.2 Ansicht "Dokument" | "Folder"
In einer Ansicht die FolderReferences darzustellen ist leider nicht ohne Vorarbeit möglich, da @DBLookups etc. in Ansichten nicht erlaubt sind.
Daher müssen im Vorfeld in den jew. Dokumenten in ein separates Feld (im Beispiel unten wurde das Feld "FolderName" gewählt) die Foldernamen geschrieben werden.
5.2.1 Beispiel für einen Agenten oder eine Aktionsschaltfläche
Dim session As New notessession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set dc = db.allDocuments
Set doc = dc.GetFirstDocument
Do While Not doc Is Nothing
If Not doc.FolderReferences(0) = "" Then
doc.FolderName = doc.FolderReferences
Call doc.save (False,False)
End If
Set doc = dc.GetNextDocument(doc)
Loop
5.2.2 Postsave Script für neue Dokumente
Dim session As New notessession
Dim db As NotesDatabase
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim newuidoc As NotesUIDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
If Not doc.FolderReferences(0) = "" Then
doc.FolderName = doc.FolderReferences
Call doc.save (False,False)
End if
5.2.3 View erstellen
Eine neue View erstellen mit 2 Spalten:
1. Spalte
z.B. Subject, aufsteigend sortiert
2. Spalte
FOLDERNAME (multi-value-separator: New line),
View-Eigenschaften: Lines per row: "9"
5.2.4 Refresh-Button für die View
Sub Click(Source As Button)
Dim uiws As New NotesUIWorkspace
Dim session As New notessession
Set db = session.CurrentDatabase
Set dc = db.allDocuments
Set doc = dc.GetFirstDocument
Do While Not doc Is Nothing
If Not doc.FolderReferences(0) = "" Then
doc.FolderName = doc.FolderReferences
Call doc.save (False,False)
End If
Set doc = dc.GetNextDocument(doc)
Loop
Call uiws.ViewRefresh
End Sub
ACHTUNG: Dieser Refresh-Button ist keine Traum-Lösung, da alle Dokumente aktualisiert werden, was durchaus einige Minuten dauern kann!
Lesen Sie weiter im Teil 3 dieses Tipps.
Vielen Dank für diesen Tipp an:
Matthias (TMC)
eMail: atnotes@gmx.de
Notes/Domino Version: 5.x, 6.x