Autor Thema: LS: Übergeordnete Kategorie Wert zurückgeben  (Gelesen 8592 mal)

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
LS: Übergeordnete Kategorie Wert zurückgeben
« am: 16.02.07 - 11:24:32 »
Ich habe eine mehrfach kategorisierte Ansicht in der Form

Kategorie1
  Unterkategorie1
  Unterkategorie2
Kategorie2
  Unterkategorie1
  Unterkategorie2
...

uiview.CaretCategory gibt in LS den Wert der Kategorie im Fokus zurück - also "Unterkategorie2", wenn Kategorie1/Unterkategorie2 ausgewählt ist.
Gibt es eine Möglichkeit, hierzu die übergeordnete Kategorie, also "Kategorie1" in diesem Fall, zu ermitteln?

Hintergrund: ich benötige für ein Skript die DocumentCollection aller auf die Kategorie im Fokus folgenden Dokumente.

Wenn ich per

category = uiview.CaretCategory      
Set view = uiview.View
Set nav = view.CreateViewNavFromCategory(category)

einen Navigator erstelle, funktioniert das nur auf der Ebene der ersten Kategorie, nicht in den Folgekategorien ...
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

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: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #1 am: 16.02.07 - 11:31:56 »
Du müsstest das Feld mit der 1.Kategorie des makierten Dokumentes auslesen und dann mit einem Search alle Dokumente in der DB suchen. Als Ergebnis erhälst du dann eine DocumentCollection.

Eine andere Möglichkeit sehe ich im Moment nicht.


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

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #2 am: 16.02.07 - 11:51:08 »
Danke für die Antwort Axel.

Es ist überhaupt kein Dokument markiert - dann wäre es ja in der Tat kein Problem, per view.GetAllDocumentsByKey und einem Werte-Array als Parameter, den ich aus dem markierten Doc hole, die DocCollection zu ermitteln.

Es geht mir vielmehr darum, dass der Anwender nicht erst ein Dokument markieren muss, sondern dass es ausreicht, wenn er den Fokus auf eine Kategorie setzt, um per Skript eine Liste aller darunterliegenden Dokumente (an Excel in meinem Fall) zu übergeben.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #3 am: 16.02.07 - 11:53:49 »
Hilft dir vielellicht die GetPrevSibling, GetNextSibling, SiblingCount usw. weiter?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #4 am: 16.02.07 - 12:10:03 »
:-|

... das Problem ist doch, dass ich an das Entry-Objekt erst über die CreateViewNavFromCategory-Methode herankomme. Und das funktioniert nur auf der ersten Kategorieebene. Auf den folgenden Ebenen besitzt der so erstellte ViewNavigator keine Entries, aus denen ich die übergeordnete Ebene ermitteln könnte.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #5 am: 16.02.07 - 12:28:46 »
Wenn Da nur der Focus drauf ist kommst Du ja mit

   db.GetDocumentByID(uiview.CaretNoteID)

an das Doc. Darüber sollte es dann doch möglich sein, das hinzubekommen?

Oder hab ich jetzt einen denkfehler?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #6 am: 16.02.07 - 12:34:13 »
... hatte ich gerade soeben versucht - gibt mir aber Nassssing zurück :-(

Eine Kategorie hat zwar offensichtlich eine NoteID, wird aber nicht durch ein Dokument repräsentiert, mutmasse ich mal.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #7 am: 16.02.07 - 12:38:05 »
 :P
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #8 am: 16.02.07 - 13:02:44 »

... und schon gleich nicht gegen IBM: wird mich wohl noch übers Wochenende beschäftigen, das Problem.

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #9 am: 19.02.07 - 10:13:39 »
Was Du willst habe ich schon mal umgesetzt, allerdings ist das ein wirklich wilder Stunt und ein Konglomerat aus Script- und Formel- Agenten.

Da mich das ganze mehrere Tage meiner Zeit gekostet hat, und ich als Dienstleister mit sowas mein Geld verdiene, kann ich Dir den Code nicht einfach hier posten, aber nur so viel:

Mit Script alleine habe ich keinen Weg gefunden, das zu realisieren.

Bis jetzt...

Ich habe mir grade noch mal die Klassen angesehen und bin auf eine Lösung gekommen, die eventuell klappen könnte, nur wie's mit der Performance aussieht, weiss ich nicht:

Du könntest einen NotesViewNavigator bauen und Dich über GetNextCategory so lange durchhangeln, bis Entry.NoteID = CaretNoteID ist. Dann kannst Du ja wieder rückwärts gehen bis Du auf der Haupt- Category bist...

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #10 am: 19.02.07 - 12:29:08 »
Hmmm ... ja: danke für den Tipp Tode, das klingt vielversprechend. Werde mir das mal ansehen & den Code dann hier posten, falls es klappt.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #11 am: 19.02.07 - 15:08:14 »
Negativ: entry.NoteID gibt bei Kategorien einen Leerstring zurück, ich kann also nicht mit uiview.CaretNoteID vergleichen ...

... Bluadige Hennakröpf!
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #12 am: 19.02.07 - 17:36:18 »
Diese Funktion gibt dir das darauffolgende Dokument zurück wenn Du Kategorie markiert hast. Hoffe hilft und ist sicher noch optimierungsfähig. Aber jetzt erst mal Feierabend und Bierchen trinken.  ;D

Function NextDocInUIView(db As NotesDatabase,UIView As NotesUIView) As NotesDocument
   Dim vwnav As NotesViewNavigator
   Dim vwEntry As NotesViewEntry
   Dim Found As Boolean
   
   Found=False
   
   Set vwnav=UIView.View.CreateViewNav
   
   Set NextDocInUIView=db.GetDocumentByID(UIView.CaretNoteID)
   If NextDocInUIView Is Nothing Then
      Set vwEntry=vwnav.GetFirst
      Do Until vwEntry Is Nothing
         If vwEntry.IsCategory Then
            If vwEntry.ColumnValues(vwEntry.IndentLevel) =uiview.CaretCategory Then
               Found=True
            End If
         Else
            If Found Then
               Set NextDocInUIView=db.GetDocumentByID(vwEntry.NoteID)
               Exit Do
            End If
         End If
         Set vwEntry=vwnav.GetNext(vwEntry)
      Loop
   End If
End Function
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #13 am: 20.02.07 - 10:32:05 »
Dankeschön! Hoffe, das Bier hat geschmeckt :-)
Nachdem ich in Deiner Funktione den NotesView ausdrücklich deklariere
   Set view=uiview.View
   Set vwnav=view.CreateViewNav
läuft es (vorher gabs ne Object variable not set).
Allerdings auch nur bei maximal zwei Kategorienebenen (eine Haupt-, eine Unterkategorie) - bei einer tieferen Hierachie gibt die Funktion falsche Ergebnisse oder ebenfalls ovns zurück.
Es bleibt also spannend ...
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #14 am: 20.02.07 - 14:11:15 »
Die Funktion von Fedaykin fällt dummerweise schon bei diesem Konstrukt auf die Nase:

HauptKat 1
 Unterpunkt
HauptKat 2
  Unterpuinkt

Wenn der Cursor also auf "Unterpunkt" auf Hauptkat 2 steht, es aber unter Hauptkat 1 schon einen Unterpunkt mit gleichem Namen gibt...

So einfach geht das nicht...

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #15 am: 20.02.07 - 14:31:12 »
 :-: Ich gewinne langsam den Eindruck, dass das gar nicht geht ...
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #16 am: 20.02.07 - 14:47:13 »
Doch Verweis auf...  ;)

Was Du willst habe ich schon mal umgesetzt, allerdings ist das ein wirklich wilder Stunt und ein Konglomerat aus Script- und Formel- Agenten.

Da mich das ganze mehrere Tage meiner Zeit gekostet hat, und ich als Dienstleister mit sowas mein Geld verdiene, kann ich Dir den Code nicht einfach hier posten, aber nur so viel:

Mit Script alleine habe ich keinen Weg gefunden, das zu realisieren.

Bis jetzt...

Ich habe mir grade noch mal die Klassen angesehen und bin auf eine Lösung gekommen, die eventuell klappen könnte, nur wie's mit der Performance aussieht, weiss ich nicht:

Du könntest einen NotesViewNavigator bauen und Dich über GetNextCategory so lange durchhangeln, bis Entry.NoteID = CaretNoteID ist. Dann kannst Du ja wieder rückwärts gehen bis Du auf der Haupt- Category bist...

Gruß
Tode
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #17 am: 20.02.07 - 15:00:18 »
Da ich auch mein Geld damit verdiene & schon mehrere Stunden sinnlos daran rumprogrammiert habe, hab ichs jetzt über eine Kategorienauswahl per Dialogbox umgesetzt ;)

Aber das wäre doch mal ein Hinweis an die Kollegen von Big Blue: CaretCategory als Array mit den Kategorien und Subkategorien des Entries. Dann würde man die ganze Frickelei nicht benötigen.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #18 am: 20.02.07 - 15:07:58 »
Dann mach doch einen Enhancement Request auf.  >:D
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 jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: LS: Übergeordnete Kategorie Wert zurückgeben
« Antwort #19 am: 20.02.07 - 15:19:35 »
Ah, Dich gibts ja auch noch ... Grüss' nach Gulmbach  :)
Zu meiner Schande muss ich gestehen, dass ich noch nie einen Request eröffnet habe. Ich würde das aber schon als sinnvolle Erweiterung sehen (falls nicht doch noch ein Notes-Titan 312.ten Grades daher kommt und es als Funktion GetEntryHierarchy oder so umsetzt).
Erklärsdmerwissgäid?
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz