SharePoint umí pracovat se vypočítanými hodnotami, resp. vzorci. Syntaxe je podobná vzorcům, které znáte z Excelu.
Lze je použít dvěma způsoby:
- definovat jejich pomocí výchozí hodnotu nějakého sloupce. Nemůže se ale odkazovat na ostatní sloupce. Užitečné v případě, že chcete použít "konstant" jako je aktuální datum a čas, nebo aktuální uživatel.
- vytvořit vypočítaný sloupec. V jeho definici se pak určí vzorec, který určuje hodnotu tohoto sloupce na základě hodnot jiných sloupců v záznamu. Zde pro změnu nemůže použít aktuální datum a čas nebo aktuálního uživatele.
Výpočty mají i další omezení. Za to největší považuji skutečnost, že se nedají použít se systémovými sloupci, např. se sloupcem Nadpis (Title). Tento sloupec je specifický tím, že je s ním v seznamových zobrazeních svázáno kontextové menu položek tzv. ECB a kliknutím na něj se zobrazí detail záznamu. Problém je v tom, že občas slovo Nadpis působí hloupě. Představte si např. evidenci lidí. Máme tam sloupce jako: jméno, příjmení, titul atd. Ale abychom zachovali standardní chování musí seznam mít ještě sloupec Nadpis. Ten se dá sice přejmenovat (např. na "Úplné jméno"), jenže co do něj psát? A jak? Nutit uživatele, aby tam v podstatě opsal ještě jednou důležité údaje ze záznamu je hloupost. Ideální by bylo, aby se tam zřetězily (nebo jinak spojily) ony důležité údaje automaticky. V našem případě by asi bylo fajn, kdyby tam byl "titul jméno příjmení". A tady by se hodila vypočítaná hodnota, jenže ouha: sloupec Nadpis nemůže být vypočítaný. Může mít sice výchozí hodnotu, jenže ta zase nemůže vycházet z hodnoty jiného sloupce, takže se to musí řešit event handlerem, nebo workflow.
Problém je v designu. Vypočítaný sloupec totiž není nějaký příznak sloupce, ale je to samostatný datový
typ.
Aby to ale nebylo tak jednoduché, nachystali pro nás v MS ještě jedno překvapení. Počeštili totiž i jména funkcí, které se ve vzorcích dají použít. To samo o sobě nezní tak tragicky, konečně SharePoint se snaží být přívětivý i k těm uživatelům, kteří nejsou zrovna zběhlí v programování a angličtině. Má to ale 2 háčky:
- Pokud seženete nějaké vzory, triky a podobně na anglických webech, musíte pak nalezené výrazy "přeložit". K tomu by vám měla posloužit dokumentace.
- Mizernou dokumentaci českých výrazů na weby Microsoftu - Protože neexistuje seznam funkcí, máte k dispozici pouze seznam příkladů. V něm jsou ale chyby. To v kombinaci s naprosto nicneříkající chybou, kterou vám SharePoint vrátí, pokud zadáte výraz špatně, tvoří slušný základ pro dlouhé zimní večery.
K bodu 2 (seznam příkladů naleznete zde -
http://office.microsoft.com/cs-cz/sharepointserver/HA101054791029.aspx?pid=CH101760291029 ) můžu uvést 2 příklady za všechny:
- Funkce DATUM (a nejen ona) je uváděna s čárkou jako oddělovačem parametrů - skutečný oddělovač je středník.
- V sekci "Kombinace textu s datem nebo časem" se dočtete, že když chcete do textu dostat z data rok, musíte do formátovacího řetězce dát písmeno r. Není tomu tak! Je to písmeno y. Tady šli překladatelé dokumentace ještě dál, než programátoři, kteří přeložili "jen" jména funkcí. Překladatelé přeložili i parametry. Naštěstí pro dny a měsíce to v češtině a angličtině vychází stejně (d,m). Jen ty roky (y, r) v tom falírují.
K dobru je potřeba vývojářům SharePointu přičíst to, že pokud vzorec
napíšete česky (nebo jiným jazykem), v definici seznamu se uloží
anglicky. Díky tomu můžete potom seznam uložit jako šablonu a použít i
na webu s jiným jazykem. Přenášení šablon mezi různými jazykovými
verzemi SharePointu není úplně přímočarý proces, ale jde to.