Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Polarbaer am 24.05.05 - 11:46:57
-
Hallo,
ich würde gern einen Agent/Button bauen, der mir in einer Ansicht alle Dokumente unterhalb (bzw oberhalb) des ausgewählten Dokumentes markiert. Gibt es das schon bzw hat jemand einen Tip für mich, welcher Befehl mir hier hilft (Scriptgrundkenntnisse sind vorhanden)
danke und ciao michael
-
Wie immer würden hier viele Wege nach Rom führen, aber mir fehlt schlicht der erkennbare Sinn der Aktion - dann wäre es einfacher, Tips zu geben. Stur Dokumente oberhalb oder unterhalb einer UIView zu markieren, ist die eine Sache, aber wie erkennst Du, ob nur ein Dokument markiert wurde oder mehrere (natürlich lösbar), was willst Du dann mit den markierten Dokumenten machen usw.
Ich nehme an, das eigentliche Ziel lässt sich ganz anders erreichen. Daher: Sage mal bitte genaueres an.
Bernhard
-
@koehlerbv: Wenn es Dir hilft, hier drei Beispiele:
1. Jedesmal, wenn Du mit der Maus Dokumente markierts, indem Du die linke Maustaste gedrückt hälst und nach unten ziehst, wäre meine Frage von Interesse
2. ganz konkret:Es gibt immer wieder User, deren Roaming auf "In Progress" stehen bleibt. Nach 14 Tagen verschwinden die entsprechenden Einträge aus der admin4 und dann würde der User nie ein abgeschlossenes Roaming erhalten. Also brauch ich einen Weg, um diese User zu ermitteln. Dazu hol ich mit aus der names alle User , die noch auf "In Progress" stehen und aus der admin4 alle wo das roaming noch am Laufen ist. Die Differenz dieser beiden ergibt die gesuchten.
Das ganze mach ich mit einem ExporttoExcel Agent, welcher alle Einträge einer ausgewählten Ansicht in eine Exceltabelle schreibt. In der names hab ich eine entsprechende Ansicht, aber die admin4 hat zu viele Einträge und dort will ich auch keine weitere Ansicht einbauen!!! Also mach ich mir eine Kopie der admin 4 und lösche aus der Ansicht "All Requests by Action" die uninteressanten raus und genau für diese Aktion wäre die Frage von Interesse.
3. Beispiel:
via Agent bekommen ausgewählte User im Names irgendeinen Eintrag gesetzt. Um das nicht für alle auf einmal machen zu müssen, wär es vorstellbar, zunächst nur einen Teil der User auszuwählen und dann wäre das auch ein Fall für meine Frage
ich hoffe ich habe meine Frage hiermit begründet und würde mich über Antworten auf meine Frage freuen
P.S. das nur ein Dokument markiert ist, kann ich annehmen, da der Agent nur für mich und nicht für den Endanwender sein soll...
-
Sehe ich durchaus als nützlich, hab das gelegentlich auch schon vermisst. Leider funktioniert die Standard-"Bis"-Markierung mit gedrückter Shift-Taste in Notes nicht. Ich kenne aber auch keine Alternative. :(
-
das markierte Dokument bekommst Du heraus. den NotesUIView hast Du. Dann könnte es wie folgt funktionieren:
1. NotesView holen Set NotesView = UIView.View
2. das markierte Dokument im View suchen
3. mit NotesUIView.SelectDocument(NotesDocument) markieren
4. nächstes oder vorheriges Dokument in der view suchen
5. im uiview markieren (wie in Punkt 3.)
6. Punkte 4 und 5 wiederholen bis ... (kein Dokument mehr gefunden oder eine andere Abbruch-Bedingung eintritt)
-
3. mit NotesUIView.SelectDocument(NotesDocument) markieren
Kann es sein, dass man damit immer nur ein Dokument markieren kann und beim 2. nicht mehr klar ist, dass schon das erste markiert war?
-
NotesUIView.SelectDocument(NotesDocument) markiert immer nur ein Dokument, deshalb gehst Du im BackEnd auch durch alle vorhergehenden oder nachfolgenden Dokumente und markierst diese in der UIView.
-
NotesUIView.SelectDocument(NotesDocument) markiert immer nur ein Dokument, deshalb gehst Du im BackEnd auch durch alle vorhergehenden oder nachfolgenden Dokumente und markierst diese in der UIView.
Ich krieg es hin, im Backend alle Dokumente zu markieren, aber wenn der Agent zu Ende gelaufen ist, so ist nichts mehr markiert??? Sieht jemand, was ich falsch mache?
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim view As NotesView
Dim mydoc As NotesDocument
Dim db As NotesDatabase
Dim session As New NotesSession
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set uiview = ws.CurrentView
Set view = uiview.View
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set mydoc = collection.GetFirstDocument()
Do While Not mydoc Is Nothing
Call uiview.SelectDocument(mydoc)
Set mydoc = view.GetNextDocument(mydoc)
Loop
End Sub