DISKUSE
Agent log (1)
04.08.2020 13:17

Traveler se nepřipojí (2)
25.06.2020 08:20

Výběr lidí z AK tiskne jen 3 (2)
22.05.2020 07:41

Sametime 8.0.2 
20.05.2020 15:22

Access to data denied (4)
20.04.2020 15:49

IBM zastavilo provoz knowledge center 
27.03.2020 12:55

Zjištění frontendu/backendu agenta v LotusScriptu (1)
17.03.2020 20:51

export ACL do csv (1)
20.02.2020 09:54


ŠKOLENÍ


REKLAMA


KOMENTÁŘE

Dynamické pohľady v Notes.

Vytisknout článek

Máte používateľov, ktorí si chcú "dynamicky" meniť výberové kritéria pre pohľady? Tento príklad vám ukáže smer...


Reporting nad "Notes Object Store" je široká téma, ktorá zahŕňa viace alternatívnych prístupov. Tento článok si vybral najklasickejšiu situáciu:

Forma reportu: natívny pohľad Notes
Rozsah reportu: preddefinovaná množina s možnosťou "ad-hoc" zmeny zo strany používateľa

Až do čias R6 to chcelo pomerne komplikované "workarounds". V R6 to však už ide (aj keď s istými limitami, viď nižšie). Ako na to?

Postup
1. Doplňte do databázy LS agenta (alebo akciu) [napr. "Change SELECT"] a začnite budovať kód.
2. Interaktívne načítajte podmienky pre novú selection formulu [buď cez .DialogBox() alebo .Prompt()].
3. Vybudujte novú selection formulu [typu String].
4. Sprístupnite pohľad [do triedy NotesView].
5. Zapíšte novú selection formulu pohľadu [do vlastnosti NotesView.SelectionFormula].
6. Prebudujte pohľad [NotesView.Rebuild].

Príklad
Tento jednoduchý script je vhodný pre pohľady so správami v poštovej databáze. Mení výberovú podmienku na základe užívateľom zadaného dátumového intervalu a následne zobrazí iba prijaté správy v tomto intervale. Vytvorte si v pohľade akciu a vložte tento script:
Dim uiwork As New NotesUIWorkspace
Dim beginDateString As String
Dim endDateString As String
beginDateString = uiwork.Prompt(Prompt_OKCANCELEDIT,"Začiatočný dátum","Chcem zobraziť dokumenty OD:","")
endDateString = uiwork.Prompt(Prompt_OKCANCELEDIT,"Koncový dátum","Chcem zobraziť dokumenty DO:","")

Dim povodnaSelectFormula As String
povodnaSelectFormula=|@IsNotMember("A"; ExcludeFromView) & IsMailStationery != 1 & Form != "Group" & Form != "Person" & Form != "(GroupCalendar)"|

Dim selectFormula As String
selectFormula = PovodnaSelectFormula + |& DeliveredDate > [| & beginDateString & |] & DeliveredDate < [| & endDateString & |]|

Dim uiview As NotesUIView, view As NotesView
Set uiview = uiwork.CurrentView
Set view = uiview.View
view.SelectionFormula = selectFormula
view.Name="View\"+beginDateString+" - "+endDateString
Call uiwork.ViewRebuild

Limity
Zmena selection formule sa zapíše do pohľadu, teda nejde o "dočasnú" operáciu.
Používateľ musí mať dostatočný prístup:
/1/ v prípade privátnych pohľadov mi to fungovalo pre prístup Author (iné som neskúšal - možno stačí i Reader...).
/2/ v prípade shared pohľadov je potrebný Designer (to zrejme súvisí s možnosťou konfliktov pri zmene pohľadu).


Autor: Miroslav Uhlár
Datum: 25.09.2003


Sdílet článek Seznam komentářů
 
Od
Téma
 Datum
Vít Zachodil
Dočasné operace pro shared views
25.09.2003 08:29
Miro Uhlar
Presne tak, dobrý postreh.
25.09.2003 08:59

Související články:
» 

Lotus Notes and Domino 6 Programming Bible

 (Notes/Domino R6, 30.04.2004)

» 

Proč Lotus dodnes nemá klienta pro Linux?

 (Notes/Domino R6, 24.10.2003)

» 

Co všechno dovolují licence Express?

 (Notes/Domino R6, 09.09.2003)

» 

Čo ma baví na klientovi Notes R6? (II.)

 (Jak funguje..., 22.08.2003)

» 

Přehled produktů IBM Lotus software

 (Notes/Domino R6, 19.08.2003)

»