Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wilhelm Weber am 26.11.10 - 20:35:41
-
Hallo zusammen,
ich hatte vor kurzem ähnliches gepostet und brüte jetzt über einer Erweiterung.
Es sollte das Feld key aus dem aktuellen Dok ausgelesen werden um dann in einer anderen Ansicht nach dem Wert von key zu suchen und ein anderes feld (ergebnis) mit Mehrfachwerten zur Auswahl einzublenden. Der Code funktioniert auch (s.u.)
Jetzt ist aufgefallen, dass es in der Ansicht z.T. den Wert key mehrmals gibt. Die Auswahl stoppt beim ersten treffer , es sollen aber alle Ergebnisse aus allen Dokumenten , die den key-Wert enthalten angezeigt werden.
Zur Verdeutlichung:
Spalte 1 Spalte 2
key Wert1
key Wert4
Wert6
Wert7
key wert5
wert9
bei Auswahl des keys sollen in der PROMPT_OKCancelList dann die werte "Wert1" "Wert4"
"Wert6" "Wert7" usw, also alle angezeigt werden.
Habe was mit getalldocumentbykey funktioniert, das passt aber nicht.
Hatjemand einen Tip ?
Grüße
Wilhelm
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidoc As notesuidocument
Dim view As notesview
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
look = uidoc.FieldGetText( "key" )
Set view = db.GetView("Ansicht")
Set doc = view.GetDocumentByKey (look, True)
antwort = workspace.Prompt (PROMPT_OKCancelList, _
"Bitte auswählen", "Bitte auwählen.","", doc.ergebnis)
-
Habe was mit getalldocumentbykey funktioniert, das passt aber nicht.
GetAllDocumentsByKey wäre schon genau das richtige Verfahren - ergibt sich nun unsererseits die Frage, wo es denn dabei nun klemmt. Die Ergebnisse (Arrays - solche sind es ja bei Notes Items ja immer) musst Du natürlich verketten.
Bernhard
-
Hallo Bernhard,
das verketten ist das erste Problem. Die Collection zeigt 4 an bei einem Beispiel. Das passt auch, da es 4 Dokumente gibt, die den key haben. Aber wie kriege ich das in das prompt rein ???
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidoc As notesuidocument
Dim view As notesview
Dim doc As NotesDocument
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
look = uidoc.FieldGetText( "key" )
Set view = db.GetView("Ansicht")
Set dc = view.GetAllDocumentsByKey(look, True)
antwort = workspace.Prompt (PROMPT_OKCancelList, _
"Bitte auswählen", "Bitte auwählen.","", ????)
-
ArrayAdd ist Dein Freund.
-
Auch in Version 6?
Hab nichts in der Hilfe gefunden.
-
Auch in Version 6 - allerdings hatte ich das gedankenverloren mit meiner eigenen Routine hierfür verwürfelt: ArrayAppend heisst die Funktion. Allerdings hätte Dir das beim Studium der LotusScript-Sprachreferenz an Hand des ähnlichen Namens selber auffallen müssen.
Bernhard
-
hallo Bernhard,
was ein profi wie du sagst, ist für mich Gesetz ! ;)
Im Ernst, ich komme mit dem ArrayApend auch nicht weiter, warte dann auf unseren Entwickler.
Grüße
Wilhelm
-
Hallo Wilhelm,
ich zielte hier darauf, dass Du Dir ein Auswahlarray zusammenbaust, indem Du über die Mitglieder der per GetAllDocumentsByKey gefundenen NotesDocumentCollection iterierst und dabei das entsprechende Feld ausliest.
Wenn Du allerdings Deine Ansicht auch kategorisiert aufbauen kannst, dann wäre ein NotesUIWorkspace.PickListStrings noch viel einfacher.
Bitte entschuldige nochmals mein Versehen mit "ArrayAdd".
Bernhard
-
Hallo Bernhard,
NotesUIWorkspace.PickListStrings war mein erster Ansatz.
Kriege aber da ja auch nur die Gesamtdokumente zurück und nicht die einzelnen werte.
Wie gesagt, hat sich erstmal erledigt jetzt.
Danke für deine Mühen
Grüße
Wilhelm
-
Kriege aber da ja auch nur die Gesamtdokumente zurück und nicht die einzelnen werte.
Da verwechselst Du aber PicklistStrings mit PicklistCollection.
Bernhard