Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: StefanP1962 am 29.11.13 - 19:58:39
Titel: Mehrfacher Aufruf von PicklistCollection
Beitrag von: StefanP1962 am 29.11.13 - 19:58:39
Hallo zusammen,
so ungefähr sehe ich im Moment aus ??? ! Ich komme mit meinem Problem nicht zu einer Lösung. Vielleicht kennt der ein oder andere die Bibliothek zum Dokumentieren von Emails in RichTextFeldern eines Zieldokumentes. Das Ganze habe ich mehrfach modifiziert, sodass ich folgendes ausführen kann:
Auswahl des Ordners / der Ansicht in meiner Mail-DB, aus welcher ich Dokumente wählen möchte
PickListCollection über den gewählten Ordner / die gewählte Ansicht
Auswahl der Dokumente
Abarbeiten der Collection
Hier der Codeschnipsel: [...] Set MailView = MailDB.GetView(RealName) If MailView Is Nothing Then Msgbox cNoFolderFound Exit Function End If
'Refresh the MailView and Clear the DocumentCollection Call MailView.Refresh Set dc = Nothing
Funktioniert alles perfekt, ABER ... Nun möchte ich einem weiteren Vorgang ein oder mehrere Dokumente der Mail-DB zuweisen und rufe das ganze Prozedere erneut auf. Die Picklist öffnet sich und ich setze meine Haken und sehe dann schon in der Meldungszeile x Dokumente ausgewählt. Eine schöne Meldung, sehr hilfreich, nur ist x die Anzahl meiner gerade gewählten zuzüglich der eben bereits gewählten Dokumente. In der Folge landen alle Dokumente in der Collection, was ich gerne unterbinde würde. Hat einer eine Idee, wie ich die Auswahl zurückgesetzt bekomme? UIView.DeselectAll funktioniert ja nur, wenn die View der Mail-DB im UI wäre, aber da liegt ja die meiner Dokumentations-Datenbank. Oder habe ich nur einen fürchterlichen, gedankliche Hänger?
Beste Grüße und Danke für Eure Lösung oder Euren seelischen Beistand. ;)
Stefan
Edith sagt dazu am 30.11.13 10:48: "Da war ein Tippfehler im Text. Bei "zusammen" fehlte das "z"
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: Peter Klett am 30.11.13 - 10:40:37
Unter der Annahme, dass Du bei keinem der nächsten Durchläufe erwartest, dass ein bereits vorher gewähltes Dokument erneut gewählt wird, könntest Du Dir die bereits verwendeten Dokumente in einer Liste merken und nach der Auswahl aus der Collection entfernen.
Alternativ würde ich mal probieren (ist nur eine Idee, habe ich noch nie getan), den NotesUIWorkspace zu löschen und neu zu setzen, denn irgendwo muss Notes sich die Markierung ja merken.
Delete ws Set ws = New NotesUIWorkspace
Habe aber keine Ahnung, ob das geht oder welche Nebenwirkungen das hat.
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: StefanP1962 am 30.11.13 - 10:46:59
Leider kann ich nicht ausschließen, dass ein Dokument möglichderweise zwei Dokumentationen zugeordnet werden soll. Von daher ist die Idee mit der Liste leider nicht zielführend. Die Geschichte mit dem UI-Workspace werde ich mal probieren. Wobei ich vermute, dass diese Info in der Mail-DB steckt.
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: Peter Klett am 30.11.13 - 17:30:26
Ich hatte es so verstanden, dass Du die Routine so umbauen wolltest, dass ein mehrfacher Aufruf innerhalb des gleichen Scriptes erfolgen soll. Aber nun meine ich verstanden zu haben, dass das Problem schon auftritt, wenn Du manuell die gleiche Routine noch einmal startest.
Dann wird das mit dem Workspace nichts bringen, denn den setzt Du in der Routine ja neu.
Wenn man in einer Ansicht mehrere Dokumente markiert, gehen die Markierungen normalerweise weg, wenn man die Ansicht verlässt.
Probier doch mal aus, was passiert, wenn Du zwischen dem ersten und dem zweiten Aufruf die Maildatenbank öffnest und in eine beliebige andere Ansicht gehst. Sind danach beim zweiten Aufruf die Markierungen weg?
Falls das was bringt, könntest Du z.B. das Öffnen und Schließen der zuletzt ausgewählten Ansicht bzw. Ordner vor der Picklist in Deine Routine mit aufnehmen.
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: StefanP1962 am 01.12.13 - 21:51:52
Habe den Fehler jetzt noch weiter eingrenzen können und einen Workaround
Und zwar erlaube ich in der Routine die Auswahl eines Ordners, in welchen die ausgewählten Dokumente verschoben werden. Sofern ich nicht in Ordner verschiebe, bleiben die Dokumente nicht ausgewählt, verschiebe ich, sind alle verschobenen Dokumente gewählt.
Am Ende der Routine öffne ich die für die Picklistausgewählte View in der MailDB als neue Instanz im WS (call ws.OpenDatabase(...) ). Dann packe ich mir die UIView des WS und entferne mit UIView.DeselectAll alle Auswahlen. Jetzt noch wieder meine alte UIView geladen und fertig.
Nächster Aufruf: Sauber!
Für bessere Ideen bin ich zu haben.
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: StefanP1962 am 02.12.13 - 20:13:27
Nachtrag 02.12.2013
War doch nix mit dem Workaround. :( :-:
Wie kriege ich die blöden Haken weg?
' Open the Mail view and remove all selections from it Set wsMail = New NotesUIWorkspace Call wsMail.Opendatabase(MailDB.SERVER, MailDB.FilePath, RealName, , True, True)
Set MailUIView = wsMail.Currentview
Currentview bleibt aber die View aus der aufrufenden DB. :( Wie kriege ich den Fokus auf die Mail-DB?
Titel: Re: Mehrfacher Aufruf von PicklistCollection
Beitrag von: Jens Winkelmann am 03.12.13 - 00:19:29