Vytvárajte kaskádové (závislé) rozbaľovacie ponuky v Power Apps

Vytvárajte kaskádové (závislé) rozbaľovacie ponuky v Power Apps
Kaskádové rozbaľovacie ponuky v Power Apps sú skupinou roletiek, ktoré zobrazujú hodnoty na základe predchádzajúceho výberu v hierarchii. Keď sú dobre zostavené, pomáhajú užívateľom aplikácií rýchlo sa orientovať v inak veľkom počte možností. Napríklad výber auta by sa mohol uskutočniť výberom značky, modelu a roku v uvedenom poradí. Keď si užívateľ vyberie značku, ďalšia rozbaľovacia ponuka zobrazuje iba modely pre vybranú značku. Podobne, po výbere modelu sa zobrazia iba roky pre zvolený model. V tomto článku vám ukážem, ako v Power Apps vytvoriť sadu kaskádových rozbaľovacích zoznamov.

Aplikácia pre tablety - Kaskádové roletky

Vytvorme si spolu v Power Apps aplikáciu na výber telefónu, ktorý si chcete kúpiť. Roletky v aplikácii zaistia, že budú vybrané iba platné kombinácie výrobcu, modelu a farby mobilného zariadenia.
Začneme vytvorením nového SharePoint zoznamu s názvom Zariadenia. Bude obsahovať iba tri polia: Vyrobca, Model a Farba (všetko jednoriadkový text). Vložíme základné údaje:
Neskôr vytvoríme ďalší zoznam SharePointu s názvom ObjednavkyZariadeni na uloženie objednávok zariadení, ktoré boli vybraté v Power Apps aplikácii a samozrejme aj kto ich vybral (užívateľ).

Vytvorme kaskádové rozbaľovacie ponuky v Power Apps

Otvoríme Power Apps Štúdio a vytvoríme novú aplikáciu plátna pre tablety. Na začiatok vytvoríme popisok aplikácie a ikonku Refresh, ktorej vlastnosť OnSelect nastavíme: Refresh(Zariadenia). Potom vložíme tri prvky Označenie a rovnako tri Rozbaľovacie ponuky (DropDown) pre výrobcu, model a farbu podľa obrázku nižšie. Pridáme do aplikácie náš SharePoint zoznam Zariadenia. Použijeme ho na naplnenie rozbaľovacích ponúk (roletiek) hodnotami. Zatiaľ by ste mali vidieť niečo takéto:

Naplníme kaskádové rozbaľovacie ponuky hodnotami zo zoznamu SharePoint

Tento kód použijeme vo vlastnosti Items v rozbaľovacej ponuke Vyrobca na zobrazenie jedinečného zoznamu hodnôt. Musíme použiť funkciu Distinct, pretože inak by sa každý výrobca opakoval viackrát.
Distinct(Zariadenia; Vyrobca)
Pokračujeme roletkou Model, tu už používame filtrovanie podľa predchádzajúcel roletky Vyrobca. Do vlastnosti Items pre roletku Model vložíme tento kód:
Distinct(Filter(Zariadenia; Vyrobca = DropdownVyrobca.Selected.Result); Model)
A teraz už iba tretiu roletku Farba, ktorej vlastnosť Items nastavíme nasledovne:
Distinct(Filter(Zariadenia; Model = DropdownModel.Selected.Result); Farba)
Všimnite si, že ak zmeníme v roletke Vyrobca hodnotu, rozbaľovacie ponuky Model a Farba zobrazia novú hodnotu (prvú v poradí) bez toho, aby sme niečo vybrali. Toto je pre užívateľa mätúce a mali by sme to odstrániť.

Naše rozbaľovacie ponuky by nemali zobrazovať žiadnu vybranú hodnotu, keď užívateľ otvorí formulár alebo keď sa zmení nadradená možnosť. Aby sme to dosiahli, do hornej časti každého rozbaľovacieho zoznamu pridáme prázdnu možnosť. Aktualizujeme vlastnosť Items v rozbaľovacej ponuke Vyrobca na tento kód:
Ungroup(Table({Value:Blank()};{Value:Distinct(Zariadenia;Vyrobca)});"Value")
Pokračujeme zmenou kódu pre Model...
Ungroup(Table({Value:Blank()};{Value:Distinct(Filter(Zariadenia;Vyrobca=DropdownVyrobca.Selected.Result);Model)});"Value")
Pokračujeme zmenou kódu pre Farbu...
Ungroup(Table({Value:Blank()};{Value:Distinct(Filter(Zariadenia;Model=DropdownModel.Selected.Result);Farba)});"Value")
Teraz už majú všetky rozbaľovacie ponuky prázdnu hodnotu v hornej časti roletky. Keď vyberieme výrobcu, nižšie uvedené rozbaľovacie ponuky Model a Farba by mali byť resetované na predvolenú (prázdnu) hodnotu. Tento kód použite vo vlastnosti OnChange v rozbaľovacej ponuke Vyrobca:
Reset(DropdownModel);; Reset(DropdownFarba)
Rovnako tak, keď vyberieme model, rozbaľovací zoznam Farba by mal byť prázdny. Tento kód napíšte do vlastnosti OnChange v rozbaľovacej ponuke Model:
Reset(DropdownFarba)

Zabránenie kaskádovému výberu rozbaľovacích zoznamov v nesprávnom poradí

Určite nechceme, aby užívatelia vyberali model (skôr), kým nie je vybraný výrobca. Rovnako nechceme, aby si vyberali farbu, kým sa nerozhodnú pre model. Vedenie užívateľov, aby sa rozhodovali v správnom poradí, je základom nášho kaskádového rozbaľovacieho návrhu.

Užívateľom môžeme zabrániť v zadávaní hodnôt nastavením rozbaľovacej ponuky na zakázaný režim. Tento kód použijeme vo vlastnosti DisplayMode v rozbaľovacom zozname Model, aby sme zabránili výberu modelu pred výberom výrobcu:
If(IsBlank(DropdownVyrobca.Selected.Result);DisplayMode.Disabled;DisplayMode.Edit)
Podobne použijeme tento kód vo vlastnosti DisplayMode v rozbaľovacom zozname Farba, aby sme zabránili výberu pred rozhodnutím o modeli:
If(IsBlank(DropdownModel.Selected.Result);DisplayMode.Disabled;DisplayMode.Edit)

Uloženie kaskádových roletiek do zoznamu SharePoint

Užívateľské objednávky mobilných telefónov sa ukladajú do iného zoznamu SharePoint s názvom ObjednavkyZariadeni, aby oddelenie IT vedelo, aké telefóny je potrebné objednať. Vytvoríme si zoznam SharePoint ObjednavkyZariadeni s jednoriadkovými textovými stĺpcami pre Vyrobca , Model a Farba . A využijeme aj automaticky vygenerované polia Vytvorené a Vytvoril, takže môžeme vidieť, kto a kedy si objednal zariadenie. SharePoint zoznam by mal vypadať nasledovne:
Pridáme do aplikácie náš nový SharePoint zoznam s názvom ObjednavkyZariadenia, potom vložíme nové tlačítko s textom „Odoslať na SharePoint“ v spodnej časti formulára, ktorému vlastnosť OnSelect nastavíme nasledovne:
Patch(ObjednavkyZariadeni;Defaults(ObjednavkyZariadeni);{Vyrobca:DropdownVyrobca.Selected.Result;Model:DropdownModel.Selected.Result;Farba:DropdownFarba.Selected.Result});;
Reset(DropdownVyrobca);;Reset(DropdownModel);;Reset(DropdownFarba)
Na záver ešte zakážeme odoslať údaje na SharePoint kým nie je vybraná farba zariadenia, tlačítku na odoslanie nastavíme vlastnosť DisplayMode takto:
If(IsBlank(DropdownFarba.SelectedText.Result); DisplayMode.Disabled; DisplayMode.Edit)

_Power Apps | najlepší online kurz:

Power Apps - moja prvá appka

Power Apps je úžasná cloudová služba v prostredí Microsoft 365, kde vás veľmi rýchlo naučíme vytvárať jednoducho skvelé, moderné firemné aplikácie bez nutnosti programovania, iba klikaním myškou a/alebo písaním vzorcov podobným spôsobom ako v Exceli. Vaše mobilné aplikácie budú rovnako fungovať na počítačoch, tabletoch aj smartfónoch a na operačných systémoch Windows, iOS alebo Android.

Najlepší online kurz Power Apps - moja prvá appka je zameraný priamo na tvorbu mobilných aplikácií v cloudovom prostredí Microsoft 365. Dozviete sa, ako rýchlo appku vytvoriť, ako všetko potrebné nastaviť a čo znamenajú jednotlivé možnosti vrátane ich použitia.

najlepší online kurz
  • doživotný prístup
  • bez obmedzení
  • konzultácia s lektorom

_video o Power Apps - Vytvárajte kaskádové (závislé) rozbaľovacie ponuky

Pozrite si krátke video z reálneho fungovania a odozvy na zariadení iPad mini 5. generácie.
Power Apps mobilnú aplikáciu Kaskádové roletky, ktorú sme si pred chvíľkou vytvorili, si môžete aj bezplatne stiahnúť.

Stiahnite si Power Apps appku Kaskádové roletky

Mobilnú aplikáciu, ktorú sme práve vytvorili v Power Apps, dávam bezplatne k dispozícii, kľudne si ju môžete stiahnuť a detailne si pozrieť jednotlivé nastavenia a príkazy.

Páčil sa vám tento článok alebo máte otázku?

Ak sa vám článok páčil, ohodnoťte ho v úvodnej (hornej) časti. Ak máte nejaké otázky k filtrovaniu údajov podľa dátumov v Power Apps, napíšte nám.
#PowerAppsSK   #SoftverNaMieru   #PowerApps

Máte pre nás nový projekt?

Power Apps najlepší online kurz:

moja prvá appka

Power Apps je úžasná cloudová služba v prostredí Microsoft 365, kde vás veľmi rýchlo naučíme vytvárať jednoducho skvelé, moderné firemné aplikácie bez nutnosti programovania, iba klikaním myškou a/alebo písaním vzorcov podobným spôsobom ako v Exceli. Vaše mobilné aplikácie budú rovnako fungovať na počítačoch, tabletoch aj smartfónoch a na operačných systémoch Windows, iOS alebo Android.

Žiadne zbytočné akademické koncepty a poučky, len praktické lekcie zo skutočnej praxe a tvorby mobilných aplikácií pre klientov.