Stavy hrají klíčovou roli při vytváření dynamických a citlivých rozhraní v aplikaci 4D Qodly Pro. Umožňují řídit zobrazení a chování widgetů na základě konkrétních podmínek, jako je role uživatele, jeho oprávnění nebo data z databáze.
Tento blog se zabývá tímto konceptem, představuje různé typy stavů a ilustruje jejich použití na příkladech z aplikace Performance Review, abyste pochopili, jak je efektivně využít.
Co je to stav v aplikaci Qodly Studio?
Stav představuje konkrétní konfiguraci stránky v daném okamžiku, která definuje její vzhled a funkce.
Stav lze použít například k:
- Zobrazit nebo skrýt prvky na základě definovaných podmínek.
- Použít specifické styly.
- Dynamicky upravovat uživatelské rozhraní podle rolí, oprávnění nebo dat.
Kompletní přehled najdete v oficiální dokumentaci ke stavům.
Typy stavů ve studiu Qodly
Qodly Studio nabízí dva typy stavů:
nepodmíněný stav
Nepodmíněný stav se aplikuje staticky, bez závislosti na dynamickém stavu. Umožňuje zapnout nebo vypnout widget předem definovaným způsobem.
Příklad: Zobrazení formuláře pouze po kliknutí uživatele na tlačítko, bez kontroly dalších podmínek.
Podmíněný stav
Podmíněný stav je založen na logice definované uživatelem. Upravuje zobrazení nebo styl widgetů na základě kritérií, jako jsou uživatelské role nebo hodnoty z databáze.
Příklad: Skrytí tlačítka „Odeslat“, pokud je úloha již dokončena, nebo povolení/zakázání pole na základě role uživatele.
Příklady stavů
Pro lepší ilustraci použití stavů uvádíme dva konkrétní příklady z aplikace Performance Review.
Příklad 1: Omezení úprav na základě stavu
V aplikaci Performance Review (Přezkum výkonu) určuje stav přezkumu, zda uživatel může zobrazit nebo upravit data.
- Spolupracovník: V případě, že se jedná o přehled, který se nachází v seznamu, je možné, že se jedná o přehled: Data jsou určena pouze pro čtení, pokud je stav Hotovo nebo Zavřeno.
- Manažer: V případě, že je stav v režimu hodnocení, je stav v režimu hodnocení: Data jsou určena pouze pro čtení, pokud je stav Zavřít.
- HR: Plný přístup k datům bez ohledu na stav.
Vytvoření stavu „pouze pro čtení“
Abychom mohli omezit editaci dat na základě stavu přehledu, vytvoříme specifický stav nazvaný„readOnly„.
Nyní vyberte právě vytvořený stav„readOnly„. Chcete-li se ujistit, že je tento stav aktivní a že se jedná o stav, který chcete upravit, zkontrolujte, zda se jeho název zobrazuje v pravém dolním rohu oblasti pro úpravy stránky.
Konfigurace zobrazení widgetu
U každého vstupního widgetu upravte atribut „disabled“ na hodnotu true, abyste zakázali editaci polí.
Poté přejmenujte tlačítka Upravit na Zobrazit.
Dále skryjte tlačítka Vytvořit a Uložit nastavením vlastnosti display na hodnotu none.
Stejné úpravy navíc aplikujte na modální dialogová okna otevíraná tlačítkem Zobrazit:
- Zakázat vstupní pole.
- Skryjte akční tlačítka Uložit a Upustit.
- Přejmenujte tlačítko Zrušit na Zavřít.
Pokud je tlačítko neúmyslně skryto, použijte panel Obrys v aplikaci Qodly Studio k vyhledání a opravě konfigurace.
Implementace logiky zobrazení
Dalším krokem je implementace logiky, která aktivuje nebo deaktivuje stav„readOnly“ na základě stavu recenze a role uživatele.
Role uživatele je uložena v datech relace. Například manažer má dvojí roli: při zpracování recenzí svého týmu vystupuje jako manažer, ale při správě vlastních recenzí jako spolupracovník. V panelu nabídek aplikace se výběrem možnosti Collaborator (Spolupracovník) aktualizuje atribut role v úložišti na„collaborator“ (spolupracovník), zatímco výběrem možnosti Manager (Manažer) se aktualizuje na„manager“ (manažer).
K entitě Review přidáme vypočtený atribut:
exposed Function get isReadOnly() : Boolean
var $status : Boolean:=False
If (ds.getUserInfo()#Null)
If ((ds.getUserInfo().role="Collaborator") && (This.ID_Status>2))
$status:=True
End if
If ((ds.getUserInfo().role="Manager") && (This.ID_Status>3))
$status:=True
End if
End if
return $status
Tato funkce vrací true, pokud si uživatel může data pouze prohlížet, a false, pokud je smí měnit.
Poznámka: Funkce getUserInfo() poskytuje přístup k úložišti relací.
Propojení podmínky se stavem „pouze pro čtení“
Nakonec klikněte na tlačítko Podmínky stavu„readOnly“ a definujte pravidla zobrazení.
Přidejte podmínku.
Stačí zadat vzorec: Zadejte podmínku: „selectedReview.isReadOnly is True“.
Díky této konfiguraci se stránka dynamicky přepíná mezi režimem pouze pro čtení a režimem úprav, aniž by vyžadovala ruční zásah nebo složitý kód.
Příklad 2: Řízení viditelnosti tlačítka na základě stavu dat
V aplikaci Performance Review se při výběru recenze zobrazí postranní panel. Zobrazená tlačítka v tomto postranním panelu závisí na několika faktorech:
- Zda je stav pouze pro čtení nebo pro zápis.
- Zda je k dispozici dokument PDF.
- Zda je role uživatele Manager, Collaborator nebo HR.
- Zda je zobrazen dokument PDF.
Abychom tyto různé případy efektivně zpracovali, vytváříme stavy pro všechny možné kombinace.
Pro informaci, role je přiřazena, když se uživatel přihlásí a vybere stránku HR, Manager nebo Collaborator. Tato informace je uložena v úložišti relace. Tento koncept bude dále rozveden v nadcházejícím příspěvku na blogu, který se bude zabývat navigací mezi jednotlivými stránkami aplikace.
Vytváření stavů pro jednotlivé scénáře
Abychom zajistili bezproblémový uživatelský zážitek, definujeme konkrétní stavy, které řídí viditelnost tlačítek na základě výše uvedených podmínek. Každý stav dynamicky upravuje rozhraní tak, aby zobrazovalo pouze příslušné akce.
Příklady:
readOnly
readOnlyPDF
readWriteManager
readWritePDFManager
Ukládání opakovaně použitelných podmínek
Abychom zjednodušili správu stavu a vyhnuli se nadbytečné logice, definujeme opakovaně použitelné pojmenované podmínky:
- Spolupracovník: userInfo.role is „Spolupracovník“
- Manager: userInfo.role je „Manager“
- HR: userInfo.role je „HR“
- selected: selectedReview is not Null a selectedReview.pdfDocument is Null
- selectedWithPDF: selectedReview.pdfDocument není Null
- viewPDF: viewPdf je True
- isReadOnly: selectedReview.isReadOnly je True
- isReadWrite: selectedReview.isReadOnly je False
Chcete-li uložit podmínky, klikněte na tlačítko „…“ a z nabídky vyberte „Uložit podmínku“.
Použití podmínek na stavy
S těmito předdefinovanými podmínkami je konfigurace stavů mnohem jednodušší. Místo ručního nastavování složitých podmínek pro každý stav se jednoduše odkazujeme na uložené podmínky. Tím je zajištěna přehlednost, konzistence a snadná údržba.
Například pro definování viditelnosti stavu „readWritePDFManager“ nastavíme podmínky: selectedWithPDF, isReadWrite a Manager.
Je na vás, abyste zjistili, jak jsou nastaveny ostatní stavy, a pokud máte nějaké dotazy, připojte se k nám na fóru 4D.
Tento přístup zajišťuje, že se rozhraní dynamicky přizpůsobuje různým rolím uživatelů a stavům přezkoumání, a poskytuje tak intuitivní a efektivní uživatelské prostředí.
Závěr
Využití stavů v aplikaci 4D Qodly Pro je účinný přístup k přizpůsobení uživatelského prostředí a optimalizaci rozhraní. Jejich efektivním využitím můžete:
- přizpůsobit viditelnost prvků na základě rolí a oprávnění.
- Zlepšit interaktivitu a relevanci dostupných akcí.
- Navrhovat robustní aplikace přizpůsobené skutečným potřebám uživatelů.
Chcete-li se dozvědět více, podívejte se na naši kompletní dokumentaci ke stavům.
Jak používáte stavy ve svých aplikacích Qodly? Podělte se o své nápady nebo dotazy na fóru 4D!