konto usunięte

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Czesc,

Mam widok ktory posiada 2 poziomy kategorii, no i oczywiscie dokumenty na 3 poziomie.


Kategoria 1
Kategoria 1.1
Dokument 1
Dokument 2
Dokument 3
Kategoria 1.2
Kategoria 2
...
Kategoria 3
...


Chce miec mozliwosc wskazania dynamicznie ze chce liste dokumentow z Katagoria 1\Kategoria 1.2....

Czy jest jakis magiczny sposob aby dotrzec do tych dokumentow?

Probowalem:
1. CreateViewNavFromCategory (NotesView) z roznymi separatorami
2. CreateViewNavFrom (NotesView) przekazujac obiekt NotesEntry kategorii
3. CreateViewNavFromChildren (NotesView)

Pozdrawiam,
Rafal

PS. Jednak prawda jest powiedzeniu: "LN does not work as expected, but it works as it was designed"Rafał Ziółkowski edytował(a) ten post dnia 19.08.09 o godzinie 13:06
Michał Figiel

Michał Figiel Programista Java

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

robisz kopie tego widoku wyłączając kategoryzacje.
Nastepnie:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "mojwidok" )
Dim v() As String
Redim v(0) As String
v(0)="Kategoria 1"
v=arrayappend(v,"Kategoria 1.1")
Set dc = view.GetAllDocumentsByKey(v, True)

i masz juz kolekcje dokumentow spelanijacych podane kryteria.

konto usunięte

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Tego sie obawialem :)
Dzieki :)
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Michał Figiel:
Dim v() As String
Redim v(0) As String
v(0)="Kategoria 1"
v=arrayappend(v,"Kategoria 1.1")
Set dc = view.GetAllDocumentsByKey(v, True)

Jakiś czas temu odkryłem do tego celu funkcję Split. Można się mniej napisać..
Set dc = view.GetAllDocumentsByKey(Split("Kategoria 1|Kategoria 1.1), "|"), True)

Ale to tylko tak na marginesie, dla ułatwienia innym życia.

konto usunięte

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Dzieki za podpowiedzi :)

Kombinujac z nawigatorami + rekurencja stworzylem potwora w postaci agenta ktory zwraca w formacie JSON (o to chodzilo od poczatku) dowolna kategorie (wszystkie kolumny). Porzadana kategorie przsylam w formacie category=Kategoria 1\Kategoria 1.1 czyli takim jaki przydalby sie w przypadku uzycia RestrictToCategory bezposrednio na widoku....

Jak wrzuce ten kod na bloga to dam znac, moze sie komus przyda.
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Rafał Ziółkowski:
Dzieki za podpowiedzi :)
Kombinujac z nawigatorami + rekurencja stworzylem potwora w postaci agenta ktory zwraca w formacie JSON (o to chodzilo od
poczatku) dowolna kategorie (wszystkie kolumny). Porzadana kategorie przsylam w formacie category=Kategoria 1\Kategoria 1.1
czyli takim jaki przydalby sie w przypadku uzycia RestrictToCategory bezposrednio na widoku....
Jak wrzuce ten kod na bloga to dam znac, moze sie komus przyda.

Generalnie od początku można było zrobić agenta, który "chodziłby" po widoku używając GetNextSibling, GetNextDocument etc. Tyle tylko, że wydajność takiego "potwora", zwłaszcza przy dużych widokach mogłaby być problematyczna... Ale to pewnie tylko takie obawy człowieka wychowanego na serwerach 386sx :)

konto usunięte

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Tomasz Frydryk:

Generalnie od początku można było zrobić agenta, który "chodziłby" po widoku używając GetNextSibling, GetNextDocument etc. Tyle tylko, że wydajność takiego "potwora", zwłaszcza przy dużych widokach mogłaby być problematyczna... Ale to pewnie tylko takie obawy człowieka wychowanego na serwerach 386sx :)

Rozumiem Twoje obawy i zdaje sobie sprawe z ograniczen tego rozwiazania, dlatego liczylem ze da sie go uniknac. Sposob wyboru staralem sie zoptymalizowac na ile to mozliwe :) no i na szczescie nie potrzebuje wybierac w ten sposob wsrod setek tysiecy dokumentow.

A tak przy okazji to dziwi mnie ze CreateNavForCategory nie pozwala na wybranie kategorii 2 poziomu a tylko 1 - no ale coz trzeba zyc z tym co sie ma :)
Jacek Nowak

Jacek Nowak Specjalista
Projektant IT,
Departament Rozwoju
Aplikacji ...

Temat: Lotus Script, Pobranie dokumentow w widokach z wieloma...

Możesz zrobić widok skategoryzowany i w kolumnie (tej skategoryzowanej) wyświetlić połączone kategorie z dwóch poziomów np. za pomocą "*".
Kategoria1*Kategoria1.1
Sam widok przygotowujesz tak, żeby zwracał już JSON'a i osadzasz go na $$ViewTemplate. I zaznaczasz oczywiście ShowSingleCategory.

wywołujesz widok:
nazwaWidoku?OpenView&klucz=Kategoria1*Kategoria1.1
(klucz trzeba sobie odczytać z Path_Info_Decoded).

No chyba, że działasz na Domino8, wtedy JSON'a możesz otrzymać otwierając bezpośrednio widok, bez ViewTemplate'a:

nazwaWidoku?ReadViewEntries&RestrictToCategory=Kategoria1*Kategoria1.1&OutputFormat=JSON

Jeśli masz dokumenty TYLKO na drugim poziomie to powinno bez problemu zadziałać.

PozdrawiamJacek Nowak edytował(a) ten post dnia 16.09.09 o godzinie 18:47

Następna dyskusja:

Lotus Script, NotesViewEntr...




Wyślij zaproszenie do