Autor Thema: DokumentCollection  (Gelesen 9970 mal)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: DokumentCollection
« Antwort #20 am: 15.02.05 - 08:55:43 »
Ok, habs verstanden und werde die Dinge fürs nächste mal beachten.

@Axel
Hat leider nicht funktioniert. Habs mit Deinem letzten Tipp versucht, mit = 0 und mit = "". Alles vergebens. Hier mein Code:

...

' Diese Abfrage wird übergangen
If collection.Count = 0 Then
   Messagebox "Sie haben kein Dokument markiert!",0 + 16,"Achtung"
   Exit Sub
End If
........   
   


Hi,

so weit waren wir doch schon. Ich hatte dir dann die Version aus Antwort#7 angeboten. Hast du es damit mal probiert?

So sollte das aber jetzt funktionieren.

Code
Sub Initialize
Dim ordner As String
Dim auswahl As Integer   
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace   
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim newdoc As NotesDocument
   
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments

'Abfrage, ob überhaupt ein Eintrag markiert wurde
If collection.Count = 0 Then
   Messagebox "Sie haben kein Dokument markiert!",0 + 16,"Achtung"
   Exit Sub
End If

Set doc = collection.GetFirstDocument
'Abfrage, ob Kategorie gewählt wurde
If doc Is Nothing Then
   Messagebox "Sie haben eine Kategorie markiert!",0 + 16,"Achtung"
   Exit Sub
End If
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: DokumentCollection
« Antwort #21 am: 15.02.05 - 09:07:44 »
Hab den Fehler gefunden!
Danke für die schnellen Antworten und die Zeit die Ihr investiert habt.

@Axel
Hatte ich getestet. Hat leider auch nichts gebracht. Sorry, habs vergessen zu posten.

@All
Haltet mich nicht für blöd aber kann das wirklich der Fehler gewesen sein? Habe in den Agenteneigenschaften im Abschnitt Laufzeit:
Das Ziel von "Alle gewählten Dokumente" auf "Keines" geändert. Und jetzt funkts.

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #22 am: 15.02.05 - 09:10:44 »
ich hab es mit dem Schnipsel probiert; funzt einwandfrei

Bei mir funzt das auch.  Axels Lösung muss auch funktionieren.
Liegen könnte das daran, das hier
Code
Sub Initialize
Dim ordner As String
Dim auswahl As Integer   
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace   
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim newdoc As NotesDocument
   
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument

' Diese Abfrage wird übergangen
If collection.Count = 0 Then
   Messagebox "Sie haben kein Dokument markiert!",0 + 16,"Achtung"
   Exit Sub
End If
die set doc =  collection.unprocessedoducments Anweisung vor der dc.Count = 0 kommt.  Das einfach mal umzustellen so das die Anweisung nach der .count Abfrage kommt könnte auch helfen. Standard ist auf jeden Fall, wenn nix oder Kategeorie ausgewählt, dann Rückgabewert der Anzahl der Dokumente in der Collection = 0. Ist ja auch irgendwie logisch, denn Kategorien sind keine Dokumente.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #23 am: 15.02.05 - 09:14:17 »
@All
Haltet mich nicht für blöd aber kann das wirklich der Fehler gewesen sein? Habe in den Agenteneigenschaften im Abschnitt Laufzeit:
Das Ziel von "Alle gewählten Dokumente" auf "Keines" geändert. Und jetzt funkts.
Genau das meinte ich mit vollständigen Informationen. Du hast nirgends erwähnt, das du das nicht über eine Aktion (von der wir alle ausgegangen sind) machst, sondern über einen Agent.
Bei einer Vorgangsschilderung, die gab es früher mal als Aufsatzthema in der Schule, so nach dem Motto ich erstelle eine Aktion wäre das ein glatter Fünfer, weil für den Fortgang der Handlung wichtige Bestandteile fehlen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: DokumentCollection
« Antwort #24 am: 15.02.05 - 09:16:54 »
Hallo skywook,

Das wird so sein. Wenn so ein Agent aus Datanbankereignissen gestartet wird, dann muss die Einstellung auf keine Dokumente stehen. Die anderen sind eigentlich nur für Zeitgesteuerte Agenten wichtig.

Dann ist aber der Agent auch überhaupt nicht gelaufen.
mal so als Tipp für die Zukunft: Bau Dir in solche Agenten gleich an erster Stelle mal eine MsgBox ein, um zu überprüfen, ob er überhaupt startet. Da sparst Du Dir viel Arbeit (wie in diesem Fall).

Thomas
+++To be human is more important than to be important!+++

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: DokumentCollection
« Antwort #25 am: 15.02.05 - 09:17:42 »
hm,#
Zitat
Du hast nirgends erwähnt, das du das nicht über eine Aktion ... machst, sondern über einen Agent.
Sub Initialize ?? Das mach m.W. nur über einen Agenten Sinn  :D

Zitat
von der wir ALLE ausgegangen sind
Objection, your honor .. unzulässige Verallgemeinerung  ;D
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #26 am: 15.02.05 - 09:23:49 »
hm,#
Zitat
Du hast nirgends erwähnt, das du das nicht über eine Aktion ... machst, sondern über einen Agent.
Sub Initialize ?? Das mach m.W. nur über einen Agenten Sinn  :D

Zitat
von der wir ALLE ausgegangen sind
Objection, your honor .. unzulässige Verallgemeinerung  ;D
;) Nicht ganz. Bau den Code mal in das initalize Event, ja das gibt es auch, der Aktion ein. Da geht das ebenfalls. Und bis zu dem Post mit dem kompletten Code war auch das "Sub Initialize" nicht bekannt.

Also Einspruch abgewiesen euer Ehren.  8)

Allerdings, funzt das nur beim ersten Aufruf des Aktion Buttons, beim zweiten Mal springt er den Initialize Event nicht mehr an. Ist das jetzt ein Bug oder ein Feature?
« Letzte Änderung: 15.02.05 - 09:27:21 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: DokumentCollection
« Antwort #27 am: 15.02.05 - 09:35:07 »
OK,
(wieder) mein Fehler. Bitte tausendmal um Entschuldigung  ::)

Hab auf jedenfall was dazugelernt.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: DokumentCollection
« Antwort #28 am: 15.02.05 - 09:38:37 »
Zitat
Allerdings, funzt das nur beim ersten Aufruf des Aktion Buttons, beim zweiten Mal springt er den Initialize Event nicht mehr an. Ist das jetzt ein Bug oder ein Feature?

Das ist weder Bug noch Feature sondern gut zu wissen ....  ;D

Heisst, dass die Aktion gecached wird und erst beim Verlassen des Umfeldes freigegeben wird. Schon probiert, was mit dem Terminate passiert?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #29 am: 15.02.05 - 09:38:55 »
OK,
(wieder) mein Fehler. Bitte tausendmal um Entschuldigung ::)

Hab auf jedenfall was dazugelernt.
Eigentlich bräuchten wir jetzt noch so einen zerfliesenden Smiley  ;D

Aber is eh wurscht. Solange aus Fehlern gelernt wird
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #30 am: 15.02.05 - 09:50:50 »
Zitat
Allerdings, funzt das nur beim ersten Aufruf des Aktion Buttons, beim zweiten Mal springt er den Initialize Event nicht mehr an. Ist das jetzt ein Bug oder ein Feature?

Das ist weder Bug noch Feature sondern gut zu wissen .... ;D

Heisst, dass die Aktion gecached wird und erst beim Verlassen des Umfeldes freigegeben wird. Schon probiert, was mit dem Terminate passiert?
Ausprobiert:
Der Terminate Event der Aktion wird erst ausgeführt, wenn die View keinen Focus mehr hat, das heist entweder geschlossen oder mit einer anderen Aktion überblendet wird.

Und jetzt wird es noch interessanter.
Bei zwei Aktionen ziehen die Initialize Events je Aktion jeweils einmal beim ersten Aufruf der Aktion, nicht bei der View. Die OnClick Events ziehen immer und die Terminate events in der Reihenfolge der Aktionen in der Aktionsleiste beim verlassen des Views.

KORREKTUR: Die Reihenfolge in der die Terminate Events ziehen scheint nicht festgelegt zu sein.

Das Objectexceute scheint so zu funktionieren wie das OnClick. Wobei ich keinen blassen Schimmer habe für was man das verwenden könnte.
« Letzte Änderung: 15.02.05 - 09:57:08 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: DokumentCollection
« Antwort #31 am: 15.02.05 - 10:10:02 »
Hochinteressant, danke Thomas fürs Ausprobieren. Nach Deiner ersten Bemerkung habe ich das ungefähr so erwartet. Kann es sein, dass die Reihenfolge der Terminate dadurch bestimmt ist, in welcher Reihenfolge die Aktionen zuerst aufgerufen wurden? Ich nehme mal an, dass beim ersten Klick einer Aktion diese initialisiert wird und gleichzeitig in eine "Childcollection" der View eingetragen wird. Beim Fokusverlust der View wird diese Childcollection mit den entsprechenden Terminates aufgerufen, das ist ungefähr das Modell, das Windows verwendet, wenn dynamische Bereiche in einem Fenster vorhanden sind.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: DokumentCollection
« Antwort #32 am: 15.02.05 - 11:57:51 »
Jetzt bräucht ich doch noch mal Hilfe.

Mit der o.g. Änderung habe ich jetzt das Problem, dass die Anzahl (collection.count) immer nur 1 zurückliefert. Obwohl mehr Dokumente angehackt sind. Mir kommts so vor als ob nur das Dokument gezählt wird das in der Ansicht (keine eingebettete) mit dem Cursor umrandet ist.

- Script läuft in einem Agent.
- Agent wird über das Menü Aktionen aufgerufen
- Testweise habe ich den Agenten auch über eine Aktion mit Formelaufruf getestet. Brachte aber keine Änderung

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #33 am: 15.02.05 - 12:07:33 »
Wenn du die Auswahl deines Agents immer noch auf keines stehen hast, dann ist das kein Wunder denn da bringt er dann wirklich über die eigenschaft db.unprocessed Dokuments jeweils immer nur ein Dokument zurück, vollkommen egal wieviel Haken du setzt. Deswegen nimmt man bei sowas ja auch als Ziel immer alle ausgewählten Dokumente.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: DokumentCollection
« Antwort #34 am: 15.02.05 - 12:10:35 »
ja, aber dann habe ich doch das o.g. Problem wieder. Kann ich nur eins von beiden lösen?

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DokumentCollection
« Antwort #35 am: 15.02.05 - 12:24:24 »
Also ich hab das jetzt mal vorwärts wie rückwärts probiert und bei mir hat das immer richtig gefunzt
Agent mit Run on Selected. folgenden
Code
Sub Initialize
	Dim ordner As String
	Dim auswahl As Integer   
	Dim session As New NotesSession
	Dim ws As New NotesUIWorkspace   
	Dim db As NotesDatabase
	Dim collection As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim newdoc As NotesDocument
	
	Set db = session.CurrentDatabase
	Set collection = db.UnprocessedDocuments
	
	' Diese Abfrage wird übergangen
	If collection.Count = 0 Then
		Messagebox "Sie haben kein Dokument markiert!",0 + 16,"Achtung"
		'Exit Sub
	Else
		Msgbox collection.count & " Dokumente wurden markiert - sie können über die Klasse" & Chr$(10) &_
		"NotesDocumentCollection weiter bearbeitet werden"
	End If
End Sub
im Agenten drin und den Agenten über eine Aktion in einer kategorisierten Ansicht mit folgendem
Code
@Command([ToolsRunMacro];"testSelect")
aufgerufen
Das funktioniert einwandfrei mit und ohne Kategorien, mit einem zwei oder fünzig Dokumenten. mit Dokumenten + Kategorien ...
Er zeigt mir in der Documentcollection immer nur die echten Dokumente an.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz