světNotes.cz

Dynamické pohľady v Notes.
Novinky
25.09.2003 - Miroslav Uhlár

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).