30.01.2023 10:29

Vylepseni designera 9.01
27.01.2023 12:17

Jak resit casove narocneho agent na frontendu (13)
25.01.2023 19:15

Mizející nátev template (2)
19.01.2023 15:58

profile
09.01.2023 13:18

Více kategorií klíčů (1)
28.11.2022 12:53

Příliš mnoho textu ve vzorcích pohledu (11)
03.11.2022 15:51

Varianta neobsahuje kontejner (2)
17.10.2022 14:43

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...
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ářů
Související články: