Jak vytvořit aplikaci, MS Power Platform, PowerApps, Vše

4. část – Power Apps tvorba nové aplikace, vyhledávání a filtrování

Data umíte již zobrazit a manipulovat s nimi přímo z aplikace. Často ale nezůstanete u pár záznamů, které se snadno dají rychle projít k položce, která vás zajímá. Už při desítkách záznamů by to bylo takto dost nepraktické. K tomu se hodí mít možnost vyhledávat a filtrovat přímo v aplikaci.

Pro filtrování se hodí k tomu nějaký relevantní údaj u každého zaměstnance. Například lze použít informace o pracovní pozici. Na SharePointu nebo jiném vašem datovém zdroji si přidejte sloupec s volbou, kde jednotlivé možnosti vyplníte například pracovními pozicemi. V aplikaci poté datový zdroj aktualizujte (v levém panelu v záložce Data) a do galerie přidejte další popisek, do jehož vlastnosti Text vypíšete daný sloupec volby. Pokud jde o data na SharePointu, napište příkaz ThisItem.’název sloupce’.Value.

Vyhledávání

Pro možnost vyhledat musí mít uživatel možnost někam napsat text, který chce hledat. Na obrazovku s přehledem zaměstnanců tedy takový prvek musíte přidat. V PowerApps se nazývá Textové zadání, přidejte ho tedy z levé nabídky, umístěte na vhodné místo (například do horní lišty) a upravte vzhled, jak potřebujete.

Tento prvek má v základu vyplněnou vlastnost Default (Výchozí). Tedy vždy při otevření aplikace by zde tento text byl vyplněný a ve finále by se tento text snažila aplikace vyhledat v galerii, ale nejspíš by se nic nenašlo a galerie by neukazovala žádné záznamy. Aby toto nenastalo, obsah této vlastnosti jednoduše smažte. Pokud chcete, aby se přesto ukazovalo něco napsaného, co by dalo uživateli informaci, k čemu zde tento prvek je, lze k tomu využít vlastnost HintText (Text nápovědy). Zde můžete napsat například Hledat a tento text je pouze vizuální nápovědou a nebere se jako vyplněná hodnota.

V náhledu aplikace můžete zkusit, jak lze do tohoto prvku psát. Avšak v galerii to zatím nic nevyhledává. To bude teprve třeba kódem napsat. Ať se pro hledání nebo filtrování používají jakékoli různé prvky, co bude zobrazeno za záznamy se vždy řídí vlastností galerie. Tato vlastnost se nazývá Items (Zdroj dat). Označte tedy galerii a vyberte tuto vlastnost. Do řádku vzorců napište příkaz pro hledání: Search(‘název tabulky dat’; “text, který se má vyhledat”; “systémový název sloupce, ve kterém se má vyhledat”; “další systémový název sloupce, ve kterém se má vyhledat”). Jedná se tedy o funkci s třemi a více parametry. První je jasný, jde o vaši tabulku zaměstnanců.

Druhý lze do uvozovek napsat natvrdo, ale v ideálním případě by se měl hledat text zadaný v dříve přidaném prvku. Tedy jako druhý parametr místo textu v uvozovkách napište ‘název textového prvku.Text. Nyní bude funkce vyhledávat vždy text, který uživatel napíše do Textového zadání. Třetí a další parametry jsou systémové názvy sloupců v uvozovkách, ve kterých se může vyhledávat. Pro sloupce SharePointu jde o název, který jste zadali při vytváření těchto sloupců. V tomto případě je nejlepší vyhledávat ve sloupcích jména a příjmení. V tomto případě je příjmení uloženo v původním základním sloupci Název, který je systémově Title. Jméno pak má systémový název zadaný při vytváření sloupce. Nyní můžete v náhledu aplikace vyzkoušet, že vyhledávání funguje.

Všimněte si, že se u galerie objevil žlutý trojúhelník s vykřičníkem, který oznamuje problém s delegací funkce. To znamená, že tato funkce nemůže pracovat s daty přímo na serveru, ale může pracovat pouze s daty, která si aplikace uloží do dočasné paměti. Toto množství je v základu omezeno na 500 záznamů. V nastavení aplikace to lze zvýšit maximálně na 2 000 záznamů. Pokud množství dat v tabulce překročí i tuto hodnotu, funkce Search už nebude vyhledávat ve všech datech. Pokud je datový zdroj Dataverse, toto omezení neplatí.

Filtrování

Kromě vyhledávání konkrétního záznamu je často požadavek zobrazit všechny záznamy, které mají nějakou stejnou vlastnost. Například všechny zaměstnance, kteří jsou vedoucí prodejny. Filtrovat tedy v tomto případě budete na tento sloupec oddělení nebo pracovní pozice. Nejprve je třeba uživateli umožnit vybrat konkrétní oddělení. K tomu se nejvíce hodí prvek Pole se seznamem. Přidejte ho opět například do horní lišty vedle textového zadání.

Nyní je třeba zařídit, aby se v tomto rozbalovacím seznamu zobrazovali požadované hodnoty, na které chcete filtrovat. V tomto případě tedy zobrazit hodnoty sloupce typu volba. Do vlastnosti Items (Zdroj dat) tohoto prvku tedy zapíšete příkaz, který toto zajistí: Choices(‘název tabulky’.’název sloupce’). Jedná se o funkci, která říká, že se jedná o sloupec volby, a má jeden parametr. Tento parametr je požadovaný sloupec volby.

Aby funkce fungovala, je však třeba napsat i v jaké tabulce tento sloupec je. Jedná se o typický výpis vlastnosti nějakého objektu. Tabulka je objekt a pomocí tečky lze připsat nějakou vlastnost, například sloupec. Nyní se při rozkliknutí prvku zobrazí výběr z možností onoho sloupce. Podobně jako u textového zadání lze i zde napsat nápovědu, pokud není vybrána žádná možnost. Co chcete zobrazit za text vepíšete do vlastnosti NoSelectionText.

Další krok je opět doplnit příkaz do vlastnosti Items galerie. Obecně funkce pro filtrování vypadá následovně: Filter(‘tabulka dat’; podmínka filtru). Jedná se tedy o funkci s dvěma parametry. Nyní bude nutné vnořit jednu funkci do druhé. Tedy jako první parametr použít celou funkci Search, kterou jste napsali dříve. Do druhého parametru musíte vepsat, jak se má tabulka filtrovat. V tomto případě tak, aby se zobrazily pouze zaměstnanci, jejichž oddělení se shoduje s těmi, co uživatel vybere v rozevíracím seznamu. V základu vždy porovnáváte nějaký sloupec s nějakými hodnotami. Dá se tedy použít obecně tato formule: ‘název sloupce’ srovnávací operátor požadovaná hodnota. Srovnávací operátory mohou být například rovná se =, nerovná se <>, větší >, menší < nebo obsahuje in. Požadovaná hodnota je v tomto případě výběr v rozevíracím seznamu. Tedy ‘název prvku’.SelectedItems pokud umožníte výběr více hodnot najednou nebo ‘název prvku’.Selected pokud umožníte výběr jen jedné hodnoty.

V případě rozevíracího seznamu je však ještě potřeba ošetřit případ, kdy není nic vybraného. V takovém případě se musí zobrazit všechna data v galerii. Do podmínky filtru tedy přidáme operátor nebo || a za něj funkci, která se ptá, zda je něco prázdného. Kvůli složitosti tohoto prvku je třeba použít dvě různé funkce za sebou, aby to fungovalo vždy. Jedná se o IsBlank(hodnota) a IsEmpty(tabulka). V tomto případě budou parametry obou funkcí vybrané položky v rozevíracím seznamu ‘název prvku’.SelectedItems. Obecně napsaný vzorec by pak vypadal takto: Filter(‘tabulka dat’; ‘název sloupce’ in ‘název prvku’.SelectedItems || IsBlank(‘název prvku’.SelectedItems) || IsEmpty(‘název prvku’.SelectedItems)). Zde bude tabulka dat celá funkce Search napsaná dříve.

Filtrování a hledání nyní funguje najednou i zvlášť. Můžete vyzkoušet v náhledu aplikace a například takto vyfiltrovat pouze na vedoucí prodejny.

 

Školení Power Apps

Pokud by vás zajímalo více z Power Apps připravili jsme školení pro začátečníky i pokročilé nebo individuální školení na míru. Podívejte se na naší nabídku školení, ze které si vybere každý.

Naše minisérie článků

Zajímá vás, co dalšího lze v Power Apps nastavit a jak dále aplikaci tvořit. Sledujte naši minisérii článků, kam pravidelně přidáváme další články o Power Apps.

Napsat komentář