Field Sets – když (si) chcete zjednodušit práci

Když jsem přemýšlel o tom, zda je lepší klikat nebo kódovat, tak jsem skončil u kódování a Visualforce stránky. A právě při jejich vývoji si mohou programátoři hodně zjednodušit práci a současně umožnit administrátorům, aby stejně mohli stránky snadno upravovat. Stačí použít field sety.

Co je to field set?

Pro každý objekt je možné nadefinovat field sety – v podstatě skupiny polí a jejich pořadí v rámci dané skupiny, přičemž každé pole může být ve více těchto skupinách. A jediné použití, které to v tuto chvíli má, jsou právě Visualforce stránky.

Jak ho použít ve stránce?

Místo abychom se ve stránce vypisovali s každým jednotlivým polem zvlášť, prostě vypíšeme celý field set pomocí jednoho repeat bloku.

<apex:repeat value=“{!studyFields}“ var=“f“>
<apex:inputfield value=“{!objRG[f.fieldPath]}“ required=“{!OR(f.required, f.dbrequired)}“ />
</apex:repeat>

V kódu je možné používat různé proměnné – type, label, required a pár dalších. Seznam je v nápovědě SF. Pokud chce administrátor následně přidat do stránky další pole nebo změnit jejich pořadí, prostě změní pole ve field setu. Stejně tak může nastavit, zda bude povinné nebo ne.

Jsou nutné úpravy v kódu?

Ano a ne. Pro standardní objekty nemusíte vůbec nic řešit, pokud používáte custom objekty tak si musíte napsat třídy, které vám vrátí hodnoty polí. Naštěstí je tady zase nápověda, kde jsou všechny potřebné kódy uvedené.

Používáte?

Není nad to umožnit administrátorům snadno modifikovat i Visualforce stránky. Řešení není použitelné vždy, například v jednom projektu se nám na stránce průběžně měnilo dvousloupcové rozvržení do jednoho sloupce a zase zpět podle toho, jaká tam byla zrovna pole. Znamenalo to vytvořit více field setů a v každé sekci zobrazovat ten správný, což je pořád jednodušší než je psát napevno do kódu, ale samozřejmě to není tak hezké jako mít jediný field set a tím si ušetřit práci.

Až vám příště bude vývojář vyvíjet nějakou Visualforce stránku na míru, tak se ho určitě zeptejte, zda by takovouto funkcionalitu nemohl zahrnout. Pro něj to je ušetřená práce, pro vás možnost částečné customizace.

Leave a Reply