Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: HarryB am 31.08.04 - 16:59:11
-
Hi Folks,
gegeben ist eine Ansicht. Diese ist sortiert nach der ersten Spalte, wobei die Werte, die in der ersten Spalte dargestellt werden auch Mehrfachwerte sein können. Ich suche nur per "GetAllEnriesByKey" in dieser Spalte nach einer Reihe von Dokumenten, welche ich dann als aufbereitete Liste darstellen will.
Hierbei tun sich zwei Probleme auf:
1. Die aufbereitete Darstellung enthält als erstes Sortierkriterium die erste Spalte der Ansicht. Aber: wenn ein Dokument in der Ansicht wegen der Mehrfachwerte zwei mal dargestellt wird, so wird in der Aufbereitung ggf. der in der Ansicht als erstes stehende Wert herangezogen und nicht der, über der das Dokument gefunden wurde.
Beispiel:
Ansicht:
Kategorie 1 Dokument Aaaa
Kategorie 1 Dokument Bbbb
Kategorie 1 Dokument Cccc
Kategorie 1 Dokument Dddd
Kategorie 1 Dokument Eeee
Kategorie 2 Dokument Bbbb
Kategorie 2 Dokument Dddd
Kategorie 2 Dokument Gggg
Kategorie 2 Dokument Hhhh
Kategorie 2 Dokument Iiii
Kategorie 3 Dokument Dddd
Kategorie 3 Dokument Gggg
Kategorie 3 Dokument Jjjj
Kategorie 3 Dokument Kkkk
Kategorie 3 Dokument Llll
Kategorie 3 Dokument Mmmm
Mein Key für die Suche ist nun "Kategorie 2", ViewEntryCollection.GetFirstEntry.ColumnValues(0) ergibt für Dokument Bbbb aber "Kategorie 1"!
Die Frage ist, kann man das irgendwie verhindern, falls ja, wie?
2. Wenn ich dasselbe Script unter R5 verwende, wobei keine Funktionen verwendet wurden, die nur unter R6 laufen, kann es passieren, dass das erste Dokument der ViewEntryCollection bei der Überprüfung des GetFirstEntry durch IsValid den Wert "False" ergibt, obwohl das Dokument nachweislich Valide ist.
Hat jemand Ideen dazu?
Viele Grüße
Harry
-
Hmm, leider haben ViewEntryCollections Bugs, wenn man damit auf eine kategorisierte View zugreift. Ich weiss nicht, ob das schon in der KB dokumentiert ist, aber vielleicht lohnt sich ein Suchen dort.
-
Gesucht und gefunden:
Accessing NotesViewEntry Method or Property Returns Error: "Entry is no Longer in View: <viewname>"
Problem:
When accessing a Property or Method of the NotesViewEntry class, the following error displays:
"Entry is no longer in view: <viewname>"
Here is one example of a script that causes this error:
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim entry As NotesViewEntry
Dim entryCol As NotesViewEntryCollection
Set db = s.CurrentDatabase
Set view = db.getView("Multi")
Set entryCol = view.AllEntries
Set entry = entryCol.GetFirstEntry
While Not(entry Is Nothing)
Print entry.universalid
Set entry = entrycol.getnextentry(entry)
Wend
Solution:
This issue occurs when the entry is accessed in a View design that uses the column property "Show multiple values as separate entries". This issue has been reported to Lotus Quality Engineering.
As a workaround, either disable the "Show multiple values as separate entries" property in the view or create a second view with the same design with the property disabled.
Supporting Information:
The "Show multiple values as separate entries" property is found on the Sort tab (second from the left) in the Column Properties dialog box.
Bei Kategorien ist das ja gesetzt.
Andreas
-
Genau, das wars, danke Andreas
-
Na klasse, genau das "Show multiple values as seperate entries" wird zwingend benötigt. Aber davon ab ist das nur die Lösung für Problem 2, wie schaut es denn mit Problem 1 aus?
Vielen Dank soweit und viele Grüße
Harry
-
Hast Du Dir schon Alternativen überlegt? Gegen das erste Problem gibt es meines Wissens keine Abhilfe (und hängt wahrscheinlich mit dem zweiten Bug zusammen). Wie wäre es, so etwas über eine eingebettete Ansicht und ShowSingleCategory zu lösen?
-
Hast Du Dir schon Alternativen überlegt? Gegen das erste Problem gibt es meines Wissens keine Abhilfe (und hängt wahrscheinlich mit dem zweiten Bug zusammen). Wie wäre es, so etwas über eine eingebettete Ansicht und ShowSingleCategory zu lösen?
Das bringt mich nur zur Hälfte weiter. Das Problem ist, dass es auch eine kategorisierte Ausgabe über mehrere Kategorien geben soll.
Ist irgendwie klasse, dass die einzige Funktion, die mir bei meiner Aufgabenstellung sinnvoll und einfach helfen kann Bugverseucht ist. :-\
Viele Grüße
Harry
-
kannst du nicht einfach
NotesDocumentCollection col = vw.GetAllDocumentsByKey(aKey) nehmen.
Oder ist ViewEntryCollection absolut notwendig?
-
kannst du nicht einfach
NotesDocumentCollection col = vw.GetAllDocumentsByKey(aKey) nehmen.
Oder ist ViewEntryCollection absolut notwendig?
Das Problem ist, dass die DocumentCollection unsortiert ist. Bei der ViewEntryCollection behalten die Einträge die Reihenfolge wie in der Ansicht.
Viele Grüße
Harry
PS: Hat jemand einen Codeschnipsel ein 2 Dimensionales Feld zu sortieren, so als würde man eine Tabelle anhand einer Spalte sortieren?
-
Vorab: Es spät, es war ein hektischer Tag - ich mag jetzt also wirklich einfach nur auf dem Schlauch stehen ...
Aber: Warum baust Du Dir nicht eine nur für Deinen Stunt angepasste Ansicht auf ? Will heissen: Nicht Mehrfachwerte getrennt anzeigen, sondern nur simpel kategorisiert ?
Bernhard
-
Aber: Warum baust Du Dir nicht eine nur für Deinen Stunt angepasste Ansicht auf ? Will heissen: Nicht Mehrfachwerte getrennt anzeigen, sondern nur simpel kategorisiert ?
Weil ich die Zuordnungen zu mehreren Kategorien zwingend benötige.
Um mal etwas Licht in das Dunkel zu bringen: es geht um eine Art Publikationsdatenbank. Jede Publikation kann mehrere Autoren haben. Jeder Autor ist einem Lehrstuhl und einer Fakultät zugeordnet. Es passiert nicht selten, dass Autoren verschiedener Lehrstühle zusammen etwas veröffentlichen. Diese Publikation muss beiden Lehrstühlen zugeordnet werden können.
In einer Ansicht klappt das - Kategorien sei dank - ja auch hervorragend und so sortiert wie geplant. Wenn ich aber eine Liste der Publikationen eines Lehrstuhles in ein Textfile schreiben soll, kommen die Probleme...
Viele Grüße
Harry
-
Hat einer von euch Erfahrungen mit der Klasse NotesViewNavigator?
Viele Grüße
Harry
-
Ich hab (allerdings schon vor einiger Zeit) wirklich schlechte Erfahrungen mit diesem ganzen ViewNavigator, ViewEntryCollection, etc. Zeugs gemacht. Du jetzt scheinbar auch.
Damals hing es irgendwie von der Spaltenbreite der Key-Column ab, ob Dokumente gefunden wurden oder nicht.
Geht nicht vielleicht eine Alternative.
Bin nicht so der Evaluate Experte, aber was ist mit einem @DbLookup in einem Evaluate, das ein Array an Doc-Unids zurückgibt?
Das dürfte sortiert sein, oder?
Gruß Axel
-
Geht nicht vielleicht eine Alternative.
Bin nicht so der Evaluate Experte, aber was ist mit einem @DbLookup in einem Evaluate, das ein Array an Doc-Unids zurückgibt?
Das dürfte sortiert sein, oder?
Ist an sich eine gute Idee, hat in meinem Fall aber trotzdem einen Haken:
Meine Kategorisierung lässt ja Mehrfachwerte zu. In den Dokumenten selber habe ich keine Chance zu erkennen, über welchen Wert der Kategorie das entsprechende Dokument gefunden wurde. Das wäre kein Problem, wenn die Kategorie nicht zweiteilig wäre (Fakultät/Lehrstuhl) und darüber hinaus eine Suche nach allen Fakultäten oder allen Lehrstühlen einer Fakultät unzulässig.
Viele Grüße
Harry
-
Mal ne blöde Frage : Warum gehst Du über Columnvalues ?
Du kriegst Deine ViewEntryCollection, weil Du mit einem Key gesucht hast... warum willst Du diesen Key noch einmal auslesen ? Den kennst Du doch schon...
Hat das irgend einen tieferen Sinn ?
Tode
-
Mal ne blöde Frage : Warum gehst Du über Columnvalues ?
Du kriegst Deine ViewEntryCollection, weil Du mit einem Key gesucht hast... warum willst Du diesen Key noch einmal auslesen ? Den kennst Du doch schon...
Hat das irgend einen tieferen Sinn ?
Tode
Ja, hat es.
Die Kategorie ist zusammengesetzt aus Fakultät und Lehrstuhl, also zum Beispiel Wiwi\VWL, Wiwi\BWL usw. Solange ich Wiwi\VWL abarbeite, ist das kein Problem. Wenn ich Wiwi\* abarbeite jedoch sehr wohl. Ein Dokument kann sowohl unter Wiwi\VWL als auch Wiwi\BWL einsortiert sein. Wenn ich das Dokument an sich betrachte, weiss ich nicht, ob ich das nun über VWL oder BWL erhalten habe. Die ViewEntryCollection liefert mir das dummerweise auch nicht korrekt zurück.
Ich habe das nun lösen können, indem ich einen NotesViewNavigator erstellt habe und die Einträge der Ansicht einzeln durchgehe. Die Abarbeitung der geforderten Dekomente dauert zwar im Zweifel etwas länger, dafür scheint es zuverlässig zu funktionieren. Mal sehen was passiert, wenn die User darauf losgelassen werden...
Viele Grüße
Harry