Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilBarbora Říhová
1
www.sutol.cz Filtrace dat v XPages pohledech Honza Krejcárek, Raiffeisenbank a.s. 11.11. 2014
2
www.sutol.cz Hlavní partneři a prezentátoři
3
www.sutol.cz Notesový klient nabízí možnosti, jak rychle něco najít pomocí Rychlého vyhledávání Snadné práce s kategoriemi Fulltextového vyhledávání Na webu nic takového není, vývojář musí zajistit, aby uživatel rychle a pohodlně našel, co hledá Proč vůbec filtrovat data v XPages
4
www.sutol.cz Při ukázkách pracujeme se vzorovou aplikací vytvořenou pro tuto prezentaci Kód se nachází nejblíže probírané tematice, ne v knihovnách nebo Javových třídách jako v produkčních aplikacích, jak je běžné Aplikace zobrazuje údaje o ubytovacích zařízeních dostupných na stránkách Českého statistického úřadu (http://apl.czso.cz/huz/index.jsp)http://apl.czso.cz/huz/index.jsp Každý záznam obsahuje název zařízení, adresu, kategorii (Hotel, Kemp, Penzion), kapacitu (10 a méně, 11 až 50 apod.) a provoz (celoroční, letní, zimní) Nová data lze načíst v Notes pomocí menu Actions - Import Vzorová aplikace
5
www.sutol.cz Aplikace potřebuje k chodu XPages Extension Library a Bootstrap4XPages (http://www.bootstrap4xpages.com, http://www.openntf.org/main.nsf/project.xsp?r=project/Bo otstrap4XPages)http://www.bootstrap4xpages.com http://www.openntf.org/main.nsf/project.xsp?r=project/Bo otstrap4XPages Extension Library je součástí Domino 9.0.1 Bootstrap4XPages se instaluje na server pomoc aplikace Update Site Bootstrap je nově součástí Xpages Extension Library od verze 901v00_10 z listopadu 2014. Implementace vychází z Boostrap4XPages, ale není s ní kompatibilní. Vzorová aplikace
6
www.sutol.cz Vzorová aplikace
7
www.sutol.cz Typicky XPage obsahuje datový zdroj typu Domino View. Na tento datový zdroj je napojena komponenta, která zobrazuje data a zajišťuje stránkování, kategorizování apod. Filtrování se vždy provádí na datovém zdroji bez ohledu na použitou komponentu, která data zobrazuje. Rekapitulace: jak jsou pohledy zobrazeny na XPage
8
www.sutol.cz View – nejjednodušší komponenta, napojí se na datový zdroj, vyberou sloupce a je to Rekapitulace: komponenty pro zobrazení dat z pohledu
9
www.sutol.cz XPage v aplikaci: jednoduche.xsp Custom Control: vJednoduchyPohled Demo: komponenta View
10
www.sutol.cz XPage v aplikaci: kategorizovano.xsp Custom Control: vKategorizovanyPohled Kategorizování sloupců zajistí komponenta sama podle sloupce Demo: komponenta View – kategorizovaný pohled
11
www.sutol.cz DataView – více možností než View, umí se renderovat na mobilním zařízení Rekapitulace: komponenty pro zobrazení dat z pohledu
12
www.sutol.cz XPage: kategorizovanoDataView Custom Control: vKategorizovanyPohledDataView Vývojář říká, které sloupce jsou kategorizované Demo: komponenta DataView
13
www.sutol.cz Repeat – nejflexibilnější, záleží jen na vás, jak bude výpis dokumentů vypadat Rekapitulace: komponenty pro zobrazení dat z pohledu
14
www.sutol.cz Vlastnosti datového zdroje, které ovlivňují, jaké dokumenty se zobrazí: categoryFilter – zobrazení dokumentů v určené kategorii search a searchList – fulltextové vyhledávání keys – zobrazení dokumentů podle seřazeného sloupce parentId – response dokumenty určeného dokumentu Filtrování dokumentů
15
www.sutol.cz Datový zdroj je napojený na kategorizovaný pohled Vlastnost categoryFilter pak zobrazí jen dokumenty v určené kategorii Obsahuje-li pohled vnořené kategorie, lze je určit oddělené zpětným lomítkem, např. „Praha\Čimice“ Funguje od verze 8.5.2 Na pozadí používá metodu Java API View.createViewNavFromCategory() Zobrazení dokumentů v určité kategorii
16
www.sutol.cz XPage: filtrKategorie.xsp Custom Control: vFiltrKategorie Komponenty pro výběr jsou napojené na viewScope proměnné Datový zdroj ve vlastnosti categoryFilter načítá tyto proměnné a sestaví hodnotu pro filtr Lze vyzkoušet i přímo v URL /filtrKategorie.xsp?categoryFilter=Praha\Kobylisy Demo: zobrazení dokumentů v určité kategorii
17
www.sutol.cz Rychlé, flexibilní, umožňuje poměrně přesně určit, co se má zobrazit Vyžaduje fulltextový index Nemusí zobrazit všechny dokumenty, pokud je výsledků vyhledávání příliš mnoho Datový zdroj Domino View obsahuje dvě vlastnosti (search a searchList), kterými lze zadat fulltextový dotaz Fulltextové vyhledávání
18
www.sutol.cz search Výraz pro fulltextové vyhledávání. Je stejný jaký se zadává do IBM Notes – Search This View panelu Může být jednoduchý – uživatelem zadané slovo – nebo složitý, určující v jakých polích se má vyhledávat, např: [Okres]=„Brno" AND [Kategorie]="Hotel 5" Způsoby fulltextového vyhledávání
19
www.sutol.cz XPage: filtrVyhledavani.xsp Custom Control: vFiltrKategorieVyhledavani Kód u vlastnosti search vytvoří dotaz pro fulltextové vyhledávání podle hodnot zadaných nebo vybraných v panelu Vyhledávání. Uživatel tak může blíže určit co hledá a nemusí procházet irelevantní výsledky jako při zadání do pole v pravém horním rohu Pole pro výběr jsou napojené na viewScope proměnné a při změně aktualizují část stránky s pohledem Lze vyzkoušet i v URL: filtrVyhledavani.xsp?search=troja Demo: fulltextové vyhledávání pomocí search
20
www.sutol.cz searchList Umožňuje vyhledat pomocí více výrazů najednou. Budou zobrazeny výsledky odpovídající všem z určených výrazů Parametr musí vrátit proměnnou typu java.util.Vector, kód např. načte parametr URL, rozdělí ho podle určeného znaku, např. čárky na jednotlivé hodnoty a ty vloží do java.util.Vector if (param.searchValue != null) { var args = param.searchValue.split(","); var v:java.util.Vector = new java.util.Vector(); for (var i = 0; i < args.length; i++) { v.add(args[i]); } return v; } Způsoby fulltextového vyhledávání
21
www.sutol.cz Datový zdroj obsahuje další vlastnosti, kterými lze ovlivnit výsledky vyhledávání: searchExactMatch výsledky musí odpovídat přesně zadání co se týče velikosti písma FullTextový index musí být vytvořený s parametrem Enable case-sensitive searches searchVariants Vyhledá i slova podobného tvaru searchFuzzy Vyhledá i nesrovnalosti v zadaném výrazu Např. „hilton town“ najde „Hilton Prague Old Town“ Parametry pro fulltextové vyhledávání
22
www.sutol.cz Vlastnost parentId u datového zdroje umožňuje zobrazení podřízených (response) dokumentů Vlastnost musí vrátit UNID nebo Note ID Pokud se dokument s daným ID nachází v pohledu, zobrazí pohled všechny jeho podřízené dokumenty Vhodné při zobrazení XPage s dokumentem, kdy jsou současně vidět i podřízené dokumenty, např. zobrazení objednávky a seznamu položek na objednávce. Filtrování pomocí „parentId“
23
www.sutol.cz Filtrování pomocí „keys“ Umožňuje filtrovat pohled podle více sloupců najednou Vlastnost keys programujete tak, aby vrátila java.util.Vector. Každému prvku ve Vectoru odpovídá jeden seřazený sloupec v pohledu Jsou zobrazeny dokumenty, které odpovídají všem hodnotám ve Vectoru var keys:java.util.Vector = new java.util.Vector(); keys.addElement(doc.getItemValueString("Mesto")); keys.addElement(doc.getItemValueString("Kategorie")); return keys
24
www.sutol.cz Parametry pro filtrování pomocí „keys“ Vlastnost keysExactMatch určuje, jestli dokumenty mají souhlasit plnně nebo částečně. Nastavuje se true nebo false, výchozí hodnotou je false.
25
www.sutol.cz Demo: filtrování pomocí „keys“ XPage: filtrKlice.xsp Custom Control: vFiltrKlice Výběrová pole jsou napojena na viewScope proměnné, vlastnost keys načítá tyto proměnné a vloží do objektu typu java.util.Vector Při výběru je třeba postupovat zleva doprava, v produkční aplikaci by další výběr v pořadí byl nedostupný při absenci výběru předchozího (výběr pro město by nebyl dostupný, kdyby nebyl vybrán okres).
26
www.sutol.cz Demo 2: filtrování pomocí „keys“ XPage: jednoducheKlice.xsp Custom Control: vJednoduchyPohledKlice Demo funguje podobně jako rychlé vyhledávání v Notesech, kdy aplikace zobrazí záznamy, které začínají na zadaný text Textové pole je napojené na requestScope proměnnou, datový zdroj hodnotu beze změny načítá
27
www.sutol.cz Díky za pozornost Jan Krejcárek Twitter:@jan_krejcarek Email:jan.krejcarek@rb.cz
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.