Lotus Notes / Domino Sonstiges > Tipps und Tricks
In welchem Folder liegt das jew. Dokument - FolderReferences
TMC:
** EDIT **
Komplette Lösung siehe hier unter Best Practices: Best Practices Folder References
Hi,
ich hab mich zu dem Thema "Wie finde ich heraus, in welchem Ordner Dokument XY liegt" mal etwas schlau gemacht und ein paar Scripts geschrieben.
Damit dies überhaupt klappt, müssen die folgenden Ordner der R5 Mailschablone in die jew. DB kopiert werden:
- $FolderRef
- $FolderRefInfo
Außerdem muss vorher ein db.FolderReferencesEnabled = True ausgeführt werden.
Per Default werden keinerleid Infos in den Dokumenten gespeichert!
Beispiel-Code:
--- Code: ---Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
If db.FolderReferencesEnabled Then
If Messagebox ("Folder References are enabled." & Chr(10) & Chr(10) _
& "Do you want to disable the Folder References?" ,1 + 32,db.title) = 1 Then
db.FolderReferencesEnabled = False
Messagebox "Disabled Folder References now.....", 64, db.title
Else
Exit Sub
End If
Else
If Messagebox ("Folder References are disabled." & Chr(10) & Chr(10) _
& "Do you want to enable the Folder References?" ,1 + 32,db.title) = 1 Then
db.FolderReferencesEnabled = True
Messagebox "Enabeled Folder References now.....", 64, db.title
End If
End If
End Sub
--- Ende Code ---
Nachträglich Folder References erzeugen
Nun hat man ggf. das Problem, dass db.FolderReferencesEnabled nicht enabled wurde und eine DB (z.B. Mailfile) u.U. viele tausend Dokumente hat ohne jeder Referenz.
Da kann man dann folgenden Code nehmen, damit wird einfach jedes Dokument wieder in denselben Folder geschoben, und damit wird dann nachträglich eine Referenz erzeugt.
--- Code: ---Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim vec As NotesViewEntryCollection
Set db = session.CurrentDatabase
If Not Messagebox ("Do you really want to create references of all docs in all folders?" ,1 + 32,db.title) = 1 Then
Exit Sub
End If
Forall v In db.Views
If v.isFolder Then
Set vec = v.AllEntries
Call vec.PutAllInFolder( v.Name )
End If
End Forall
Messagebox "Folder References are created...", 64, db.title
End Sub
--- Ende Code ---
Ist erstmal ein erster Wurf, to be continued.....
TMC
eknori (retired):
das funzt dann aber nur für neu erstellt docs, oder ?
upps, erst lesen, dann posten Script 2 bringt die Lösung
TMC:
lies mal Script 2 :-)
TMC
eknori (retired):
TMC ( The Master of Ceremony ;D ) :
Gute Arbeit, das kann mir in der Fa. gute Dienste leisten..
Feedback folgt...
TMC:
Freut mich Ulrich ;D
Auf die Idee bezügl. dem Call vec.PutAllInFolder( v.Name ) brachte mir ein Spotlight.de - Thread......
Bin schon auf Dein Feedback gespannt, sollte auch mal mit einem größeren Mailfile oder so getestet werden - werd ich auch noch angehen....
TMC
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln