Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Thomator am 24.01.03 - 08:25:22
-
Moin, Moin,
ich möchte aus einer NotesView das markierte Element (sowohl Docs als auch Kategorien) als NotesViewEntry zurückgegeben bekommen. Bis jetzt habe ich aber noch keine Methode, die das macht, gefunden.
Kann mir da jemand helfen?
Danke
Thomas
-
... da gibt es auch keine direkte Methode. Du mußt über UnprocessedDocuments die markeierten Dokumente ziehen und dann über die Kategorie jedes Dokumentes eben die entsprechenden Dokumente in eine Collection ziehen...
ata
-
Hallo,
@ATa
Und genau da liegt mein Problem: Die Unterkategorien sind nicht unbedingt eindeutig. Dass heißt, dass verschiedene Kategorien die gleichen Unterkategorien haben können. Da hol ich mir Docs in die Collection, die ich eigentlich gar nicht meine. Ich muss also unbedingt die übergeordnete Kategorie herausbekommen. Irgendwie muss das doch zu machen sein. Wenn ich vom UIWorkspace einfach EditDocument aufrufe, nimmt Notes doch auch das markierte Doc. Gehts vielleicht irgendwie darüber?
Thomas
-
... wie setzt sich denn die Formel für die kategorisierte Spalte zusammen - über den Weg müsstest du doch an die übergeordnete Kategorie rankommen...
ata
-
Die Spalte bedient sich einfach aus einem Feld in den Dokumenten.
aber wenn ich 'tief' kategorisiert habe und eine Kategorie markiere, liegt ja bei dem Eintrag in der Ansicht gar kein Doc dahinter!
????
Thomas
-
... ich hoffe ich habe dich richtig verstanden, wenn du die Kategorie markierst bekommst du kein Dokument zurück, aber wenn du das Dokument markierst sehr wohl...
ata
-
...
genau, is ja auch logisch, weil die Docs zu der Kategorie erst in den nächsten Zeilen kommen. Aber ich muss halt die komplette Kategorie anhand eines markierten Kategorieeintrags auslesen können. Und in der View einfach sagen, dass der nächste Eintrag genommen werden soll, geht nicht, weil ich da einen Eintrag übergeben muss. Aber den krieg ich nicht, weil die Übergeordneten Kats nicht mit ausgelesen werden ..........
Und so weiter. Teufelskreis, das!
Thomas
-
die Position eines entrys in der view bekommst du mit
position$ = notesViewEntry.GetPosition( separator$ )
mach dir einen Navigator mit
Set notesViewNavigator = notesView.CreateViewNav( cacheSize )
hole dir das selektierte entry - über eine dokument key
Set notesViewEntry = notesView.GetEntryByKey( keyArray [ ,exactMatch%] )
suche die Kategorie inder view
Set notesViewEntry = notesViewNavigator.GetPrevCategory( notesViewEntry )
dann erzeugst du dir einen neuen view navigator mit der Kategory vom selektierten entry
Set notesViewNavigator = notesView.CreateViewNavFrom( navigatorObject [, cacheSize ])
dann kannst du die doks bearbeiten
das war jetzt auf die Schnelle - es gibt sicher Verbesserungen
cu
-
... immer schön langsam, eins nach dem anderen...
... wenn du ein Dokument im Zugriff hast, dann kennst du doch die Kategorie-Hierarchie - du verwendest ein Feld für die Kategorisierung in der View...
... also zieh dir das Dokument über UnprocessedDocuments in eine Collection.
... dann das Feld einlesen mit der Kategorie...
... dann einen @Explode des Strings nach "/"...
... das erste Element des Explode ist die oberste Kategorie...
... um auf Nummer sicher zu gehen kannst du mit einem db.Search die Dokumente in eine neue Collection ziehen, die mit diesem Begriff im Feld "Kategorie" beginnen...
ata
-
@Performance: Das Problem liegt an folgender Stelle:
Set notesViewEntry = notesView.GetEntryByKey( keyArray [ ,exactMatch%] )
Ich habe doch kein Dokument im Zugriff, dehalb kann ichs ja nichts übergeben.
@ata: Ich kann mir den markierten Eintrag, wenn es sich um eine Kategorie handelt, auch nicht über unprocessedDocuments in eine Collection ziehen. So kann ich allenfalls feststellen, dass es sich um eine Kategorie handelt, da die Eigenschaft count der Collection dann 0 ist.
Thomas
-
... sicher nicht auf der Kategorie - da geht nie was - , sondern auf ein Dokument der Kategorie...
ata
-
yo ata hat es schon gesagt - auf eine link Kategorie geht das nicht - geht nur mit einer Dokument Kategorie
cu
-
Na, wenn das so ist, muss ich das halt bleiben lassen. Wird dem User halt per MessageBox mitgeteilt, dass ein Dok markiert sein muss für die Aktion...
Ich danke vielmals
Thomas