Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: TY am 17.09.12 - 15:27:55
-
Hallo zusammen,
in der Ansicht "Alle Dokumente" unserer Mailschablone gibt es eine Spalte "Ordner", die den Ordnernamen anzeigt, in der das jeweilige Dokument liegt. Dies funktioniert sehr gut mit der Formel @WhichFolders. Jetzt möchte unserer Kunde diese Spalte sortiert haben. In den Eigenschaften der Spalte kann man dies zwar einstellen, jedoch wird die Spalte nicht sortiert.... Nun habe ich eine weitere Möglichkeit über "FolderReferences" die Ordnerreferenzen zu bekommen. Jetzt läßt sich die Spalte auch sortieren. Allerdings hat auch diese Methode einen Haken. Wenn ich nach der Referenzierung eine Mail in einen Ordner verschiebe, wird diese über die Referenzen nicht wiedergefunden, was hier im Forum auch schon mal erwähnt wurde. Jetzt möchte ich über eine zweite Ansicht die Referenzen mit @WhichFolders anzeigen lassen und über die DokumentenID per Lotusscript den Wert dieser Spalte auslesen und in einer weiteren Ansicht anzeigen lassen. Irgendwie bekomme ich den Wert über Getcolumnvalues oder Getentrybykey nicht ausgelesen. Gibt es eine andere Möglichkeit an den Spalteninhalt zu kommen?
Danke im Voraus
Gruß Jürgen
-
Hallo,
Ich habe noch keine gefunden.
Andreas
-
Gibt es vielleicht eine andere Möglichkeit die Ordnerspalte zu sortieren, als in den Spalteneigenschaften?
Gruß Jürgen
-
Hallo,
kann man die Werte für die Ordnerreferenzen aus dem Front-End ziehen? Wenn ich die Ansicht öffne werden ja die Ordner korrekt angezeigt. Wenn ja, welche Methode müsste man da nehmen?
Danke für Antworten
Jürgen
-
Gibt es vielleicht eine andere Möglichkeit die Ordnerspalte zu sortieren, als in den Spalteneigenschaften?
Gruß Jürgen
Nein.
kann man die Werte für die Ordnerreferenzen aus dem Front-End ziehen? Wenn ich die Ansicht öffne werden ja die Ordner korrekt angezeigt. Wenn ja, welche Methode müsste man da nehmen?
Mir ist kein Weg bekannt.
Axel
-
Guten Morgen,
ich habe in den Tiefen des Internet eine einigermaßen brauchbare Lösung gefunden:
http://www.runningnotes.net/index.php/tag/lotusscript
Hier werden die FolderReferences über LotusScript gesetzt. Ich habe das Ganze mal in einen Agenten eingefügt:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim myViews As Variant
Dim myFolders As Variant
Set db = session.CurrentDatabase
Dim doccol As NotesDocumentCollection
Dim doc As NotesDocument
Set doccol = db.UnprocessedDocuments
'Set doc = doccol.GetFirstDocument()
myViews = db.Views
Dim viewnav As NotesViewNavigator
Dim intCount As Long
'View-Ansicht aktualisieren
Dim uiws As New NotesUIWorkspace
intCount = doccol.Count
If Not MessageBox ("Wollen Sie für " & intCount & " Dokumente die Ordnerreferenz setzen?" & Chr(13) & Chr(10) &_
"Dies kann einige Minuten dauern!" ,1 + 32,db.title) = 1 Then
Exit Sub
End If
Set doc = doccol.GetFirstDocument()
While Not (doc Is Nothing)
ForAll v In myViews
If v.IsFolder Then
v.AutoUpdate = False
Set viewnav = v.CreateViewNavFrom(doc)
If viewnav.Count > 0 Then
doc.FolderName = v.name
Call doc.save(True,True)
End If
End If
End ForAll
Set doc = doccol.Getnextdocument(doc)
Wend
Call uiws.ViewRefresh
MsgBox "Ordnerreferenzen gesetzt!"
End Sub
Es wird in das erstellte Dokumenten-Feld "FolderName" der Ordner geschrieben, in der das Dokument liegt. Ich habe eine neue Ansicht "Alle Dokumente nach Ordner" erstellt und in die Spalte "Ordner" den Wert "FolderName" eingetragen. Danach läßt sich auch die Spalte sortieren.
Allerdings müsste die Ansicht mit dem obigen Quellcode aktualisiert werden, da unser Kunde auch weiterhin fleißig Dokumente in Ordner verschiebt. Die Aktualisierung kann bei ca. 3000 Dokumenten 7-8 Minuten dauern.....
Ein kleines Problem hab ich dennoch: Wenn ein Dokument in einen Ordner kopiert wurde, existiert dies ja zweimal. Ich müsste den FolderName ein Array mitgeben, falls das Dokument in mehr als einen Ordner liegt.
Hat hier jemand eine Idee?
Danke
Jürgen
-
... Wenn ein Dokument in einen Ordner kopiert wurde, existiert dies ja zweimal ...
Nein, das Dokument existiert nur einmal, ist aber mehreren Ordnern zugeordnet.
Etwas Optimierungspotential in Deinem Agenten:
Bei jedem Dokument gehst Du über alle Ansichten und prüfst, ob es ein Ordner ist. Besser, einmal alle Ordner suchen und dann mit jedem Dokument nur noch in den Ordnern suchen.
Was mich etwas davor abschreckt, Deinen Agenten fertigzuschreiben, ist die Passage "unser Kunde". Warum sollte ich hier gratis die Lösung liefern, die Du jemand anderes dann verkaufst? Es ist nicht wirklich schwer, einen Mehrfachwert zusammenzusammeln und dann in ein Dokument zu schreiben, Du brauchst dazu drei neue Zeilen und eine (nein, zwei ;)) vorhandene musst Du ändern. Es gibt da verschiedene Herangehensweisen, ein Tipp wäre "Split", schau da mal in der Hilfe nach. Den Rest kriegst Du selber hin ...
EDIT: Das noch größere Optimierungspotential liegt darin, die Dokumente nicht grundlos zu speichern.
-
Danke für den Hinweis :) Werd ich versuchen umzusetzen.
Anm. Mit "Kunde" sind eher unsere firmeninternen Mitarbeiter gemeint, die wir aber als unsere "Kunden" ansehen, da sie uns beispielsweise mit derartigen Anforderungen auf Trapp halten ;)
Jürgen
-
ok, "Kunde" verstanden. Meld' Dich einfach, wenn's klemmt ... ;)
-
Danke erstmal für die Antworten. Zur Zeit komme ich nicht dazu in dem Bereich weiter zu entwickeln. Wenn sich demnächst eine Gelegenheit ergibt, werde ich meine Ergebnisse hier weiter posten.
Jürgen