04.04.2024 13:55
HCL Domino na NAS QNAP (1)
20.02.2024 10:34
Vložení přílohy do dokumentu MS Word (3)
14.02.2024 20:54
Problěmy s diakritikou. (4)
06.02.2024 17:34
AI pomocnici
15.01.2024 10:16
Export do pdf souboru (1)
12.01.2024 23:11
Agent přestává fungovat (1)
18.11.2023 06:42
RTF - Computed (2)
19.10.2023 13:00
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: